@ikon85/agent-workflow-kit 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/.agents/skills/ask-matt/SKILL.md +139 -0
  2. package/.agents/skills/ask-matt/THIRD-PARTY-NOTICES.md +29 -0
  3. package/.agents/skills/audit-skills/SKILL.md +145 -0
  4. package/.agents/skills/board-to-waves/SKILL.md +135 -0
  5. package/.agents/skills/code-review/SKILL.md +64 -0
  6. package/.agents/skills/codebase-design/DEEPENING.md +37 -0
  7. package/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  8. package/.agents/skills/codebase-design/SKILL.md +114 -0
  9. package/.agents/skills/codebase-design/THIRD-PARTY-NOTICES.md +29 -0
  10. package/.agents/skills/codex-adapter-sync/SKILL.md +151 -0
  11. package/.agents/skills/decision-gate/SKILL.md +67 -0
  12. package/.agents/skills/diagnose/SKILL.md +136 -0
  13. package/.agents/skills/diagnose/THIRD-PARTY-NOTICES.md +29 -0
  14. package/.agents/skills/diagnose/scripts/hitl-loop.template.sh +41 -0
  15. package/.agents/skills/domain-modeling/ADR-FORMAT.md +47 -0
  16. package/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  17. package/.agents/skills/domain-modeling/SKILL.md +76 -0
  18. package/.agents/skills/domain-modeling/THIRD-PARTY-NOTICES.md +29 -0
  19. package/.agents/skills/git-worktree-recover/SKILL.md +176 -0
  20. package/.agents/skills/grill-me/SKILL.md +54 -0
  21. package/.agents/skills/grill-me/THIRD-PARTY-NOTICES.md +29 -0
  22. package/.agents/skills/grill-with-docs/ADR-FORMAT.md +47 -0
  23. package/.agents/skills/grill-with-docs/CONTEXT-FORMAT.md +60 -0
  24. package/.agents/skills/grill-with-docs/SKILL.md +137 -0
  25. package/.agents/skills/grill-with-docs/THIRD-PARTY-NOTICES.md +29 -0
  26. package/.agents/skills/implement/SKILL.md +15 -0
  27. package/.agents/skills/implement/THIRD-PARTY-NOTICES.md +29 -0
  28. package/.agents/skills/improve-codebase-architecture/ADR-FORMAT.md +47 -0
  29. package/.agents/skills/improve-codebase-architecture/CONTEXT-FORMAT.md +60 -0
  30. package/.agents/skills/improve-codebase-architecture/DEEPENING.md +37 -0
  31. package/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  32. package/.agents/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +46 -0
  33. package/.agents/skills/improve-codebase-architecture/LANGUAGE.md +53 -0
  34. package/.agents/skills/improve-codebase-architecture/SKILL.md +88 -0
  35. package/.agents/skills/improve-codebase-architecture/THIRD-PARTY-NOTICES.md +29 -0
  36. package/.agents/skills/kit-release/SKILL.md +56 -0
  37. package/.agents/skills/local-ci/SKILL.md +94 -0
  38. package/.agents/skills/orchestrate-wave/SKILL.md +261 -0
  39. package/.agents/skills/orchestrate-wave/references/builder-contract.md +67 -0
  40. package/.agents/skills/prototype/LOGIC.md +79 -0
  41. package/.agents/skills/prototype/SKILL.md +30 -0
  42. package/.agents/skills/prototype/THIRD-PARTY-NOTICES.md +29 -0
  43. package/.agents/skills/prototype/UI.md +112 -0
  44. package/.agents/skills/research/SKILL.md +12 -0
  45. package/.agents/skills/research/THIRD-PARTY-NOTICES.md +29 -0
  46. package/.agents/skills/resolving-merge-conflicts/SKILL.md +14 -0
  47. package/.agents/skills/resolving-merge-conflicts/THIRD-PARTY-NOTICES.md +29 -0
  48. package/.agents/skills/retro/SKILL.md +209 -0
  49. package/.agents/skills/scale-check/SKILL.md +141 -0
  50. package/.agents/skills/security-audit/SKILL.md +67 -0
  51. package/.agents/skills/setup-workflow/SKILL.md +187 -0
  52. package/.agents/skills/setup-workflow/THIRD-PARTY-NOTICES.md +29 -0
  53. package/.agents/skills/setup-workflow/board-sync.md +111 -0
  54. package/.agents/skills/setup-workflow/code-review.md +26 -0
  55. package/.agents/skills/setup-workflow/domain.md +51 -0
  56. package/.agents/skills/setup-workflow/issue-tracker-github.md +35 -0
  57. package/.agents/skills/setup-workflow/issue-tracker-gitlab.md +34 -0
  58. package/.agents/skills/setup-workflow/issue-tracker-local.md +30 -0
  59. package/.agents/skills/setup-workflow/orchestrate-wave-seed.md +44 -0
  60. package/.agents/skills/setup-workflow/spec-completeness-seed.md +44 -0
  61. package/.agents/skills/setup-workflow/spec-self-critique-seed.md +43 -0
  62. package/.agents/skills/setup-workflow/triage-labels.md +18 -0
  63. package/.agents/skills/setup-workflow/workflow-overview.md +33 -0
  64. package/.agents/skills/spec-self-critique/SKILL.md +152 -0
  65. package/.agents/skills/spec-self-critique/scenarios.md +82 -0
  66. package/.agents/skills/tdd/SKILL.md +120 -0
  67. package/.agents/skills/tdd/THIRD-PARTY-NOTICES.md +29 -0
  68. package/.agents/skills/tdd/deep-modules.md +33 -0
  69. package/.agents/skills/tdd/interface-design.md +31 -0
  70. package/.agents/skills/tdd/mocking.md +59 -0
  71. package/.agents/skills/tdd/refactoring.md +10 -0
  72. package/.agents/skills/tdd/tests.md +61 -0
  73. package/.agents/skills/to-issues/SKILL.md +325 -0
  74. package/.agents/skills/to-issues/THIRD-PARTY-NOTICES.md +29 -0
  75. package/.agents/skills/to-prd/PROGRAM-PRD-FORMAT.md +162 -0
  76. package/.agents/skills/to-prd/SKILL.md +180 -0
  77. package/.agents/skills/to-prd/THIRD-PARTY-NOTICES.md +29 -0
  78. package/.agents/skills/to-waves/SKILL.md +260 -0
  79. package/.agents/skills/to-waves/SLICE-METADATA-FORMAT.md +74 -0
  80. package/.agents/skills/triage/AGENT-BRIEF.md +168 -0
  81. package/.agents/skills/triage/OUT-OF-SCOPE.md +101 -0
  82. package/.agents/skills/triage/SKILL.md +122 -0
  83. package/.agents/skills/triage/THIRD-PARTY-NOTICES.md +29 -0
  84. package/.agents/skills/verify-spike/SKILL.md +39 -0
  85. package/.agents/skills/wayfinder/SKILL.md +127 -0
  86. package/.agents/skills/wayfinder/THIRD-PARTY-NOTICES.md +29 -0
  87. package/.agents/skills/wrapup/SKILL.md +71 -0
  88. package/.agents/skills/wrapup/SOURCES.txt +6 -0
  89. package/.agents/skills/zoom-out/SKILL.md +7 -0
  90. package/.agents/skills/zoom-out/THIRD-PARTY-NOTICES.md +29 -0
  91. package/.claude/hooks/_hook_utils.py +184 -0
  92. package/.claude/hooks/drift-guard.py +176 -0
  93. package/.claude/hooks/skill-drift-hint.py +122 -0
  94. package/.claude/hooks/sync-board-status.py +191 -0
  95. package/.claude/skills/ask-matt/SKILL.md +139 -0
  96. package/.claude/skills/ask-matt/THIRD-PARTY-NOTICES.md +29 -0
  97. package/.claude/skills/audit-skills/SKILL.md +145 -0
  98. package/.claude/skills/board-to-waves/SKILL.md +148 -0
  99. package/.claude/skills/code-review/SKILL.md +64 -0
  100. package/.claude/skills/codebase-design/DEEPENING.md +37 -0
  101. package/.claude/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  102. package/.claude/skills/codebase-design/SKILL.md +114 -0
  103. package/.claude/skills/codebase-design/THIRD-PARTY-NOTICES.md +29 -0
  104. package/.claude/skills/codex-build/SKILL.md +126 -0
  105. package/.claude/skills/codex-build/THIRD-PARTY-NOTICES.md +35 -0
  106. package/.claude/skills/codex-review/SKILL.md +145 -0
  107. package/.claude/skills/codex-review/THIRD-PARTY-NOTICES.md +31 -0
  108. package/.claude/skills/decision-gate/SKILL.md +67 -0
  109. package/.claude/skills/diagnose/SKILL.md +136 -0
  110. package/.claude/skills/diagnose/THIRD-PARTY-NOTICES.md +29 -0
  111. package/.claude/skills/diagnose/scripts/hitl-loop.template.sh +41 -0
  112. package/.claude/skills/domain-modeling/ADR-FORMAT.md +47 -0
  113. package/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  114. package/.claude/skills/domain-modeling/SKILL.md +76 -0
  115. package/.claude/skills/domain-modeling/THIRD-PARTY-NOTICES.md +29 -0
  116. package/.claude/skills/git-guardrails-claude-code/SKILL.md +96 -0
  117. package/.claude/skills/git-guardrails-claude-code/THIRD-PARTY-NOTICES.md +29 -0
  118. package/.claude/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +28 -0
  119. package/.claude/skills/git-worktree-recover/SKILL.md +182 -0
  120. package/.claude/skills/grill-me/SKILL.md +54 -0
  121. package/.claude/skills/grill-me/THIRD-PARTY-NOTICES.md +29 -0
  122. package/.claude/skills/grill-me-codex/SKILL.md +158 -0
  123. package/.claude/skills/grill-me-codex/THIRD-PARTY-NOTICES.md +32 -0
  124. package/.claude/skills/grill-with-docs/ADR-FORMAT.md +47 -0
  125. package/.claude/skills/grill-with-docs/CONTEXT-FORMAT.md +60 -0
  126. package/.claude/skills/grill-with-docs/SKILL.md +137 -0
  127. package/.claude/skills/grill-with-docs/THIRD-PARTY-NOTICES.md +29 -0
  128. package/.claude/skills/grill-with-docs-codex/ADR-FORMAT.md +47 -0
  129. package/.claude/skills/grill-with-docs-codex/CONTEXT-FORMAT.md +60 -0
  130. package/.claude/skills/grill-with-docs-codex/SKILL.md +233 -0
  131. package/.claude/skills/grill-with-docs-codex/THIRD-PARTY-NOTICES.md +33 -0
  132. package/.claude/skills/implement/SKILL.md +15 -0
  133. package/.claude/skills/implement/THIRD-PARTY-NOTICES.md +29 -0
  134. package/.claude/skills/improve-codebase-architecture/ADR-FORMAT.md +47 -0
  135. package/.claude/skills/improve-codebase-architecture/CONTEXT-FORMAT.md +60 -0
  136. package/.claude/skills/improve-codebase-architecture/DEEPENING.md +37 -0
  137. package/.claude/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  138. package/.claude/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +46 -0
  139. package/.claude/skills/improve-codebase-architecture/LANGUAGE.md +53 -0
  140. package/.claude/skills/improve-codebase-architecture/SKILL.md +88 -0
  141. package/.claude/skills/improve-codebase-architecture/THIRD-PARTY-NOTICES.md +29 -0
  142. package/.claude/skills/kit-release/SKILL.md +56 -0
  143. package/.claude/skills/local-ci/SKILL.md +94 -0
  144. package/.claude/skills/orchestrate-wave/SKILL.md +269 -0
  145. package/.claude/skills/orchestrate-wave/references/builder-contract.md +67 -0
  146. package/.claude/skills/prototype/LOGIC.md +79 -0
  147. package/.claude/skills/prototype/SKILL.md +30 -0
  148. package/.claude/skills/prototype/THIRD-PARTY-NOTICES.md +29 -0
  149. package/.claude/skills/prototype/UI.md +112 -0
  150. package/.claude/skills/research/SKILL.md +12 -0
  151. package/.claude/skills/research/THIRD-PARTY-NOTICES.md +29 -0
  152. package/.claude/skills/resolving-merge-conflicts/SKILL.md +14 -0
  153. package/.claude/skills/resolving-merge-conflicts/THIRD-PARTY-NOTICES.md +29 -0
  154. package/.claude/skills/retro/SKILL.md +209 -0
  155. package/.claude/skills/scale-check/SKILL.md +141 -0
  156. package/.claude/skills/security-audit/SKILL.md +67 -0
  157. package/.claude/skills/setup-pre-commit/SKILL.md +104 -0
  158. package/.claude/skills/setup-pre-commit/scripts/pre-commit.template.sh +35 -0
  159. package/.claude/skills/setup-workflow/SKILL.md +187 -0
  160. package/.claude/skills/setup-workflow/THIRD-PARTY-NOTICES.md +29 -0
  161. package/.claude/skills/setup-workflow/board-sync.md +111 -0
  162. package/.claude/skills/setup-workflow/code-review.md +26 -0
  163. package/.claude/skills/setup-workflow/domain.md +51 -0
  164. package/.claude/skills/setup-workflow/issue-tracker-github.md +35 -0
  165. package/.claude/skills/setup-workflow/issue-tracker-gitlab.md +34 -0
  166. package/.claude/skills/setup-workflow/issue-tracker-local.md +30 -0
  167. package/.claude/skills/setup-workflow/orchestrate-wave-seed.md +44 -0
  168. package/.claude/skills/setup-workflow/spec-completeness-seed.md +44 -0
  169. package/.claude/skills/setup-workflow/spec-self-critique-seed.md +43 -0
  170. package/.claude/skills/setup-workflow/triage-labels.md +18 -0
  171. package/.claude/skills/setup-workflow/workflow-overview.md +33 -0
  172. package/.claude/skills/skill-manifest.json +389 -0
  173. package/.claude/skills/spec-self-critique/SKILL.md +152 -0
  174. package/.claude/skills/spec-self-critique/scenarios.md +82 -0
  175. package/.claude/skills/tdd/SKILL.md +120 -0
  176. package/.claude/skills/tdd/THIRD-PARTY-NOTICES.md +29 -0
  177. package/.claude/skills/tdd/deep-modules.md +33 -0
  178. package/.claude/skills/tdd/interface-design.md +31 -0
  179. package/.claude/skills/tdd/mocking.md +59 -0
  180. package/.claude/skills/tdd/refactoring.md +10 -0
  181. package/.claude/skills/tdd/tests.md +61 -0
  182. package/.claude/skills/to-issues/SKILL.md +325 -0
  183. package/.claude/skills/to-issues/THIRD-PARTY-NOTICES.md +29 -0
  184. package/.claude/skills/to-prd/PROGRAM-PRD-FORMAT.md +162 -0
  185. package/.claude/skills/to-prd/SKILL.md +180 -0
  186. package/.claude/skills/to-prd/THIRD-PARTY-NOTICES.md +29 -0
  187. package/.claude/skills/to-waves/SKILL.md +260 -0
  188. package/.claude/skills/to-waves/SLICE-METADATA-FORMAT.md +74 -0
  189. package/.claude/skills/triage/AGENT-BRIEF.md +168 -0
  190. package/.claude/skills/triage/OUT-OF-SCOPE.md +101 -0
  191. package/.claude/skills/triage/SKILL.md +122 -0
  192. package/.claude/skills/triage/THIRD-PARTY-NOTICES.md +29 -0
  193. package/.claude/skills/verify-spike/SKILL.md +39 -0
  194. package/.claude/skills/wayfinder/SKILL.md +127 -0
  195. package/.claude/skills/wayfinder/THIRD-PARTY-NOTICES.md +29 -0
  196. package/.claude/skills/wrapup/SKILL.md +81 -0
  197. package/.claude/skills/wrapup/SOURCES.txt +6 -0
  198. package/.claude/skills/write-a-skill/GLOSSARY.md +201 -0
  199. package/.claude/skills/write-a-skill/SKILL.md +88 -0
  200. package/.claude/skills/write-a-skill/THIRD-PARTY-NOTICES.md +29 -0
  201. package/.claude/skills/zoom-out/SKILL.md +7 -0
  202. package/.claude/skills/zoom-out/THIRD-PARTY-NOTICES.md +29 -0
  203. package/LICENSE +28 -0
  204. package/PROVENANCE.md +39 -0
  205. package/README.md +619 -0
  206. package/agent-workflow-kit.package.json +1939 -0
  207. package/docs/agents/board-sync.md +71 -0
  208. package/docs/agents/code-review.md +14 -0
  209. package/docs/agents/domain.md +7 -0
  210. package/docs/agents/issue-tracker.md +12 -0
  211. package/docs/agents/security-audit-runbook-template.md +205 -0
  212. package/docs/agents/skills/orchestrate-wave.md +13 -0
  213. package/docs/agents/skills/spec-self-critique.md +18 -0
  214. package/docs/agents/triage-labels.md +10 -0
  215. package/docs/agents/wave-anchor-template.md +88 -0
  216. package/docs/conventions/spec-completeness.md +23 -0
  217. package/docs/index.html +56 -0
  218. package/docs/methodology.html +488 -0
  219. package/docs/methodology.svg +93 -0
  220. package/docs/workflow.png +0 -0
  221. package/package.json +40 -0
  222. package/scripts/anchor_table.py +343 -0
  223. package/scripts/board-sync.py +1232 -0
  224. package/scripts/board_config.py +147 -0
  225. package/scripts/board_fields.py +192 -0
  226. package/scripts/build-kit.mjs +116 -0
  227. package/scripts/build-kit.test.mjs +59 -0
  228. package/scripts/check-kit-staleness.mjs +45 -0
  229. package/scripts/check-kit-staleness.test.mjs +19 -0
  230. package/scripts/execute-ready-check.py +516 -0
  231. package/scripts/issue_deps.py +79 -0
  232. package/scripts/kit-release.mjs +100 -0
  233. package/scripts/kit-release.test.mjs +67 -0
  234. package/scripts/lib/audit-refs.mjs +146 -0
  235. package/scripts/lib/scrub.mjs +113 -0
  236. package/scripts/lib/scrub.test.mjs +187 -0
  237. package/scripts/loc_offender_core.py +196 -0
  238. package/scripts/loc_offender_gate.py +182 -0
  239. package/scripts/node_kind.py +68 -0
  240. package/scripts/portability_profile_scan.py +53 -0
  241. package/scripts/pr-body-check.py +263 -0
  242. package/scripts/program_graph.py +125 -0
  243. package/scripts/program_graph_parse.py +275 -0
  244. package/scripts/program_graph_validate.py +256 -0
  245. package/scripts/program_sync.py +160 -0
  246. package/scripts/release-delta-guard.mjs +96 -0
  247. package/scripts/release-delta-guard.test.mjs +53 -0
  248. package/scripts/test_board_sync_create_idempotency.py +104 -0
  249. package/scripts/test_dist_kit_smoke.py +199 -0
  250. package/scripts/test_kit_docs_language_census.py +178 -0
  251. package/scripts/test_skill_code_review_seed.py +89 -0
  252. package/scripts/test_skill_frontmatter_lint.py +226 -0
  253. package/scripts/test_skill_gh_lint.py +124 -0
  254. package/scripts/test_skill_language_census.py +254 -0
  255. package/scripts/test_skill_portability_lint.py +773 -0
  256. package/scripts/test_skill_publish_audit.py +300 -0
  257. package/scripts/test_skill_selfcontainment_lint.py +255 -0
  258. package/scripts/test_skill_setup_workflow_seeds.py +200 -0
  259. package/scripts/test_skill_stale_name_lint.py +126 -0
  260. package/scripts/test_skill_surface_refs.py +300 -0
  261. package/scripts/test_skill_trailing_artifact_lint.py +71 -0
  262. package/scripts/wrapup-land.py +573 -0
  263. package/src/cli.mjs +70 -0
  264. package/src/commands/diff.mjs +6 -0
  265. package/src/commands/init.mjs +59 -0
  266. package/src/commands/uninstall.mjs +43 -0
  267. package/src/commands/update.mjs +95 -0
  268. package/src/lib/atomicWrite.mjs +49 -0
  269. package/src/lib/bundle.mjs +133 -0
  270. package/src/lib/hash.mjs +13 -0
  271. package/src/lib/manifest.mjs +58 -0
  272. package/src/lib/sentinel.mjs +20 -0
  273. package/src/lib/settings.mjs +23 -0
@@ -0,0 +1,30 @@
1
+ # Issue tracker: Local Markdown
2
+
3
+ Issues and PRDs for this repo live as markdown files in `.scratch/`.
4
+
5
+ ## Conventions
6
+
7
+ - One feature per directory: `.scratch/<feature-slug>/`
8
+ - The PRD is `.scratch/<feature-slug>/PRD.md`
9
+ - Implementation issues are `.scratch/<feature-slug>/issues/<NN>-<slug>.md`, numbered from `01`
10
+ - Triage state is recorded as a `Status:` line near the top of each issue file (see `triage-labels.md` for the role strings)
11
+ - Comments and conversation history append to the bottom of the file under a `## Comments` heading
12
+
13
+ ## When a skill says "publish to the issue tracker"
14
+
15
+ Create a new file under `.scratch/<feature-slug>/` (creating the directory if needed).
16
+
17
+ ## When a skill says "fetch the relevant ticket"
18
+
19
+ Read the file at the referenced path. The user will normally pass the path or the issue number directly.
20
+
21
+ ## Wayfinding operations
22
+
23
+ Used by `/wayfinder`. The **map** is a file with one **child** file per ticket.
24
+
25
+ - **Map**: `.scratch/<effort>/map.md` — the Notes / Decisions-so-far / Fog body.
26
+ - **Child ticket**: `.scratch/<effort>/issues/NN-<slug>.md`, numbered from `01`, with the question in the body. A `Type:` line records the ticket type (`research`/`prototype`/`grilling`/`task`); a `Status:` line records `claimed`/`resolved`.
27
+ - **Blocking**: a `Blocked by: NN, NN` line near the top. A ticket is unblocked when every file it lists is `resolved`.
28
+ - **Frontier**: scan `.scratch/<effort>/issues/` for files that are open, unblocked, and unclaimed; first by number wins.
29
+ - **Claim**: set `Status: claimed` and save before any work.
30
+ - **Resolve**: append the answer under an `## Answer` heading, set `Status: resolved`, then append a context pointer (gist + link) to the map's Decisions-so-far in `map.md`.
@@ -0,0 +1,44 @@
1
+ # Project layer — orchestrate-wave
2
+
3
+ The generic `orchestrate-wave` skill ships the full wave-landing **mechanics**
4
+ (disjointness recon → parallel implementers → serial integration → central verify
5
+ → land) with no project tooling in the body. This file is the **project layer**:
6
+ it carries your project's exact commands, setup, verify recipe, login and deploy
7
+ detail. The skill probes it at runtime (Phase 0); with the sections below
8
+ **filled** it runs your project recipe instead of the generic fallback.
9
+
10
+ > **Section contract.** The skeleton refers to these exact headings by name.
11
+ > Keep them; fill each with your project's real detail. While a section is empty
12
+ > the skill treats the whole layer as absent (Phase-0 sentinel-stub rule) and
13
+ > falls back to generic instructions — so fill them before relying on the recipe.
14
+
15
+ ## §Setup
16
+ <!-- Project setup steps Phase 0 runs before verify: DB/tunnel/services the
17
+ live-verify depends on, dependency install, your worktree-setup command. -->
18
+
19
+ ## §Builder Commands
20
+ <!-- Exact test / typecheck / fast-gate commands per package for the builder
21
+ contract and integration. State the exact invocation; note any false-red
22
+ traps (a test-runner arg that silently filters, a composite-typecheck flag). -->
23
+
24
+ ## §Builder Hard Rules
25
+ <!-- UI-text language/Umlaut rules, design tokens, formatters, size gates —
26
+ whatever a delegated implementer must obey in this repo. -->
27
+
28
+ ## §Integration Suites
29
+ <!-- Every test framework the wave's files can belong to: the main suite plus any
30
+ separate unit-test or script-test runner the main suite does NOT cover. -->
31
+
32
+ ## §Verify Recipe
33
+ <!-- The central verify gate you re-run yourself: full CI command (+ any
34
+ coordinator-branch skip/override), combined integration suite for schema/reader
35
+ waves, the one-dev-server rule, design/brand checks, DB-compare coercion traps,
36
+ console-clean command. -->
37
+
38
+ ## §Headless Login
39
+ <!-- The AFK login recipe for the session-MCP browser profile: which profile,
40
+ where it resolves, the login script, port lore — no password in the transcript. -->
41
+
42
+ ## §Landing
43
+ <!-- Deploy trigger (auto-deploy-on-merge?), prod-migration command + lockstep
44
+ window, the deploy-done signal, anchor-sync mechanics pointer. -->
@@ -0,0 +1,44 @@
1
+ # Convention — Spec completeness before implementation
2
+
3
+ Specs should reach structural completeness before implementation, so that avoidable bugs are caught at spec time rather than during live-verify. This is the project's seed convention; grow it over time (via `/retro`) by adding more `## Self-Critique-Check` blocks below.
4
+
5
+ `spec-self-critique` point 8 iterates every `docs/conventions/*.md` file and runs the `## Self-Critique-Check` block it finds (format: **Trigger / Check / Korrektur**). A convention file without such a block is skipped with a warning — so this seed ships one valid block.
6
+
7
+ ## Self-Critique-Check
8
+
9
+ **Trigger:** the spec states any concrete count, quantity, or "N of M" claim (number of callers, tests, rows, files, occurrences).
10
+
11
+ **Check:** is each such number empirically verified against the source (a `grep -c`, a query, a file listing) rather than estimated or recalled?
12
+
13
+ **Korrektur:** re-derive every concrete number from the source before finalizing the spec; replace estimates with the verified count, or mark the claim as an explicit assumption to confirm during implementation.
14
+
15
+ ## Vertikal-Slice-Vollständigkeit (decompose-readiness)
16
+
17
+ The convention section `to-issues` reads at runtime (it references `spec-completeness.md` §Vertikal-Slice-Vollständigkeit). Seeded project-neutral; grow it with your project's incidents over time.
18
+
19
+ **Trigger:** an artefact is about to be decomposed by `to-issues` — regardless of entry point (a `to-prd` PRD, an external PRD, a raw issue, a mechanical file bundle).
20
+
21
+ **Provenance-independent:** the contract checks the artefact's **form**, never which tool produced it. Grill depth (none / light / adversarial) is the entering person's choice — `to-issues` re-derives readiness from the artefact, it does not require a specific upstream step to have run.
22
+
23
+ **Decompose-readiness — always (every artefact class):**
24
+ - Each user-facing slice is a tracer-bullet outcome sentence ("<user action> → <visible result>"), not a layer name ("Config UI", "Backend resolver").
25
+ - ≥1 acceptance criterion per slice.
26
+ - Blast radius estimated per slice (~N files from recon/grep, not a guess).
27
+ - Seam-ownership flagged: does a slice replace/unify/retire a central mechanism? → its own grill-needed (HITL) slice, never hidden in a behavior-preserving tweak.
28
+ - Each byte-neutral/prep slice names the half it defers + the later slice that closes it.
29
+
30
+ **Mechanical-bundle minimum** (a file-list / refactor with no domain scope — e.g. shrinking files under a size/lint gate):
31
+ - Anchor/leaf header = one sentence *why* (e.g. "bring files over the size gate under it, behavior-neutral").
32
+ - Per file-slice: outcome title + short what + AC (usually "behavior unchanged + gate satisfied + tests green") + blast radius.
33
+ - Seam-check explicit ("no central mechanism replaced", or name it → then grill that slice).
34
+ - The domain grill is **skippable only** when the blast radius is estimable **and** small **and** no seam is touched; otherwise the slice is HITL with the open structural questions. No open-questions section is needed when nothing is open.
35
+
36
+ **Anti-pattern:** `to-issues` rubber-stamping a pre-cut table — the table is only "done" when every user-facing row passes the trace against the code.
37
+
38
+ ## Self-Critique-Check
39
+
40
+ **Trigger:** the spec/PRD contains a slice/phase table or decomposes into multiple PRs/issues.
41
+
42
+ **Check:** is every user-facing slice a tracer-bullet outcome (not a layer name)? Does every byte-neutral slice name its deferred half + closing slice? Is blast radius estimated and seam-ownership flagged per slice?
43
+
44
+ **Korrektur:** reformulate layer-only slices as outcomes or split them; carve a new slice for any uncovered half; mark a seam-replacing slice as its own HITL slice.
@@ -0,0 +1,43 @@
1
+ # Project layer — spec-self-critique
2
+
3
+ The generic `spec-self-critique` skill ships the 12-point checklist (the check *intents* + the structure). This file is the **project layer**: it enriches each point with project-specific incidents, grep patterns, conventions, and extra sub-checks. The skill reads it at runtime; with this file present it runs the full pass instead of warning that the layer is absent.
4
+
5
+ > **Authoritative `/retro` sink.** This is the **only** home for project-specific `spec-self-critique` checks. `/retro` appends new rules/incidents **here**, below the relevant point — never into the generic skill skeleton. The skeleton stays portable.
6
+
7
+ The headings below are stable append anchors (points 1–12, matching the generic checklist). They start empty; they fill in over time via `/retro`.
8
+
9
+ ## Point 1
10
+ <!-- /retro appends project-specific checks for this point here -->
11
+
12
+ ## Point 2
13
+ <!-- /retro appends project-specific checks for this point here -->
14
+
15
+ ## Point 3
16
+ <!-- /retro appends project-specific checks for this point here -->
17
+
18
+ ## Point 4
19
+ <!-- /retro appends project-specific checks for this point here -->
20
+
21
+ ## Point 5
22
+ <!-- /retro appends project-specific checks for this point here -->
23
+
24
+ ## Point 6
25
+ <!-- /retro appends project-specific checks for this point here -->
26
+
27
+ ## Point 7
28
+ <!-- /retro appends project-specific checks for this point here -->
29
+
30
+ ## Point 8
31
+ <!-- /retro appends project-specific checks for this point here -->
32
+
33
+ ## Point 9
34
+ <!-- /retro appends project-specific checks for this point here -->
35
+
36
+ ## Point 10
37
+ <!-- /retro appends project-specific checks for this point here -->
38
+
39
+ ## Point 11
40
+ <!-- /retro appends project-specific checks for this point here -->
41
+
42
+ ## Point 12
43
+ <!-- /retro appends project-specific checks for this point here -->
@@ -0,0 +1,18 @@
1
+ # Triage Labels
2
+
3
+ The skills speak in terms of five canonical triage roles, but only two are ever applied as issue labels. This file maps those two roles to the actual label strings used in this repo's issue tracker.
4
+
5
+ | Label in mattpocock/skills | Label in our tracker | Meaning |
6
+ | --------------------------- | --------------------- | ----------------------------------------- |
7
+ | `needs-info` | `needs-info` | Waiting on reporter for more information |
8
+ | `ready-for-agent` | `ready-for-agent` | Fully specified, ready for an AFK agent |
9
+
10
+ **Board status is authoritative** for the remaining three canonical roles — they are never applied as labels:
11
+
12
+ - `needs-triage` — the tracker's initial/backlog status covers this.
13
+ - `ready-for-human` — most AFK-agent workflows don't split human-work out as a label; if yours does, add it back as a third row.
14
+ - `wontfix` — close the issue instead of labelling it.
15
+
16
+ When a skill mentions a role (e.g. "apply the AFK-ready triage label"), use the corresponding label string from the table above if it's one of the two active roles; for any other role, use the tracker's status field or close the issue instead of adding a label.
17
+
18
+ Edit the right-hand column, or re-add a row, to match whatever vocabulary you actually use.
@@ -0,0 +1,33 @@
1
+ # Workflow
2
+
3
+ Use this section as the entry-point map for agent-assisted work. The individual skills carry the detailed mechanics; this overview helps choose the right starting point.
4
+
5
+ ## Entry Points
6
+
7
+ - **Unsure which skill fits?** Ask `ask-matt` — a router over every skill in this list, with a recommended starting point and why.
8
+ - **A new build whose size is unclear** (a new app, a big cross-cutting feature, an unclear where-to-start): run `scale-check` — a short plain-language dialog that routes it to a program, a feature, a single slice, or a bug, and hands back a paste-ready start prompt.
9
+ - **New capability or unclear change:** start with `grill-with-docs` when the domain language or decisions need sharpening, then publish the agreed shape with `to-prd`.
10
+ - **A slice hinges on an unresolved fact or trade-off before it can be built:** clear it first — a binary yes/no question against real code/runtime/platform with `verify-spike`, a bounded "which option" choice with `decision-gate`.
11
+ - **Existing plan, PRD, or ready issue:** use `to-issues` to split it into independently buildable tracer-bullet slices.
12
+ - **A Program-PRD with a wave plan:** use `to-waves` to unfold it into named wave stubs + slice leaves on the board, after a chat preview gate that shows the whole plan before any write.
13
+ - **A backlog of open issues needs clustering into themed waves:** use `board-to-waves`.
14
+ - **A whole wave anchor (file-disjoint slices, specs already locked) to build, verify and land end-to-end — often AFK:** use `orchestrate-wave` — it dispatches implementers per slice, integrates serially, verifies centrally, and lands. (A single slice just goes to `tdd`.)
15
+ - **Bugs or requests piling up that you didn't create:** use `triage` to move them into agent-ready issues.
16
+ - **Bug or regression:** use `diagnose` to reproduce, minimize, hypothesize, instrument, fix, and regression-test.
17
+ - **A design question needs a runnable answer (state, business logic, a UI you have to see):** spike it with `prototype`, then fold what you learned back in.
18
+ - **Multi-session build from a PRD or issue:** use `implement` to drive `tdd` end-to-end, one red-green slice at a time.
19
+ - **Implementation slice:** use `tdd` for one behavior at a time: RED, GREEN, then refactor.
20
+ - **Finished slice:** use `wrapup` to prepare the branch, PR, and cleanup steps your repo expects.
21
+ - **Kit release:** use `kit-release` to derive the shipped delta, confirm Semver, regenerate the manifest, run all gates, and then hand landing to `wrapup`.
22
+ - **A huge, foggy effort, too big for one session:** use `wayfinder` — it charts it as a shared map of investigation tickets, resolving one per session.
23
+
24
+ ## Routing Rule
25
+
26
+ Prefer the smallest workflow that produces a clear next action. A tiny fix can go straight to `tdd`; a cross-cutting feature should become a PRD and then slices before implementation. When a skill reports missing project context, run `setup-workflow` again and fill only the missing stub.
27
+
28
+ ## Depth Ladder
29
+
30
+ - **Light:** direct `tdd` for a small, well-understood change.
31
+ - **Medium:** `to-issues` for a ready artefact that needs slicing.
32
+ - **Deep:** `grill-with-docs` followed by `to-prd` and `to-issues` when terminology, contracts, rollout order, or ownership are still uncertain.
33
+ - **Gate:** insert `verify-spike` or `decision-gate` before any depth level when a slice hinges on an unresolved fact or trade-off.
@@ -0,0 +1,389 @@
1
+ {
2
+ "schema_version": 1,
3
+ "description": "Public skill classification and publishing SSOT.",
4
+ "skills": {
5
+ "to-prd": {
6
+ "class": "generic",
7
+ "publish": true,
8
+ "entryPoint": true,
9
+ "surfaces": [
10
+ "claude",
11
+ "codex"
12
+ ],
13
+ "provenance": "matt-pocock"
14
+ },
15
+ "to-issues": {
16
+ "class": "generic",
17
+ "publish": true,
18
+ "entryPoint": true,
19
+ "surfaces": [
20
+ "claude",
21
+ "codex"
22
+ ],
23
+ "provenance": "matt-pocock"
24
+ },
25
+ "grill-with-docs": {
26
+ "class": "generic",
27
+ "publish": true,
28
+ "entryPoint": true,
29
+ "surfaces": [
30
+ "claude",
31
+ "codex"
32
+ ],
33
+ "provenance": "matt-pocock"
34
+ },
35
+ "grill-me": {
36
+ "class": "generic",
37
+ "publish": true,
38
+ "surfaces": [
39
+ "claude",
40
+ "codex"
41
+ ],
42
+ "provenance": "matt-pocock"
43
+ },
44
+ "retro": {
45
+ "class": "generic",
46
+ "publish": true,
47
+ "surfaces": [
48
+ "claude",
49
+ "codex"
50
+ ],
51
+ "provenance": "own"
52
+ },
53
+ "wrapup": {
54
+ "class": "generic",
55
+ "publish": true,
56
+ "entryPoint": true,
57
+ "surfaces": [
58
+ "claude",
59
+ "codex"
60
+ ],
61
+ "provenance": "own"
62
+ },
63
+ "verify-spike": {
64
+ "class": "generic",
65
+ "publish": true,
66
+ "entryPoint": true,
67
+ "surfaces": [
68
+ "claude",
69
+ "codex"
70
+ ],
71
+ "provenance": "own"
72
+ },
73
+ "decision-gate": {
74
+ "class": "generic",
75
+ "publish": true,
76
+ "entryPoint": true,
77
+ "surfaces": [
78
+ "claude",
79
+ "codex"
80
+ ],
81
+ "provenance": "own"
82
+ },
83
+ "spec-self-critique": {
84
+ "class": "generic",
85
+ "publish": true,
86
+ "surfaces": [
87
+ "claude",
88
+ "codex"
89
+ ],
90
+ "provenance": "own"
91
+ },
92
+ "code-review": {
93
+ "class": "generic",
94
+ "publish": true,
95
+ "surfaces": [
96
+ "claude",
97
+ "codex"
98
+ ],
99
+ "provenance": "own"
100
+ },
101
+ "setup-workflow": {
102
+ "class": "generic",
103
+ "publish": true,
104
+ "surfaces": [
105
+ "claude",
106
+ "codex"
107
+ ],
108
+ "provenance": "matt-pocock"
109
+ },
110
+ "board-to-waves": {
111
+ "class": "generic",
112
+ "publish": true,
113
+ "entryPoint": true,
114
+ "surfaces": [
115
+ "claude",
116
+ "codex"
117
+ ],
118
+ "provenance": "own"
119
+ },
120
+ "scale-check": {
121
+ "class": "generic",
122
+ "publish": true,
123
+ "entryPoint": true,
124
+ "surfaces": [
125
+ "claude",
126
+ "codex"
127
+ ],
128
+ "provenance": "own"
129
+ },
130
+ "to-waves": {
131
+ "class": "generic",
132
+ "publish": true,
133
+ "entryPoint": true,
134
+ "surfaces": [
135
+ "claude",
136
+ "codex"
137
+ ],
138
+ "provenance": "own"
139
+ },
140
+ "tdd": {
141
+ "class": "vendored",
142
+ "publish": true,
143
+ "entryPoint": true,
144
+ "surfaces": [
145
+ "claude",
146
+ "codex"
147
+ ],
148
+ "provenance": "matt-pocock"
149
+ },
150
+ "diagnose": {
151
+ "class": "vendored",
152
+ "publish": true,
153
+ "entryPoint": true,
154
+ "surfaces": [
155
+ "claude",
156
+ "codex"
157
+ ],
158
+ "provenance": "matt-pocock"
159
+ },
160
+ "zoom-out": {
161
+ "class": "vendored",
162
+ "publish": true,
163
+ "surfaces": [
164
+ "claude",
165
+ "codex"
166
+ ],
167
+ "provenance": "matt-pocock"
168
+ },
169
+ "improve-codebase-architecture": {
170
+ "class": "vendored",
171
+ "publish": true,
172
+ "surfaces": [
173
+ "claude",
174
+ "codex"
175
+ ],
176
+ "provenance": "matt-pocock"
177
+ },
178
+ "prototype": {
179
+ "class": "vendored",
180
+ "publish": true,
181
+ "entryPoint": true,
182
+ "surfaces": [
183
+ "claude",
184
+ "codex"
185
+ ],
186
+ "provenance": "matt-pocock"
187
+ },
188
+ "triage": {
189
+ "class": "vendored",
190
+ "publish": true,
191
+ "entryPoint": true,
192
+ "surfaces": [
193
+ "claude",
194
+ "codex"
195
+ ],
196
+ "provenance": "matt-pocock"
197
+ },
198
+ "codebase-design": {
199
+ "class": "vendored",
200
+ "publish": true,
201
+ "surfaces": [
202
+ "claude",
203
+ "codex"
204
+ ],
205
+ "provenance": "matt-pocock"
206
+ },
207
+ "domain-modeling": {
208
+ "class": "vendored",
209
+ "publish": true,
210
+ "surfaces": [
211
+ "claude",
212
+ "codex"
213
+ ],
214
+ "provenance": "matt-pocock"
215
+ },
216
+ "implement": {
217
+ "class": "vendored",
218
+ "publish": true,
219
+ "entryPoint": true,
220
+ "surfaces": [
221
+ "claude",
222
+ "codex"
223
+ ],
224
+ "provenance": "matt-pocock"
225
+ },
226
+ "resolving-merge-conflicts": {
227
+ "class": "vendored",
228
+ "publish": true,
229
+ "surfaces": [
230
+ "claude",
231
+ "codex"
232
+ ],
233
+ "provenance": "matt-pocock"
234
+ },
235
+ "write-a-skill": {
236
+ "class": "vendored",
237
+ "publish": true,
238
+ "surfaces": [
239
+ "claude"
240
+ ],
241
+ "provenance": "matt-pocock"
242
+ },
243
+ "ask-matt": {
244
+ "class": "vendored",
245
+ "publish": true,
246
+ "entryPoint": true,
247
+ "surfaces": [
248
+ "claude",
249
+ "codex"
250
+ ],
251
+ "provenance": "matt-pocock"
252
+ },
253
+ "wayfinder": {
254
+ "class": "vendored",
255
+ "publish": true,
256
+ "entryPoint": true,
257
+ "surfaces": [
258
+ "claude",
259
+ "codex"
260
+ ],
261
+ "provenance": "matt-pocock"
262
+ },
263
+ "research": {
264
+ "class": "vendored",
265
+ "publish": true,
266
+ "surfaces": [
267
+ "claude",
268
+ "codex"
269
+ ],
270
+ "provenance": "matt-pocock"
271
+ },
272
+ "git-guardrails-claude-code": {
273
+ "class": "vendored",
274
+ "publish": true,
275
+ "surfaces": [
276
+ "claude"
277
+ ],
278
+ "provenance": "matt-pocock"
279
+ },
280
+ "setup-pre-commit": {
281
+ "class": "generic",
282
+ "publish": true,
283
+ "surfaces": [
284
+ "claude"
285
+ ],
286
+ "provenance": "own"
287
+ },
288
+ "grill-me-codex": {
289
+ "class": "vendored",
290
+ "publish": true,
291
+ "surfaces": [
292
+ "claude"
293
+ ],
294
+ "provenance": "chase"
295
+ },
296
+ "grill-with-docs-codex": {
297
+ "class": "vendored",
298
+ "publish": true,
299
+ "surfaces": [
300
+ "claude"
301
+ ],
302
+ "provenance": "chase"
303
+ },
304
+ "codex-review": {
305
+ "class": "vendored",
306
+ "publish": true,
307
+ "surfaces": [
308
+ "claude"
309
+ ],
310
+ "provenance": "chase"
311
+ },
312
+ "codex-build": {
313
+ "class": "vendored",
314
+ "publish": true,
315
+ "surfaces": [
316
+ "claude"
317
+ ],
318
+ "provenance": "chase"
319
+ },
320
+ "codex-adapter-sync": {
321
+ "class": "adapter",
322
+ "publish": true,
323
+ "surfaces": [
324
+ "codex"
325
+ ],
326
+ "provenance": "own"
327
+ },
328
+ "audit-skills": {
329
+ "class": "generic",
330
+ "publish": true,
331
+ "entryPoint": false,
332
+ "surfaces": [
333
+ "claude",
334
+ "codex"
335
+ ],
336
+ "provenance": "own"
337
+ },
338
+ "local-ci": {
339
+ "class": "generic",
340
+ "publish": true,
341
+ "entryPoint": false,
342
+ "surfaces": [
343
+ "claude",
344
+ "codex"
345
+ ],
346
+ "provenance": "own"
347
+ },
348
+ "orchestrate-wave": {
349
+ "class": "generic",
350
+ "publish": true,
351
+ "entryPoint": true,
352
+ "surfaces": [
353
+ "claude",
354
+ "codex"
355
+ ],
356
+ "provenance": "own"
357
+ },
358
+ "git-worktree-recover": {
359
+ "class": "generic",
360
+ "publish": true,
361
+ "entryPoint": false,
362
+ "surfaces": [
363
+ "claude",
364
+ "codex"
365
+ ],
366
+ "provenance": "own"
367
+ },
368
+ "security-audit": {
369
+ "class": "generic",
370
+ "publish": true,
371
+ "entryPoint": false,
372
+ "surfaces": [
373
+ "claude",
374
+ "codex"
375
+ ],
376
+ "provenance": "own"
377
+ },
378
+ "kit-release": {
379
+ "class": "generic",
380
+ "publish": true,
381
+ "entryPoint": true,
382
+ "surfaces": [
383
+ "claude",
384
+ "codex"
385
+ ],
386
+ "provenance": "own"
387
+ }
388
+ }
389
+ }