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 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) who want AI to do all the implementation while they stay in the spec-author and reviewer seat.
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. The `change-classifier` agent (Opus) reads the request, classifies risk and tier, decides which agents are needed
94
- 3. Agents run in order: contracts → test plan → spec/architecture review (if needed) backend engineer frontend engineer CI/CD gates QA
95
- 4. Each agent produces machine-verifiable evidence (agent-log files)
96
- 5. `cdd-kit gate <change-id>` runs automatically to confirm all artifacts are complete
97
- 6. Claude reports a summary and the suggested git commit
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 without writing files.
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
- - Validates that every file path listed in `agent-log` artifact pointers actually exists on disk
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
- - Record every file read through tools in the relevant `agent-log/*.md` under `- files-read:`.
51
-
52
- Required `agent-log/*.md` format:
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 `specs/changes/<change-id>/agent-log/<your-agent-name>.md`
51
- with this exact structure (lines starting with `- ` are required):
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, include an **## Agent Log** section at the end of your response with this exact structure (lines starting with `- ` are required). The calling skill will write this block to `specs/changes/<change-id>/agent-log/change-classifier.md`.
148
-
149
- ```
150
- ## Agent Log
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 `specs/changes/<change-id>/agent-log/<your-agent-name>.md`
68
- with this exact structure (lines starting with `- ` are required):
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, include an **## Agent Log** section at the end of your response with this exact structure (lines starting with `- ` are required). The calling skill will write this block to `specs/changes/<change-id>/agent-log/contract-reviewer.md`.
67
-
68
- ```
69
- ## Agent Log
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, include an **## Agent Log** section at the end of your response with this exact structure (lines starting with `- ` are required). The calling skill will write this block to `specs/changes/<change-id>/agent-log/dependency-security-reviewer.md`.
68
-
69
- ```
70
- ## Agent Log
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 `specs/changes/<change-id>/agent-log/<your-agent-name>.md`
45
- with this exact structure (lines starting with `- ` are required):
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 `specs/changes/<change-id>/agent-log/<your-agent-name>.md`
49
- with this exact structure (lines starting with `- ` are required):
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>/`