contract-driven-delivery 1.12.0 → 1.16.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/CHANGELOG.md +133 -0
- package/README.md +23 -10
- package/assets/CLAUDE.template.md +4 -12
- package/assets/agents/backend-engineer.md +4 -25
- package/assets/agents/change-classifier.md +85 -25
- package/assets/agents/ci-cd-gatekeeper.md +4 -25
- package/assets/agents/contract-reviewer.md +4 -25
- package/assets/agents/dependency-security-reviewer.md +4 -24
- package/assets/agents/e2e-resilience-engineer.md +4 -25
- package/assets/agents/frontend-engineer.md +4 -25
- package/assets/agents/monkey-test-engineer.md +4 -25
- package/assets/agents/qa-reviewer.md +4 -25
- package/assets/agents/repo-context-scanner.md +4 -24
- package/assets/agents/spec-architect.md +4 -25
- package/assets/agents/spec-drift-auditor.md +4 -24
- package/assets/agents/stress-soak-engineer.md +4 -25
- package/assets/agents/test-strategist.md +4 -25
- package/assets/agents/ui-ux-reviewer.md +4 -24
- package/assets/agents/visual-reviewer.md +4 -24
- package/assets/cdd/model-policy.json +20 -1
- package/assets/hooks/post-tool-use-files-read.sh +55 -0
- package/assets/skills/cdd-new/SKILL.md +180 -177
- package/assets/skills/cdd-resume/SKILL.md +1 -1
- package/assets/skills/contract-driven-delivery/references/agent-log-protocol.md +117 -0
- package/assets/specs-templates/context-manifest.md +8 -13
- package/assets/specs-templates/tasks.md +2 -0
- package/dist/cli/index.js +1200 -645
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,138 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.16.0] - 2026-04-30
|
|
4
|
+
|
|
5
|
+
### Visual narration: per-agent stage badges
|
|
6
|
+
|
|
7
|
+
- `/cdd-new` skill now instructs main Claude to prefix every agent
|
|
8
|
+
invocation announcement with a colored emoji badge tagging the role and
|
|
9
|
+
stage. Non-engineer users can scan the chat stream and see "we're at
|
|
10
|
+
review now, not implementation" without reading prompts.
|
|
11
|
+
- Six color buckets:
|
|
12
|
+
- 🟣 decision (classifier, architect — opus-class)
|
|
13
|
+
- 🔵 implementation (backend, frontend, ci-cd, sonnet-class)
|
|
14
|
+
- 🟡 test planning (test-strategist)
|
|
15
|
+
- 🟠 heavy testing (e2e, monkey, stress — Tier 0–1 only; orange = scope warning)
|
|
16
|
+
- 🟢 review (read-only verdicts)
|
|
17
|
+
- ⚫ audits & scans (background, read-only)
|
|
18
|
+
- `/cdd-resume` references the same badge table so resumed flows look
|
|
19
|
+
consistent.
|
|
20
|
+
|
|
21
|
+
### Notes
|
|
22
|
+
|
|
23
|
+
This is the only PR in the v1.13 follow-up series that changes the visible
|
|
24
|
+
chat narration. Prompt-only; no code or test changes.
|
|
25
|
+
|
|
26
|
+
## [1.15.0] - 2026-04-30
|
|
27
|
+
|
|
28
|
+
### Workflow safety net (defaults that protect non-engineers)
|
|
29
|
+
|
|
30
|
+
- `cdd-kit new` auto-runs `context-scan` when `specs/context/*.md` indexes are
|
|
31
|
+
missing or stale (B5 hash-based check). Avoids classifier wasting a round
|
|
32
|
+
on outdated paths. New `--skip-scan` for advanced users.
|
|
33
|
+
- `cdd-kit gate` now lints `tasks.md` frontmatter:
|
|
34
|
+
- Requires `change-id` and `status`.
|
|
35
|
+
- Validates `status` against known set (`in-progress`, `completed`,
|
|
36
|
+
`gate-blocked`, `abandoned`, `needs-review`, `complete`, `done`).
|
|
37
|
+
- Warns on unknown keys with did-you-mean suggestions (e.g. `Tier:` →
|
|
38
|
+
`did you mean tier?`). Catches the typo class that previously caused
|
|
39
|
+
silent enforcement skips.
|
|
40
|
+
- `cdd-kit gate` now detects `depends-on` cycles via DFS and reports the
|
|
41
|
+
full cycle path (e.g. `feat-a → feat-b → feat-c → feat-a`).
|
|
42
|
+
- `cdd-kit doctor --fix`: auto-resolves the safe subset of warnings
|
|
43
|
+
- regenerates stale or missing `specs/context/*.md` indexes
|
|
44
|
+
- populates empty `model-policy.json` roles with defaults
|
|
45
|
+
- leaves invasive fixes (`.cdd/*` missing → suggests `cdd-kit upgrade`)
|
|
46
|
+
for the user to confirm
|
|
47
|
+
- `cdd-kit gate`: artifact-pointer existence check now runs **by default**
|
|
48
|
+
(previously `--strict`-only). Use `--lax` to skip for legacy repos with
|
|
49
|
+
unfixed agent logs.
|
|
50
|
+
|
|
51
|
+
### Tests
|
|
52
|
+
|
|
53
|
+
- 11 new tests across `gate.test.ts` (frontmatter lint, DAG cycle, default
|
|
54
|
+
pointer check), `new.test.ts` (auto-scan), `doctor.test.ts` (--fix).
|
|
55
|
+
- Updated `gate.test.ts` test 13b — its premise inverted by PR-3 #6.
|
|
56
|
+
- Updated `writeValidChangeArtifacts` helper to include required frontmatter.
|
|
57
|
+
|
|
58
|
+
## [1.14.0] - 2026-04-30
|
|
59
|
+
|
|
60
|
+
### Agent efficiency for non-engineer users
|
|
61
|
+
|
|
62
|
+
- `/cdd-new` Step 0: request-quality pre-lint. Refuses to run when the user's
|
|
63
|
+
request is missing affected-surface, desired-behavior, or success-criterion.
|
|
64
|
+
Avoids one full classifier round-trip on ambiguous requests.
|
|
65
|
+
- `change-classifier`: atomic-split detection. Mega-requests crossing 2+
|
|
66
|
+
change-types or 3+ surfaces now return an `## Atomic Split Proposal` table
|
|
67
|
+
with suggested `cdd-kit new --depends-on` commands instead of a single
|
|
68
|
+
Tier 0/1 monolith. Estimated 40-60% token saving on multi-feature requests.
|
|
69
|
+
- `references/agent-log-protocol.md`: every agent must self-validate its log
|
|
70
|
+
block before sending its response. Prevents the round-trip where gate
|
|
71
|
+
catches a malformed log and forces a full agent re-run.
|
|
72
|
+
- `/cdd-new` Step 4 fix-back: structured error-to-agent routing table. Each
|
|
73
|
+
gate error class now has a defined re-invocation owner and a templated
|
|
74
|
+
prompt prefix that includes the verbatim gate error. No more "blind retry".
|
|
75
|
+
|
|
76
|
+
### Notes
|
|
77
|
+
|
|
78
|
+
This release is prompt-only (no code changes in `src/`). Improvements are
|
|
79
|
+
qualitative for the AI agent flow, not exposed as new CLI flags.
|
|
80
|
+
|
|
81
|
+
## [1.13.0] - 2026-04-29
|
|
82
|
+
|
|
83
|
+
### Token-budget reductions
|
|
84
|
+
- Shared `references/agent-log-protocol.md` — extracted the duplicated agent-log
|
|
85
|
+
format block out of all 16 agent prompts. Total agent-prompt size dropped
|
|
86
|
+
from 1675 → 1344 lines (≈20% smaller). One source of truth, no drift.
|
|
87
|
+
- `/cdd-new` skill no longer inlines the 5 change-template bodies; `cdd-kit
|
|
88
|
+
new` writes them from disk. Skill went from 483 → ~340 lines (≈30%).
|
|
89
|
+
- Tier 5 fast-path for docs/prompts/config-only changes — classifier now
|
|
90
|
+
short-circuits the full agent flow when no source/tests/contracts are
|
|
91
|
+
touched; bounds doc-only token cost to 2 read-only reviews.
|
|
92
|
+
- `context-manifest.md` template no longer duplicates the forbidden-paths list
|
|
93
|
+
that `.cdd/context-policy.json` already carries.
|
|
94
|
+
- `cdd-kit context-scan` now caps per-directory entries to 50 and supports
|
|
95
|
+
`--surface <path>` to scope the project map to a sub-tree.
|
|
96
|
+
|
|
97
|
+
### Stability hardening
|
|
98
|
+
- Tier source moved to `tasks.md` frontmatter `tier: <0-5>`. The legacy
|
|
99
|
+
`## Tier\n- N` and `**Tier:** Tier N` formats remain as fallback-only;
|
|
100
|
+
bold-only legacy format produces a migration warning instead of silently
|
|
101
|
+
skipping tier-specific agent enforcement.
|
|
102
|
+
- Section-7 archive exemption is no longer hard-coded `7\.[12]`; reads from
|
|
103
|
+
`tasks.md` frontmatter `archive-tasks: ["7.1", "7.2"]` (default preserved).
|
|
104
|
+
- `cdd-kit migrate` is now atomic: per-session backup at
|
|
105
|
+
`.cdd/migrate-backup/<timestamp>/`, two-phase tmp-write + rename, restore
|
|
106
|
+
hint on failure. New `--no-backup` opt-out.
|
|
107
|
+
- `cdd-kit migrate` now backfills `tier:` and `archive-tasks:` into legacy
|
|
108
|
+
`tasks.md` frontmatter automatically.
|
|
109
|
+
- `cdd-kit doctor` freshness check is now content-hash based, not mtime.
|
|
110
|
+
`git clone` no longer triggers spurious staleness warnings.
|
|
111
|
+
- `cdd-kit context approve|reject --all-pending` resolves every pending
|
|
112
|
+
Context Expansion Request in one command.
|
|
113
|
+
- `cdd-kit gate` now reconciles agent self-reported `files-read:` against the
|
|
114
|
+
runtime hook log at `.cdd/runtime/<change-id>-files-read.jsonl`. Undeclared
|
|
115
|
+
reads warn (or fail under `--strict`).
|
|
116
|
+
- `hooks/post-tool-use-files-read.sh` — Claude Code PostToolUse hook scaffold
|
|
117
|
+
that records actual Read/Grep/Glob targets for the gate to verify.
|
|
118
|
+
- `cdd-kit gate` now invokes `validate` in-process instead of via
|
|
119
|
+
`spawnSync(process.execPath, [process.argv[1], ...])`. No more `argv[1]`
|
|
120
|
+
indirection or extra Node startup.
|
|
121
|
+
- `.cdd/model-policy.json` ships with real role-to-model defaults (no longer
|
|
122
|
+
empty `{}`). `cdd-kit doctor` warns when an installed agent's `model:`
|
|
123
|
+
frontmatter drifts from policy. `init`/`upgrade` preserve any custom
|
|
124
|
+
`roles` overrides instead of clobbering them.
|
|
125
|
+
|
|
126
|
+
### Skill updates
|
|
127
|
+
- `/cdd-new` now lints classifier output before writing files (`## Tier`,
|
|
128
|
+
`## Required Agents`, `## Inferred Acceptance Criteria` must be filled).
|
|
129
|
+
- `/cdd-new` writes the classifier's tier into `tasks.md` frontmatter as the
|
|
130
|
+
authoritative source.
|
|
131
|
+
|
|
132
|
+
### Tests
|
|
133
|
+
- 19 new tests covering B1–B7 + A5 + B3. 39 gate tests, 15 migrate tests, 9
|
|
134
|
+
context tests, 7 doctor tests all pass.
|
|
135
|
+
|
|
3
136
|
## [1.12.0] - 2026-04-29
|
|
4
137
|
|
|
5
138
|
### Added
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Contract-Driven Delivery Kit
|
|
2
2
|
|
|
3
|
-
**cdd-kit** is a contract-driven delivery kit for AI coding agents. It started with Claude Code skills and now keeps the core workflow provider-neutral: contracts-first, test-first, spec-first. Every change goes through classification, contract review, TDD, implementation, and gate verification.
|
|
3
|
+
**cdd-kit** is a contract-driven delivery kit for AI coding agents. It started with Claude Code skills and now keeps the core workflow provider-neutral: contracts-first, test-first, spec-first. Every change goes through classification, contract review, TDD, implementation, and gate verification, with deterministic context indexes and manifest-backed read-scope auditing to keep long agent runs reviewable.
|
|
4
4
|
|
|
5
|
-
Designed for solo developers and small teams building brownfield production systems (dashboards, APIs, workflow tools, data apps)
|
|
5
|
+
Designed for solo developers and small teams building brownfield production systems (dashboards, APIs, workflow tools, data apps), especially when non-engineers or product owners want AI to do the implementation while they stay in the spec-author and reviewer seat.
|
|
6
6
|
|
|
7
7
|
**Context Governance v1** adds a manifest-driven audit layer for AI agents. New changes include `context-manifest.md`, `agent-log` entries are expected to report `files-read`, and `cdd-kit gate` audits those reads against allowed and forbidden paths. This is governance and review support, not a sandbox.
|
|
8
8
|
|
|
@@ -90,11 +90,14 @@ or
|
|
|
90
90
|
|
|
91
91
|
**What happens:**
|
|
92
92
|
1. Claude generates a `change-id` (e.g. `add-jwt-auth`) and scaffolds `specs/changes/add-jwt-auth/`
|
|
93
|
-
2.
|
|
94
|
-
3.
|
|
95
|
-
4.
|
|
96
|
-
5.
|
|
97
|
-
6.
|
|
93
|
+
2. If the request is ambiguous, Claude asks back for affected surface, desired behavior, and success criterion before spending a classifier round-trip
|
|
94
|
+
3. The `change-classifier` agent (Opus) reads the request, classifies risk and tier, decides which agents are needed
|
|
95
|
+
4. If the request is too broad, the classifier can return an atomic split proposal instead of forcing one Tier 0/1 monolith
|
|
96
|
+
5. For Tier 0-1 work, Claude's narration uses stage badges so users can tell whether the flow is deciding, implementing, testing, or reviewing
|
|
97
|
+
6. Agents run in order: contracts → test plan → spec/architecture review (if needed) → backend engineer → frontend engineer → CI/CD gates → QA
|
|
98
|
+
7. Each agent produces machine-verifiable evidence (agent-log files)
|
|
99
|
+
8. `cdd-kit gate <change-id>` runs automatically to confirm all artifacts are complete
|
|
100
|
+
9. Claude reports a summary and the suggested git commit
|
|
98
101
|
|
|
99
102
|
**You stay in control by:**
|
|
100
103
|
- Reviewing the `change-classification.md` before implementation starts
|
|
@@ -240,16 +243,17 @@ Codex currently has no global assets to update, so Codex-only projects report th
|
|
|
240
243
|
|
|
241
244
|
### `cdd-kit doctor`
|
|
242
245
|
|
|
243
|
-
Inspects repo-level cdd-kit health
|
|
246
|
+
Inspects repo-level cdd-kit health. Default mode is read-only; `--fix` applies only the safe auto-remediations.
|
|
244
247
|
|
|
245
248
|
```bash
|
|
246
249
|
cdd-kit doctor
|
|
247
250
|
cdd-kit doctor --strict
|
|
251
|
+
cdd-kit doctor --fix
|
|
248
252
|
cdd-kit doctor --json
|
|
249
253
|
cdd-kit doctor --provider codex
|
|
250
254
|
```
|
|
251
255
|
|
|
252
|
-
Checks for missing `.cdd/` policy files, provider guidance (`CLAUDE.md`, `AGENTS.md`, `CODEX.md`), context indexes, stale `specs/context/*` outputs, and contract summary metadata gaps. `--strict` treats warnings as errors. `--json` emits a machine-readable report for CI or wrapper scripts.
|
|
256
|
+
Checks for missing `.cdd/` policy files, provider guidance (`CLAUDE.md`, `AGENTS.md`, `CODEX.md`), context indexes, stale `specs/context/*` outputs, and contract summary metadata gaps. `--strict` treats warnings as errors. `--json` emits a machine-readable report for CI or wrapper scripts. `--fix` currently auto-runs `context-scan` for stale or missing indexes and backfills empty `.cdd/model-policy.json` role bindings, but deliberately does not run invasive repo upgrades for you.
|
|
253
257
|
|
|
254
258
|
---
|
|
255
259
|
|
|
@@ -277,6 +281,7 @@ The single quality gate for a change. Blocks merge if anything is missing or inc
|
|
|
277
281
|
```bash
|
|
278
282
|
cdd-kit gate add-jwt-auth
|
|
279
283
|
cdd-kit gate add-jwt-auth --strict
|
|
284
|
+
cdd-kit gate add-jwt-auth --lax
|
|
280
285
|
```
|
|
281
286
|
|
|
282
287
|
Checks:
|
|
@@ -292,9 +297,11 @@ Checks:
|
|
|
292
297
|
|
|
293
298
|
`--strict` additionally:
|
|
294
299
|
- Treats any pending `[ ]` tasks (except section 7 archive items) as errors
|
|
295
|
-
-
|
|
300
|
+
- Treats runtime-vs-declared `files-read` drift as errors
|
|
296
301
|
- Treats legacy changes missing `context-manifest.md` or `files-read` audit data as errors
|
|
297
302
|
|
|
303
|
+
Default mode also validates that artifact file pointers listed in `agent-log` evidence exist on disk. Use `--lax` only when cleaning up legacy repos with stale historical logs.
|
|
304
|
+
|
|
298
305
|
Pre-commit hook uses `--strict` by default (installed via `cdd-kit install-hooks`).
|
|
299
306
|
|
|
300
307
|
```
|
|
@@ -405,6 +412,7 @@ Approves a pending Context Expansion Request in `context-manifest.md` and adds i
|
|
|
405
412
|
|
|
406
413
|
```bash
|
|
407
414
|
cdd-kit context approve add-jwt-auth CER-001
|
|
415
|
+
cdd-kit context approve add-jwt-auth --all-pending # bulk approve every pending request
|
|
408
416
|
```
|
|
409
417
|
|
|
410
418
|
This keeps expansion history explicit while avoiding manual manifest editing. Agents still have to report `files-read` in `agent-log/*.md`; `cdd-kit gate` audits those paths against the manifest.
|
|
@@ -417,6 +425,7 @@ Rejects a pending Context Expansion Request and records `status: rejected` in th
|
|
|
417
425
|
|
|
418
426
|
```bash
|
|
419
427
|
cdd-kit context reject add-jwt-auth CER-001
|
|
428
|
+
cdd-kit context reject add-jwt-auth --all-pending # bulk reject every pending request
|
|
420
429
|
```
|
|
421
430
|
|
|
422
431
|
---
|
|
@@ -456,8 +465,11 @@ cdd-kit new add-user-auth
|
|
|
456
465
|
cdd-kit new add-user-auth --all # include optional templates too
|
|
457
466
|
cdd-kit new add-user-auth --force # overwrite existing directory
|
|
458
467
|
cdd-kit new add-user-api --depends-on add-user-db
|
|
468
|
+
cdd-kit new add-user-auth --skip-scan
|
|
459
469
|
```
|
|
460
470
|
|
|
471
|
+
By default, `cdd-kit new` auto-runs `cdd-kit context-scan` when `specs/context/` indexes are missing or stale. Use `--skip-scan` only if you intentionally want a bare scaffold without refreshing classifier indexes first.
|
|
472
|
+
|
|
461
473
|
For larger requests, split the work into atomic changes on the same feature branch and use `--depends-on` to record upstream order. `cdd-kit gate` blocks a dependent change until each upstream change is either archived or has `status: completed` in its `tasks.md` frontmatter.
|
|
462
474
|
|
|
463
475
|
---
|
|
@@ -506,6 +518,7 @@ Builds deterministic, low-token context indexes for classifiers and orchestrator
|
|
|
506
518
|
|
|
507
519
|
```bash
|
|
508
520
|
cdd-kit context-scan
|
|
521
|
+
cdd-kit context-scan --surface src/server # scope project-map to a sub-tree (large monorepos)
|
|
509
522
|
```
|
|
510
523
|
|
|
511
524
|
Outputs:
|
|
@@ -46,15 +46,7 @@ Run `cdd-kit detect-stack` to verify the detected tech stack.
|
|
|
46
46
|
For context-governed changes, read `specs/changes/<change-id>/context-manifest.md` before using file-reading or broad search tools.
|
|
47
47
|
|
|
48
48
|
- Read only paths allowed by the manifest or approved expansions.
|
|
49
|
-
- If more context is needed, stop and write a Context Expansion Request in the manifest.
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
```md
|
|
55
|
-
- files-read:
|
|
56
|
-
- contracts/api/api-contract.md
|
|
57
|
-
- src/server/routes/users.ts
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Every entry must be a repo-relative path. Do not omit files, use absolute paths, or use `..`.
|
|
49
|
+
- If more context is needed, stop and write a Context Expansion Request in the manifest (`cdd-kit context request`).
|
|
50
|
+
- The full agent-log format (including `files-read:` schema) is defined in
|
|
51
|
+
`~/.claude/skills/contract-driven-delivery/references/agent-log-protocol.md`.
|
|
52
|
+
Read that once; do not paraphrase it elsewhere.
|
|
@@ -47,21 +47,10 @@ In your agent log, reference file paths and function names — do not paste code
|
|
|
47
47
|
|
|
48
48
|
## Machine-Verifiable Evidence
|
|
49
49
|
|
|
50
|
-
After completing your task, write or append to
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
# Backend Engineer Log
|
|
55
|
-
- change-id: <id>
|
|
56
|
-
- timestamp: <ISO 8601, e.g. 2026-04-27T14:30:00Z>
|
|
57
|
-
- status: complete | needs-review | blocked
|
|
58
|
-
- files-read:
|
|
59
|
-
- <repo-relative path read through tools>
|
|
60
|
-
- artifacts:
|
|
61
|
-
- <evidence-type>: <concrete pointer>
|
|
62
|
-
- <evidence-type>: <concrete pointer>
|
|
63
|
-
- next-action: <one line, or "none">
|
|
64
|
-
```
|
|
50
|
+
After completing your task, write or append to
|
|
51
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
|
|
52
|
+
field rules, and gate-enforcement behavior are defined once in
|
|
53
|
+
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
65
54
|
|
|
66
55
|
### Required artifacts for this agent
|
|
67
56
|
- `files-changed`: list of `path/to/file.ts:line-range`
|
|
@@ -69,16 +58,6 @@ with this exact structure (lines starting with `- ` are required):
|
|
|
69
58
|
- `test-output`: last 10 lines of `npm test` or equivalent stdout
|
|
70
59
|
- `contracts-touched`: list of contract file paths or "none"
|
|
71
60
|
|
|
72
|
-
### Rules
|
|
73
|
-
- NEVER omit this log file. `cdd-kit gate` rejects changes whose agent-log
|
|
74
|
-
is missing the `status:` line or has an invalid status.
|
|
75
|
-
- If you cannot complete the task, set `status: blocked` and write a
|
|
76
|
-
concrete `next-action` (NOT "investigate further" — write the actual
|
|
77
|
-
next step a human can act on).
|
|
78
|
-
- Evidence must be concrete: file:line, command name + last-10-line stdout,
|
|
79
|
-
contract path + section, test name, etc. NEVER write "verified" or "OK"
|
|
80
|
-
without a pointer.
|
|
81
|
-
|
|
82
61
|
## Read scope
|
|
83
62
|
|
|
84
63
|
- Allowed: `contracts/`, `tests/`, `src/`, `specs/changes/<current-change-id>/`
|
|
@@ -32,6 +32,87 @@ Use `project-map.md` to identify candidate source/test paths and `contracts-inde
|
|
|
32
32
|
|
|
33
33
|
When in doubt, classify upward.
|
|
34
34
|
|
|
35
|
+
### Atomic-split detection (BEFORE producing classification)
|
|
36
|
+
|
|
37
|
+
Non-engineer users often hand in mega-requests like "redesign the dashboard
|
|
38
|
+
and add JWT auth and migrate sessions". Running these as a single Tier 0/1
|
|
39
|
+
change burns 10+ agents in series, couples unrelated rollback risk, and
|
|
40
|
+
leaves no good fix-back path when one piece blocks.
|
|
41
|
+
|
|
42
|
+
Before producing a single classification, check these triggers:
|
|
43
|
+
|
|
44
|
+
- **Cross-feature**: 2+ unrelated change-types ("primary" categories) in one
|
|
45
|
+
request (e.g. `feature-add` + `migration` + `ui-redesign`).
|
|
46
|
+
- **Cross-surface**: 3+ distinct surfaces touched (auth + UI + DB + email +
|
|
47
|
+
export).
|
|
48
|
+
- **Contract-heavy**: ≥ 5 of the 6 contracts (api / css / env / data /
|
|
49
|
+
business / ci) need changes.
|
|
50
|
+
- **Task-heavy**: estimated > 10 task-IDs across sections 3-4 of `tasks.md`.
|
|
51
|
+
|
|
52
|
+
If **any one trigger fires**, output `## Atomic Split Proposal` INSTEAD of the
|
|
53
|
+
normal classification, in this exact shape:
|
|
54
|
+
|
|
55
|
+
```md
|
|
56
|
+
## Atomic Split Proposal
|
|
57
|
+
|
|
58
|
+
This request spans <N> independent risk surfaces. Running it as one change
|
|
59
|
+
would require <N> agents in series and couple unrelated rollback risk.
|
|
60
|
+
|
|
61
|
+
Recommended atomic split (each is a separate `cdd-kit new`):
|
|
62
|
+
|
|
63
|
+
| change-id | scope | tier | depends-on |
|
|
64
|
+
|---|---|---|---|
|
|
65
|
+
| <kebab-id-1> | <one-line scope> | <0-5> | (none) |
|
|
66
|
+
| <kebab-id-2> | <one-line scope> | <0-5> | <kebab-id-1> |
|
|
67
|
+
| <kebab-id-3> | <one-line scope> | <0-5> | <kebab-id-1> |
|
|
68
|
+
|
|
69
|
+
Suggested commands (run in order):
|
|
70
|
+
|
|
71
|
+
\`\`\`bash
|
|
72
|
+
cdd-kit new <kebab-id-1>
|
|
73
|
+
cdd-kit new <kebab-id-2> --depends-on <kebab-id-1>
|
|
74
|
+
cdd-kit new <kebab-id-3> --depends-on <kebab-id-1>
|
|
75
|
+
\`\`\`
|
|
76
|
+
|
|
77
|
+
Estimated token savings vs single Tier 0/1 monolith: ~40-60% (parallel
|
|
78
|
+
review-agent overlap removed, smaller per-change context).
|
|
79
|
+
|
|
80
|
+
If you want to proceed as a single monolithic change anyway, reply with
|
|
81
|
+
`force-monolithic` and I will produce the normal Tier <X> classification
|
|
82
|
+
instead.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
When emitting an Atomic Split Proposal, **also include the standard
|
|
86
|
+
`## Agent Log` block** at the end so `cdd-kit gate` can record this run, but
|
|
87
|
+
mark `status: needs-review` and include `next-action: wait-for-user-approval`.
|
|
88
|
+
Do NOT produce other artifacts (no test-plan, no manifest draft) until the
|
|
89
|
+
user picks a path.
|
|
90
|
+
|
|
91
|
+
If no trigger fires, skip this section entirely and produce the normal
|
|
92
|
+
classification.
|
|
93
|
+
|
|
94
|
+
### Tier 5 fast-path (token budget protection)
|
|
95
|
+
|
|
96
|
+
If, after reading the change-request and project-map, ALL of the following are
|
|
97
|
+
true, output Tier 5 and skip the heavy artifact list:
|
|
98
|
+
|
|
99
|
+
- Only `*.md`, `*.txt`, `prompts/*`, `AGENTS.md`, `CLAUDE.md`, `CODEX.md`,
|
|
100
|
+
`README*` are touched (no source, no tests, no contracts).
|
|
101
|
+
- No env var, secret, or runtime configuration change.
|
|
102
|
+
- No public API behavior change.
|
|
103
|
+
|
|
104
|
+
Tier 5 fast-path output minima:
|
|
105
|
+
- `## Tier` → `- 5`
|
|
106
|
+
- `## Required Agents` → `contract-reviewer` (read-only confirmation that no
|
|
107
|
+
contracts are touched) and `qa-reviewer` (release readiness, ~1 paragraph).
|
|
108
|
+
- `## Optional Artifacts` → all `no`.
|
|
109
|
+
- `## Required Tests` → all blank.
|
|
110
|
+
|
|
111
|
+
This exists because previously every doc-only change paid 8–12 agent
|
|
112
|
+
invocations of token cost. The fast-path bounds it to 2 read-only reviews. If
|
|
113
|
+
unsure whether the fast-path applies, classify Tier 4 instead and proceed
|
|
114
|
+
through the normal flow.
|
|
115
|
+
|
|
35
116
|
## Output
|
|
36
117
|
|
|
37
118
|
Use this structure:
|
|
@@ -144,21 +225,10 @@ Note: `archive.md` is created during change close-out, not at classification tim
|
|
|
144
225
|
|
|
145
226
|
## Machine-Verifiable Evidence
|
|
146
227
|
|
|
147
|
-
After completing your task,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
# Change Classifier Log
|
|
152
|
-
- change-id: <id>
|
|
153
|
-
- timestamp: <ISO 8601, e.g. 2026-04-27T14:30:00Z>
|
|
154
|
-
- status: complete | needs-review | blocked
|
|
155
|
-
- files-read:
|
|
156
|
-
- <repo-relative path read through tools>
|
|
157
|
-
- artifacts:
|
|
158
|
-
- <evidence-type>: <concrete pointer>
|
|
159
|
-
- <evidence-type>: <concrete pointer>
|
|
160
|
-
- next-action: <one line, or "none">
|
|
161
|
-
```
|
|
228
|
+
After completing your task, write or append to
|
|
229
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
|
|
230
|
+
field rules, and gate-enforcement behavior are defined once in
|
|
231
|
+
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
162
232
|
|
|
163
233
|
### Required artifacts for this agent
|
|
164
234
|
- `tier`: Tier 0-5
|
|
@@ -167,16 +237,6 @@ After completing your task, include an **## Agent Log** section at the end of yo
|
|
|
167
237
|
- `required-reviewers`: list of agent names
|
|
168
238
|
- `context-manifest-draft`: allowed paths and agent work packets based only on `project-map.md` and `contracts-index.md`
|
|
169
239
|
|
|
170
|
-
### Rules
|
|
171
|
-
- NEVER omit this log file. `cdd-kit gate` rejects changes whose agent-log
|
|
172
|
-
is missing the `status:` line or has an invalid status.
|
|
173
|
-
- If you cannot complete the task, set `status: blocked` and write a
|
|
174
|
-
concrete `next-action` (NOT "investigate further" — write the actual
|
|
175
|
-
next step a human can act on).
|
|
176
|
-
- Evidence must be concrete: file:line, command name + last-10-line stdout,
|
|
177
|
-
contract path + section, test name, etc. NEVER write "verified" or "OK"
|
|
178
|
-
without a pointer.
|
|
179
|
-
|
|
180
240
|
## Mixed and edge cases
|
|
181
241
|
|
|
182
242
|
- A single request can be both `ui-only-change` and `api-only-change` — list both as primary; require both UI/UX-visual review AND contract tests.
|
|
@@ -64,21 +64,10 @@ mergeable / blocked / informational-risk
|
|
|
64
64
|
|
|
65
65
|
## Machine-Verifiable Evidence
|
|
66
66
|
|
|
67
|
-
After completing your task, write or append to
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# CI/CD Gatekeeper Log
|
|
72
|
-
- change-id: <id>
|
|
73
|
-
- timestamp: <ISO 8601, e.g. 2026-04-27T14:30:00Z>
|
|
74
|
-
- status: complete | needs-review | blocked
|
|
75
|
-
- files-read:
|
|
76
|
-
- <repo-relative path read through tools>
|
|
77
|
-
- artifacts:
|
|
78
|
-
- <evidence-type>: <concrete pointer>
|
|
79
|
-
- <evidence-type>: <concrete pointer>
|
|
80
|
-
- next-action: <one line, or "none">
|
|
81
|
-
```
|
|
67
|
+
After completing your task, write or append to
|
|
68
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
|
|
69
|
+
field rules, and gate-enforcement behavior are defined once in
|
|
70
|
+
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
82
71
|
|
|
83
72
|
### Required artifacts for this agent
|
|
84
73
|
- `tiers-modified`: list of tier numbers
|
|
@@ -86,16 +75,6 @@ with this exact structure (lines starting with `- ` are required):
|
|
|
86
75
|
- `workflow-files-changed`: list of paths
|
|
87
76
|
- `required-status-checks`: list of check names
|
|
88
77
|
|
|
89
|
-
### Rules
|
|
90
|
-
- NEVER omit this log file. `cdd-kit gate` rejects changes whose agent-log
|
|
91
|
-
is missing the `status:` line or has an invalid status.
|
|
92
|
-
- If you cannot complete the task, set `status: blocked` and write a
|
|
93
|
-
concrete `next-action` (NOT "investigate further" — write the actual
|
|
94
|
-
next step a human can act on).
|
|
95
|
-
- Evidence must be concrete: file:line, command name + last-10-line stdout,
|
|
96
|
-
contract path + section, test name, etc. NEVER write "verified" or "OK"
|
|
97
|
-
without a pointer.
|
|
98
|
-
|
|
99
78
|
## Read scope
|
|
100
79
|
|
|
101
80
|
- Allowed: `contracts/`, `tests/`, `src/`, `specs/changes/<current-change-id>/`
|
|
@@ -63,21 +63,10 @@ approved / changes-required
|
|
|
63
63
|
|
|
64
64
|
## Machine-Verifiable Evidence
|
|
65
65
|
|
|
66
|
-
After completing your task,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
# Contract Reviewer Log
|
|
71
|
-
- change-id: <id>
|
|
72
|
-
- timestamp: <ISO 8601, e.g. 2026-04-27T14:30:00Z>
|
|
73
|
-
- status: complete | needs-review | blocked
|
|
74
|
-
- files-read:
|
|
75
|
-
- <repo-relative path read through tools>
|
|
76
|
-
- artifacts:
|
|
77
|
-
- <evidence-type>: <concrete pointer>
|
|
78
|
-
- <evidence-type>: <concrete pointer>
|
|
79
|
-
- next-action: <one line, or "none">
|
|
80
|
-
```
|
|
66
|
+
After completing your task, write or append to
|
|
67
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
|
|
68
|
+
field rules, and gate-enforcement behavior are defined once in
|
|
69
|
+
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
81
70
|
|
|
82
71
|
### Required artifacts for this agent
|
|
83
72
|
- `contracts-reviewed`: list of contract file paths
|
|
@@ -85,16 +74,6 @@ After completing your task, include an **## Agent Log** section at the end of yo
|
|
|
85
74
|
- `breaking-changes`: list or "none"
|
|
86
75
|
- `consumers-impacted`: list or "none"
|
|
87
76
|
|
|
88
|
-
### Rules
|
|
89
|
-
- NEVER omit this log file. `cdd-kit gate` rejects changes whose agent-log
|
|
90
|
-
is missing the `status:` line or has an invalid status.
|
|
91
|
-
- If you cannot complete the task, set `status: blocked` and write a
|
|
92
|
-
concrete `next-action` (NOT "investigate further" — write the actual
|
|
93
|
-
next step a human can act on).
|
|
94
|
-
- Evidence must be concrete: file:line, command name + last-10-line stdout,
|
|
95
|
-
contract path + section, test name, etc. NEVER write "verified" or "OK"
|
|
96
|
-
without a pointer.
|
|
97
|
-
|
|
98
77
|
## Read scope
|
|
99
78
|
|
|
100
79
|
- Allowed: `contracts/`, `tests/`, `src/`, `specs/changes/<current-change-id>/`
|
|
@@ -64,21 +64,10 @@ approved / changes-required / blocked
|
|
|
64
64
|
|
|
65
65
|
## Machine-Verifiable Evidence
|
|
66
66
|
|
|
67
|
-
After completing your task,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# Dependency Security Reviewer Log
|
|
72
|
-
- change-id: <id>
|
|
73
|
-
- timestamp: <ISO 8601, e.g. 2026-04-27T14:30:00Z>
|
|
74
|
-
- status: complete | needs-review | blocked
|
|
75
|
-
- files-read:
|
|
76
|
-
- <repo-relative path read through tools>
|
|
77
|
-
- artifacts:
|
|
78
|
-
- <evidence-type>: <concrete pointer>
|
|
79
|
-
- <evidence-type>: <concrete pointer>
|
|
80
|
-
- next-action: <one line, or "none">
|
|
81
|
-
```
|
|
67
|
+
After completing your task, write or append to
|
|
68
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
|
|
69
|
+
field rules, and gate-enforcement behavior are defined once in
|
|
70
|
+
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
82
71
|
|
|
83
72
|
### Required artifacts for this agent
|
|
84
73
|
- `packages-reviewed`: list of `<name>@<version>`
|
|
@@ -86,12 +75,3 @@ After completing your task, include an **## Agent Log** section at the end of yo
|
|
|
86
75
|
- `license-issues`: list or "none"
|
|
87
76
|
- `lockfile-changes`: list of files
|
|
88
77
|
|
|
89
|
-
### Rules
|
|
90
|
-
- NEVER omit this log file. `cdd-kit gate` rejects changes whose agent-log
|
|
91
|
-
is missing the `status:` line or has an invalid status.
|
|
92
|
-
- If you cannot complete the task, set `status: blocked` and write a
|
|
93
|
-
concrete `next-action` (NOT "investigate further" — write the actual
|
|
94
|
-
next step a human can act on).
|
|
95
|
-
- Evidence must be concrete: file:line, command name + last-10-line stdout,
|
|
96
|
-
contract path + section, test name, etc. NEVER write "verified" or "OK"
|
|
97
|
-
without a pointer.
|
|
@@ -41,21 +41,10 @@ Record test files, scenarios, fixtures/mocks, commands, screenshots/videos, and
|
|
|
41
41
|
|
|
42
42
|
## Machine-Verifiable Evidence
|
|
43
43
|
|
|
44
|
-
After completing your task, write or append to
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
# E2E Resilience Engineer Log
|
|
49
|
-
- change-id: <id>
|
|
50
|
-
- timestamp: <ISO 8601, e.g. 2026-04-27T14:30:00Z>
|
|
51
|
-
- status: complete | needs-review | blocked
|
|
52
|
-
- files-read:
|
|
53
|
-
- <repo-relative path read through tools>
|
|
54
|
-
- artifacts:
|
|
55
|
-
- <evidence-type>: <concrete pointer>
|
|
56
|
-
- <evidence-type>: <concrete pointer>
|
|
57
|
-
- next-action: <one line, or "none">
|
|
58
|
-
```
|
|
44
|
+
After completing your task, write or append to
|
|
45
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
|
|
46
|
+
field rules, and gate-enforcement behavior are defined once in
|
|
47
|
+
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
59
48
|
|
|
60
49
|
### Required artifacts for this agent
|
|
61
50
|
- `test-files`: list of paths under `tests/e2e/` or `tests/resilience/`
|
|
@@ -63,16 +52,6 @@ with this exact structure (lines starting with `- ` are required):
|
|
|
63
52
|
- `mutation-checks`: list or "none"
|
|
64
53
|
- `trace-artifacts`: paths or "none"
|
|
65
54
|
|
|
66
|
-
### Rules
|
|
67
|
-
- NEVER omit this log file. `cdd-kit gate` rejects changes whose agent-log
|
|
68
|
-
is missing the `status:` line or has an invalid status.
|
|
69
|
-
- If you cannot complete the task, set `status: blocked` and write a
|
|
70
|
-
concrete `next-action` (NOT "investigate further" — write the actual
|
|
71
|
-
next step a human can act on).
|
|
72
|
-
- Evidence must be concrete: file:line, command name + last-10-line stdout,
|
|
73
|
-
contract path + section, test name, etc. NEVER write "verified" or "OK"
|
|
74
|
-
without a pointer.
|
|
75
|
-
|
|
76
55
|
## Read scope
|
|
77
56
|
|
|
78
57
|
- Allowed: `contracts/`, `tests/`, `src/`, `specs/changes/<current-change-id>/`
|
|
@@ -45,21 +45,10 @@ In your agent log, reference file paths and function names — do not paste code
|
|
|
45
45
|
|
|
46
46
|
## Machine-Verifiable Evidence
|
|
47
47
|
|
|
48
|
-
After completing your task, write or append to
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
# Frontend Engineer Log
|
|
53
|
-
- change-id: <id>
|
|
54
|
-
- timestamp: <ISO 8601, e.g. 2026-04-27T14:30:00Z>
|
|
55
|
-
- status: complete | needs-review | blocked
|
|
56
|
-
- files-read:
|
|
57
|
-
- <repo-relative path read through tools>
|
|
58
|
-
- artifacts:
|
|
59
|
-
- <evidence-type>: <concrete pointer>
|
|
60
|
-
- <evidence-type>: <concrete pointer>
|
|
61
|
-
- next-action: <one line, or "none">
|
|
62
|
-
```
|
|
48
|
+
After completing your task, write or append to
|
|
49
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
|
|
50
|
+
field rules, and gate-enforcement behavior are defined once in
|
|
51
|
+
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
63
52
|
|
|
64
53
|
### Required artifacts for this agent
|
|
65
54
|
- `files-changed`: list of `path/to/file.tsx:line-range`
|
|
@@ -67,16 +56,6 @@ with this exact structure (lines starting with `- ` are required):
|
|
|
67
56
|
- `screenshot-paths`: list of paths under `specs/changes/<id>/screenshots/`
|
|
68
57
|
- `accessibility-audit`: tool name + score or "skipped: reason"
|
|
69
58
|
|
|
70
|
-
### Rules
|
|
71
|
-
- NEVER omit this log file. `cdd-kit gate` rejects changes whose agent-log
|
|
72
|
-
is missing the `status:` line or has an invalid status.
|
|
73
|
-
- If you cannot complete the task, set `status: blocked` and write a
|
|
74
|
-
concrete `next-action` (NOT "investigate further" — write the actual
|
|
75
|
-
next step a human can act on).
|
|
76
|
-
- Evidence must be concrete: file:line, command name + last-10-line stdout,
|
|
77
|
-
contract path + section, test name, etc. NEVER write "verified" or "OK"
|
|
78
|
-
without a pointer.
|
|
79
|
-
|
|
80
59
|
## Read scope
|
|
81
60
|
|
|
82
61
|
- Allowed: `contracts/`, `tests/`, `src/`, `specs/changes/<current-change-id>/`
|