[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M76ACYEV4AABQFW2E5F0JGDK":3,"skill-same:01M76ACYEV4AABQFW2E5F0JGDK":47},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M76ACYEV4AABQFW2E5F0JGDK","suite-review",null,"Run the monthly evidence review of this repo's plugin skills. Count each skill's opportunities and uses with the census, read what happened where a skill was not used, put each skill in one bucket, act, and write the actions as predictions with a check date. Use when the operator says \"suite review\" or \"monthly review\", or when the suite-review line on LATER.md is due.","raisedadead\u002Fclaude-code-plugins","raisedadead","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1884376?v=4","01M72WC4WYRJGZ2CXMCSF7B6VG","Mrugesh Mohapatra","01M72WC4XJTNHQ0D89QPG2H0W4",3,"ISC","https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsuite-review\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: suite-review\ndescription: Run the monthly evidence review of this repo's plugin skills. Count each skill's opportunities and uses with the census, read what happened where a skill was not used, put each skill in one bucket, act, and write the actions as predictions with a check date. Use when the operator says \"suite review\" or \"monthly review\", or when the suite-review line on LATER.md is due.\n---\n\n# Suite review\n\nThis skill is repo-local and unshipped. It reviews the skills in `plugins\u002F*\u002Fskills\u002F`. Run every command from the repo root.\n\nThe cut rule (D53): cut a skill only when its trigger occurs, it is not used, and the outcome without it is as good. A use count alone decides nothing.\n\n## 1. Measure\n\n`\u003Csince>` is the date of the last review commit, else 30 days ago:\n\n```bash\ngit log -1 --format=%as --grep='^docs(research): suite review'\n```\n\n```bash\npython3 tools\u002Fcensus\u002Fcensus.py skills --since \u003Csince>\npython3 tools\u002Fcensus\u002Fcensus.py opportunities --since \u003Csince>\npython3 tools\u002Fcensus\u002Fcensus.py verdict-log $(find ~\u002FDEV ~\u002F.dotfiles -maxdepth 8 \\\n  -path '*\u002F.scratchpad\u002Fdossier\u002F.verdicts.jsonl')\nclaude --version\n```\n\n`verdict-log` takes no window, so its counts cover all time; say so in the report.\n\nGate findings raised come from the ledger status lines dated on or after `\u003Csince>`. They count what the doubter and the reviewers raised and a build judged actionable, not what it folded in:\n\n```bash\nfind ~\u002FDEV ~\u002F.dotfiles -maxdepth 8 -path '*\u002F.scratchpad\u002Fdossier\u002F*' -name DOSSIER.md \\\n  | xargs grep -hoE '^[0-9-]{10} [0-9:]+ ds:build T[0-9]+ (doubt=FAILURES:[0-9]+-actionable|review=(PASS|CHANGES):[0-9]+-[a-z]+)' \\\n  | awk -v s=\u003Csince> '$1 >= s'\n```\n\nRead the entries since `\u003Csince>` in `https:\u002F\u002Fraw.githubusercontent.com\u002Fanthropics\u002Fclaude-code\u002Fmain\u002FCHANGELOG.md`. Note each new capability that could replace a skill or a gate, and each deprecation that touches one.\n\n## 2. Check the last predictions\n\nRead every §O row whose `check-by` date is on or before today, and check its prediction. A confirmed prediction is promoted to a §F or §D row and the row is deleted. A refuted one reverts its change, or the row gets a new prediction and date with the reason. A row that waits on another row or on the operator keeps a `check-by` that names what it waits on.\n\n## 3. Read the outcomes\n\n`opportunities` lists the sessions where a skill's trigger fired and the skill was not used. Find a session's transcript with `find ~\u002F.claude\u002Fprojects -name '\u003Csession>.jsonl'`. Read at most 10 per skill; when there are more, read every Nth in the listed order and say so.\n\nAn outcome is as good when the session reached the checked result the skill teaches:\n\n| skill | as good when |\n|---|---|\n| skill-smith | `lint-skill` ran on the changed file and exited 0 |\n| backprop | the bug got a regression test or an invariant |\n\nA skill is surfaced in a session when its description is in that session's listing:\n\n```bash\njq -r 'select(.attachment.type==\"skill_listing\") | .attachment.content' \u003Ctranscript> \\\n  | grep -c '^- \u003Cplugin>:\u003Cskill>: '\n```\n\nEach reading is model-judgment, with or without the judge in step 4. Label it so; the operator confirms each cut.\n\n## 4. Judge (opt-in)\n\nSpawn one fresh `general-purpose` agent per batch. It sees the session excerpt and the \"as good when\" cell, never your reading, and returns PASS, FAIL or UNSURE with a one-line critique.\n\nLabels live in `.scratchpad\u002Fsuite-review\u002Fjudge-labels.tsv`: `session`, `skill`, `operator`, `judge`, `judge_model`, `prompt_sha`. Trust the judge only when it matches the operator on at least 16 of 20 operator-PASS rows and at least 16 of 20 operator-FAIL rows, counted apart. An UNSURE from either side counts as no match. Calibrate again when `judge_model` or `prompt_sha` differs from the rows that earned the trust. No plugin ships the judge (D28).\n\n## 5. Classify\n\nGive each plugin skill the first bucket that fits:\n\n| bucket | evidence | action |\n|---|---|---|\n| too new | first commit of its `SKILL.md` under 60 days ago | none |\n| not surfaced | a worse outcome, and the description absent from that session's listing | shorten the descriptions that crowd the listing, then check it again next review |\n| missed by model | not-used sessions read, and any outcome worse | rewrite the description; add a should \u002F should-not eval case |\n| not needed | more opportunity sessions skipped the skill than used it, and every outcome read is as good | cut the `SKILL.md` once the operator confirms; a script another skill or `bin\u002F` calls stays |\n| used | Skill calls or typed commands in the window | none |\n| used via script | its script ran (`script` column); `ds:build` calls some scripts directly, so this shows the script is used, not that the skill is read | none |\n| human missed | the operator did the step by hand where the skill fits | add a hand-off line where the need shows |\n| unclassified | no detector, or a detector too loose to read | none; name a better detector |\n\nFirst commit date: `git log --diff-filter=A --format=%as -- plugins\u002F\u003Cplugin>\u002Fskills\u002F\u003Cskill>\u002FSKILL.md | tail -1`.\n\n## 6. Act and predict\n\nWrite one §O row in `RESEARCH.md` for this review: the stride names the actions, `started` is today, `prediction` lists what the next census will show for each action, and `check-by` is the next review date. Keep §O at 7 rows or fewer: drop or merge a row, with its reason, before you add one past the cap.\n\nAdd the `suite-review\u002FT1` line to `.scratchpad\u002Fdossier\u002FLATER.md`, or replace it when it is there, due a month on. Leave every other line as it is:\n\n```\n- suite-review\u002FT1 · Run \u002Fsuite-review (last \u003Ctoday>, Claude Code \u003Cversion>) · A · due \u003Cdate>\n```\n\nRun `python3 tools\u002Fcheck_rows.py`, then commit with the subject `docs(research): suite review \u003Ctoday>`.\n\n## Report\n\nOne line per skill: its bucket, the numbers that put it there, and the action. Then the predictions checked in step 2, the acted-on counts, and the new §O row.\n","# Suite review\n\nThis skill is repo-local and unshipped. It reviews the skills in `plugins\u002F*\u002Fskills\u002F`. Run every command from the repo root.\n\nThe cut rule (D53): cut a skill only when its trigger occurs, it is not used, and the outcome without it is as good. A use count alone decides nothing.\n\n## 1. Measure\n\n`\u003Csince>` is the date of the last review commit, else 30 days ago:\n\n```bash\ngit log -1 --format=%as --grep='^docs(research): suite review'\n```\n\n```bash\npython3 tools\u002Fcensus\u002Fcensus.py skills --since \u003Csince>\npython3 tools\u002Fcensus\u002Fcensus.py opportunities --since \u003Csince>\npython3 tools\u002Fcensus\u002Fcensus.py verdict-log $(find ~\u002FDEV ~\u002F.dotfiles -maxdepth 8 \\\n  -path '*\u002F.scratchpad\u002Fdossier\u002F.verdicts.jsonl')\nclaude --version\n```\n\n`verdict-log` takes no window, so its counts cover all time; say so in the report.\n\nGate findings raised come from the ledger status lines dated on or after `\u003Csince>`. They count what the doubter and the reviewers raised and a build judged actionable, not what it folded in:\n\n```bash\nfind ~\u002FDEV ~\u002F.dotfiles -maxdepth 8 -path '*\u002F.scratchpad\u002Fdossier\u002F*' -name DOSSIER.md \\\n  | xargs grep -hoE '^[0-9-]{10} [0-9:]+ ds:build T[0-9]+ (doubt=FAILURES:[0-9]+-actionable|review=(PASS|CHANGES):[0-9]+-[a-z]+)' \\\n  | awk -v s=\u003Csince> '$1 >= s'\n```\n\nRead the entries since `\u003Csince>` in `https:\u002F\u002Fraw.githubusercontent.com\u002Fanthropics\u002Fclaude-code\u002Fmain\u002FCHANGELOG.md`. Note each new capability that could replace a skill or a gate, and each deprecation that touches one.\n\n## 2. Check the last predictions\n\nRead every §O row whose `check-by` date is on or before today, and check its prediction. A confirmed prediction is promoted to a §F or §D row and the row is deleted. A refuted one reverts its change, or the row gets a new prediction and date with the reason. A row that waits on another row or on the operator keeps a `check-by` that names what it waits on.\n\n## 3. Read the outcomes\n\n`opportunities` lists the sessions where a skill's trigger fired and the skill was not used. Find a session's transcript with `find ~\u002F.claude\u002Fprojects -name '\u003Csession>.jsonl'`. Read at most 10 per skill; when there are more, read every Nth in the listed order and say so.\n\nAn outcome is as good when the session reached the checked result the skill teaches:\n\n| skill | as good when |\n|---|---|\n| skill-smith | `lint-skill` ran on the changed file and exited 0 |\n| backprop | the bug got a regression test or an invariant |\n\nA skill is surfaced in a session when its description is in that session's listing:\n\n```bash\njq -r 'select(.attachment.type==\"skill_listing\") | .attachment.content' \u003Ctranscript> \\\n  | grep -c '^- \u003Cplugin>:\u003Cskill>: '\n```\n\nEach reading is model-judgment, with or without the judge in step 4. Label it so; the operator confirms each cut.\n\n## 4. Judge (opt-in)\n\nSpawn one fresh `general-purpose` agent per batch. It sees the session excerpt and the \"as good when\" cell, never your reading, and returns PASS, FAIL or UNSURE with a one-line critique.\n\nLabels live in `.scratchpad\u002Fsuite-review\u002Fjudge-labels.tsv`: `session`, `skill`, `operator`, `judge`, `judge_model`, `prompt_sha`. Trust the judge only when it matches the operator on at least 16 of 20 operator-PASS rows and at least 16 of 20 operator-FAIL rows, counted apart. An UNSURE from either side counts as no match. Calibrate again when `judge_model` or `prompt_sha` differs from the rows that earned the trust. No plugin ships the judge (D28).\n\n## 5. Classify\n\nGive each plugin skill the first bucket that fits:\n\n| bucket | evidence | action |\n|---|---|---|\n| too new | first commit of its `SKILL.md` under 60 days ago | none |\n| not surfaced | a worse outcome, and the description absent from that session's listing | shorten the descriptions that crowd the listing, then check it again next review |\n| missed by model | not-used sessions read, and any outcome worse | rewrite the description; add a should \u002F should-not eval case |\n| not needed | more opportunity sessions skipped the skill than used it, and every outcome read is as good | cut the `SKILL.md` once the operator confirms; a script another skill or `bin\u002F` calls stays |\n| used | Skill calls or typed commands in the window | none |\n| used via script | its script ran (`script` column); `ds:build` calls some scripts directly, so this shows the script is used, not that the skill is read | none |\n| human missed | the operator did the step by hand where the skill fits | add a hand-off line where the need shows |\n| unclassified | no detector, or a detector too loose to read | none; name a better detector |\n\nFirst commit date: `git log --diff-filter=A --format=%as -- plugins\u002F\u003Cplugin>\u002Fskills\u002F\u003Cskill>\u002FSKILL.md | tail -1`.\n\n## 6. Act and predict\n\nWrite one §O row in `RESEARCH.md` for this review: the stride names the actions, `started` is today, `prediction` lists what the next census will show for each action, and `check-by` is the next review date. Keep §O at 7 rows or fewer: drop or merge a row, with its reason, before you add one past the cap.\n\nAdd the `suite-review\u002FT1` line to `.scratchpad\u002Fdossier\u002FLATER.md`, or replace it when it is there, due a month on. Leave every other line as it is:\n\n```\n- suite-review\u002FT1 · Run \u002Fsuite-review (last \u003Ctoday>, Claude Code \u003Cversion>) · A · due \u003Cdate>\n```\n\nRun `python3 tools\u002Fcheck_rows.py`, then commit with the subject `docs(research): suite review \u003Ctoday>`.\n\n## Report\n\nOne line per skill: its bucket, the numbers that put it there, and the action. Then the predictions checked in step 2, the acted-on counts, and the new §O row.\n",{"name":5,"description":7},"main","718ea193fb0c08761758130b858c138b908ef193",".claude\u002Fskills\u002Fsuite-review",0,"https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins","https:\u002F\u002Fgithub.com\u002Fraisedadead","https:\u002F\u002Fmrugesh.dev","dad • dev\u002F\u002Fops • open-source","2026-11-13 12:58:58",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add raisedadead\u002Fclaude-code-plugins --skill suite-review",{"tool":39,"command":40},"bunx","bunx skills add raisedadead\u002Fclaude-code-plugins --skill suite-review",{"tool":42,"command":43},"pnpm","pnpm dlx skills add raisedadead\u002Fclaude-code-plugins --skill suite-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsuite-review\u002FSKILL.md",true,[],[48,56,63,70,77,84],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":55},"01M72WE0F58KDB68QPBGQEA91F","tiger-style","Check the column budget of the lines a change adds, and read that change against the TIGER_STYLE shape rules a script cannot judge. Use when the user asks about line length or column limits, to check code shape, what the column check flagged, or why a commit was blocked on a column budget.","https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fwhetstone\u002Fskills\u002Ftiger-style\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":55},"01M72WDX5A781BKCTSDN0GF3M8","tdd-cycle","Drive one vertical slice of behaviour red-green-refactor, seam agreed before the first test. Use when the user asks to add a feature, fix a bug, write code test-first, says \"TDD this\", \"red green refactor\", or \"write a failing test first\". Inside a live dossier:build covenant, invoke dossier:build instead — it composes this skill's run-slice command as its RED\u002FGREEN proof.","https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fwhetstone\u002Fskills\u002Ftdd-cycle\u002FSKILL.md",[],[],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":55},"01M72WDPE6ESWEK5GVRRRV5EC1","prototype","Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.","https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fwhetstone\u002Fskills\u002Fprototype\u002FSKILL.md",[],[],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":55},"01M72WD6W8XSQT2RHRE3VV9ED6","doubt-pass","Adversarial doubt cycle on a plan or design before any code exists — distinct from post-hoc code review. Use when the user asks to doubt this, stress-test a design before building it, poke holes in a plan, find the flaw in an approach, or before committing to a non-trivial architecture or design decision.","https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fwhetstone\u002Fskills\u002Fdoubt-pass\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":55},"01M72WD2MWAENN8RKFD9AXHQ3B","diagnose","Diagnose a hard bug or a performance regression with a feedback loop first, then ranked hypotheses, instrumentation and a regression test. Use when the user says diagnose or debug this, or reports something broken, throwing, failing or slow.","https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fwhetstone\u002Fskills\u002Fdiagnose\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":55},"01M72WCWGQNB8NCAER3CRXSCHH","verify","Empirical fact-check for freshness-sensitive claims — versions, EOLs, package latest, GitHub Action SHAs, k8s apiVersions, AI model deprecations, image tags, or anything the model's training cutoff may have staled. Primary sources only. Auto-fires as a PreToolUse hook on Edit\u002FWrite, but only in a repo with a `.scratchpad\u002Fdossier\u002F` directory; `\u002Fdossier:verify` on demand works anywhere. Invoke when user says \"verify\", \"fact-check\", \"is this current\", \"\u002Fdossier:verify\", \"double check\", or when reviewing freshness claims.","https:\u002F\u002Fgithub.com\u002Fraisedadead\u002Fclaude-code-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fdossier\u002Fskills\u002Fverify\u002FSKILL.md",[],[]]