[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DEPVMC8QRMKH6X1X1Z2QSD":3,"skill-same:01M6DEPVMC8QRMKH6X1X1Z2QSD":106},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":14,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6DEPVMC8QRMKH6X1X1Z2QSD","canvas",null,"Launch the Momentum Cycle live dashboard (Hono+Bun, port 3456). Checks if running, starts if not; opens http:\u002F\u002Flocalhost:3456 in the viewer pane.","iamsteveholmes\u002Fmomentum","iamsteveholmes","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F92353?v=4","01M6DENK56DRSF72CJ6FJQ4RT1","Steve Holmes","01M6DENK9KCZRYFFEB0M689F7D",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35],"dashboard","launch","http","hono","Bash","bun","cycle","live","port","live dashboard","viewer","running","2026-11-10 10:12:30",false,"---\nname: spec-audit-tasks\ndescription: After an implement step, audit that every task was genuinely completed — catch skipped tasks, stubbed work, missing tests, unimplemented spec requirements. Works with structured (tasks.md) and design-doc layouts; auto-discovers or takes paths. Invoke right after the implement step finishes.\n---\n\n# Task-Completion Audit\n\nAn implement step ticks tasks done as it goes, but a checked box is a *claim*, not proof.\nThis skill verifies the claim: it walks every task in the task list and looks for real evidence\nof completion — the code exists, the tests it promised exist and pass, the spec requirement\nit maps to is actually satisfied, and no placeholder was left behind. It runs right after\nimplementation so gaps surface while the work is fresh, **before** the change is committed\nand assumed done.\n\nAnalysis-only: it reports gaps, it never edits code or the task list. Fixing is the\nimplementer's call — this skill's job is to tell the truth about what is actually finished.\n\n## Procedure\n\n1. **Locate the artifacts** per `..\u002F..\u002Fruntime\u002Freferences\u002Fspec-artifact-discovery.md` (explicit\n   paths win, else detect the layout):\n   - **structured:** the task list is `tasks.md` inside the spec's feature directory\n     (`specs\u002F\u003CNNN-slug>\u002F`, newest by name sort, or a caller-supplied path).\n   - **design-doc:** there is no `tasks.md` — the spec is the newest\n     `docs\u002Fdesign\u002Fspecs\u002F*-design.md` and the task list is embedded in the newest\n     `docs\u002Fdesign\u002Fplans\u002F*.md`. Parse the plan's checkbox\u002Fnumbered tasks.\n\n   If no task list can be found in either layout, report there is nothing to review\n   (implementation may not have generated tasks) and stop.\n\n2. **Enumerate tasks.** Parse the task list into `{id, description, checkbox-state, referenced\n   files\u002Ftests}`. Note which are marked done (`[x]`) vs open (`[ ]`).\n\n3. **Verify each task against evidence — one at a time.** A checkbox is not evidence. For\n   each task, confirm:\n   - **Artifact exists** — the file(s)\u002Fsymbol(s) the task describes are actually present in\n     the working tree, not merely planned.\n   - **Tests are real and green** — any test the task promised exists and passes. Run\n     `\u002Fmanifest-code-quality:project-verify` (or the task's specific test) rather than trusting the box; test\u002Fsecurity\n     failures are blocking, lint is advisory.\n   - **No stub left** — no `TODO`\u002F`FIXME`\u002F`pass`\u002F`NotImplemented`\u002Fplaceholder sitting where\n     the task required real behavior.\n   - **Requirement satisfied** — the spec requirement (FR-*) or acceptance scenario the task\n     maps to is genuinely met, not just touched.\n\n   Where there are many independent tasks, **fan the per-task verifications out in parallel**\n   (one subagent per task or per cluster) and aggregate. The checks are independent, so this\n   is faster and keeps each verdict isolated from the others.\n\n4. **Cross-check coverage** between the spec and the task list:\n   - **Orphan requirements** — any FR-*\u002Facceptance scenario with no implementing task.\n   - **Orphan tasks** — any task that maps to no requirement (possible scope creep).\n\n   Use the spec↔task-list relationship for the active layout: structured is spec ↔ plan ↔ tasks;\n   the design-doc layout is spec ↔ plan (with the tasks embedded in that plan).\n\n5. **Classify and report.** Give every task one of: **DONE** (verified), **INCOMPLETE**\n   (marked done but evidence missing), **SKIPPED** (still open), or **UNVERIFIABLE** (needs a\n   human\u002Fmanual check — e.g. a live external dependency). Then state the summary verdict.\n\n## Output template\n\nALWAYS use this structure so the gap between claimed and actual is unmistakable:\n\n```text\n## Task-completion audit — \u003Cfeature\u002Fplan name>\n**Verdict:** \u003CALL VERIFIED | GAPS FOUND (\u003Cn> incomplete, \u003Cm> skipped)>\n\n| Task | Claimed | Verified | Evidence \u002F Gap |\n|------|---------|----------|----------------|\n| T001 | [x] | ✅ DONE         | \u003Cfile + passing test> |\n| T0xx | [x] | ❌ INCOMPLETE   | \u003Cwhat's missing> |\n| T0yy | [ ] | ⏭️ SKIPPED      | \u003Cnot implemented> |\n\n**Coverage gaps:**\n- Orphan requirements (no task): \u003CFR-… or \"none\">\n- Orphan tasks (no requirement): \u003CT… or \"none\">\n\n**Punch list (finish before this is done):**\n1. \u003Ctask id> — \u003Cconcrete fix>\n```\n\n## Notes\n\n- **Evidence over checkboxes** is the entire point. If a task can only be confirmed by its\n  checkbox, it is `UNVERIFIABLE`, not `DONE` — say so plainly rather than rubber-stamp it.\n- **Analysis-only**, which is what makes it safe to auto-run: it never edits code or\n  re-checks boxes. It produces the punch list; the implementer (or a follow-up implement pass)\n  acts on it.\n- **Invoke it right after the implement step** — gaps are cheapest to fix while the\n  work is fresh and before it is committed. It re-audits any time.\n- Complements `\u002Fmanifest-code-quality:project-verify` (deterministic lint\u002Ftest\u002Fscan) and the cross-artifact\n  consistency pass (`\u002Fmanifest-spec-planning:spec-review`): this skill is specifically about\n  **did we actually finish every task**.\n\n## Sub-agent dispatch\n\nFollow the [shared dispatch contract](..\u002F..\u002Fruntime\u002Freferences\u002Fsub-agent-dispatch.md).\nEach assigned unit verifies its bounded task group; the parent records statuses\nfrom directly validated evidence.\n","# Task-Completion Audit\n\nAn implement step ticks tasks done as it goes, but a checked box is a *claim*, not proof.\nThis skill verifies the claim: it walks every task in the task list and looks for real evidence\nof completion — the code exists, the tests it promised exist and pass, the spec requirement\nit maps to is actually satisfied, and no placeholder was left behind. It runs right after\nimplementation so gaps surface while the work is fresh, **before** the change is committed\nand assumed done.\n\nAnalysis-only: it reports gaps, it never edits code or the task list. Fixing is the\nimplementer's call — this skill's job is to tell the truth about what is actually finished.\n\n## Procedure\n\n1. **Locate the artifacts** per `..\u002F..\u002Fruntime\u002Freferences\u002Fspec-artifact-discovery.md` (explicit\n   paths win, else detect the layout):\n   - **structured:** the task list is `tasks.md` inside the spec's feature directory\n     (`specs\u002F\u003CNNN-slug>\u002F`, newest by name sort, or a caller-supplied path).\n   - **design-doc:** there is no `tasks.md` — the spec is the newest\n     `docs\u002Fdesign\u002Fspecs\u002F*-design.md` and the task list is embedded in the newest\n     `docs\u002Fdesign\u002Fplans\u002F*.md`. Parse the plan's checkbox\u002Fnumbered tasks.\n\n   If no task list can be found in either layout, report there is nothing to review\n   (implementation may not have generated tasks) and stop.\n\n2. **Enumerate tasks.** Parse the task list into `{id, description, checkbox-state, referenced\n   files\u002Ftests}`. Note which are marked done (`[x]`) vs open (`[ ]`).\n\n3. **Verify each task against evidence — one at a time.** A checkbox is not evidence. For\n   each task, confirm:\n   - **Artifact exists** — the file(s)\u002Fsymbol(s) the task describes are actually present in\n     the working tree, not merely planned.\n   - **Tests are real and green** — any test the task promised exists and passes. Run\n     `\u002Fmanifest-code-quality:project-verify` (or the task's specific test) rather than trusting the box; test\u002Fsecurity\n     failures are blocking, lint is advisory.\n   - **No stub left** — no `TODO`\u002F`FIXME`\u002F`pass`\u002F`NotImplemented`\u002Fplaceholder sitting where\n     the task required real behavior.\n   - **Requirement satisfied** — the spec requirement (FR-*) or acceptance scenario the task\n     maps to is genuinely met, not just touched.\n\n   Where there are many independent tasks, **fan the per-task verifications out in parallel**\n   (one subagent per task or per cluster) and aggregate. The checks are independent, so this\n   is faster and keeps each verdict isolated from the others.\n\n4. **Cross-check coverage** between the spec and the task list:\n   - **Orphan requirements** — any FR-*\u002Facceptance scenario with no implementing task.\n   - **Orphan tasks** — any task that maps to no requirement (possible scope creep).\n\n   Use the spec↔task-list relationship for the active layout: structured is spec ↔ plan ↔ tasks;\n   the design-doc layout is spec ↔ plan (with the tasks embedded in that plan).\n\n5. **Classify and report.** Give every task one of: **DONE** (verified), **INCOMPLETE**\n   (marked done but evidence missing), **SKIPPED** (still open), or **UNVERIFIABLE** (needs a\n   human\u002Fmanual check — e.g. a live external dependency). Then state the summary verdict.\n\n## Output template\n\nALWAYS use this structure so the gap between claimed and actual is unmistakable:\n\n```text\n## Task-completion audit — \u003Cfeature\u002Fplan name>\n**Verdict:** \u003CALL VERIFIED | GAPS FOUND (\u003Cn> incomplete, \u003Cm> skipped)>\n\n| Task | Claimed | Verified | Evidence \u002F Gap |\n|------|---------|----------|----------------|\n| T001 | [x] | ✅ DONE         | \u003Cfile + passing test> |\n| T0xx | [x] | ❌ INCOMPLETE   | \u003Cwhat's missing> |\n| T0yy | [ ] | ⏭️ SKIPPED      | \u003Cnot implemented> |\n\n**Coverage gaps:**\n- Orphan requirements (no task): \u003CFR-… or \"none\">\n- Orphan tasks (no requirement): \u003CT… or \"none\">\n\n**Punch list (finish before this is done):**\n1. \u003Ctask id> — \u003Cconcrete fix>\n```\n\n## Notes\n\n- **Evidence over checkboxes** is the entire point. If a task can only be confirmed by its\n  checkbox, it is `UNVERIFIABLE`, not `DONE` — say so plainly rather than rubber-stamp it.\n- **Analysis-only**, which is what makes it safe to auto-run: it never edits code or\n  re-checks boxes. It produces the punch list; the implementer (or a follow-up implement pass)\n  acts on it.\n- **Invoke it right after the implement step** — gaps are cheapest to fix while the\n  work is fresh and before it is committed. It re-audits any time.\n- Complements `\u002Fmanifest-code-quality:project-verify` (deterministic lint\u002Ftest\u002Fscan) and the cross-artifact\n  consistency pass (`\u002Fmanifest-spec-planning:spec-review`): this skill is specifically about\n  **did we actually finish every task**.\n\n## Sub-agent dispatch\n\nFollow the [shared dispatch contract](..\u002F..\u002Fruntime\u002Freferences\u002Fsub-agent-dispatch.md).\nEach assigned unit verifies its bounded task group; the parent records statuses\nfrom directly validated evidence.\n",{"name":41,"description":42},"spec-audit-tasks","After an implement step, audit that every task was genuinely completed — catch skipped tasks, stubbed work, missing tests, unimplemented spec requirements. Works with structured (tasks.md) and design-doc layouts; auto-discovers or takes paths. Invoke right after the implement step finishes.","main","1cb705536db26c557b919c204aeea2cfd0658ac1","skills\u002Fmomentum\u002Fskills\u002Fcanvas","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes","http:\u002F\u002Fcapitalcodemonkey.blogspot.com","2026-11-09 05:58:39",{"source":8,"skillName":41,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add iamsteveholmes\u002Fmomentum --skill spec-audit-tasks",{"tool":56,"command":57},"bunx","bunx skills add iamsteveholmes\u002Fmomentum --skill spec-audit-tasks",{"tool":59,"command":60},"pnpm","pnpm dlx skills add iamsteveholmes\u002Fmomentum --skill spec-audit-tasks","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002FSKILL.md",true,[64,70,76,80,84,88,92,98,102],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"agents\u002Fopenai.yaml","REFERENCE","参考文档",43,"https:\u002F\u002Fgithub.com\u002FRB-chrismandich\u002FManifest\u002Fblob\u002Fmain\u002Fplugins\u002Fmanifest-spec-planning\u002Fskills\u002Fspec-audit-tasks\u002Fagents\u002Fopenai.yaml",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"bun.lock","OTHER","其他",326,"https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002Fbun.lock",{"path":77,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":78,"sourceHtmlUrl":79},"evals\u002Feval-canvas-opens-server-when-not-running.md",547,"https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002Fevals\u002Feval-canvas-opens-server-when-not-running.md",{"path":81,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":82,"sourceHtmlUrl":83},"evals\u002Feval-canvas-skips-start-when-already-running.md",482,"https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002Fevals\u002Feval-canvas-skips-start-when-already-running.md",{"path":85,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":86,"sourceHtmlUrl":87},"evals\u002Fevals.json",1724,"https:\u002F\u002Fgithub.com\u002FRB-chrismandich\u002FManifest\u002Fblob\u002Fmain\u002Fplugins\u002Fmanifest-spec-planning\u002Fskills\u002Fspec-audit-tasks\u002Fevals\u002Fevals.json",{"path":89,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":90,"sourceHtmlUrl":91},"package.json",283,"https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002Fpackage.json",{"path":93,"resourceType":94,"resourceTypeDesc":95,"sizeBytes":96,"sourceHtmlUrl":97},"server.test.ts","SCRIPT","脚本",41593,"https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002Fserver.test.ts",{"path":99,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":100,"sourceHtmlUrl":101},"server.tsx",81660,"https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002Fserver.tsx",{"path":103,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":104,"sourceHtmlUrl":105},"workflow.md",2812,"https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fcanvas\u002Fworkflow.md",[107,128,146,168,185,203],{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":36},"01M6DES6J0HGT27SEJJWF316FV","upstream-fix","Traces quality failures upstream to spec, rule, or workflow root cause. Proposes fixes at the right level.","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fupstream-fix\u002FSKILL.md",[],[114,115,116,117,118,119,120,121,122,123,124,125,126,127],"upstream","upstream fix","fix","to spec","root cause","traces","fixes","at","high","root","rule","quality","workflow","spec",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":36},"01M6DES4A08NFWQM0AJBR2RRX5","triage","Dedup gate + batch-classify observations into five classes, enrich ARTIFACTs, batch-approve, delegate to intake\u002Fdecision or queue.","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Ftriage\u002FSKILL.md",[],[130,135,136,137,138,139,140,141,122,142,143,144,145],"batch","intake","artifacts","decision","queue","delegate","approve","observations","enrich","classify","gate",{"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":152,"publishedAt":36},"01M6DERYX8W6Z9Z4RM5V6E9HED","sprint-planning","Sprint planning — story selection, team composition, Gherkin specs, and visual companion plan gate for developer sign-off.","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fsprint-planning\u002FSKILL.md",[],[153,154,155,122,156,157,158,159,160,161,162,163,164,165,166,167,145],"planning","sprint","sprint planning","visual companion","plan gate","for","companion","sign","visual","selection","Composition","Story","plan","team","developer",{"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":174,"publishedAt":36},"01M6DERWCP7Y0WDY5KG6109RQB","sprint-manager","Sole writer of stories\u002Findex.json and sprints\u002Findex.json — validates state transitions, activates sprints, manages epic membership.","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fsprint-manager\u002FSKILL.md",[],[175,154,176,177,178,179,180,181,182,183,184],"sprint manager","manager","writer","stories","sprints","EPIC","transitions","json","index","state",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":191,"publishedAt":36},"01M6DERS7B4QHAH5GZHHBA4AHB","sprint-dev","Sprint execution — dependency-driven story development, post-merge AVFL, and team review.","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fsprint-dev\u002FSKILL.md",[],[192,193,154,166,194,195,196,197,198,199,122,200,201,202,164],"dev","sprint dev","execution","team review","development","merge","review","dependency","post","avfl","driven",{"skillNo":204,"name":205,"nameZh":6,"description":206,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":207,"categories":208,"keywords":209,"publishedAt":36},"01M6DERP0A271FYSAXCV85GF04","retro","Sprint retrospective — transcript audit engine (dynamic Workflow), story verification, findings document, and sprint closure.","https:\u002F\u002Fgithub.com\u002Fiamsteveholmes\u002Fmomentum\u002Fblob\u002Fmain\u002Fskills\u002Fmomentum\u002Fskills\u002Fretro\u002FSKILL.md",[],[205,210,211,122,212,154,213,164,214,215,216,217,218,126],"sprint retrospective","closure","dynamic workflow","document","engine","audit","verification","transcript","retrospective"]