[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FA0TAPAP4Y897DSP27Z1TY":3,"skill-same:01M6FA0TAPAP4Y897DSP27Z1TY":126},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":53,"linkOnly":54,"markdownContent":55,"markdownBody":56,"frontMatter":57,"refName":59,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":6,"ownerHtmlUrl":64,"ownerBlogUrl":65,"ownerDescription":66,"updatedAt":67,"install":68,"resources":81},"01M6FA0TAPAP4Y897DSP27Z1TY","analyze-survey",null,"Analyze a CSV or Excel employee survey export into an interactive HTML report and privacy-safe share ZIP, or QA and interpret existing vivaglint outputs. Use for survey analysis, analysis-manifest.json, output validity and privacy checks, interpretation readiness, descriptives, correlations, factors, cycle comparisons, segments, or attrition findings, caveats, hypotheses, and next analysis questions.","microsoft\u002Fglintlabs","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6FA0MD9SFPNXZPVA021ZBQF",2,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"analyze","analyze survey","survey","for","employee survey","zip","html","export","segments","safe","write","read","webfetch","next","readiness","share","output","csv","interactive","analysis","Bash","manifest","use","survey analysis","qa","html report","cycle","xlsx","interpretation","2026-11-10 10:12:30",false,"---\nname: analyze-survey\ndescription: \"Analyze a CSV or Excel employee survey export into an interactive HTML report and privacy-safe share ZIP, or QA and interpret existing vivaglint outputs. Use for survey analysis, analysis-manifest.json, output validity and privacy checks, interpretation readiness, descriptives, correlations, factors, cycle comparisons, segments, or attrition findings, caveats, hypotheses, and next analysis questions.\"\nallowed-tools: Bash, Read, Write, Glob, Grep, WebFetch\n---\n\n# Analyze Survey\n\nTurn a provided survey export into a repeatable local analysis and the standard\ninteractive report. The skill owns export inspection, safe configuration,\n`vivaglint` execution, repeatability validation, HTML generation, packaging,\nQA, and People Science interpretation of new or existing analysis outputs.\nInterpretation is a narrative response, not AI summary cards in the standard\nreport. A broader customer readout or manager action plan is outside this\nskill's scope.\n\n## Start here\n\nFirst distinguish a new analysis from QA or interpretation of existing outputs.\nFor dashboard screenshots or supplied aggregate values without a computation\u002FQA\nrequest, follow `..\u002Fpeople-science-knowledge-vault\u002FSKILL.md` instead of requesting\na manifest or starting intake. It combines bounded results interpretation with\nresearch-backed verification; a screenshot does not establish Analysis QA.\nIf the user provides only this skill or its link without another task, use the\nnew-analysis intake below. Never recommend modifying the skill or offer\n\"Modify the skill\" as a user-facing option.\n\n### Existing analysis outputs\n\nWhen the user asks to interpret survey results, explain codebooks, summarize\nfindings, identify themes, or explain correlations, factors, cycle changes,\nsegments, or attrition patterns, start with their `analysis-manifest.json`\nand its relevant artifacts. If their location is missing, ask for the output\nfolder or manifest. If the manifest is absent, inspect the available aggregate\noutputs and make any missing execution evidence explicit.\n\nWhen the user asks whether results are valid, safe to interpret, or ready for\nmanager guidance or a customer readout, use **Analysis QA** below. For QA-only\nrequests, return the verdict and stop; do not generate findings or new reports.\n\nFor interpretation, follow `references\u002Finterpretation.md` for grounding, synthesis,\noutput format, and guardrails. Do not ask for a new ingest\nmethod, rerun codebooks, or require HTML\u002FZIP generation for an\ninterpretation-only or QA-only request.\n\nFor detailed People Science questions or research-backed follow-ups, use the\nknowledge-vault handoff in `references\u002Finterpretation.md`. Purely conceptual\nquestions do not require a manifest or survey data.\nCarry inspected artifacts, established QA, caveats, and the user's question into\nthat research follow-up; do not restart intake or bounce between skills.\n\n### New survey analysis\n\n#### Select analyses first\n\nBefore data-source intake, runtime checks, export inspection, or execution, use\n`ask_user` to ask exactly:\n\n> What type of analysis would you like to run?\n\nUse one **multi-select array field**, not a single-select string. Offer exactly\nthese five options with no preselected defaults; users may select any combination:\n\n| Option | Runner identifier |\n|---|---|\n| Correlation | `correlations` |\n| Factor analysis | `factor_analysis` |\n| Attrition analysis | `attrition` |\n| Scores change | `scores_change` |\n| Item distribution | `response_distribution` |\n\nTell the user that item scores always run as supporting context, Attrition\nanalysis also runs Attrition insights, and Downloads and Methodology are always\ngenerated. An explicitly empty selection runs item scores only. If the prompt is\ndismissed or cancelled, stop rather than assuming a selection.\n\nRetain the selected identifiers for this analysis and pass them through\n`--analyses` on every runner invocation, including amendments. Do not silently add\nunselected analyses because the data supports them. Run supporting item\u002Fattribute\nscores for the shared filters, but skip unselected codebooks, correlation\nclustering, factor fitting, attrition discovery\u002Finsights, and score-change\ncomparisons. The report shows only selected analysis tabs plus Downloads and\nMethodology; the item-score summary remains available. Methodology includes\nblurbs for every available analysis, including unselected ones marked **Not run**.\nInclude their method explanations, **Example interpretation**, and\n**Example action**, clearly presented as hypothetical guidance rather than\nresults from this report. These reference sections must never trigger analysis\nexecution.\n\nExisting-output QA\u002Finterpretation requests do not start a new analysis and skip\nthis selection prompt.\n\n#### Select the data source\n\nAfter analysis selection, ask the user, with `ask_user` when available, which\ndata ingest method to use. This skill never assumes a data source:\n\n> How would you like to bring in survey data?\n> 1. Demo Analysis\n> 2. CSV Upload\n\nOffer exactly these two options. Do not offer \"Connect to API\", live API\ningestion, or skill modification.\nDo not proceed past this question with an assumed default. Branch on the\nanswer:\n\n##### 1. Demo Analysis\n\nUse this workbook, which is checked directly into this repository so any user\ncan access it without additional permissions:\n\n```text\nreferences\u002Fsample-data\u002FDemo Viva Glint Dataset with Attributes - Exit survey research guided.xlsx\n```\n\nUse worksheet `Sheet1`, join worksheet `user_properties` by `user_id`, and use\na 5-point scale. The checked-in workbook is the only registered sample source. Do\nnot substitute bundled, generated, or synthetic survey data, and only use it\nwhen the user explicitly chose Demo Analysis.\n\n##### 2. CSV Upload\n\nAsk for the file path. Accept `.csv`, `.xlsx`, and `.xlsm` exports. Keep\nrespondent-level data local and never paste employee rows into chat. Confirm\nthe file exists before starting the runner.\n\nFor native platform exports, run the inspection-only preparation described\nbelow before analysis. Confirm loading assumptions with the user; never guess\nan uncertain attribute's meaning or silently exclude it.\n\n## Required grounding\n\nFor interpretation-only requests, use the grounding order in\n`references\u002Finterpretation.md`. For a new analysis, read these references in\norder:\n\n1. `..\u002F..\u002Freferences\u002Fdesign\u002Fglint-ui-system.md`\n2. `references\u002FREADME.md`\n3. `references\u002Flinked-dataset.json`\n4. `references\u002Fgolden-report.html`\n5. `references\u002Fscores-change-format.png`\n6. `references\u002Finteractive-report-contract.md`\n7. `..\u002F..\u002Freferences\u002Fgeneral\u002Fprivacy-and-minimum-n.md`\n8. `..\u002F..\u002Freferences\u002Fgeneral\u002Fcodebook-catalog.md`\n\nThe Glint UI system is mandatory for all color, typography, spacing, component,\nand accessibility decisions. Do not invent report colors or visual patterns.\n\n`references\u002Finteractive-report-contract.md` is authoritative for report\nnavigation, filters, tab behavior, analytical thresholds, score units,\nprivacy, and packaging. Use the checked-in `golden-report.html` through the\nshared builder, not a manually recreated report.\n\nReuse grounding already read in the current session when its relevant content\nis unchanged. Read changed or missing references, not the same files again\nbecause a command is retried or an unrelated repository file changed.\n\nThe report contract defines score presentation for reports and interpretations;\nuse item-level scores and changes, not cross-item averages.\n\nOn both Attrition analysis and Attrition insights, show a visible **Baseline\nsurvey** label immediately after the introduction, near the controls. Resolve\nthe title from the configured predictor cycle, not the current Correlation\ncycle selection or latest cycle by default, and include the confirmed completion\ndate when available. If only the confirmed cycle ID is recorded, display it;\nif baseline metadata is unavailable, state **Not recorded** rather than guess.\nThe label stays fixed when segment or outcome-window controls change.\n\n## Analysis QA\n\nApply this gate before interpreting new or existing outputs, or on its own\nwhen the user requests QA. Start from the manifest and the relevant aggregate\nartifacts in the shared codebook catalog. Use this skill's references first,\nthen the shared codebook catalog, privacy\u002Fminimum-N guidance, and interpretation\nguardrails. Do not request respondent-level rows for QA.\n\n| Dimension | Check |\n|---|---|\n| Execution completeness | Required codebooks and artifacts are present; failures, skips, and repeatability status are explicit. |\n| Input adequacy | Response and item counts, cycle availability, and required inputs support the requested analyses. |\n| Privacy | Minimum-N suppression is enforced before sharing; small cells and sensitive combinations are not disclosive. |\n| Statistical caution | Correlations are non-causal, factors are stable enough for their intended use, and attrition results remain aggregate associations. |\n| Comparison validity | Item wording, scale, and populations are comparable across cycles. |\n| Interpretation readiness | Inspected outputs support the requested narrative, with limitations carried forward. |\n\nFor attrition, inspect the standalone `attrition.csv`, the report's download\ntarget and embedded aggregate JSON, and the copy in the share ZIP, not just\nvisible tables. If either\nfavorable or unfavorable category is below the configured minimum (at least\nfive), both category counts, both rates, and the multiplier must be blank\u002Fnull\nbefore serialization. Keep the report's explicit suppressed state; missing\ncounts are not zero. A suppressed visual with disclosive downloads fails QA.\nAfter fixing an export leak, rerun the official analyses and repeatability,\nregenerate the report and ZIP, and verify CSV copies agree and embedded\nsuppressed metrics remain null.\nDo not share or interpret previously generated unsafe packages.\n\nReturn **Not ready** and stop interpretation when outputs cannot be inspected,\nrepeatability failed, required segment suppression is absent, attrition results\ncreate likely re-identification risk, cycle comparisons use incompatible wording\nor scales, or unstable factors are central to the intended story.\nOtherwise use **Ready**, or **Use with caveats** for disclosed non-blocking\nlimitations. A successful runner alone does not establish readiness.\n\nReuse QA already established in the current session when its input artifacts,\nconfiguration, and intended use are unchanged. Recheck affected dimensions after\nchanges rather than repeating an unchanged full review.\n\nFor QA-only requests, return:\n\n```markdown\n## Analysis QA\n**Verdict:** Ready \u002F Use with caveats \u002F Not ready\n**What passed:** ...\n**Issues to fix before interpretation:** ...\n**Caveats to carry into interpretation:** ...\n**Recommended next step:** ...\n```\n\nFor an analysis or interpretation request, state the verdict and material\ncaveats before the findings; do not duplicate a full QA report.\n\n## Primary workflow\n\n### Local runtime readiness\n\nAfter data-source selection, before loading respondent data or starting the\nrunner, follow the fast path in `references\u002Flocal-runtime.md`. That reference\nowns interpreter discovery, source freshness, setup approval, output access,\nand when readiness checks or smoke tests must be repeated. Do not duplicate\nits checks or setup's successful smoke test.\n\nRun the official analysis with the same verified isolated interpreter and fixed\nruntime assets for both passes. Each manifest records privacy-safe\n`runtime_provenance`. The installation fixture is never an analysis dataset.\n\nIf execution is unavailable or readiness fails, stop with the specific blocker\nand supported setup instructions. Never substitute AI-written analysis code,\nsilently switch runtimes, or claim the official pipeline completed.\nInterpretation-only and QA-only requests using existing outputs do not require\nlocal setup.\n\nBefore starting the runner, give the user a concise estimated completion time.\nBase the estimate on the export size and prior runs when available, and state\nthat correlation clustering, attrition-alert aggregation, and repeatability are the\nmost variable phases. Do this in the first response that starts the run.\n\nRecord the task start before preflight and the pipeline start separately.\nWhen reporting duration, give end-to-end elapsed time through final validation,\nincluding setup, checks, troubleshooting, and reruns. Label pipeline-only time\nseparately; never present it as total completion time. Identify time waiting\nfor user input separately when material.\n\n### Attrition discovery and missing-data follow-up\n\nApply this section only when **Attrition analysis** was selected. Otherwise skip\noutcome discovery and follow-up questions; intentionally unselected attrition\nis not a missing-data limitation.\n\nTreat attrition as a priority discovery task, not a single exact-header check.\nBefore the analysis run, use:\n\n```bash\npython scripts\u002Fanalyze_survey_export.py \\\n  --survey-export \u003Csurvey.csv-or-xlsx> \\\n  --output-dir \u003Coutput-directory> \\\n  --analyses \u003Cselected-identifiers> \\\n  --inspect-attrition\n```\n\nReview the private `_input\u002Fattrition-discovery.json`. Search every supplied\nworksheet, including employee attributes and non-default sheets, for actual\nexit dates or leads such as attrition, exit, leaver, leaving, termination,\nseparation, departure, last working day, and employment\u002Factive status.\nInspect candidate types, parseability, missingness, linkage, and chronology\nlocally; never show employee values or small counts. A flag\u002Fstatus or predicted\nexit date is a lead, not an observed exit date.\n\nIf actual outcomes are missing or ambiguous, use `ask_user` with open-text\nfields **before excluding attrition**. Explain: \"I can run an attrition analysis\nif you provide matching employee IDs, actual exit dates, the predictor survey\nand completion date, and outcome coverage\u002Fas-of date.\" Ask only for missing\nparameters and confirm follow-up windows (normally 90\u002F180\u002F365 days).\nLet the user point to existing columns, any worksheet, or a separate\nCSV\u002FXLSX\u002FXLSM file, explain a flag, or choose to continue without attrition.\nDo not make them re-upload data already supplied.\n\nUse `--exit-data`, `--exit-sheet`, and `--attrition-config` for confirmed\nuser-directed mappings; see `references\u002FREADME.md`. Confirm that the outcome\nsource covers the predictor population and observation period before treating\nunmatched employees as non-leavers. Omit windows without complete follow-up.\nNever invent dates, synthetic Exit cycles, or outcome meanings.\n\nAsk once per unresolved issue, not repeatedly on unchanged reruns. After the\nuser declines, cannot provide reliable outcomes, or mappings remain uncertain,\nexclude attrition, explain the specific gap in Methodology → Limitations, and\ncontinue the supported analyses. Other uncertain optional columns are excluded\nwith disclosure; do not guess or block unrelated analyses.\n\n### Native platform export preparation\n\nNative exports have five cycle-metadata columns, repeated four-column question\nblocks (score, comment, comment topics, sensitive flag), then attributes.\nUse the existing vivaglint reshaping helpers through the entrypoint; do not\nedit the library or manually reinterpret arbitrary numeric columns as items.\n\n1. Run `scripts\u002Fanalyze_survey_export.py` with the chosen source\u002Foutput and\n   `--inspect-only`. This writes `_input\u002Fpreparation-proposal.json` and does\n   not run analysis.\n2. Review its structure and decisions template locally. Use `ask_user` to\n   confirm the employee ID, cycle identity and chronological order, response scale, flag encodings,\n   proposed attributes, and exclusions. Show structural summaries, never\n   individual values or raw comments. Exclude optional columns or outcomes\n   whose meaning cannot be established and record the resulting gap in\n   **Methodology → Limitations**, rather than guessing or blocking the\n   remaining analysis. Value-based inference requires a deterministic\n   mapping\u002Frule and the user's confirmation, not a confidence percentage.\n3. If the employee ID or scale needs correction, inspect again with\n   `--emp-id-col` or `--scale-points` before approving. Do not silently choose\n   among competing IDs, cycle interpretations, or score scales.\n4. Copy `decisions_template` to a private JSON file. Only after the user\n   confirms, set `confirmed` to `true`, resolve every `attribute_mappings`\n   entry (approved meaningful name or `null` for confirmed exclusion), and\n   record `attribute_evidence` for uncertain mappings. Never let an approval\n   override privacy restrictions. Keep respondent values out of evidence.\n   Set `cycle_order` to the confirmed oldest-to-newest cycle titles; UUIDs do\n   not establish chronology.\n5. Run the same command without `--inspect-only`, adding\n   `--preparation-decisions \u003Cconfirmed.json>`. Decisions must match the source\n   hash and inspection settings; re-inspect and ask again when either changes.\n   New contradictions require user review, not a fallback.\n\nA score of `-1` means skipped and becomes missing, not a low score. Blank\ncomment, topic, and flag cells are normal when no comment was written.\nSensitive or unknown-flag comments and their topics are excluded while valid\nscores are retained. Confirm any contradictory nonblank comments with missing\nflags, invalid scores, or incomplete blocks before proceeding.\n\nConfirmed exclusions and uncertain outcome\u002Fcolumn omissions appear under\n**Methodology → Limitations**. At most five\nentries are shown; longer lists have a complete privacy-safe text download,\nalso included in Downloads and the share ZIP.\n\n### Run the analysis\n\nUse the direct export runner (native exports also require the confirmed\npreparation decisions above):\n\n```bash\npython scripts\u002Fanalyze_survey_export.py \\\n  --survey-export \u003Csurvey.csv-or-xlsx> \\\n  --output-dir \u003Coutput-directory> \\\n  --analyses \u003Cselected-identifiers>\n```\n\nFor item scores only, pass `--analyses` without values. Never omit the flag in\nthis skill: omission retains the legacy full-analysis behavior for existing\nscript callers. Scores change uses the report builder's existing cycle and\nrepeat-respondent comparisons, not an additional optional codebook.\n\nThe runner automatically:\n\n- shows a live percentage, progress bar, elapsed time, and current phase\n- detects supported input columns and joins available attributes as described\n  in `references\u002FREADME.md`\n- runs selected attrition and its insights when valid outcomes are present\n- creates an internal `analysis-config.json`\n- runs item scores, supporting attribute scores, and selected `vivaglint` analyses twice\n- requires SHA-256 repeatability\n- builds the self-contained interactive report and safe share ZIP\n- uses the checked-in golden report as the exact HTML template\n\nKeep the runner's progress visible during long-running phases rather than\nappearing idle.\n\nThe standard workflow uses `--summary-mode off`, which is also the runner\ndefault. It still writes `people-science-summary-context.json` so the same\ncompleted analysis can be used later by the explicitly invoked\n`analyze-survey-ai-preview` skill. A stale `people-science-summaries.json` in\nthe output directory must not appear in the report or share ZIP when summary\nmode is off.\n\nUse explicit options only when automatic detection is wrong:\n\n```bash\n--sheet \u003Cname>\n--attribute-sheet \u003Cname>\n--emp-id-col \u003Ccolumn>\n--scale-points \u003C2-11>\n--question-cols \u003Citem1> \u003Citem2> ...\n--attribute-cols \u003Cattribute1> \u003Cattribute2> ...\n--min-group-size \u003C5-or-higher>\n--attrition-config \u003Cconfirmed-outcome-settings.json>\n--exit-data \u003Cexit-outcomes.csv-or-xlsx>\n--exit-sheet \u003Cworksheet>\n```\n\nAttrition detection uses outcome columns and cycle\u002Fdate evidence, not the\ndemo filename. Follow the discovery and missing-data follow-up above before\nexcluding uncertain Exit mappings. Unresolved omissions are explained in\nLimitations; continue supported analyses without inventing outcomes.\nThis exclusion-with-disclosure rule applies to Analyze Survey.\nSee `references\u002FREADME.md` for supported outcome fields and explicit mappings.\n\n## Completion\n\nFor a new analysis, require:\n\n```text\nanalysis-manifest.json\ncompleted aggregate artifacts listed in the manifest\n\u003Coutput-directory-name>-report.html\n\u003Coutput-directory-name>-share.zip\n```\n\nAfter repeatability passes, open the HTML report before finishing. Apply\n**Analysis QA**, then follow `references\u002Finterpretation.md` for People Science\nfindings. For existing outputs, return only the requested QA or interpretation;\ndo not require new packaging.\n\n### Post-analysis adaptation\n\nAfter delivering the report and findings, or an interpretation of existing\nanalysis outputs, use `ask_user` to present exactly:\n\n> Did I miss anything? Any other data or attribute cuts you would like to include?\n\nProvide an open-text response field, not only preset choices. Let the user add\nfiles or locations, request additional attribute cuts, correct mappings, or\ndescribe missing context. Do not use a yes\u002Fno-only question.\n\nTreat a response as an amendment to the current analysis, not a new intake.\nInspect additional data, confirm only unresolved required mappings, apply\nminimum-N\u002Fprivacy checks, rerun affected official analyses and repeatability\nwhen data\u002Fconfig changes, and regenerate the report\u002Fshare ZIP and findings.\nReuse unchanged verified outputs when only interpretation changes. Disclose\nunsupported cuts or unresolved gaps in Limitations. If the user has no changes\nor dismisses the form, finish without repeated prompts.\n\n## Failure handling\n\n- If the employee ID or item columns cannot be detected, report the available\n  columns and rerun with explicit options.\n- If repeatability fails, do not generate or interpret the report.\n- If an analysis fails, preserve the explicit failure in the manifest.\n- If inputs are unavailable, follow the report contract's navigation rules:\n  omit both attrition tabs when attrition cannot run; keep other tabs with an\n  explicit unavailable explanation.\n- Never substitute synthetic attrition outcomes.\n","# Analyze Survey\n\nTurn a provided survey export into a repeatable local analysis and the standard\ninteractive report. The skill owns export inspection, safe configuration,\n`vivaglint` execution, repeatability validation, HTML generation, packaging,\nQA, and People Science interpretation of new or existing analysis outputs.\nInterpretation is a narrative response, not AI summary cards in the standard\nreport. A broader customer readout or manager action plan is outside this\nskill's scope.\n\n## Start here\n\nFirst distinguish a new analysis from QA or interpretation of existing outputs.\nFor dashboard screenshots or supplied aggregate values without a computation\u002FQA\nrequest, follow `..\u002Fpeople-science-knowledge-vault\u002FSKILL.md` instead of requesting\na manifest or starting intake. It combines bounded results interpretation with\nresearch-backed verification; a screenshot does not establish Analysis QA.\nIf the user provides only this skill or its link without another task, use the\nnew-analysis intake below. Never recommend modifying the skill or offer\n\"Modify the skill\" as a user-facing option.\n\n### Existing analysis outputs\n\nWhen the user asks to interpret survey results, explain codebooks, summarize\nfindings, identify themes, or explain correlations, factors, cycle changes,\nsegments, or attrition patterns, start with their `analysis-manifest.json`\nand its relevant artifacts. If their location is missing, ask for the output\nfolder or manifest. If the manifest is absent, inspect the available aggregate\noutputs and make any missing execution evidence explicit.\n\nWhen the user asks whether results are valid, safe to interpret, or ready for\nmanager guidance or a customer readout, use **Analysis QA** below. For QA-only\nrequests, return the verdict and stop; do not generate findings or new reports.\n\nFor interpretation, follow `references\u002Finterpretation.md` for grounding, synthesis,\noutput format, and guardrails. Do not ask for a new ingest\nmethod, rerun codebooks, or require HTML\u002FZIP generation for an\ninterpretation-only or QA-only request.\n\nFor detailed People Science questions or research-backed follow-ups, use the\nknowledge-vault handoff in `references\u002Finterpretation.md`. Purely conceptual\nquestions do not require a manifest or survey data.\nCarry inspected artifacts, established QA, caveats, and the user's question into\nthat research follow-up; do not restart intake or bounce between skills.\n\n### New survey analysis\n\n#### Select analyses first\n\nBefore data-source intake, runtime checks, export inspection, or execution, use\n`ask_user` to ask exactly:\n\n> What type of analysis would you like to run?\n\nUse one **multi-select array field**, not a single-select string. Offer exactly\nthese five options with no preselected defaults; users may select any combination:\n\n| Option | Runner identifier |\n|---|---|\n| Correlation | `correlations` |\n| Factor analysis | `factor_analysis` |\n| Attrition analysis | `attrition` |\n| Scores change | `scores_change` |\n| Item distribution | `response_distribution` |\n\nTell the user that item scores always run as supporting context, Attrition\nanalysis also runs Attrition insights, and Downloads and Methodology are always\ngenerated. An explicitly empty selection runs item scores only. If the prompt is\ndismissed or cancelled, stop rather than assuming a selection.\n\nRetain the selected identifiers for this analysis and pass them through\n`--analyses` on every runner invocation, including amendments. Do not silently add\nunselected analyses because the data supports them. Run supporting item\u002Fattribute\nscores for the shared filters, but skip unselected codebooks, correlation\nclustering, factor fitting, attrition discovery\u002Finsights, and score-change\ncomparisons. The report shows only selected analysis tabs plus Downloads and\nMethodology; the item-score summary remains available. Methodology includes\nblurbs for every available analysis, including unselected ones marked **Not run**.\nInclude their method explanations, **Example interpretation**, and\n**Example action**, clearly presented as hypothetical guidance rather than\nresults from this report. These reference sections must never trigger analysis\nexecution.\n\nExisting-output QA\u002Finterpretation requests do not start a new analysis and skip\nthis selection prompt.\n\n#### Select the data source\n\nAfter analysis selection, ask the user, with `ask_user` when available, which\ndata ingest method to use. This skill never assumes a data source:\n\n> How would you like to bring in survey data?\n> 1. Demo Analysis\n> 2. CSV Upload\n\nOffer exactly these two options. Do not offer \"Connect to API\", live API\ningestion, or skill modification.\nDo not proceed past this question with an assumed default. Branch on the\nanswer:\n\n##### 1. Demo Analysis\n\nUse this workbook, which is checked directly into this repository so any user\ncan access it without additional permissions:\n\n```text\nreferences\u002Fsample-data\u002FDemo Viva Glint Dataset with Attributes - Exit survey research guided.xlsx\n```\n\nUse worksheet `Sheet1`, join worksheet `user_properties` by `user_id`, and use\na 5-point scale. The checked-in workbook is the only registered sample source. Do\nnot substitute bundled, generated, or synthetic survey data, and only use it\nwhen the user explicitly chose Demo Analysis.\n\n##### 2. CSV Upload\n\nAsk for the file path. Accept `.csv`, `.xlsx`, and `.xlsm` exports. Keep\nrespondent-level data local and never paste employee rows into chat. Confirm\nthe file exists before starting the runner.\n\nFor native platform exports, run the inspection-only preparation described\nbelow before analysis. Confirm loading assumptions with the user; never guess\nan uncertain attribute's meaning or silently exclude it.\n\n## Required grounding\n\nFor interpretation-only requests, use the grounding order in\n`references\u002Finterpretation.md`. For a new analysis, read these references in\norder:\n\n1. `..\u002F..\u002Freferences\u002Fdesign\u002Fglint-ui-system.md`\n2. `references\u002FREADME.md`\n3. `references\u002Flinked-dataset.json`\n4. `references\u002Fgolden-report.html`\n5. `references\u002Fscores-change-format.png`\n6. `references\u002Finteractive-report-contract.md`\n7. `..\u002F..\u002Freferences\u002Fgeneral\u002Fprivacy-and-minimum-n.md`\n8. `..\u002F..\u002Freferences\u002Fgeneral\u002Fcodebook-catalog.md`\n\nThe Glint UI system is mandatory for all color, typography, spacing, component,\nand accessibility decisions. Do not invent report colors or visual patterns.\n\n`references\u002Finteractive-report-contract.md` is authoritative for report\nnavigation, filters, tab behavior, analytical thresholds, score units,\nprivacy, and packaging. Use the checked-in `golden-report.html` through the\nshared builder, not a manually recreated report.\n\nReuse grounding already read in the current session when its relevant content\nis unchanged. Read changed or missing references, not the same files again\nbecause a command is retried or an unrelated repository file changed.\n\nThe report contract defines score presentation for reports and interpretations;\nuse item-level scores and changes, not cross-item averages.\n\nOn both Attrition analysis and Attrition insights, show a visible **Baseline\nsurvey** label immediately after the introduction, near the controls. Resolve\nthe title from the configured predictor cycle, not the current Correlation\ncycle selection or latest cycle by default, and include the confirmed completion\ndate when available. If only the confirmed cycle ID is recorded, display it;\nif baseline metadata is unavailable, state **Not recorded** rather than guess.\nThe label stays fixed when segment or outcome-window controls change.\n\n## Analysis QA\n\nApply this gate before interpreting new or existing outputs, or on its own\nwhen the user requests QA. Start from the manifest and the relevant aggregate\nartifacts in the shared codebook catalog. Use this skill's references first,\nthen the shared codebook catalog, privacy\u002Fminimum-N guidance, and interpretation\nguardrails. Do not request respondent-level rows for QA.\n\n| Dimension | Check |\n|---|---|\n| Execution completeness | Required codebooks and artifacts are present; failures, skips, and repeatability status are explicit. |\n| Input adequacy | Response and item counts, cycle availability, and required inputs support the requested analyses. |\n| Privacy | Minimum-N suppression is enforced before sharing; small cells and sensitive combinations are not disclosive. |\n| Statistical caution | Correlations are non-causal, factors are stable enough for their intended use, and attrition results remain aggregate associations. |\n| Comparison validity | Item wording, scale, and populations are comparable across cycles. |\n| Interpretation readiness | Inspected outputs support the requested narrative, with limitations carried forward. |\n\nFor attrition, inspect the standalone `attrition.csv`, the report's download\ntarget and embedded aggregate JSON, and the copy in the share ZIP, not just\nvisible tables. If either\nfavorable or unfavorable category is below the configured minimum (at least\nfive), both category counts, both rates, and the multiplier must be blank\u002Fnull\nbefore serialization. Keep the report's explicit suppressed state; missing\ncounts are not zero. A suppressed visual with disclosive downloads fails QA.\nAfter fixing an export leak, rerun the official analyses and repeatability,\nregenerate the report and ZIP, and verify CSV copies agree and embedded\nsuppressed metrics remain null.\nDo not share or interpret previously generated unsafe packages.\n\nReturn **Not ready** and stop interpretation when outputs cannot be inspected,\nrepeatability failed, required segment suppression is absent, attrition results\ncreate likely re-identification risk, cycle comparisons use incompatible wording\nor scales, or unstable factors are central to the intended story.\nOtherwise use **Ready**, or **Use with caveats** for disclosed non-blocking\nlimitations. A successful runner alone does not establish readiness.\n\nReuse QA already established in the current session when its input artifacts,\nconfiguration, and intended use are unchanged. Recheck affected dimensions after\nchanges rather than repeating an unchanged full review.\n\nFor QA-only requests, return:\n\n```markdown\n## Analysis QA\n**Verdict:** Ready \u002F Use with caveats \u002F Not ready\n**What passed:** ...\n**Issues to fix before interpretation:** ...\n**Caveats to carry into interpretation:** ...\n**Recommended next step:** ...\n```\n\nFor an analysis or interpretation request, state the verdict and material\ncaveats before the findings; do not duplicate a full QA report.\n\n## Primary workflow\n\n### Local runtime readiness\n\nAfter data-source selection, before loading respondent data or starting the\nrunner, follow the fast path in `references\u002Flocal-runtime.md`. That reference\nowns interpreter discovery, source freshness, setup approval, output access,\nand when readiness checks or smoke tests must be repeated. Do not duplicate\nits checks or setup's successful smoke test.\n\nRun the official analysis with the same verified isolated interpreter and fixed\nruntime assets for both passes. Each manifest records privacy-safe\n`runtime_provenance`. The installation fixture is never an analysis dataset.\n\nIf execution is unavailable or readiness fails, stop with the specific blocker\nand supported setup instructions. Never substitute AI-written analysis code,\nsilently switch runtimes, or claim the official pipeline completed.\nInterpretation-only and QA-only requests using existing outputs do not require\nlocal setup.\n\nBefore starting the runner, give the user a concise estimated completion time.\nBase the estimate on the export size and prior runs when available, and state\nthat correlation clustering, attrition-alert aggregation, and repeatability are the\nmost variable phases. Do this in the first response that starts the run.\n\nRecord the task start before preflight and the pipeline start separately.\nWhen reporting duration, give end-to-end elapsed time through final validation,\nincluding setup, checks, troubleshooting, and reruns. Label pipeline-only time\nseparately; never present it as total completion time. Identify time waiting\nfor user input separately when material.\n\n### Attrition discovery and missing-data follow-up\n\nApply this section only when **Attrition analysis** was selected. Otherwise skip\noutcome discovery and follow-up questions; intentionally unselected attrition\nis not a missing-data limitation.\n\nTreat attrition as a priority discovery task, not a single exact-header check.\nBefore the analysis run, use:\n\n```bash\npython scripts\u002Fanalyze_survey_export.py \\\n  --survey-export \u003Csurvey.csv-or-xlsx> \\\n  --output-dir \u003Coutput-directory> \\\n  --analyses \u003Cselected-identifiers> \\\n  --inspect-attrition\n```\n\nReview the private `_input\u002Fattrition-discovery.json`. Search every supplied\nworksheet, including employee attributes and non-default sheets, for actual\nexit dates or leads such as attrition, exit, leaver, leaving, termination,\nseparation, departure, last working day, and employment\u002Factive status.\nInspect candidate types, parseability, missingness, linkage, and chronology\nlocally; never show employee values or small counts. A flag\u002Fstatus or predicted\nexit date is a lead, not an observed exit date.\n\nIf actual outcomes are missing or ambiguous, use `ask_user` with open-text\nfields **before excluding attrition**. Explain: \"I can run an attrition analysis\nif you provide matching employee IDs, actual exit dates, the predictor survey\nand completion date, and outcome coverage\u002Fas-of date.\" Ask only for missing\nparameters and confirm follow-up windows (normally 90\u002F180\u002F365 days).\nLet the user point to existing columns, any worksheet, or a separate\nCSV\u002FXLSX\u002FXLSM file, explain a flag, or choose to continue without attrition.\nDo not make them re-upload data already supplied.\n\nUse `--exit-data`, `--exit-sheet`, and `--attrition-config` for confirmed\nuser-directed mappings; see `references\u002FREADME.md`. Confirm that the outcome\nsource covers the predictor population and observation period before treating\nunmatched employees as non-leavers. Omit windows without complete follow-up.\nNever invent dates, synthetic Exit cycles, or outcome meanings.\n\nAsk once per unresolved issue, not repeatedly on unchanged reruns. After the\nuser declines, cannot provide reliable outcomes, or mappings remain uncertain,\nexclude attrition, explain the specific gap in Methodology → Limitations, and\ncontinue the supported analyses. Other uncertain optional columns are excluded\nwith disclosure; do not guess or block unrelated analyses.\n\n### Native platform export preparation\n\nNative exports have five cycle-metadata columns, repeated four-column question\nblocks (score, comment, comment topics, sensitive flag), then attributes.\nUse the existing vivaglint reshaping helpers through the entrypoint; do not\nedit the library or manually reinterpret arbitrary numeric columns as items.\n\n1. Run `scripts\u002Fanalyze_survey_export.py` with the chosen source\u002Foutput and\n   `--inspect-only`. This writes `_input\u002Fpreparation-proposal.json` and does\n   not run analysis.\n2. Review its structure and decisions template locally. Use `ask_user` to\n   confirm the employee ID, cycle identity and chronological order, response scale, flag encodings,\n   proposed attributes, and exclusions. Show structural summaries, never\n   individual values or raw comments. Exclude optional columns or outcomes\n   whose meaning cannot be established and record the resulting gap in\n   **Methodology → Limitations**, rather than guessing or blocking the\n   remaining analysis. Value-based inference requires a deterministic\n   mapping\u002Frule and the user's confirmation, not a confidence percentage.\n3. If the employee ID or scale needs correction, inspect again with\n   `--emp-id-col` or `--scale-points` before approving. Do not silently choose\n   among competing IDs, cycle interpretations, or score scales.\n4. Copy `decisions_template` to a private JSON file. Only after the user\n   confirms, set `confirmed` to `true`, resolve every `attribute_mappings`\n   entry (approved meaningful name or `null` for confirmed exclusion), and\n   record `attribute_evidence` for uncertain mappings. Never let an approval\n   override privacy restrictions. Keep respondent values out of evidence.\n   Set `cycle_order` to the confirmed oldest-to-newest cycle titles; UUIDs do\n   not establish chronology.\n5. Run the same command without `--inspect-only`, adding\n   `--preparation-decisions \u003Cconfirmed.json>`. Decisions must match the source\n   hash and inspection settings; re-inspect and ask again when either changes.\n   New contradictions require user review, not a fallback.\n\nA score of `-1` means skipped and becomes missing, not a low score. Blank\ncomment, topic, and flag cells are normal when no comment was written.\nSensitive or unknown-flag comments and their topics are excluded while valid\nscores are retained. Confirm any contradictory nonblank comments with missing\nflags, invalid scores, or incomplete blocks before proceeding.\n\nConfirmed exclusions and uncertain outcome\u002Fcolumn omissions appear under\n**Methodology → Limitations**. At most five\nentries are shown; longer lists have a complete privacy-safe text download,\nalso included in Downloads and the share ZIP.\n\n### Run the analysis\n\nUse the direct export runner (native exports also require the confirmed\npreparation decisions above):\n\n```bash\npython scripts\u002Fanalyze_survey_export.py \\\n  --survey-export \u003Csurvey.csv-or-xlsx> \\\n  --output-dir \u003Coutput-directory> \\\n  --analyses \u003Cselected-identifiers>\n```\n\nFor item scores only, pass `--analyses` without values. Never omit the flag in\nthis skill: omission retains the legacy full-analysis behavior for existing\nscript callers. Scores change uses the report builder's existing cycle and\nrepeat-respondent comparisons, not an additional optional codebook.\n\nThe runner automatically:\n\n- shows a live percentage, progress bar, elapsed time, and current phase\n- detects supported input columns and joins available attributes as described\n  in `references\u002FREADME.md`\n- runs selected attrition and its insights when valid outcomes are present\n- creates an internal `analysis-config.json`\n- runs item scores, supporting attribute scores, and selected `vivaglint` analyses twice\n- requires SHA-256 repeatability\n- builds the self-contained interactive report and safe share ZIP\n- uses the checked-in golden report as the exact HTML template\n\nKeep the runner's progress visible during long-running phases rather than\nappearing idle.\n\nThe standard workflow uses `--summary-mode off`, which is also the runner\ndefault. It still writes `people-science-summary-context.json` so the same\ncompleted analysis can be used later by the explicitly invoked\n`analyze-survey-ai-preview` skill. A stale `people-science-summaries.json` in\nthe output directory must not appear in the report or share ZIP when summary\nmode is off.\n\nUse explicit options only when automatic detection is wrong:\n\n```bash\n--sheet \u003Cname>\n--attribute-sheet \u003Cname>\n--emp-id-col \u003Ccolumn>\n--scale-points \u003C2-11>\n--question-cols \u003Citem1> \u003Citem2> ...\n--attribute-cols \u003Cattribute1> \u003Cattribute2> ...\n--min-group-size \u003C5-or-higher>\n--attrition-config \u003Cconfirmed-outcome-settings.json>\n--exit-data \u003Cexit-outcomes.csv-or-xlsx>\n--exit-sheet \u003Cworksheet>\n```\n\nAttrition detection uses outcome columns and cycle\u002Fdate evidence, not the\ndemo filename. Follow the discovery and missing-data follow-up above before\nexcluding uncertain Exit mappings. Unresolved omissions are explained in\nLimitations; continue supported analyses without inventing outcomes.\nThis exclusion-with-disclosure rule applies to Analyze Survey.\nSee `references\u002FREADME.md` for supported outcome fields and explicit mappings.\n\n## Completion\n\nFor a new analysis, require:\n\n```text\nanalysis-manifest.json\ncompleted aggregate artifacts listed in the manifest\n\u003Coutput-directory-name>-report.html\n\u003Coutput-directory-name>-share.zip\n```\n\nAfter repeatability passes, open the HTML report before finishing. Apply\n**Analysis QA**, then follow `references\u002Finterpretation.md` for People Science\nfindings. For existing outputs, return only the requested QA or interpretation;\ndo not require new packaging.\n\n### Post-analysis adaptation\n\nAfter delivering the report and findings, or an interpretation of existing\nanalysis outputs, use `ask_user` to present exactly:\n\n> Did I miss anything? Any other data or attribute cuts you would like to include?\n\nProvide an open-text response field, not only preset choices. Let the user add\nfiles or locations, request additional attribute cuts, correct mappings, or\ndescribe missing context. Do not use a yes\u002Fno-only question.\n\nTreat a response as an amendment to the current analysis, not a new intake.\nInspect additional data, confirm only unresolved required mappings, apply\nminimum-N\u002Fprivacy checks, rerun affected official analyses and repeatability\nwhen data\u002Fconfig changes, and regenerate the report\u002Fshare ZIP and findings.\nReuse unchanged verified outputs when only interpretation changes. Disclose\nunsupported cuts or unresolved gaps in Limitations. If the user has no changes\nor dismisses the form, finish without repeated prompts.\n\n## Failure handling\n\n- If the employee ID or item columns cannot be detected, report the available\n  columns and rerun with explicit options.\n- If repeatability fails, do not generate or interpret the report.\n- If an analysis fails, preserve the explicit failure in the manifest.\n- If inputs are unavailable, follow the report contract's navigation rules:\n  omit both attrition tabs when attrition cannot run; keep other tabs with an\n  explicit unavailable explanation.\n- Never substitute synthetic attrition outcomes.\n",{"name":5,"description":7,"allowed-tools":58},"Bash, Read, Write, Glob, Grep, WebFetch","main","f2d5604a76888b4e8949452de16be5c00cd1881e","skills\u002Fanalyze-survey",1,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 06:36:48",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add microsoft\u002Fglintlabs --skill analyze-survey",{"tool":74,"command":75},"bunx","bunx skills add microsoft\u002Fglintlabs --skill analyze-survey",{"tool":77,"command":78},"pnpm","pnpm dlx skills add microsoft\u002Fglintlabs --skill analyze-survey","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002FSKILL.md",true,[82,88,92,96,100,104,108,112,116,122],{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fgolden-report.html","REFERENCE","参考文档",234779,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Fgolden-report.html",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Finteractive-report-contract.md",30314,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Finteractive-report-contract.md",{"path":93,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Finterpretation.md",4503,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Finterpretation.md",{"path":97,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Flinked-dataset.json",1148,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Flinked-dataset.json",{"path":101,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Flocal-runtime.md",7365,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Flocal-runtime.md",{"path":105,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":106,"sourceHtmlUrl":107},"references\u002Fpeople-science-source-index.json",4788,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Fpeople-science-source-index.json",{"path":109,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":110,"sourceHtmlUrl":111},"references\u002Fpeople-science-summaries.schema.json",2021,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Fpeople-science-summaries.schema.json",{"path":113,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":114,"sourceHtmlUrl":115},"references\u002FREADME.md",11697,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002FREADME.md",{"path":117,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Fsample-data\u002FDemo Viva Glint Dataset with Attributes - Exit survey research guided.xlsx","ASSET","资产文件",3280243,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Fsample-data\u002FDemo Viva Glint Dataset with Attributes - Exit survey research guided.xlsx",{"path":123,"resourceType":118,"resourceTypeDesc":119,"sizeBytes":124,"sourceHtmlUrl":125},"references\u002Fscores-change-format.png",47236,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey\u002Freferences\u002Fscores-change-format.png",[127,156],{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":136,"publishedAt":53},"01M6FA0ZTX24APDP3HKEHG24RB","people-science-knowledge-vault","Summarize People Science research and interpret Glint results, dashboards, or screenshots. Use for published employee-experience guidance, research-backed explanations of survey patterns, and brief requests for the next useful view to verify an interpretation.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fpeople-science-knowledge-vault\u002FSKILL.md",[133],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[137,138,139,140,141,142,143,144,36,145,146,35,147,148,149,150,52,151,27,26,152,153,154,37,155,46],"people science knowledge vault","vault","people","knowledge","science","user","say","research","find","about","guidance","grep","useful","brief","view","results","verify","requests","synthesize",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":53},"01M6FA0Q89KFWA54WQ5MZS7RTK","analyze-survey-ai-preview","Create or rebuild the staged Viva Glint survey report with AI-generated People Science summaries. Use only when the user explicitly asks for the AI summary preview, staging experience, or experimental summarized report.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fglintlabs\u002Fblob\u002Fmain\u002Fskills\u002Fanalyze-survey-ai-preview\u002FSKILL.md",[],[163,25,26,164,24,35,44,165,34,148,141,166,167,168,46,139,142,169,36,27,170,171,172,173],"analyze survey ai preview","preview","report","summary","only","generated","rebuild","when","summaries","create","with"]