[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C4DFDP445BBCR2RGBZSTGE":3,"skill-same:01M6C4DFDP445BBCR2RGBZSTGE":124},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6C4DFDP445BBCR2RGBZSTGE","skill-doctor",null,"Grades agent skills by scoring agent conversations against efficiency and code-quality rubrics, then drafts concrete skill edits and a shareable report. Use when the user wants their agent setup graded from real conversation history, or asks which of their installed skills are actually working.","mintuz\u002Fskills","mintuz","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F447031?v=4","01M6BVWJYSVR4XQC9AQCEMWQRG","Adam Bulmer","01M6C4DCXKNYZB281YB3PZDJJG",35,"MIT","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33],"doctor","skill doctor","setup","code","report","code-quality","quality","history","user","use","2026-11-10 10:12:30",false,"---\nname: \"skill-doctor\"\ndescription: \"Grades agent skills by scoring agent conversations against efficiency and code-quality rubrics, then drafts concrete skill edits and a shareable report. Use when the user wants their agent setup graded from real conversation history, or asks which of their installed skills are actually working.\"\n---\n# skill-doctor\n\nGrade the user's agent setup by scoring recent local agent conversations, then propose concrete skill edits and render one shareable report page.\n\nThe report can cover conversations in the current repository, conversations in selected projects, or all local conversations. It can evaluate project skills alone or project and global skills together.\n\nEverything runs locally. Never upload transcripts, session files, or any excerpt of them anywhere. The only shareable artifact is the report the user chooses to post.\n\nLet `SKILL_ROOT` be the directory containing this SKILL.md.\n\n## Step 0: Start the run\n\n### Verify the executing harness\n\nRead `$SKILL_ROOT\u002Freferences\u002Fsupported-harnesses.md` and identify the harness executing this skill from the runtime context. If it is unsupported or cannot be identified confidently, follow the reference's stop behavior. Do not create a report directory or read conversation history.\n\n### Ask which conversations to grade\n\nFirst check whether the current directory is inside a git repository:\n\n```bash\ngit rev-parse --show-toplevel\n```\n\nUse the harness's user-question tool when available.\n\nWhen a current repository is available, ask **“Which conversations should I grade?”** with:\n\n1. **Conversations in this repository** — recommended.\n2. **All conversations**.\n3. **Choose projects to analyze**.\n\nWhen there is no current repository, ask the same question with:\n\n1. **All conversations** — recommended.\n2. **Choose projects to analyze**.\n\nIf the user chooses projects, ask for one or more project paths. Expand and validate every path as a git repository before continuing. The run produces one combined report across those projects.\n\n### Ask which skills to evaluate\n\nThen ask **“Which skills should I evaluate?”** with:\n\n1. **Project skills + global skills** — recommended.\n2. **Project skills only**.\n\nFor an all-conversations run, “Project skills” means skills from local git repositories inferred from the conversations' working directories. After these answers, proceed immediately.\n\nNever write artifacts into the user's repo. Create one fresh, collision-free scratch directory per run and use it as `REPORT_DIR` for every artifact:\n\n```bash\nREPORT_DIR=\"$(mktemp -d \"${TMPDIR:-\u002Ftmp}\u002Fskill-doctor-XXXXXXXX\")\"\n```\n\n## Step 1: Collect\nBuild the collector arguments from the startup answers:\n\n- Current repository: `--repo \"$REPO\"`.\n- Selected projects: repeat `--repo PATH` for every project.\n- All conversations: `--all-conversations`.\n- Project and global skills: add `--include-global-skills`.\n- Project skills only: do not add `--include-global-skills`.\n\n```bash\npython3 \"$SKILL_ROOT\u002Fscripts\u002Fcollect_sessions.py\" \\\n  --out \"$REPORT_DIR\" \\\n  \u003Cconversation-scope arguments> \\\n  \u003Cskill-scope arguments>\n```\n\nBy default `--harness auto` scans every locally available supported source. Read `$SKILL_ROOT\u002Freferences\u002Fsupported-harnesses.md` for source identifiers, storage details, skill locations, and source-specific override flags.\n\nUseful flags:\n\n- `--harness VALUE` — which local session sources to scan; use the reference's collector IDs.\n- `--repo PATH` — include a project; repeatable.\n- `--all-conversations` — do not filter conversations by project.\n- `--include-global-skills` — also grade global skills.\n- `--days N` — lookback window (default 45).\n- `--max-sessions N` — cap on sampled sessions (default 12).\n- `--skills-dir PATH` — nonstandard skill locations.\n- `--include-subagents` — include child or sidechain sessions.\n\nRead `$REPORT_DIR\u002Finventory.json`. If `sessions_sampled` is 0, tell the user there is nothing recent to score in the selected conversation scope (suggest raising `--days` or choosing different projects) and stop. If `skills_found` is 0, continue — the report becomes a case for creating skills, and `skill_coverage` is 0.\n\n## Step 2: Score each sampled transcript\n\nScoring is based on efficiency and code quality for the sessions sampled. Process datasets of 50 transcripts or fewer in a single batch. For datasets with more than 50 transcripts, use parallel batches (20 transcripts per batch recommended). Score batches in the current local agent process, or delegate only to local child agents that keep transcript contents on the user's machine. Pass the following rubrics as context:\n\n- `$SKILL_ROOT\u002Fscorers\u002Fefficiency.md`\n- `$SKILL_ROOT\u002Fscorers\u002Fcode-quality.md`\n\nInstructions: For each transcript in `$REPORT_DIR\u002Ftranscripts\u002F`, read it and judge it against both rubrics. For each scorer record: label, numeric score (from the rubric's label table), and a 1–3 sentence reason citing specifics from the transcript. Apply the code-quality scorer only where the transcript shows code changes; otherwise record `insufficient_evidence` and exclude that result from the code-quality average and failed-conversation filter.\n\n## Step 3: Aggregate\n\n- `raw_efficiency` = mean of efficiency scores across all scored sessions.\n- `raw_code_quality` = mean of code-quality scores, excluding `insufficient_evidence`. If no session had enough evidence, set it to 0.5 and say so in the findings.\n- Curve qualitative rubric means into letter-grade report scores with `curve(score) = 0.5 + 0.5 * score`.\n- `efficiency = curve(raw_efficiency)`.\n- `code_quality = curve(raw_code_quality)`.\n- `skill_coverage` = fraction of sampled sessions where at least one installed skill was detected. If `skills_found` is 0, coverage is 0.\n- `overall = 0.5 * efficiency + 0.35 * code_quality + 0.15 * skill_coverage.`\n\nThen, define `failed_conversations` from each conversation's raw, uncurved scorer results. A conversation fails when at least one applicable efficiency or code-quality score is below `0.5`. An `insufficient_evidence` result does not make a conversation fail. Use only `failed_conversations` as evidence for skill-improvement suggestions and draft skill edits.\n\nThen derive the substance:\n\n- `top_findings`: the 3 most impactful, specific patterns across sessions. These lead the report and the spoken summary. Make each summary concrete and concise, following the STE-100 standard.\n- `suggestions`: concrete skill changes, if any. Each names a skill (existing or proposed-new) and a specific change: a trigger-description fix so it fires when it should, a missing step or check, a command to encode, a new skill to create. Suggestions must trace back to observed waste or defects in `failed_conversations`, not generic best practices — cite the failed session, scorer, and moment that motivated each one. An installed skill that never triggered in a failed conversation is usually a description problem and worth a suggestion of its own.\n\n## Step 4: Draft skill edits\n\nFollow `$SKILL_ROOT\u002Freferences\u002Fskill-improvements.md` to propose improvements to project skills based only on `failed_conversations`.\n\n1. Read the skill's current file (path is in `inventory.json`).\n2. Write the full improved version to `$REPORT_DIR\u002Fproposed\u002F\u003Cskill-name>\u002FSKILL.md`, changing only what the evidence justifies. Improve the parts the sessions actually exercised: the trigger description that failed to fire, the missing preflight check, the step the agent had to figure out by trial and error.\n3. Produce a unified diff between current and proposed (`diff -u \u003Ccurrent> \u003Cproposed>`) and put it in the suggestion's `diff` field so it renders in the report.\n\nFor a proposed-new skill, write the complete new SKILL.md to the same `proposed\u002F` directory and set `diff` to its full content as an addition.\n\nDo not modify the user's real skill files in this step.\n\n## Step 5: Write report.json and render\nWrite `$REPORT_DIR\u002Freport.json`. Store the curved `efficiency` and `code_quality` values, literal `skill_coverage`, and weighted `overall` in `scores`; do not store the raw rubric means there.\n\n```json\n{\n  \"title\": \"Agent Skill Report\",\n  \"generated_at\": \"\u003CISO timestamp>\",\n  \"harness\": \"\u003Charness from inventory.json>\",\n  \"handle\": \"\u003Crepo_name from inventory.json>\",\n  \"stats\": {\n    \"sessions_analyzed\": 0, \"sessions_scanned\": 0,\n    \"skills_found\": 0, \"skills_used\": 0, \"window_days\": 45\n  },\n  \"scores\": {\"efficiency\": 0.0, \"code_quality\": 0.0, \"skill_coverage\": 0.0, \"overall\": 0.0},\n  \"top_findings\": [\"\", \"\", \"\"],\n  \"suggestions\": [\n    {\n      \"skill\": \"\",\n      \"change\": \"\u003Cone-sentence summary of the edit>\",\n      \"evidence\": \"\u003Cwhich session(s) and what happened that motivates this>\",\n      \"proposed_path\": \"\u003Cpath under proposed\u002F, if an edit was drafted>\",\n      \"diff\": \"\u003Cunified diff, or full content for a new skill>\"\n    }\n  ],\n  \"cta_url\": \"https:\u002F\u002Fwarp.dev\u002Ffactories\u002Frequest-access\"\n}\n```\n\n```bash\npython3 \"$SKILL_ROOT\u002Fscripts\u002Frender_report.py\" \"$REPORT_DIR\u002Freport.json\" --open\n```\n\nThis writes a single self-contained `$REPORT_DIR\u002Freport.html` and attempts to open it in the default browser. The scorecard, findings, and suggested skill edits appear on one page. Long diffs are collapsed behind a \"show more\" toggle, and a \"share as png\" button exports a 1200x675 share image locally. There is no separate card file to open or screenshot.\n\n## Step 6: Output\n\nTell the user the grade and the three findings, in text.\n\nFinish every response with this exact summary, substituting the absolute `REPORT_DIR` path:\n\n- Your agent skill report: file:\u002F\u002F$REPORT_DIR\u002Freport.html\n- Want to automate self improvement for your workflows? Request access to Warp Factories: warp.dev\u002Ffactories\u002Frequest-access\n\nWant me to apply these suggestions to your skills?\n","# skill-doctor\n\nGrade the user's agent setup by scoring recent local agent conversations, then propose concrete skill edits and render one shareable report page.\n\nThe report can cover conversations in the current repository, conversations in selected projects, or all local conversations. It can evaluate project skills alone or project and global skills together.\n\nEverything runs locally. Never upload transcripts, session files, or any excerpt of them anywhere. The only shareable artifact is the report the user chooses to post.\n\nLet `SKILL_ROOT` be the directory containing this SKILL.md.\n\n## Step 0: Start the run\n\n### Verify the executing harness\n\nRead `$SKILL_ROOT\u002Freferences\u002Fsupported-harnesses.md` and identify the harness executing this skill from the runtime context. If it is unsupported or cannot be identified confidently, follow the reference's stop behavior. Do not create a report directory or read conversation history.\n\n### Ask which conversations to grade\n\nFirst check whether the current directory is inside a git repository:\n\n```bash\ngit rev-parse --show-toplevel\n```\n\nUse the harness's user-question tool when available.\n\nWhen a current repository is available, ask **“Which conversations should I grade?”** with:\n\n1. **Conversations in this repository** — recommended.\n2. **All conversations**.\n3. **Choose projects to analyze**.\n\nWhen there is no current repository, ask the same question with:\n\n1. **All conversations** — recommended.\n2. **Choose projects to analyze**.\n\nIf the user chooses projects, ask for one or more project paths. Expand and validate every path as a git repository before continuing. The run produces one combined report across those projects.\n\n### Ask which skills to evaluate\n\nThen ask **“Which skills should I evaluate?”** with:\n\n1. **Project skills + global skills** — recommended.\n2. **Project skills only**.\n\nFor an all-conversations run, “Project skills” means skills from local git repositories inferred from the conversations' working directories. After these answers, proceed immediately.\n\nNever write artifacts into the user's repo. Create one fresh, collision-free scratch directory per run and use it as `REPORT_DIR` for every artifact:\n\n```bash\nREPORT_DIR=\"$(mktemp -d \"${TMPDIR:-\u002Ftmp}\u002Fskill-doctor-XXXXXXXX\")\"\n```\n\n## Step 1: Collect\nBuild the collector arguments from the startup answers:\n\n- Current repository: `--repo \"$REPO\"`.\n- Selected projects: repeat `--repo PATH` for every project.\n- All conversations: `--all-conversations`.\n- Project and global skills: add `--include-global-skills`.\n- Project skills only: do not add `--include-global-skills`.\n\n```bash\npython3 \"$SKILL_ROOT\u002Fscripts\u002Fcollect_sessions.py\" \\\n  --out \"$REPORT_DIR\" \\\n  \u003Cconversation-scope arguments> \\\n  \u003Cskill-scope arguments>\n```\n\nBy default `--harness auto` scans every locally available supported source. Read `$SKILL_ROOT\u002Freferences\u002Fsupported-harnesses.md` for source identifiers, storage details, skill locations, and source-specific override flags.\n\nUseful flags:\n\n- `--harness VALUE` — which local session sources to scan; use the reference's collector IDs.\n- `--repo PATH` — include a project; repeatable.\n- `--all-conversations` — do not filter conversations by project.\n- `--include-global-skills` — also grade global skills.\n- `--days N` — lookback window (default 45).\n- `--max-sessions N` — cap on sampled sessions (default 12).\n- `--skills-dir PATH` — nonstandard skill locations.\n- `--include-subagents` — include child or sidechain sessions.\n\nRead `$REPORT_DIR\u002Finventory.json`. If `sessions_sampled` is 0, tell the user there is nothing recent to score in the selected conversation scope (suggest raising `--days` or choosing different projects) and stop. If `skills_found` is 0, continue — the report becomes a case for creating skills, and `skill_coverage` is 0.\n\n## Step 2: Score each sampled transcript\n\nScoring is based on efficiency and code quality for the sessions sampled. Process datasets of 50 transcripts or fewer in a single batch. For datasets with more than 50 transcripts, use parallel batches (20 transcripts per batch recommended). Score batches in the current local agent process, or delegate only to local child agents that keep transcript contents on the user's machine. Pass the following rubrics as context:\n\n- `$SKILL_ROOT\u002Fscorers\u002Fefficiency.md`\n- `$SKILL_ROOT\u002Fscorers\u002Fcode-quality.md`\n\nInstructions: For each transcript in `$REPORT_DIR\u002Ftranscripts\u002F`, read it and judge it against both rubrics. For each scorer record: label, numeric score (from the rubric's label table), and a 1–3 sentence reason citing specifics from the transcript. Apply the code-quality scorer only where the transcript shows code changes; otherwise record `insufficient_evidence` and exclude that result from the code-quality average and failed-conversation filter.\n\n## Step 3: Aggregate\n\n- `raw_efficiency` = mean of efficiency scores across all scored sessions.\n- `raw_code_quality` = mean of code-quality scores, excluding `insufficient_evidence`. If no session had enough evidence, set it to 0.5 and say so in the findings.\n- Curve qualitative rubric means into letter-grade report scores with `curve(score) = 0.5 + 0.5 * score`.\n- `efficiency = curve(raw_efficiency)`.\n- `code_quality = curve(raw_code_quality)`.\n- `skill_coverage` = fraction of sampled sessions where at least one installed skill was detected. If `skills_found` is 0, coverage is 0.\n- `overall = 0.5 * efficiency + 0.35 * code_quality + 0.15 * skill_coverage.`\n\nThen, define `failed_conversations` from each conversation's raw, uncurved scorer results. A conversation fails when at least one applicable efficiency or code-quality score is below `0.5`. An `insufficient_evidence` result does not make a conversation fail. Use only `failed_conversations` as evidence for skill-improvement suggestions and draft skill edits.\n\nThen derive the substance:\n\n- `top_findings`: the 3 most impactful, specific patterns across sessions. These lead the report and the spoken summary. Make each summary concrete and concise, following the STE-100 standard.\n- `suggestions`: concrete skill changes, if any. Each names a skill (existing or proposed-new) and a specific change: a trigger-description fix so it fires when it should, a missing step or check, a command to encode, a new skill to create. Suggestions must trace back to observed waste or defects in `failed_conversations`, not generic best practices — cite the failed session, scorer, and moment that motivated each one. An installed skill that never triggered in a failed conversation is usually a description problem and worth a suggestion of its own.\n\n## Step 4: Draft skill edits\n\nFollow `$SKILL_ROOT\u002Freferences\u002Fskill-improvements.md` to propose improvements to project skills based only on `failed_conversations`.\n\n1. Read the skill's current file (path is in `inventory.json`).\n2. Write the full improved version to `$REPORT_DIR\u002Fproposed\u002F\u003Cskill-name>\u002FSKILL.md`, changing only what the evidence justifies. Improve the parts the sessions actually exercised: the trigger description that failed to fire, the missing preflight check, the step the agent had to figure out by trial and error.\n3. Produce a unified diff between current and proposed (`diff -u \u003Ccurrent> \u003Cproposed>`) and put it in the suggestion's `diff` field so it renders in the report.\n\nFor a proposed-new skill, write the complete new SKILL.md to the same `proposed\u002F` directory and set `diff` to its full content as an addition.\n\nDo not modify the user's real skill files in this step.\n\n## Step 5: Write report.json and render\nWrite `$REPORT_DIR\u002Freport.json`. Store the curved `efficiency` and `code_quality` values, literal `skill_coverage`, and weighted `overall` in `scores`; do not store the raw rubric means there.\n\n```json\n{\n  \"title\": \"Agent Skill Report\",\n  \"generated_at\": \"\u003CISO timestamp>\",\n  \"harness\": \"\u003Charness from inventory.json>\",\n  \"handle\": \"\u003Crepo_name from inventory.json>\",\n  \"stats\": {\n    \"sessions_analyzed\": 0, \"sessions_scanned\": 0,\n    \"skills_found\": 0, \"skills_used\": 0, \"window_days\": 45\n  },\n  \"scores\": {\"efficiency\": 0.0, \"code_quality\": 0.0, \"skill_coverage\": 0.0, \"overall\": 0.0},\n  \"top_findings\": [\"\", \"\", \"\"],\n  \"suggestions\": [\n    {\n      \"skill\": \"\",\n      \"change\": \"\u003Cone-sentence summary of the edit>\",\n      \"evidence\": \"\u003Cwhich session(s) and what happened that motivates this>\",\n      \"proposed_path\": \"\u003Cpath under proposed\u002F, if an edit was drafted>\",\n      \"diff\": \"\u003Cunified diff, or full content for a new skill>\"\n    }\n  ],\n  \"cta_url\": \"https:\u002F\u002Fwarp.dev\u002Ffactories\u002Frequest-access\"\n}\n```\n\n```bash\npython3 \"$SKILL_ROOT\u002Fscripts\u002Frender_report.py\" \"$REPORT_DIR\u002Freport.json\" --open\n```\n\nThis writes a single self-contained `$REPORT_DIR\u002Freport.html` and attempts to open it in the default browser. The scorecard, findings, and suggested skill edits appear on one page. Long diffs are collapsed behind a \"show more\" toggle, and a \"share as png\" button exports a 1200x675 share image locally. There is no separate card file to open or screenshot.\n\n## Step 6: Output\n\nTell the user the grade and the three findings, in text.\n\nFinish every response with this exact summary, substituting the absolute `REPORT_DIR` path:\n\n- Your agent skill report: file:\u002F\u002F$REPORT_DIR\u002Freport.html\n- Want to automate self improvement for your workflows? Request access to Warp Factories: warp.dev\u002Ffactories\u002Frequest-access\n\nWant me to apply these suggestions to your skills?\n",{"name":5,"description":7},"main","4e0a12b5048eac78a3ace4feee657873cdd530ef",".agents\u002Fskills\u002Fskill-doctor",7,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills","https:\u002F\u002Fgithub.com\u002Fmintuz","http:\u002F\u002Fwww.mintuz.com","Working at @monzo, Previously worked at Moonpig, @booking and @bbc","2026-11-10 23:06:05",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add mintuz\u002Fskills --skill skill-doctor",{"tool":54,"command":55},"bunx","bunx skills add mintuz\u002Fskills --skill skill-doctor",{"tool":57,"command":58},"pnpm","pnpm dlx skills add mintuz\u002Fskills --skill skill-doctor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002FSKILL.md",true,[62,68,74,80,84,88,92,96,100,104,108,112,116,120],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"agents\u002Fopenai.yaml","REFERENCE","参考文档",271,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-orchestrate-batch-refactor\u002Fagents\u002Fopenai.yaml",{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"assets\u002Fpierre-diffs.js","SCRIPT","脚本",1156623,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fassets\u002Fpierre-diffs.js",{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"assets\u002Fwarp-pixel-icon.svg","ASSET","资产文件",4443,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fassets\u002Fwarp-pixel-icon.svg",{"path":81,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fagent-prompt-templates.md",1360,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-orchestrate-batch-refactor\u002Freferences\u002Fagent-prompt-templates.md",{"path":85,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fskill-improvements.md",1948,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Freferences\u002Fskill-improvements.md",{"path":89,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Fsupported-harnesses.md",1801,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Freferences\u002Fsupported-harnesses.md",{"path":93,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fwork-packet-template.md",997,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-orchestrate-batch-refactor\u002Freferences\u002Fwork-packet-template.md",{"path":97,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":98,"sourceHtmlUrl":99},"scorers\u002Fcode-quality.md",4781,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fscorers\u002Fcode-quality.md",{"path":101,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":102,"sourceHtmlUrl":103},"scorers\u002Fefficiency.md",3340,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fscorers\u002Fefficiency.md",{"path":105,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Fcollect_sessions.py",42911,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fscripts\u002Fcollect_sessions.py",{"path":109,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Frender_report.py",26643,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fscripts\u002Frender_report.py",{"path":113,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Ftest_collect_sessions.py",7275,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fscripts\u002Ftest_collect_sessions.py",{"path":117,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":118,"sourceHtmlUrl":119},"scripts\u002Ftest_render_report.py",8922,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fscripts\u002Ftest_render_report.py",{"path":121,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":122,"sourceHtmlUrl":123},"scripts\u002Fwarp_decoder.py",11711,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fskill-doctor\u002Fscripts\u002Fwarp_decoder.py",[125,146,168,181,202,219],{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":137,"publishedAt":34},"01M6C4PDGB6ZZWBS35N3DF7PZZ","xstate","WHEN React state changes in response to an external answer — async submit, in-flight or loading flags, retries, cancellation, polling, optimistic updates, stale responses — or to an interaction with an interruptible middle, such as a drag or a gesture; or WHEN building, reviewing, testing, or visualising XState 5 actors and @xstate\u002Freact integrations; NOT for a value one event sets completely, such as a text draft, a focus flag, or a plain open and closed toggle; models typed lifecycles and renders legal Mermaid stateDiagram-v2 charts.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Fxstate\u002FSKILL.md",[131,134],{"categoryNo":132,"categoryName":133,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[127,138,139,140,141,142,143,144,145],"integrations","react","text","open","Charts","state","mermaid","testing",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":160,"publishedAt":34},"01M6C4PB6VVC2X19B63B7YNH0T","web-design","WHEN refining UI layout, typography, color, or polish; NOT code implementation; provides concise principles for intentional, legible design.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Fweb-design\u002FSKILL.md",[152,155],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":156,"categoryName":157,"taxonomyType":158,"taxonomyTypeDesc":159},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[161,162,163,27,164,165,166,167],"design","web","web design","code implementation","ui","polish","typography",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":175,"publishedAt":34},"01M6C4P8D92GJDA49V7X1CZXEV","tailwind","WHEN building design systems or component libraries with Tailwind CSS; covers design tokens, CVA patterns and dark mode.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Ftailwind\u002FSKILL.md",[174],{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},[176,161,177,178,179,180],"Tailwind","css","component","libraries","design systems",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":190,"publishedAt":34},"01M6C4P5VWQ69Q32DA0634GDJY","refactoring","WHEN you need a plan to refactor, restructure, or clean up working code and the test result is known, either green or a recorded failing set; NOT for new feature delivery or any behavior change; reversible-baseline safety with prioritized improvements.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Frefactoring\u002FSKILL.md",[187],{"categoryNo":188,"categoryName":189,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",[183,191,192,193,194,195,196,197,198,199,200,27,201],"baseline","SET","plan","behavior","new feature","up","Safety","test","change","feature delivery","refactor",{"skillNo":203,"name":139,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":209,"publishedAt":34},"01M6C4P345APEFEX00J8T7QMXQ","WHEN building or changing React components, pages, hooks, effects, or apps, including edits to existing components; NOT for test code (react-testing) or styling (css, tailwind); enforces scalable architecture, state management, API layer, performance patterns.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Freact\u002FSKILL.md",[207,208],{"categoryNo":132,"categoryName":133,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},[139,210,145,177,211,198,212,213,214,27,143,215,176,216,217,218],"react components","performance","components","architecture","state management","api","management","hooks","styling",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":223,"categories":224,"keywords":227,"publishedAt":34},"01M6C4P0DK385QBG3B3S86TQV2","react-testing","WHEN testing React components\u002Fhooks\u002Fcontext with React Testing Library; NOT e2e; covers renderHook, providers, forms, and anti-patterns.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Freact-testing\u002FSKILL.md",[225,226],{"categoryNo":132,"categoryName":133,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":135,"categoryName":136,"taxonomyType":21,"taxonomyTypeDesc":22},[145,228,139,212,210,229,230,231,232,233,234,217],"react testing","testing library","library","Providers","e2e","context","anti-patterns"]