@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.
- package/.agents/skills/ask-matt/SKILL.md +139 -0
- package/.agents/skills/ask-matt/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/audit-skills/SKILL.md +145 -0
- package/.agents/skills/board-to-waves/SKILL.md +135 -0
- package/.agents/skills/code-review/SKILL.md +64 -0
- package/.agents/skills/codebase-design/DEEPENING.md +37 -0
- package/.agents/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/.agents/skills/codebase-design/SKILL.md +114 -0
- package/.agents/skills/codebase-design/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/codex-adapter-sync/SKILL.md +151 -0
- package/.agents/skills/decision-gate/SKILL.md +67 -0
- package/.agents/skills/diagnose/SKILL.md +136 -0
- package/.agents/skills/diagnose/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/diagnose/scripts/hitl-loop.template.sh +41 -0
- package/.agents/skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/.agents/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/.agents/skills/domain-modeling/SKILL.md +76 -0
- package/.agents/skills/domain-modeling/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/git-worktree-recover/SKILL.md +176 -0
- package/.agents/skills/grill-me/SKILL.md +54 -0
- package/.agents/skills/grill-me/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/grill-with-docs/ADR-FORMAT.md +47 -0
- package/.agents/skills/grill-with-docs/CONTEXT-FORMAT.md +60 -0
- package/.agents/skills/grill-with-docs/SKILL.md +137 -0
- package/.agents/skills/grill-with-docs/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/implement/SKILL.md +15 -0
- package/.agents/skills/implement/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/improve-codebase-architecture/ADR-FORMAT.md +47 -0
- package/.agents/skills/improve-codebase-architecture/CONTEXT-FORMAT.md +60 -0
- package/.agents/skills/improve-codebase-architecture/DEEPENING.md +37 -0
- package/.agents/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
- package/.agents/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +46 -0
- package/.agents/skills/improve-codebase-architecture/LANGUAGE.md +53 -0
- package/.agents/skills/improve-codebase-architecture/SKILL.md +88 -0
- package/.agents/skills/improve-codebase-architecture/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/kit-release/SKILL.md +56 -0
- package/.agents/skills/local-ci/SKILL.md +94 -0
- package/.agents/skills/orchestrate-wave/SKILL.md +261 -0
- package/.agents/skills/orchestrate-wave/references/builder-contract.md +67 -0
- package/.agents/skills/prototype/LOGIC.md +79 -0
- package/.agents/skills/prototype/SKILL.md +30 -0
- package/.agents/skills/prototype/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/prototype/UI.md +112 -0
- package/.agents/skills/research/SKILL.md +12 -0
- package/.agents/skills/research/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/resolving-merge-conflicts/SKILL.md +14 -0
- package/.agents/skills/resolving-merge-conflicts/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/retro/SKILL.md +209 -0
- package/.agents/skills/scale-check/SKILL.md +141 -0
- package/.agents/skills/security-audit/SKILL.md +67 -0
- package/.agents/skills/setup-workflow/SKILL.md +187 -0
- package/.agents/skills/setup-workflow/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/setup-workflow/board-sync.md +111 -0
- package/.agents/skills/setup-workflow/code-review.md +26 -0
- package/.agents/skills/setup-workflow/domain.md +51 -0
- package/.agents/skills/setup-workflow/issue-tracker-github.md +35 -0
- package/.agents/skills/setup-workflow/issue-tracker-gitlab.md +34 -0
- package/.agents/skills/setup-workflow/issue-tracker-local.md +30 -0
- package/.agents/skills/setup-workflow/orchestrate-wave-seed.md +44 -0
- package/.agents/skills/setup-workflow/spec-completeness-seed.md +44 -0
- package/.agents/skills/setup-workflow/spec-self-critique-seed.md +43 -0
- package/.agents/skills/setup-workflow/triage-labels.md +18 -0
- package/.agents/skills/setup-workflow/workflow-overview.md +33 -0
- package/.agents/skills/spec-self-critique/SKILL.md +152 -0
- package/.agents/skills/spec-self-critique/scenarios.md +82 -0
- package/.agents/skills/tdd/SKILL.md +120 -0
- package/.agents/skills/tdd/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/tdd/deep-modules.md +33 -0
- package/.agents/skills/tdd/interface-design.md +31 -0
- package/.agents/skills/tdd/mocking.md +59 -0
- package/.agents/skills/tdd/refactoring.md +10 -0
- package/.agents/skills/tdd/tests.md +61 -0
- package/.agents/skills/to-issues/SKILL.md +325 -0
- package/.agents/skills/to-issues/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/to-prd/PROGRAM-PRD-FORMAT.md +162 -0
- package/.agents/skills/to-prd/SKILL.md +180 -0
- package/.agents/skills/to-prd/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/to-waves/SKILL.md +260 -0
- package/.agents/skills/to-waves/SLICE-METADATA-FORMAT.md +74 -0
- package/.agents/skills/triage/AGENT-BRIEF.md +168 -0
- package/.agents/skills/triage/OUT-OF-SCOPE.md +101 -0
- package/.agents/skills/triage/SKILL.md +122 -0
- package/.agents/skills/triage/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/verify-spike/SKILL.md +39 -0
- package/.agents/skills/wayfinder/SKILL.md +127 -0
- package/.agents/skills/wayfinder/THIRD-PARTY-NOTICES.md +29 -0
- package/.agents/skills/wrapup/SKILL.md +71 -0
- package/.agents/skills/wrapup/SOURCES.txt +6 -0
- package/.agents/skills/zoom-out/SKILL.md +7 -0
- package/.agents/skills/zoom-out/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/hooks/_hook_utils.py +184 -0
- package/.claude/hooks/drift-guard.py +176 -0
- package/.claude/hooks/skill-drift-hint.py +122 -0
- package/.claude/hooks/sync-board-status.py +191 -0
- package/.claude/skills/ask-matt/SKILL.md +139 -0
- package/.claude/skills/ask-matt/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/audit-skills/SKILL.md +145 -0
- package/.claude/skills/board-to-waves/SKILL.md +148 -0
- package/.claude/skills/code-review/SKILL.md +64 -0
- package/.claude/skills/codebase-design/DEEPENING.md +37 -0
- package/.claude/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/.claude/skills/codebase-design/SKILL.md +114 -0
- package/.claude/skills/codebase-design/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/codex-build/SKILL.md +126 -0
- package/.claude/skills/codex-build/THIRD-PARTY-NOTICES.md +35 -0
- package/.claude/skills/codex-review/SKILL.md +145 -0
- package/.claude/skills/codex-review/THIRD-PARTY-NOTICES.md +31 -0
- package/.claude/skills/decision-gate/SKILL.md +67 -0
- package/.claude/skills/diagnose/SKILL.md +136 -0
- package/.claude/skills/diagnose/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/diagnose/scripts/hitl-loop.template.sh +41 -0
- package/.claude/skills/domain-modeling/ADR-FORMAT.md +47 -0
- package/.claude/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/.claude/skills/domain-modeling/SKILL.md +76 -0
- package/.claude/skills/domain-modeling/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/git-guardrails-claude-code/SKILL.md +96 -0
- package/.claude/skills/git-guardrails-claude-code/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +28 -0
- package/.claude/skills/git-worktree-recover/SKILL.md +182 -0
- package/.claude/skills/grill-me/SKILL.md +54 -0
- package/.claude/skills/grill-me/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/grill-me-codex/SKILL.md +158 -0
- package/.claude/skills/grill-me-codex/THIRD-PARTY-NOTICES.md +32 -0
- package/.claude/skills/grill-with-docs/ADR-FORMAT.md +47 -0
- package/.claude/skills/grill-with-docs/CONTEXT-FORMAT.md +60 -0
- package/.claude/skills/grill-with-docs/SKILL.md +137 -0
- package/.claude/skills/grill-with-docs/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/grill-with-docs-codex/ADR-FORMAT.md +47 -0
- package/.claude/skills/grill-with-docs-codex/CONTEXT-FORMAT.md +60 -0
- package/.claude/skills/grill-with-docs-codex/SKILL.md +233 -0
- package/.claude/skills/grill-with-docs-codex/THIRD-PARTY-NOTICES.md +33 -0
- package/.claude/skills/implement/SKILL.md +15 -0
- package/.claude/skills/implement/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/improve-codebase-architecture/ADR-FORMAT.md +47 -0
- package/.claude/skills/improve-codebase-architecture/CONTEXT-FORMAT.md +60 -0
- package/.claude/skills/improve-codebase-architecture/DEEPENING.md +37 -0
- package/.claude/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
- package/.claude/skills/improve-codebase-architecture/INTERFACE-DESIGN.md +46 -0
- package/.claude/skills/improve-codebase-architecture/LANGUAGE.md +53 -0
- package/.claude/skills/improve-codebase-architecture/SKILL.md +88 -0
- package/.claude/skills/improve-codebase-architecture/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/kit-release/SKILL.md +56 -0
- package/.claude/skills/local-ci/SKILL.md +94 -0
- package/.claude/skills/orchestrate-wave/SKILL.md +269 -0
- package/.claude/skills/orchestrate-wave/references/builder-contract.md +67 -0
- package/.claude/skills/prototype/LOGIC.md +79 -0
- package/.claude/skills/prototype/SKILL.md +30 -0
- package/.claude/skills/prototype/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/prototype/UI.md +112 -0
- package/.claude/skills/research/SKILL.md +12 -0
- package/.claude/skills/research/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/resolving-merge-conflicts/SKILL.md +14 -0
- package/.claude/skills/resolving-merge-conflicts/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/retro/SKILL.md +209 -0
- package/.claude/skills/scale-check/SKILL.md +141 -0
- package/.claude/skills/security-audit/SKILL.md +67 -0
- package/.claude/skills/setup-pre-commit/SKILL.md +104 -0
- package/.claude/skills/setup-pre-commit/scripts/pre-commit.template.sh +35 -0
- package/.claude/skills/setup-workflow/SKILL.md +187 -0
- package/.claude/skills/setup-workflow/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/setup-workflow/board-sync.md +111 -0
- package/.claude/skills/setup-workflow/code-review.md +26 -0
- package/.claude/skills/setup-workflow/domain.md +51 -0
- package/.claude/skills/setup-workflow/issue-tracker-github.md +35 -0
- package/.claude/skills/setup-workflow/issue-tracker-gitlab.md +34 -0
- package/.claude/skills/setup-workflow/issue-tracker-local.md +30 -0
- package/.claude/skills/setup-workflow/orchestrate-wave-seed.md +44 -0
- package/.claude/skills/setup-workflow/spec-completeness-seed.md +44 -0
- package/.claude/skills/setup-workflow/spec-self-critique-seed.md +43 -0
- package/.claude/skills/setup-workflow/triage-labels.md +18 -0
- package/.claude/skills/setup-workflow/workflow-overview.md +33 -0
- package/.claude/skills/skill-manifest.json +389 -0
- package/.claude/skills/spec-self-critique/SKILL.md +152 -0
- package/.claude/skills/spec-self-critique/scenarios.md +82 -0
- package/.claude/skills/tdd/SKILL.md +120 -0
- package/.claude/skills/tdd/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/tdd/deep-modules.md +33 -0
- package/.claude/skills/tdd/interface-design.md +31 -0
- package/.claude/skills/tdd/mocking.md +59 -0
- package/.claude/skills/tdd/refactoring.md +10 -0
- package/.claude/skills/tdd/tests.md +61 -0
- package/.claude/skills/to-issues/SKILL.md +325 -0
- package/.claude/skills/to-issues/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/to-prd/PROGRAM-PRD-FORMAT.md +162 -0
- package/.claude/skills/to-prd/SKILL.md +180 -0
- package/.claude/skills/to-prd/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/to-waves/SKILL.md +260 -0
- package/.claude/skills/to-waves/SLICE-METADATA-FORMAT.md +74 -0
- package/.claude/skills/triage/AGENT-BRIEF.md +168 -0
- package/.claude/skills/triage/OUT-OF-SCOPE.md +101 -0
- package/.claude/skills/triage/SKILL.md +122 -0
- package/.claude/skills/triage/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/verify-spike/SKILL.md +39 -0
- package/.claude/skills/wayfinder/SKILL.md +127 -0
- package/.claude/skills/wayfinder/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/wrapup/SKILL.md +81 -0
- package/.claude/skills/wrapup/SOURCES.txt +6 -0
- package/.claude/skills/write-a-skill/GLOSSARY.md +201 -0
- package/.claude/skills/write-a-skill/SKILL.md +88 -0
- package/.claude/skills/write-a-skill/THIRD-PARTY-NOTICES.md +29 -0
- package/.claude/skills/zoom-out/SKILL.md +7 -0
- package/.claude/skills/zoom-out/THIRD-PARTY-NOTICES.md +29 -0
- package/LICENSE +28 -0
- package/PROVENANCE.md +39 -0
- package/README.md +619 -0
- package/agent-workflow-kit.package.json +1939 -0
- package/docs/agents/board-sync.md +71 -0
- package/docs/agents/code-review.md +14 -0
- package/docs/agents/domain.md +7 -0
- package/docs/agents/issue-tracker.md +12 -0
- package/docs/agents/security-audit-runbook-template.md +205 -0
- package/docs/agents/skills/orchestrate-wave.md +13 -0
- package/docs/agents/skills/spec-self-critique.md +18 -0
- package/docs/agents/triage-labels.md +10 -0
- package/docs/agents/wave-anchor-template.md +88 -0
- package/docs/conventions/spec-completeness.md +23 -0
- package/docs/index.html +56 -0
- package/docs/methodology.html +488 -0
- package/docs/methodology.svg +93 -0
- package/docs/workflow.png +0 -0
- package/package.json +40 -0
- package/scripts/anchor_table.py +343 -0
- package/scripts/board-sync.py +1232 -0
- package/scripts/board_config.py +147 -0
- package/scripts/board_fields.py +192 -0
- package/scripts/build-kit.mjs +116 -0
- package/scripts/build-kit.test.mjs +59 -0
- package/scripts/check-kit-staleness.mjs +45 -0
- package/scripts/check-kit-staleness.test.mjs +19 -0
- package/scripts/execute-ready-check.py +516 -0
- package/scripts/issue_deps.py +79 -0
- package/scripts/kit-release.mjs +100 -0
- package/scripts/kit-release.test.mjs +67 -0
- package/scripts/lib/audit-refs.mjs +146 -0
- package/scripts/lib/scrub.mjs +113 -0
- package/scripts/lib/scrub.test.mjs +187 -0
- package/scripts/loc_offender_core.py +196 -0
- package/scripts/loc_offender_gate.py +182 -0
- package/scripts/node_kind.py +68 -0
- package/scripts/portability_profile_scan.py +53 -0
- package/scripts/pr-body-check.py +263 -0
- package/scripts/program_graph.py +125 -0
- package/scripts/program_graph_parse.py +275 -0
- package/scripts/program_graph_validate.py +256 -0
- package/scripts/program_sync.py +160 -0
- package/scripts/release-delta-guard.mjs +96 -0
- package/scripts/release-delta-guard.test.mjs +53 -0
- package/scripts/test_board_sync_create_idempotency.py +104 -0
- package/scripts/test_dist_kit_smoke.py +199 -0
- package/scripts/test_kit_docs_language_census.py +178 -0
- package/scripts/test_skill_code_review_seed.py +89 -0
- package/scripts/test_skill_frontmatter_lint.py +226 -0
- package/scripts/test_skill_gh_lint.py +124 -0
- package/scripts/test_skill_language_census.py +254 -0
- package/scripts/test_skill_portability_lint.py +773 -0
- package/scripts/test_skill_publish_audit.py +300 -0
- package/scripts/test_skill_selfcontainment_lint.py +255 -0
- package/scripts/test_skill_setup_workflow_seeds.py +200 -0
- package/scripts/test_skill_stale_name_lint.py +126 -0
- package/scripts/test_skill_surface_refs.py +300 -0
- package/scripts/test_skill_trailing_artifact_lint.py +71 -0
- package/scripts/wrapup-land.py +573 -0
- package/src/cli.mjs +70 -0
- package/src/commands/diff.mjs +6 -0
- package/src/commands/init.mjs +59 -0
- package/src/commands/uninstall.mjs +43 -0
- package/src/commands/update.mjs +95 -0
- package/src/lib/atomicWrite.mjs +49 -0
- package/src/lib/bundle.mjs +133 -0
- package/src/lib/hash.mjs +13 -0
- package/src/lib/manifest.mjs +58 -0
- package/src/lib/sentinel.mjs +20 -0
- package/src/lib/settings.mjs +23 -0
package/README.md
ADDED
|
@@ -0,0 +1,619 @@
|
|
|
1
|
+
# agent-workflow-kit
|
|
2
|
+
|
|
3
|
+
**A complete shipping loop for coding agents — plan → execute → land → learn.**
|
|
4
|
+
|
|
5
|
+
## Maintainer build
|
|
6
|
+
|
|
7
|
+
The public repository is the source of truth. A fresh clone needs Node 20 or
|
|
8
|
+
newer, Python 3, and no Python packages:
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
npm install --ignore-scripts
|
|
12
|
+
npm test
|
|
13
|
+
npm run kit:build
|
|
14
|
+
npm run kit:staleness
|
|
15
|
+
npm pack --dry-run
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`kit:build` assembles `dist-kit/` only from files in this checkout and writes a
|
|
19
|
+
sha256 manifest. `kit:staleness` compares that fresh manifest with the checked-in
|
|
20
|
+
install manifest. The frozen `v0.9.0` manifest remains under `test/fixtures/` as
|
|
21
|
+
the historical golden baseline; current builds intentionally include later SSOT
|
|
22
|
+
changes.
|
|
23
|
+
|
|
24
|
+
Maintainers prepare releases with `/kit-release`. It derives the shipped delta
|
|
25
|
+
from a fresh manifest, recommends Semver, applies only the confirmed target,
|
|
26
|
+
regenerates the checked-in manifest, and runs the full test and pack gates.
|
|
27
|
+
Landing remains owned by `/wrapup`; publishing the matching npm package and
|
|
28
|
+
GitHub release happens only through the configured post-merge release flow.
|
|
29
|
+
|
|
30
|
+
These are the skills, helper scripts, and conventions one team actually uses to
|
|
31
|
+
take work from a vague idea to a merged, verified PR with [Claude Code] and
|
|
32
|
+
[Codex]. One `npx` command drops them into any repo; `/setup-workflow` wires
|
|
33
|
+
them to your tracker and board. Edit anything — updates never clobber your changes.
|
|
34
|
+
|
|
35
|
+
[Claude Code]: https://claude.com/claude-code
|
|
36
|
+
[Codex]: https://developers.openai.com/codex/cli
|
|
37
|
+
|
|
38
|
+
## Quickstart
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
# from the root of the repo you want to add the workflow to
|
|
42
|
+
npx github:iKon85/agent-workflow-kit init
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
1. **`init`** copies the skills + helper scripts in, and seeds empty
|
|
46
|
+
project-layer stubs. It never overwrites a file you already have.
|
|
47
|
+
2. **Run `/setup-workflow`** once (in Claude Code / Codex). A guided, idempotent
|
|
48
|
+
skill that detects your issue tracker, writes your label + domain + deploy
|
|
49
|
+
config, and — for a GitHub Projects board — discovers the field IDs into a
|
|
50
|
+
board profile. See [Configuration](#configuration).
|
|
51
|
+
3. **Start working.** Trigger skills by name (`/grill-with-docs`, `/tdd`,
|
|
52
|
+
`/wrapup`, …) — the workflow below explains when each one earns its keep.
|
|
53
|
+
Unsure which one fits? Run **`/ask-matt`** — it routes you to the right skill.
|
|
54
|
+
|
|
55
|
+
## The workflow it installs
|
|
56
|
+
|
|
57
|
+
The skills aren't a grab-bag — they're four phases of one loop, entered through a
|
|
58
|
+
single funnel no matter where your work starts. Each phase below names the failure
|
|
59
|
+
mode it removes and the skills that remove it.
|
|
60
|
+
|
|
61
|
+

|
|
62
|
+
|
|
63
|
+
<!--
|
|
64
|
+
The image above is a pre-rendered PNG, not a live Mermaid block, on purpose:
|
|
65
|
+
GitHub's Mermaid renderer clips long node labels, and an <img>-embedded SVG
|
|
66
|
+
can't render Mermaid's foreignObject node text (shows blank). A rasterised PNG
|
|
67
|
+
renders identically everywhere.
|
|
68
|
+
Source of truth: tools/agent-workflow-kit/assets/workflow.mmd
|
|
69
|
+
Regenerate after editing the source:
|
|
70
|
+
npx -y @mermaid-js/mermaid-cli \
|
|
71
|
+
-i tools/agent-workflow-kit/assets/workflow.mmd \
|
|
72
|
+
-o tools/agent-workflow-kit/assets/workflow.png \
|
|
73
|
+
-t dark -b '#0d1117' -s 3
|
|
74
|
+
build-kit.mjs copies assets/workflow.png -> dist-kit/docs/workflow.png.
|
|
75
|
+
-->
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
### 1. Plan — turn a vague idea into shaped, tracked work
|
|
79
|
+
|
|
80
|
+
> *Agents dive into code before the problem is sharp, then build the wrong thing
|
|
81
|
+
> well.* The plan phase makes you earn a clear spec first.
|
|
82
|
+
|
|
83
|
+
**One funnel, many doors, one shape.** There's no single front door. You enter
|
|
84
|
+
wherever your work actually starts — a vague idea, a plan you already wrote, a PRD
|
|
85
|
+
pasted from another tool, a raw issue, or a whole backlog — and every door funnels
|
|
86
|
+
into the *same shaped artefact*: a Draft-PRD that, once sliced, becomes either one
|
|
87
|
+
atomic issue or a wave anchor with child slices. What counts downstream is the
|
|
88
|
+
**shape of the artefact, never where it came from** — so each step can be entered
|
|
89
|
+
cold and *extracts or synthesizes* what's missing instead of assuming an earlier
|
|
90
|
+
step ran. The routing key is just *"is there an issue yet?"*: a loose artefact
|
|
91
|
+
(no issue) enters at `to-prd`; an existing issue or file-bundle enters at
|
|
92
|
+
`to-issues` directly.
|
|
93
|
+
|
|
94
|
+
- **Grill as deep as the work deserves — it's optional.** `grill-me` /
|
|
95
|
+
`grill-with-docs` interrogate the intent (and your domain docs) until the real
|
|
96
|
+
requirement surfaces, instead of latching onto the first framing. Skip it for a
|
|
97
|
+
mechanical change, run a light grill for a normal feature, add `+codex` (below)
|
|
98
|
+
for something high-stakes. Your call, per piece of work.
|
|
99
|
+
- **`to-prd`** turns whatever you bring — idea, plan, external spec — into a short
|
|
100
|
+
Draft-PRD issue, *extracting* the template sections from what already exists. A
|
|
101
|
+
required section it genuinely can't derive becomes an honest **Open points**
|
|
102
|
+
block, never a silent "looks complete" placeholder.
|
|
103
|
+
- **`to-issues`** slices the PRD into tracer-bullet verticals and picks the shape:
|
|
104
|
+
**1 slice → one atomic issue** the PR closes; **≥2 slices → a wave anchor** with
|
|
105
|
+
linked child slices. It re-derives readiness from the artefact itself, so it works
|
|
106
|
+
just as well started straight on a raw issue or file-bundle — any unresolved
|
|
107
|
+
*Open points* travel through as a build-blocking gate (the profile's
|
|
108
|
+
configurable `vorBau` heading, see [Configuration](#configuration)) that never
|
|
109
|
+
vanishes silently.
|
|
110
|
+
- **`board-to-waves`** clusters an existing backlog into themed campaigns when you
|
|
111
|
+
need to *find* the next wave rather than start fresh.
|
|
112
|
+
- **`triage`** keeps the inbox sane with a consistent label vocabulary.
|
|
113
|
+
- **`spec-self-critique`** red-teams your own spec before you commit to building it.
|
|
114
|
+
- **`verify-spike` / `decision-gate` — gate-before-build.** When `to-issues` cuts a
|
|
115
|
+
slice that hinges on an unknown it tags the slice instead of guessing: a single
|
|
116
|
+
yes/no fact against the real lib/runtime/DB runs as a **`verify-spike`** (throwaway
|
|
117
|
+
read-only harness, verdict + proof sunk to the issue); a bounded "which option"
|
|
118
|
+
trade-off or a research gap runs as a **`decision-gate`** (read-only weigh-up,
|
|
119
|
+
options × criteria table, reasoned pick sunk to an ADR/issue). The gate is its own
|
|
120
|
+
slice, sequenced *before* the build slice it blocks — clarify the one open point
|
|
121
|
+
cheaply instead of re-grilling the whole feature; genuinely hard-to-reverse calls
|
|
122
|
+
still escalate up to `+codex`.
|
|
123
|
+
- **`domain-modeling` / `codebase-design` — shared design vocabulary.** When a slice
|
|
124
|
+
is about *shaping* rather than shipping — pinning down the ubiquitous language and
|
|
125
|
+
ADRs (`domain-modeling`) or designing a deep module behind a clean seam
|
|
126
|
+
(`codebase-design`) — these give the grill and the design work a precise, consistent
|
|
127
|
+
vocabulary instead of ad-hoc terms.
|
|
128
|
+
- **`wayfinder` — when the idea is too big for one session.** Charts a foggy,
|
|
129
|
+
multi-session effort as a shared **map** issue with investigation tickets on
|
|
130
|
+
your tracker (native blocking renders the frontier visually), resolved one
|
|
131
|
+
per session until the way to the destination is clear — planning, not doing.
|
|
132
|
+
- **`research`** delegates primary-source reading legwork to a background
|
|
133
|
+
agent; the findings land as a cited Markdown note in the repo.
|
|
134
|
+
|
|
135
|
+
You approve the slice breakdown before anything is published — the funnel never
|
|
136
|
+
publishes behind your back.
|
|
137
|
+
|
|
138
|
+
### 2. Execute — build it right, not just fast
|
|
139
|
+
|
|
140
|
+
> *"Make the tests pass" drifts into untested, sprawling, hard-to-review change.*
|
|
141
|
+
> The execute phase keeps the diff disciplined.
|
|
142
|
+
|
|
143
|
+
- **`tdd`** — a strict red → green → refactor loop; the test is written first
|
|
144
|
+
and must fail for the right reason.
|
|
145
|
+
- **`prototype`** — spike a throwaway when the path is genuinely unclear, so the
|
|
146
|
+
real implementation is informed.
|
|
147
|
+
- **`implement`** — drive a PRD or a set of issues to done: `tdd` at the agreed
|
|
148
|
+
seams, typecheck + single-file tests throughout, the full suite once at the end,
|
|
149
|
+
then a `code-review` pass before it lands.
|
|
150
|
+
|
|
151
|
+
**Two more skills are doors of their own, not funnel steps.** You reach for them
|
|
152
|
+
when the work *starts* broken or tangled rather than from a fresh idea, so they
|
|
153
|
+
enter outside the plan funnel and feed straight into Execute:
|
|
154
|
+
|
|
155
|
+
- **`diagnose`** — a disciplined root-cause hunt for bugs (reproduce → isolate →
|
|
156
|
+
fix → prove), not a guess-and-patch. Entered from a bug or anomaly, never the PRD
|
|
157
|
+
funnel; the fix it lands flows on into Execute.
|
|
158
|
+
- **`zoom-out` / `improve-codebase-architecture`** — step back from the diff to
|
|
159
|
+
the structure when a change is fighting the codebase. A recon stream that either
|
|
160
|
+
becomes a planned slice (back through `to-issues`) or guides a refactor in place.
|
|
161
|
+
|
|
162
|
+
### 3. Land — ship without surprises
|
|
163
|
+
|
|
164
|
+
> *The risky part is the merge: half-checked PRs, broken hooks, context lost at
|
|
165
|
+
> handoff.* The land phase puts mechanical gates in front of the commit.
|
|
166
|
+
|
|
167
|
+
- **`wrapup`** — the land-and-clean closeout: make the branch landable, enforce
|
|
168
|
+
the PR body contract, merge the PR, reconcile the board, sweep merged branches,
|
|
169
|
+
and surface anything still open. It does not replace live verification; verify
|
|
170
|
+
the user outcome before landing.
|
|
171
|
+
- **The pre-commit / pre-push gate fires automatically** — TypeScript, lint, and
|
|
172
|
+
contract guards block a broken commit or push. You don't run a skill here; the
|
|
173
|
+
gate was installed once at setup (`git-guardrails` / `setup-pre-commit`, both
|
|
174
|
+
Claude only, see Configuration) and now guards every Land.
|
|
175
|
+
- **`resolving-merge-conflicts`** — a disciplined loop for an in-progress
|
|
176
|
+
merge/rebase conflict: understand each side's intent from history/PRs, preserve
|
|
177
|
+
both where possible, always resolve (never `--abort`), then re-run the checks.
|
|
178
|
+
- **Helper scripts** — `pr-body-check.py`, `execute-ready-check.py`, and
|
|
179
|
+
`board-sync.py` keep the PR and the issue tracker honest (see Configuration).
|
|
180
|
+
|
|
181
|
+
### 4. Learn — compound the lessons instead of repeating them
|
|
182
|
+
|
|
183
|
+
> *The same mistake recurs because nothing captured it.* The learn phase turns
|
|
184
|
+
> friction into config.
|
|
185
|
+
|
|
186
|
+
- **`retro`** — an in-session post-mortem that proposes concrete changes to your
|
|
187
|
+
rules, skills, or hooks, each with per-patch approval.
|
|
188
|
+
- **`write-a-skill`** (Claude only) — turn a move you keep repeating into a
|
|
189
|
+
reusable skill.
|
|
190
|
+
|
|
191
|
+
### Optional: cross-model review (via Codex)
|
|
192
|
+
|
|
193
|
+
An independent second model is a cheap way to catch what one model rationalizes.
|
|
194
|
+
**`grill-me-codex` / `grill-with-docs-codex`** run the grill through Codex,
|
|
195
|
+
**`codex-review`** gets a second-opinion plan review, and **`codex-build`**
|
|
196
|
+
flips the roles for an optional Act 3 (Codex implements the frozen spec in a
|
|
197
|
+
bounded workspace-write sandbox, Claude verifies the diff and proof). All four
|
|
198
|
+
are Claude only (invoked from Claude Code, which shells out to the Codex CLI)
|
|
199
|
+
and need the Codex CLI installed.
|
|
200
|
+
|
|
201
|
+
### The altitude model
|
|
202
|
+
|
|
203
|
+
The four phases above are what you *do*. Underneath them sits a shape for
|
|
204
|
+
*what you're doing it to* — a plan travels through four altitudes, and each
|
|
205
|
+
hands a well-defined object to the level below:
|
|
206
|
+
|
|
207
|
+
| Altitude | What it is | Artefact |
|
|
208
|
+
|---|---|---|
|
|
209
|
+
| **Program** | The whole undertaking, described once with a wave plan attached. | one PRD issue |
|
|
210
|
+
| **Phase** | An acceptance bracket around a handful of waves. Optional. | a board field |
|
|
211
|
+
| **Wave** | The working unit: one outcome, a few slices, one gate — exactly the wave you already build with the flow above. | one anchor issue |
|
|
212
|
+
| **Slice** | One build session, one pull request, one visible result. | one sub-issue |
|
|
213
|
+
|
|
214
|
+
Two roads lead to the same wave. **Top-down:** `scale-check` names the size in
|
|
215
|
+
a few plain questions; a big undertaking gets grilled once into a Program PRD
|
|
216
|
+
with a wave plan, and `to-waves` unfolds it into named waves after you approve
|
|
217
|
+
a full preview in chat — zero board writes until you say yes. **Bottom-up:**
|
|
218
|
+
`board-to-waves` clusters loose issues into a wave candidate, which earns a
|
|
219
|
+
real number only when you promote it. Either road lands in the *identical*
|
|
220
|
+
wave anchor plus slice sub-issues, built through the same `tdd` → `wrapup` →
|
|
221
|
+
`retro` spine as every other wave.
|
|
222
|
+
|
|
223
|
+
When the slices are file-disjoint and their specs are locked, **`orchestrate-wave`**
|
|
224
|
+
lands the whole anchor end-to-end — often AFK: it dispatches an implementer per
|
|
225
|
+
slice into its own worktree, integrates serially, verifies centrally, and lands
|
|
226
|
+
the wave. It's the execute-and-land node of the wave ladder (`scale-check` →
|
|
227
|
+
`to-waves` / `board-to-waves` → `orchestrate-wave`); a single slice still just
|
|
228
|
+
goes to `tdd`.
|
|
229
|
+
|
|
230
|
+

|
|
231
|
+
|
|
232
|
+
The full walkthrough — every entry point, the build-layer skills, and the six
|
|
233
|
+
mechanics that keep a multi-wave plan honest (gates, drift propagation, the
|
|
234
|
+
revision loop, `program-sync`, and counted completeness) — lives on one page:
|
|
235
|
+
**[read the methodology →](https://ikon85.github.io/agent-workflow-kit/methodology.html)**
|
|
236
|
+
(also shipped as `docs/methodology.html` in your install, so it works offline too).
|
|
237
|
+
|
|
238
|
+
## Configuration
|
|
239
|
+
|
|
240
|
+
The skills ship the *how*; your repo supplies the *what*. `init` only lays down
|
|
241
|
+
empty stubs — **`/setup-workflow` fills them**. It's a guided, idempotent skill
|
|
242
|
+
(not a script): it explores your repo, confirms with you section by section, and
|
|
243
|
+
writes:
|
|
244
|
+
|
|
245
|
+
| It writes | So that |
|
|
246
|
+
|---|---|
|
|
247
|
+
| `docs/agents/issue-tracker.md` | `to-issues` / `triage` know whether to call `gh`, `glab`, or follow your flow |
|
|
248
|
+
| `docs/agents/triage-labels.md` | triage uses *your* label vocabulary |
|
|
249
|
+
| `docs/agents/domain.md` | the domain skills find your `CONTEXT.md` / ADR layout |
|
|
250
|
+
| `docs/agents/board-sync.md` | the board scripts get your GitHub Projects field IDs (the **board profile**) |
|
|
251
|
+
| `## Agent skills` + `## Prod` in `CLAUDE.md` / `AGENTS.md` | the agent knows your skills and deploy target |
|
|
252
|
+
|
|
253
|
+
Each generated file carries a `setup-workflow` sentinel on its first line, so a
|
|
254
|
+
re-run only fills what's missing and **never overwrites content you've filled in**.
|
|
255
|
+
|
|
256
|
+
Two more one-time skills harden the repo when you adopt the kit — both **Claude
|
|
257
|
+
only**: **`git-guardrails`** installs the secret / branch / broken-build
|
|
258
|
+
guardrails, and **`setup-pre-commit`** wires the pre-commit gate. Run them once
|
|
259
|
+
— afterwards the gate fires automatically on every commit and push (see the
|
|
260
|
+
Land phase above).
|
|
261
|
+
|
|
262
|
+
### The board profile
|
|
263
|
+
|
|
264
|
+
The board helper scripts carry **no hard-coded IDs**. They read everything
|
|
265
|
+
board-specific from a single fenced `json` block in `docs/agents/board-sync.md`,
|
|
266
|
+
marked `<!-- board-sync:profile -->`:
|
|
267
|
+
|
|
268
|
+
```json
|
|
269
|
+
{
|
|
270
|
+
"repo": "<owner>/<repo>",
|
|
271
|
+
"project": { "number": 1, "owner": "<owner>", "nodeId": "<project-node-id>" },
|
|
272
|
+
"fields": {
|
|
273
|
+
"status": {
|
|
274
|
+
"id": "<status-field-id>",
|
|
275
|
+
"options": { "Spec": "<option-id>", "In Progress": "<option-id>", "Done": "<option-id>" },
|
|
276
|
+
"roles": { "spec": "Spec", "inProgress": "In Progress", "done": "Done" }
|
|
277
|
+
},
|
|
278
|
+
"wave": "<wave-field-id>",
|
|
279
|
+
"cluster": "<cluster-field-id>",
|
|
280
|
+
"specPath": "<field-id>",
|
|
281
|
+
"planPath": "<field-id>"
|
|
282
|
+
},
|
|
283
|
+
"labels": {
|
|
284
|
+
"readyForAgent": "ready-for-agent",
|
|
285
|
+
"typePrefix": "type:",
|
|
286
|
+
"clusterType": "type:cluster",
|
|
287
|
+
"waveStub": "wave-stub"
|
|
288
|
+
},
|
|
289
|
+
"branchPrefixes": ["feat", "fix", "chore", "docs"],
|
|
290
|
+
"prMarkers": { "partOf": "Part of", "retroMarker": "**Retro:**", "retroValues": ["ran", "skipped"] },
|
|
291
|
+
"headings": { "vorBau": "Clarify Before Build" }
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
`/setup-workflow` discovers these values for you from `gh project field-list`;
|
|
296
|
+
you rarely touch this by hand. Point a script at an alternate profile with the
|
|
297
|
+
`BOARD_SYNC_PROFILE` environment variable. Labels, branch prefixes, and headings
|
|
298
|
+
are *yours* to rename — the scripts read whatever the profile says.
|
|
299
|
+
|
|
300
|
+
Status stage names are yours too: scripts and skills address stages by semantic
|
|
301
|
+
**role** (`fields.status.roles`: `idea/triaged/spec/inProgress/review/done` →
|
|
302
|
+
your option names, e.g. `board-sync.py add --status-role spec`), so a board in
|
|
303
|
+
any language works — map each role once, rename an option with one profile edit.
|
|
304
|
+
|
|
305
|
+
### What's yours vs. the kit's
|
|
306
|
+
|
|
307
|
+
`init` records a sha256 of every file it installs. That's the line between the
|
|
308
|
+
two: **edit any skill or script freely** — `update` detects your edits and backs
|
|
309
|
+
them up rather than clobbering them. Your **project layer** (`docs/agents/*`, the
|
|
310
|
+
board profile, `CLAUDE.md`) is created once and never touched by `update`.
|
|
311
|
+
|
|
312
|
+
## Updating & removing
|
|
313
|
+
|
|
314
|
+
```sh
|
|
315
|
+
npx github:iKon85/agent-workflow-kit diff # preview an update (dry run, writes nothing)
|
|
316
|
+
npx github:iKon85/agent-workflow-kit update # apply it
|
|
317
|
+
npx github:iKon85/agent-workflow-kit uninstall # remove kit-installed files
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
`update` is a three-way reconcile against the hashes `init` recorded:
|
|
321
|
+
|
|
322
|
+
- a file you **didn't** touch fast-forwards to the new version;
|
|
323
|
+
- a file you **did** edit is kept — the incoming version is backed up with a
|
|
324
|
+
timestamp and a diff is printed, never silently overwritten;
|
|
325
|
+
- a file removed upstream is offered for deletion (a hook still referenced by your
|
|
326
|
+
`settings.json` is kept regardless);
|
|
327
|
+
- new skills are added.
|
|
328
|
+
|
|
329
|
+
`uninstall` removes what the kit installed and retains anything you edited or
|
|
330
|
+
still reference. Flags: `--force` (overwrite pre-existing files on `init`),
|
|
331
|
+
`--yes` / `-y` (non-interactive).
|
|
332
|
+
|
|
333
|
+
## Release notes
|
|
334
|
+
|
|
335
|
+
### 0.10.0
|
|
336
|
+
|
|
337
|
+
- added: `.agents/skills/kit-release/SKILL.md`
|
|
338
|
+
- added: `.claude/skills/kit-release/SKILL.md`
|
|
339
|
+
- added: `scripts/kit-release.mjs`
|
|
340
|
+
- added: `scripts/release-delta-guard.mjs`
|
|
341
|
+
- changed: `.agents/skills/setup-workflow/workflow-overview.md`
|
|
342
|
+
- changed: `.claude/skills/setup-workflow/workflow-overview.md`
|
|
343
|
+
|
|
344
|
+
### 0.9.0
|
|
345
|
+
|
|
346
|
+
- Re-syncs the vendored Chase AI `-codex` skills to upstream HEAD (fe37a70):
|
|
347
|
+
every `codex exec`/`resume` round now echoes the active model before Round 1
|
|
348
|
+
and runs under a 10-minute overall ceiling in addition to the existing 90s
|
|
349
|
+
liveness probe.
|
|
350
|
+
- New vendored skill: **`codex-build`** (optional Act 3 — Codex implements a
|
|
351
|
+
frozen spec, Claude verifies the diff and proof). Locally adapted: upstream's
|
|
352
|
+
`--yolo` full-access sandbox is replaced by a bounded workspace-write sandbox
|
|
353
|
+
with a declared allowed-write set enforced after every round.
|
|
354
|
+
- Aligns Act 1 of `grill-me-codex` / `grill-with-docs-codex` with the v1.1.0
|
|
355
|
+
grill skills (facts-vs-decisions rule + confirmation gate).
|
|
356
|
+
- Bumps the kit metadata to `0.9.0`. After this PR is merged, publish the
|
|
357
|
+
matching GitHub release/tag as a separate release step.
|
|
358
|
+
|
|
359
|
+
### 0.8.0
|
|
360
|
+
|
|
361
|
+
- Re-syncs the vendored Matt Pocock skills to upstream **v1.1.0** (fork-and-own:
|
|
362
|
+
selective merge; local folder names kept for the upstream-renamed skills —
|
|
363
|
+
`to-prd` = upstream `to-spec`, `to-issues` = upstream `to-tickets`).
|
|
364
|
+
- Two new vendored skills: **`wayfinder`** (chart a huge, foggy effort as a
|
|
365
|
+
shared map of investigation tickets on your tracker, resolved one per session)
|
|
366
|
+
and **`research`** (delegate primary-source reading to a background agent;
|
|
367
|
+
findings land as a cited Markdown note in the repo).
|
|
368
|
+
- Backports the upstream wins: the negation failure mode in `write-a-skill`,
|
|
369
|
+
the facts-vs-decisions rule + confirmation gate in `grill-me` /
|
|
370
|
+
`grill-with-docs`, and a wide-refactor (expand–contract) section in
|
|
371
|
+
`to-issues`.
|
|
372
|
+
- `setup-workflow`'s issue-tracker templates gain **Wayfinding operations**
|
|
373
|
+
sections (map/ticket/blocking/frontier per tracker) that `wayfinder` consults.
|
|
374
|
+
- Bumps the kit metadata to `0.8.0`. After this PR is merged, publish the
|
|
375
|
+
matching GitHub release/tag as a separate release step.
|
|
376
|
+
|
|
377
|
+
### 0.7.0
|
|
378
|
+
|
|
379
|
+
- Rounds out the execute/land/learn line with five new skills —
|
|
380
|
+
`orchestrate-wave` (AFK wave landing), `local-ci` (pre-PR local gate),
|
|
381
|
+
`git-worktree-recover`, `audit-skills` (anti-drift learn step), and
|
|
382
|
+
`security-audit` (two-model audit + runbook template) — plus the
|
|
383
|
+
`skill-drift-hint.py` SessionStart hook.
|
|
384
|
+
- English-normalizes the wave-anchor template and hardens
|
|
385
|
+
`execute-ready-check.py` heading detection. (Full notes: GitHub release v0.7.0.)
|
|
386
|
+
|
|
387
|
+
### 0.6.2
|
|
388
|
+
|
|
389
|
+
- Profile-driven board-status **roles**: `fields.status.roles` maps semantic
|
|
390
|
+
stages to your board's own option names (any language); `board-sync.py`
|
|
391
|
+
gains `--status-role`; the status field is matched by ID.
|
|
392
|
+
(Full notes: GitHub release v0.6.2.)
|
|
393
|
+
|
|
394
|
+
### 0.6.1
|
|
395
|
+
|
|
396
|
+
- Routing-doctrine sync for the published skills (`wrapup`,
|
|
397
|
+
`codex-adapter-sync`, wave-anchor model placeholders) — mechanical plumbing
|
|
398
|
+
routes to the cheap tier, judgment stays on the main thread.
|
|
399
|
+
(Full notes: GitHub release v0.6.1.)
|
|
400
|
+
|
|
401
|
+
### 0.6.0
|
|
402
|
+
|
|
403
|
+
- Adds the **Program route**, a top-down altitude above the existing feature
|
|
404
|
+
funnel for greenfield / multi-wave work: `scale-check` (a plain-language
|
|
405
|
+
router — 3–6 questions to a Program / Feature / Direct-Slice / Bug verdict)
|
|
406
|
+
and `to-waves` (unfolds a Program-PRD's Wellenplan into named wave stubs +
|
|
407
|
+
slice leaves after a chat preview gate — graph-validated, counted, batch-
|
|
408
|
+
stamped Wave/Phase fields, idempotent/crash-recoverable re-run, and an adopt
|
|
409
|
+
path for issues a prior bottom-up grooming pass already created).
|
|
410
|
+
- Ships `board-sync.py validate-graph`, a pure, zero-write Program-Graph
|
|
411
|
+
preflight (cycles, cross-wave backward refs, gate-slice structural-suspicion
|
|
412
|
+
warnings, capacity, phase-option, and revision-coherence checks, plus two
|
|
413
|
+
counted completeness axes — scope coverage and the rollup chain) and
|
|
414
|
+
`program-sync`, which regenerates a Program-PRD's Wellenplan status column
|
|
415
|
+
from the board (its own grammar, alongside the existing `anchor-sync`).
|
|
416
|
+
- Adds `stamp-batch` (alias-batched GraphQL field writes for N items' Wave/
|
|
417
|
+
Phase fields in one request, chunked, with a per-alias failure report and a
|
|
418
|
+
repair command), `field-value` (reads a project field's current value —
|
|
419
|
+
the `promote` mismatch-guard's read side), and a Program-PRD refusal on
|
|
420
|
+
`promote` (a Program-PRD is never a promotion target).
|
|
421
|
+
- `execute-ready-check.py` now classifies by an explicit node kind (program /
|
|
422
|
+
wave-stub / anchor / leaf) instead of a single children+parent heuristic, so
|
|
423
|
+
a Wave-Anchor parented by a Program-PRD is no longer misjudged.
|
|
424
|
+
- `to-prd`, `to-issues`, and `board-to-waves` gain the matching Program-route
|
|
425
|
+
deltas: a third `mode=program` PRD shape, a `wave-stub`-label discriminator
|
|
426
|
+
so a not-yet-promoted wave stub is a valid Hard-Stop exception, and a
|
|
427
|
+
`board-to-waves` splitter that escalates an oversized candidate to the
|
|
428
|
+
Program route instead of spraying it into feature-sized stubs.
|
|
429
|
+
- Adds the optional `fields.phase` / `labels.programType` board-profile keys
|
|
430
|
+
(`fields.phase` mirrors `fields.status`'s `{id, options}` shape; a profile
|
|
431
|
+
without either key keeps loading unchanged) and documents the Phase-field
|
|
432
|
+
creation command plus two saved Views (`Program`, `Active Wave`) as one-time
|
|
433
|
+
manual setup steps `/setup-workflow` cannot provision by itself.
|
|
434
|
+
- Ships the kit's methodology documentation: a self-contained
|
|
435
|
+
`docs/methodology.html` walkthrough of the full altitude model (Program →
|
|
436
|
+
Phase → Wave → Slice) and both routes, plus a README methodology chapter
|
|
437
|
+
with a hand-designed static SVG diagram.
|
|
438
|
+
- Bumps the kit metadata to `0.6.0`. After this PR is merged, publish the
|
|
439
|
+
matching GitHub release/tag as a separate release step.
|
|
440
|
+
|
|
441
|
+
### 0.5.0
|
|
442
|
+
|
|
443
|
+
- Normalizes every published skill body to English across Claude and Codex
|
|
444
|
+
surfaces, while keeping only audited contract literals and quoted user-input
|
|
445
|
+
examples in their original language.
|
|
446
|
+
- Adds a mechanical language census for the maintainer source repo, proving
|
|
447
|
+
**30 of 30** `publish:true` skills scan clean and documenting the small
|
|
448
|
+
allowlist for deliberate literals.
|
|
449
|
+
- Switches `setup-workflow`'s fresh-install defaults and the README board-profile
|
|
450
|
+
example to English (`Clarify Before Build`, `ran` / `skipped`) without
|
|
451
|
+
rewriting a consumer's already-filled project profile.
|
|
452
|
+
- Hardens skill frontmatter and descriptions: NOT clauses stay inside the
|
|
453
|
+
rendered description budget, plain YAML ` #` truncation is guarded, and the
|
|
454
|
+
`board-to-waves` / `to-prd` descriptions are fully parseable.
|
|
455
|
+
- Carries the post-audit authoring fixes that affect shipped skills, including a
|
|
456
|
+
portable `retro` memory path, clearer `verify-spike` / `decision-gate`
|
|
457
|
+
fallback rules, and tighter `widget-conventions` / `spec-self-critique`
|
|
458
|
+
boundaries.
|
|
459
|
+
- Bumps the kit metadata to `0.5.0`. After this PR is merged, publish the
|
|
460
|
+
matching GitHub release/tag as a separate release step.
|
|
461
|
+
|
|
462
|
+
### 0.4.0
|
|
463
|
+
|
|
464
|
+
- Adds the model-invoked `code-review` skill (two-axis Standards×Spec review,
|
|
465
|
+
Fowler smell baseline, merge-base preflight) on both surfaces; the `ask-matt`
|
|
466
|
+
router and `implement` now point at real published ware.
|
|
467
|
+
- Codex-surface skills no longer escalate to Claude-only `-codex` targets, and
|
|
468
|
+
the router marks Claude-only skills explicitly, so a Codex consumer is never
|
|
469
|
+
routed to an unreachable skill.
|
|
470
|
+
- New guards: same-surface skill-reference existence, project-private mirror
|
|
471
|
+
structure-parity, a hardcoded-profile-value scan, and a build-staging vs
|
|
472
|
+
published-repo staleness check (`kit:staleness`).
|
|
473
|
+
- Hardened scripts: `board-sync.py` create surfaces the issue number + a repair
|
|
474
|
+
command on partial failure; `anchor-sync` fails loud on a header mismatch
|
|
475
|
+
instead of duplicating rows; the CLI writes its manifest atomically.
|
|
476
|
+
- Profile-driven prose: PR/issue markers and template headings reference the
|
|
477
|
+
board-profile keys instead of hardcoded literals, so a consumer's renamed
|
|
478
|
+
values pass their own checks; the seed and this README's profile example match.
|
|
479
|
+
- Onboarding: the seeded workflow overview lists every entry point including the
|
|
480
|
+
`ask-matt` router and the gate skills; Claude-only skills and hooks are marked.
|
|
481
|
+
- Bumps the kit metadata to `0.4.0`. After this PR is merged, publish the
|
|
482
|
+
matching GitHub release/tag as a separate release step.
|
|
483
|
+
|
|
484
|
+
### 0.3.5
|
|
485
|
+
|
|
486
|
+
- Adds the `to-issues` member-reconcile rule for promoting `board-to-waves`
|
|
487
|
+
stubs that already carry native Member sub-issues, so old members are reused
|
|
488
|
+
or explicitly unlinked/closed instead of creating duplicate slice children.
|
|
489
|
+
- Ships `board-sync.py unlink`, a parent-checked and idempotent helper for
|
|
490
|
+
removing superseded sub-issue links without touching foreign parents.
|
|
491
|
+
- Tightens promoted-anchor labels by stripping `ready-for-agent` alongside
|
|
492
|
+
`wave-stub`, so an Anker is not accidentally treated as a buildable leaf.
|
|
493
|
+
- Bumps the kit metadata to `0.3.5`. After this PR is merged, publish the
|
|
494
|
+
matching GitHub release/tag as a separate release step.
|
|
495
|
+
|
|
496
|
+
### 0.3.4
|
|
497
|
+
|
|
498
|
+
- Ships `board-sync.py anchor-sync` plus the `anchor_table.py` helper, so wave
|
|
499
|
+
anchors can regenerate Slices-table Status/Branch cells from the board instead
|
|
500
|
+
of relying on hand-ticked rows.
|
|
501
|
+
- Updates `wrapup` and the wave-anchor template to use the new anchor-sync flow,
|
|
502
|
+
including dry-run review, stable plan-column preservation, and appended rows for
|
|
503
|
+
mid-wave split sub-issues.
|
|
504
|
+
- Extends `setup-workflow` to seed a generic `## Workflow` overview in
|
|
505
|
+
`CLAUDE.md` / `AGENTS.md` when the consumer repo does not already have one.
|
|
506
|
+
- Tightens planning guidance: grill skills now point to a code-derived impact
|
|
507
|
+
census when a project provides one, and `retro` uses agent-neutral wording for
|
|
508
|
+
Claude/Codex surfaces while raising the memory-sweep trigger to 65 active files.
|
|
509
|
+
- Bumps the kit metadata to `0.3.4`. After this PR is merged, publish the
|
|
510
|
+
matching GitHub release/tag as a separate release step.
|
|
511
|
+
|
|
512
|
+
### 0.3.3
|
|
513
|
+
|
|
514
|
+
- Adds a counted-completeness planning guard to `grill-me`,
|
|
515
|
+
`grill-with-docs`, and their Codex review variants. Cross-cutting changes now
|
|
516
|
+
get classified before plan lock as either a grep-able pattern rollout or a
|
|
517
|
+
concept rollout that needs a code-derived surface matrix.
|
|
518
|
+
- Makes "complete everywhere" claims evidence-based: plans should carry a fresh
|
|
519
|
+
census, guard test, or `X of Y` surface count instead of relying on memory.
|
|
520
|
+
This is aimed at avoiding partial migrations that only look complete from the
|
|
521
|
+
happy-path slice.
|
|
522
|
+
- Bumps the kit metadata to `0.3.3`. After this PR is merged, publish the
|
|
523
|
+
matching GitHub release/tag as a separate release step.
|
|
524
|
+
|
|
525
|
+
### 0.3.2
|
|
526
|
+
|
|
527
|
+
- Publishes the latest workflow guidance for `retro`, `to-issues`, and
|
|
528
|
+
`grill-with-docs-codex`: generalize retro patches to the underlying class,
|
|
529
|
+
prove absence-before-build before cutting new build slices, require gate
|
|
530
|
+
discipline, and track deferred phases in multi-phase plans.
|
|
531
|
+
- Quotes YAML-sensitive Codex skill descriptions so Codex frontmatter validation
|
|
532
|
+
accepts descriptions with commas, colons, arrows, and quoted trigger phrases.
|
|
533
|
+
- Bumps the kit metadata to `0.3.2`. After this PR is merged, publish the
|
|
534
|
+
matching GitHub release/tag as a separate release step.
|
|
535
|
+
|
|
536
|
+
### 0.3.1
|
|
537
|
+
|
|
538
|
+
- Uses run-scoped Codex temp output paths for cross-model review skills, so
|
|
539
|
+
parallel grill/review sessions do not collide on shared `/tmp` files.
|
|
540
|
+
- Raises the `retro` memory-sweep trigger to 60 active files to avoid false
|
|
541
|
+
positives on healthy, content-checked memory sets.
|
|
542
|
+
- Bumps the kit metadata to `0.3.1`. After this PR is merged, publish the
|
|
543
|
+
matching GitHub release/tag as a separate release step.
|
|
544
|
+
|
|
545
|
+
## What's in the box
|
|
546
|
+
|
|
547
|
+
**41 skills** (Router: ask-matt — "which skill/flow fits?" · Plan: grill-me,
|
|
548
|
+
grill-with-docs, to-prd, to-issues, board-to-waves, triage, spec-self-critique,
|
|
549
|
+
verify-spike, decision-gate, scale-check, to-waves, wayfinder, research · Execute: tdd, prototype, implement, orchestrate-wave ·
|
|
550
|
+
Design/diagnose/refactor streams: diagnose, zoom-out,
|
|
551
|
+
improve-codebase-architecture, codebase-design, domain-modeling, security-audit · Land: wrapup,
|
|
552
|
+
resolving-merge-conflicts, code-review, local-ci, git-worktree-recover, kit-release · Learn: retro, audit-skills, write-a-skill · Setup:
|
|
553
|
+
setup-workflow, git-guardrails, setup-pre-commit · Codex cross-model: grill-me-codex,
|
|
554
|
+
grill-with-docs-codex, codex-review, codex-build),
|
|
555
|
+
installed for both surfaces — `.claude/skills`
|
|
556
|
+
(Claude Code) and `.agents/skills` (Codex) — plus `codex-adapter-sync`
|
|
557
|
+
(Codex-only: keeps the `.agents/skills` mirror in sync with the `.claude/skills`
|
|
558
|
+
source for dual-surface repos). **Claude only** (no `.agents/skills` mirror —
|
|
559
|
+
skip these on a Codex-first repo): `write-a-skill`, `git-guardrails-claude-code`,
|
|
560
|
+
`setup-pre-commit`, `grill-me-codex`, `grill-with-docs-codex`, `codex-review`,
|
|
561
|
+
`codex-build`.
|
|
562
|
+
|
|
563
|
+
**Helper scripts** — `board_config.py` (profile loader), `board-sync.py`,
|
|
564
|
+
`execute-ready-check.py`, `pr-body-check.py`, the handoff drift-guard, the
|
|
565
|
+
skill-drift-hint and board-status hooks (Claude only — wired via
|
|
566
|
+
`.claude/settings.json`, no Codex mirror), the opt-in LoC-offender gate, and the
|
|
567
|
+
wave-anchor + security-audit-runbook templates.
|
|
568
|
+
|
|
569
|
+
This kit deliberately ships without a test suite (a leaner `npx` payload) — the
|
|
570
|
+
scripts and skills are tested in the maintainer's private source repo they're
|
|
571
|
+
generated from. Customizing a guard? Add your own tests against the copy in
|
|
572
|
+
your repo.
|
|
573
|
+
|
|
574
|
+
## Requirements
|
|
575
|
+
|
|
576
|
+
- **Node ≥ 20** to run the installer.
|
|
577
|
+
- **Claude Code** or **Codex** to run the skills.
|
|
578
|
+
- **GitHub `gh` CLI** for the board scripts (optional — skip if you don't use a
|
|
579
|
+
GitHub Projects board).
|
|
580
|
+
- **Codex CLI** for the `-codex` review skills (optional).
|
|
581
|
+
|
|
582
|
+
## Credits
|
|
583
|
+
|
|
584
|
+
- Many skills are adapted from **Matt Pocock's skills**
|
|
585
|
+
(https://github.com/mattpocock/skills), MIT — each carries a
|
|
586
|
+
`THIRD-PARTY-NOTICES.md` with its upstream path.
|
|
587
|
+
- The `grill-*-codex` / `codex-review` / `codex-build` cross-model skills are by
|
|
588
|
+
**Chase AI** (https://github.com/chaseai-yt/grill-me-codex), MIT.
|
|
589
|
+
- `retro`, `wrapup`, `spec-self-critique`, `board-to-waves`, `verify-spike`,
|
|
590
|
+
`decision-gate`, `codex-adapter-sync`, `code-review`, `orchestrate-wave` are original work.
|
|
591
|
+
|
|
592
|
+
Full origin + license of every skill is in [PROVENANCE.md](PROVENANCE.md).
|
|
593
|
+
|
|
594
|
+
## License
|
|
595
|
+
|
|
596
|
+
MIT — see [LICENSE](LICENSE).
|
|
597
|
+
|
|
598
|
+
## A note on language
|
|
599
|
+
|
|
600
|
+
Every published skill's prose is English — a mechanical
|
|
601
|
+
census (`scripts/test_skill_language_census.py`) proves it: all publish:true
|
|
602
|
+
skills scan clean, with an explicit, auditable allowlist for the handful of
|
|
603
|
+
deliberate exceptions — quoted user-input trigger phrases, a bilingual PRD
|
|
604
|
+
example block, and a few cross-skill contract literals (board status values,
|
|
605
|
+
heading names) that other skills or the board tooling consume verbatim.
|
|
606
|
+
|
|
607
|
+
These conventions grew up in a German-speaking project, so the mechanics
|
|
608
|
+
still default to a project-adoptable language stance: seed defaults (e.g.
|
|
609
|
+
`setup-workflow`'s scaffolded convention files) are English, and a project
|
|
610
|
+
layer or filled-in convention file may be in whatever language that
|
|
611
|
+
project's team works in — the skills themselves don't hardcode a language,
|
|
612
|
+
they read from the project layer. Project-private skills (not shipped in
|
|
613
|
+
this kit) may stay in their home project's language; that's out of scope
|
|
614
|
+
for the kit's own English-first bar.
|
|
615
|
+
|
|
616
|
+
New publish-candidate skills are English-first: write new skill prose in
|
|
617
|
+
English from the start (see `write-a-skill`), even if the authoring
|
|
618
|
+
project's own working language is something else — matching the state this
|
|
619
|
+
census now proves for every existing published skill.
|