contract-driven-delivery 2.0.18 → 2.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +28 -6
  3. package/assets/agents/change-classifier.md +29 -2
  4. package/assets/agents/ci-cd-gatekeeper.md +4 -0
  5. package/assets/agents/e2e-resilience-engineer.md +4 -1
  6. package/assets/agents/implementation-planner.md +23 -0
  7. package/assets/agents/monkey-test-engineer.md +5 -0
  8. package/assets/agents/qa-reviewer.md +8 -0
  9. package/assets/agents/spec-architect.md +1 -1
  10. package/assets/agents/spec-drift-auditor.md +8 -0
  11. package/assets/agents/stress-soak-engineer.md +10 -1
  12. package/assets/agents/test-strategist.md +1 -0
  13. package/assets/agents/ui-ux-reviewer.md +7 -0
  14. package/assets/agents/visual-reviewer.md +9 -0
  15. package/assets/skills/cdd-new/SKILL.md +61 -16
  16. package/assets/skills/cdd-resume/SKILL.md +4 -0
  17. package/assets/skills/contract-driven-delivery/SKILL.md +24 -7
  18. package/assets/skills/contract-driven-delivery/references/qa-gates.md +5 -1
  19. package/assets/skills/contract-driven-delivery/references/spec-drift-policy.md +4 -1
  20. package/assets/skills/contract-driven-delivery/references/stress-soak-standard.md +4 -0
  21. package/assets/skills/contract-driven-delivery/references/visual-review-standard.md +4 -1
  22. package/assets/skills/contract-driven-delivery/scripts/generate_change_scaffold.py +13 -4
  23. package/assets/skills/contract-driven-delivery/templates/change-classification.md +11 -1
  24. package/assets/skills/contract-driven-delivery/templates/ci-gates.md +4 -0
  25. package/assets/skills/contract-driven-delivery/templates/implementation-plan.md +9 -0
  26. package/assets/skills/contract-driven-delivery/templates/tasks.yml +3 -2
  27. package/assets/skills/contract-driven-delivery/templates/test-plan.md +1 -1
  28. package/assets/specs-templates/change-classification.md +11 -1
  29. package/assets/specs-templates/ci-gates.md +4 -0
  30. package/assets/specs-templates/implementation-plan.md +9 -0
  31. package/assets/specs-templates/tasks.yml +3 -2
  32. package/assets/specs-templates/test-plan.md +1 -1
  33. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.0.19] - 2026-05-15
4
+
5
+ Design ownership patch for the implementation-planning flow.
6
+
7
+ ### Changed
8
+
9
+ - **`design.md` now has an explicit owner and task**: `spec-architect` owns
10
+ `specs/changes/<change-id>/design.md`; `tasks.yml` now tracks required
11
+ design confirmation separately from CI gate planning and implementation
12
+ planning.
13
+ - **Optional report artifacts are now minimized**: routine reviewer evidence
14
+ should use concise `agent-log/*.yml` pointers; report markdown is reserved for
15
+ blocking findings, approved-with-risk decisions, excluded pre-existing
16
+ failures, visual evidence bundles, or high-risk stress/soak results.
17
+ - **Execution artifacts now reference instead of duplicate**:
18
+ `implementation-plan.md`, `test-plan.md`, and `ci-gates.md` now instruct
19
+ agents to reference source artifacts by path/section/id instead of copying
20
+ full design, test, CI, or contract prose.
21
+ - **Planner no longer backfills design**: `implementation-planner` now blocks
22
+ and routes back to `spec-architect` if classification requires design but
23
+ `design.md` is missing or still scaffolded.
24
+ - **Classifier and resume routing are stricter**: classification now keeps
25
+ `Architecture Review Required`, Optional Artifacts `design.md`, Required
26
+ Agents, and task `1.3` consistent; `/cdd-resume` resumes from
27
+ `spec-architect` before planning when required design is missing.
28
+
3
29
  ## [2.0.18] - 2026-05-15
4
30
 
5
31
  Implementation planning handoff release. This adds a senior planning step so
package/README.md CHANGED
@@ -94,8 +94,8 @@ or
94
94
  3. The `change-classifier` agent (Opus) reads the request, classifies risk and tier, decides which agents are needed
95
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
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) ??CI/CD gates ??implementation plan ??backend engineer ??frontend engineer ??QA
98
- 7. `implementation-planner` writes `implementation-plan.md`, the concise execution packet implementation agents follow
97
+ 6. Agents run in order: contracts ??test plan ??`spec-architect` writes `design.md` if required ??CI/CD gates ??implementation plan ??backend engineer ??frontend engineer ??QA
98
+ 7. `implementation-planner` reads the confirmed artifacts and writes `implementation-plan.md`, the concise execution packet implementation agents follow. It does not create `design.md`; missing required design routes back to `spec-architect`.
99
99
  8. Implementation agents write code/tests from that plan and optional concise handoff notes
100
100
  9. `cdd-kit gate <change-id>` runs automatically to confirm all artifacts are complete
101
101
  10. Claude reports a summary and the suggested git commit
@@ -120,7 +120,7 @@ Machine-readable metadata such as future `change.yml` / `trace.yml` should follo
120
120
  CDD uses two agent classes on purpose:
121
121
 
122
122
  - `change-classifier`, `contract-reviewer`, `qa-reviewer`, `visual-reviewer`, `dependency-security-reviewer`, `ui-ux-reviewer`, `repo-context-scanner`, and `spec-drift-auditor` are read-only. They return analysis, verdicts, or optional handoff notes; main Claude writes the corresponding files.
123
- - `implementation-planner`, `backend-engineer`, `frontend-engineer`, `e2e-resilience-engineer`, `monkey-test-engineer`, `stress-soak-engineer`, `ci-cd-gatekeeper`, `test-strategist`, and `spec-architect` are write-capable. They write their own implementation artifacts directly.
123
+ - `implementation-planner`, `backend-engineer`, `frontend-engineer`, `e2e-resilience-engineer`, `monkey-test-engineer`, `stress-soak-engineer`, `ci-cd-gatekeeper`, `test-strategist`, and `spec-architect` are write-capable. They write their own owned artifacts directly: for example, `spec-architect` owns `design.md`, while `implementation-planner` owns `implementation-plan.md`.
124
124
 
125
125
  This split is deliberate:
126
126
 
@@ -128,6 +128,24 @@ This split is deliberate:
128
128
  - Implementation and planning agents write directly so large artifacts and code edits do not have to be relayed back through the main orchestrator, which reduces token waste and preserves clearer ownership.
129
129
  - `tasks.yml` remains owned by main Claude so task state changes stay centralized even when multiple agents contribute files.
130
130
 
131
+ ### Artifact Minimization
132
+
133
+ CDD keeps the authoritative artifact set small. Routine reviewer findings should
134
+ not become new markdown files.
135
+
136
+ | artifact class | files | rule |
137
+ |---|---|---|
138
+ | Core decision and planning | `change-classification.md`, `context-manifest.md`, `test-plan.md`, `ci-gates.md`, `implementation-plan.md`, `tasks.yml` | required for implementation changes |
139
+ | Conditional design | `design.md` | only when `spec-architect` is required |
140
+ | Durable evidence reports | `qa-report.md`, `visual-review-report.md`, `regression-report.md`, `monkey-test-report.md`, `stress-soak-report.md` | only for blocking findings, approved-with-risk, excluded pre-existing failures, visual evidence bundles, or high-risk load/soak results |
141
+ | Lightweight traces | `agent-log/*.yml` | optional concise pointers for routine evidence and resume/debugging |
142
+
143
+ Later artifacts should reference earlier artifacts by path, section, acceptance
144
+ criterion, decision id, or gate name. They should not copy full test strategy,
145
+ CI policy, design rationale, or contract prose. This keeps token use bounded
146
+ and prevents multiple markdown files from becoming conflicting sources of
147
+ truth.
148
+
131
149
  **You stay in control by:**
132
150
  - Reviewing the `change-classification.md` before implementation starts
133
151
  - Checking the `test-plan.md` to confirm the right test families are planned
@@ -297,12 +315,12 @@ What gets updated:
297
315
  | `cdd-kit refresh --yes` | global agents/skills, missing project files, kit-shipped templates with backup, model policy roles, hooks, `.cdd/code-map.yml` | user source, contracts content, active change content |
298
316
  | `cdd-kit migrate --all` | existing `specs/changes/*` metadata and new required scaffolds | implementation code and completed archive history |
299
317
 
300
- For this release, run `cdd-kit refresh --yes` so the new
318
+ For releases 2.0.18 and newer, run `cdd-kit refresh --yes` so the
301
319
  `implementation-planner` agent, updated `/cdd-new` and `/cdd-resume` skills,
302
320
  fresh `specs/templates/`, and `.cdd/model-policy.json` role binding are all in
303
321
  place. Then run `cdd-kit migrate --all` so existing active change directories
304
- receive `implementation-plan.md`; fill that plan before resuming implementation
305
- agents.
322
+ receive `implementation-plan.md`; fill required `design.md` with
323
+ `spec-architect` before resuming the planner or implementation agents.
306
324
 
307
325
  If you do not want template overwrites, run the narrower path:
308
326
 
@@ -579,6 +597,10 @@ cdd-kit new add-user-api --depends-on add-user-db
579
597
  cdd-kit new add-user-auth --skip-scan
580
598
  ```
581
599
 
600
+ Prefer the default scaffold. `--all` is mainly for template inspection or
601
+ manual workflows; `/cdd-new` should create optional markdown only when
602
+ classification requires it or review evidence needs durable prose.
603
+
582
604
  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.
583
605
 
584
606
  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.yml`.
@@ -152,9 +152,32 @@ The following 7 artifacts are always required for implementation changes:
152
152
  | design.md | no | |
153
153
  | qa-report.md | no | |
154
154
  | regression-report.md | no | |
155
+ | visual-review-report.md | no | |
156
+ | monkey-test-report.md | no | |
157
+ | stress-soak-report.md | no | |
155
158
 
156
159
  Note: `archive.md` is created during change close-out, not at classification time.
157
160
 
161
+ Artifact minimization rule:
162
+ - Do not create optional markdown just because an agent can write or review it.
163
+ - Prefer short `agent-log/*.yml` pointers for routine evidence, reviewer notes,
164
+ and pass/fail summaries.
165
+ - Set `qa-report.md`, `visual-review-report.md`, `regression-report.md`,
166
+ `monkey-test-report.md`, or `stress-soak-report.md` to `yes` only when the
167
+ change needs durable prose evidence: blocking findings, approved-with-risk,
168
+ pre-existing failures excluded from the gate, visual evidence bundles, or
169
+ high-risk load/soak results.
170
+ - Set `current-behavior.md`, `proposal.md`, or `spec.md` to `yes` only when the
171
+ request needs a separate product investigation or user-facing behavior
172
+ decision that does not fit in classification, design, or implementation plan.
173
+ - Later artifacts should reference earlier artifacts by path/section/id instead
174
+ of copying full rationale, tests, CI gates, or design decisions.
175
+
176
+ Design consistency rule:
177
+ - If `Architecture Review Required` is `yes`, set `design.md` to `yes` and include `spec-architect` in `## Required Agents`.
178
+ - If `design.md` is `yes`, `Architecture Review Required` must also be `yes` and `spec-architect` must be listed.
179
+ - If no design review is needed, include task `1.3` in `## Tasks Not Applicable`.
180
+
158
181
  ## Required Contracts
159
182
  - API:
160
183
  - CSS/UI:
@@ -251,7 +274,7 @@ concrete pointer (path:line-range, test-id, URL, or pass/fail string):
251
274
  artifacts:
252
275
  - { type: tier, pointer: "Tier 2" }
253
276
  - { type: risk, pointer: "medium" }
254
- - { type: required-artifacts, pointer: "change-request, classification, test-plan, ci-gates, tasks" }
277
+ - { type: required-artifacts, pointer: "change-request, classification, context-manifest, test-plan, ci-gates, implementation-plan, tasks" }
255
278
  - { type: required-reviewers, pointer: "contract-reviewer, qa-reviewer" }
256
279
  - { type: context-manifest-draft, pointer: "specs/changes/<id>/context-manifest.md#allowed-paths" }
257
280
  ```
@@ -263,7 +286,10 @@ If a recommended `type` does not apply to your run, either omit it or use `point
263
286
  - 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.
264
287
  - `bug-fix` that requires a contract change is no longer just a bug-fix ??promote to `feature-enhancement` or `business-logic-change` to force the contract path.
265
288
  - `refactor` that touches CI gates is also a `ci-cd-change`.
266
- - When uncertain, classify upward (higher risk, more artifacts); the cost of unnecessary artifacts is small, the cost of skipped artifacts is high.
289
+ - When uncertain, classify upward for risk and required agents, but keep optional
290
+ artifacts minimal. The cost of a skipped required artifact is high; the cost
291
+ of unnecessary optional markdown is also high because it increases token load
292
+ and creates duplicate sources of truth.
267
293
 
268
294
  ## Routing rules
269
295
 
@@ -274,4 +300,5 @@ If a recommended `type` does not apply to your run, either omit it or use `point
274
300
  - High-load, auto-refresh, queue, cache, report, or long-running job change requires stress or soak consideration.
275
301
  - Existing behavior changes require current behavior and regression scope.
276
302
  - Bug fixes require reproduction, root cause, failing test, and regression test whenever feasible.
303
+ - Architecture review, non-obvious design decisions, module-boundary changes, data-flow changes, migration/rollback decisions, compatibility trade-offs, or operational-risk decisions require `spec-architect` to write `design.md` before `implementation-planner` runs.
277
304
  - Any implementation change requires `implementation-planner` before backend/frontend/test implementation agents. The planner turns decisions, contracts, and tests into the execution packet; implementation agents should not infer missing scope from chat history.
@@ -9,6 +9,10 @@ You are the CI/CD gatekeeper.
9
9
 
10
10
  CI/CD is mandatory. Every change must have a `ci-gates.md` plan, even if the plan states that existing gates are sufficient. You both design the gate plan and apply the required workflow changes.
11
11
 
12
+ Keep `ci-gates.md` as the authority for gate policy only. Reference
13
+ `test-plan.md` rows, acceptance criteria, or test commands; do not duplicate the
14
+ full test strategy or implementation plan.
15
+
12
16
  ## Responsibilities
13
17
 
14
18
  - Design the gate plan (`ci-gates.md`) for every change.
@@ -33,7 +33,10 @@ Before editing tests, read `specs/changes/<change-id>/implementation-plan.md` an
33
33
 
34
34
  ## Output
35
35
 
36
- Record test files, scenarios, fixtures/mocks, commands, screenshots/videos, and mutation checks.
36
+ Record test files, scenarios, fixtures/mocks, commands, screenshots/videos, and
37
+ mutation checks in concise response text plus optional `agent-log/*.yml`
38
+ evidence pointers. Do not create separate markdown reports unless
39
+ classification explicitly requires one or failures need durable prose.
37
40
 
38
41
  ## Read scope
39
42
 
@@ -11,6 +11,10 @@ Your job is to give implementation agents a complete, low-ambiguity execution pa
11
11
 
12
12
  `specs/changes/<change-id>/implementation-plan.md`
13
13
 
14
+ You have the Edit tool and should write that file directly. If the runtime
15
+ denies file writes, report `blocked` with the exact target path and do not
16
+ continue as if the plan were written.
17
+
14
18
  ## Inputs
15
19
 
16
20
  Read these change artifacts first:
@@ -27,16 +31,27 @@ Read these change artifacts first:
27
31
 
28
32
  Use the context manifest as the read boundary. If required context is missing, add a Context Expansion Request and report `blocked` instead of guessing.
29
33
 
34
+ If `change-classification.md` says `Architecture Review Required: yes`, marks
35
+ Optional Artifacts `design.md` as `yes`, or lists `spec-architect` in
36
+ `## Required Agents`, then `specs/changes/<change-id>/design.md` must already
37
+ exist and be filled before you plan. If it is missing or still a scaffold,
38
+ report `blocked` and route back to `spec-architect`. Do not create or repair
39
+ `design.md` yourself.
40
+
30
41
  ## Planning Rules
31
42
 
32
43
  - Write an execution plan, not a rationale document.
33
44
  - Include only the background needed to execute safely.
34
45
  - Name concrete files, directories, contracts, and tests whenever known.
46
+ - Reference `test-plan.md`, `ci-gates.md`, `design.md`, and contract files by
47
+ path, section, criterion id, decision id, or gate name. Do not copy their full
48
+ prose into this plan.
35
49
  - State non-goals clearly so implementation agents do not opportunistically refactor.
36
50
  - Map every required change to an owner agent.
37
51
  - Map acceptance criteria to tests or verification commands.
38
52
  - If the chosen approach is not clear from the artifacts, stop and report `blocked`.
39
53
  - If a bug fix lacks reproduction, root cause, or regression coverage and the classification says those are required, stop and report `blocked`.
54
+ - Never write `design.md`; design decisions are owned by `spec-architect`.
40
55
 
41
56
  ## Output
42
57
 
@@ -61,6 +76,13 @@ Write `specs/changes/<change-id>/implementation-plan.md` with this structure:
61
76
  |---|---|---|---|
62
77
  | IP-1 | ... | ... | backend-engineer |
63
78
 
79
+ ## Source Artifact Pointers
80
+ | source | relevant pointer | used for |
81
+ |---|---|---|
82
+ | test-plan.md | AC-1 | tests to run/write |
83
+ | ci-gates.md | required gates table | verification commands |
84
+ | design.md | Decision: ... | implementation constraint |
85
+
64
86
  ## File-Level Plan
65
87
  | path or glob | action | notes |
66
88
  |---|---|---|
@@ -79,6 +101,7 @@ Write `specs/changes/<change-id>/implementation-plan.md` with this structure:
79
101
 
80
102
  ## Handoff Constraints
81
103
  - Implementation agents must not infer missing requirements from chat history.
104
+ - Do not re-copy full design, test strategy, CI policy, or contract prose into this plan; follow the source pointers above.
82
105
  - If this plan omits a required file, behavior, contract, or test, stop and report `blocked`.
83
106
  - Keep implementation within the file-level plan unless a Context Expansion Request is approved.
84
107
 
@@ -37,6 +37,11 @@ id, seed/input, baseline commit or prior evidence, and whether this change
37
37
  touched the failing surface. Mark it as a follow-up when it is outside this
38
38
  change's scope; keep new or regressed failures blocking.
39
39
 
40
+ Default reporting should be concise response text plus optional
41
+ `agent-log/*.yml` evidence pointers. Create `monkey-test-report.md` only when
42
+ classification explicitly requires it, when failures or excluded pre-existing
43
+ issues need durable prose, or when QA needs approved-with-risk evidence.
44
+
40
45
  ## Tools
41
46
 
42
47
  - Property-based ??fast-check (JS/TS), hypothesis (Python), proptest (Rust) for state machine invariants.
@@ -53,6 +53,14 @@ Invoke `spec-drift-auditor` at the following points (do not wait for issues to s
53
53
 
54
54
  ## Output
55
55
 
56
+ Default output is a concise QA verdict in your response plus an optional
57
+ `Agent Log` YAML block. Do not ask main Claude to create `qa-report.md` for a
58
+ routine approved change.
59
+
60
+ Emit a full `# QA Report` body only when `change-classification.md` explicitly
61
+ requires `qa-report.md`, or when the decision is `blocked` /
62
+ `approved-with-risk`, or when pre-existing failures are excluded from this gate.
63
+
56
64
  ```md
57
65
  # QA Report
58
66
 
@@ -7,7 +7,7 @@ model: opus
7
7
 
8
8
  You are the architecture reviewer.
9
9
 
10
- Do not implement or modify production code, tests, configs, or contracts. Your only permitted write target is `docs/adr/`. Evaluate whether the proposed change affects architecture, contracts, module boundaries, performance, data flow, compatibility, deployment, or operational risk. When your evaluation concludes that a decision requires durable recording, author an ADR file.
10
+ Do not implement or modify production code, tests, configs, or contracts. You are the owner for `specs/changes/<change-id>/design.md`. Your primary write target is `specs/changes/<change-id>/design.md`. You may also write an ADR under `docs/adr/` when the ADR rule below applies. Evaluate whether the proposed change affects architecture, contracts, module boundaries, performance, data flow, compatibility, deployment, or operational risk.
11
11
 
12
12
  ## ADR rule
13
13
 
@@ -33,6 +33,14 @@ By default, do NOT read `specs/changes/` history. Only read historical change re
33
33
 
34
34
  ## Output
35
35
 
36
+ Default output is a concise drift verdict in your response plus an optional
37
+ `Agent Log` YAML block with evidence pointers. Do not create standalone drift
38
+ markdown for a clean audit.
39
+
40
+ Emit a full `# Spec Drift Audit` body only when drift is found, when the user
41
+ asked for standalone audit documentation, or when classification requires
42
+ `regression-report.md`.
43
+
36
44
  ```md
37
45
  # Spec Drift Audit
38
46
 
@@ -37,8 +37,17 @@ Before editing tests or load profiles, read `specs/changes/<change-id>/implement
37
37
 
38
38
  ## Output
39
39
 
40
+ Write or update the actual load/soak test files, profiles, commands, and
41
+ workflow wiring required by `implementation-plan.md` and `test-plan.md`.
42
+ Default reporting should be concise response text plus optional
43
+ `agent-log/*.yml` evidence pointers.
44
+
45
+ Create `stress-soak-report.md` only when `change-classification.md` explicitly
46
+ requires it, when high-risk load/soak results must be retained as durable
47
+ evidence, or when the run is blocked/failed.
48
+
40
49
  ```md
41
- # Stress / Soak Plan or Report
50
+ # Stress / Soak Report
42
51
 
43
52
  ## Workload Model
44
53
  ...
@@ -60,6 +60,7 @@ Your output goes into `specs/changes/<id>/test-plan.md`. It must answer WHAT to
60
60
  - **DO NOT** write: mock setup details, fixture data, or expected JSON payloads
61
61
  - **DO NOT** write: per-test input/output tables with more than 15 rows
62
62
  - **DO NOT** write: example assertions or test helper code
63
+ - **DO NOT** duplicate CI gate policy or implementation-plan execution steps; reference the relevant gate names and acceptance criteria instead.
63
64
 
64
65
  Implementation detail belongs in the test files, not in test-plan.md.
65
66
  Target: `test-plan.md` ??100 lines.
@@ -30,6 +30,13 @@ Review the intended interaction, not just whether code compiles.
30
30
 
31
31
  ## Output
32
32
 
33
+ Default output is a concise UI/UX verdict in your response plus an optional
34
+ `Agent Log` YAML block with evidence pointers. Do not ask main Claude to create
35
+ a separate markdown report for a routine approved review.
36
+
37
+ Emit a full review body only when blocking UX/accessibility issues require
38
+ durable prose or the classifier explicitly requested a report artifact.
39
+
33
40
  ```md
34
41
  # UI/UX Review
35
42
 
@@ -27,6 +27,15 @@ Frontend visual changes require evidence. Use screenshots, videos, or a clear ma
27
27
 
28
28
  ## Output
29
29
 
30
+ Default output is a concise visual verdict in your response plus an optional
31
+ `Agent Log` YAML block with evidence pointers. Do not ask main Claude to create
32
+ `visual-review-report.md` for a routine approved UI change.
33
+
34
+ Emit a full `# Visual Review Report` body only when
35
+ `change-classification.md` explicitly requires `visual-review-report.md`, when
36
+ visual evidence must be preserved as a bundle, or when the decision is
37
+ `changes-required`.
38
+
30
39
  ```md
31
40
  # Visual Review Report
32
41
 
@@ -12,9 +12,32 @@ description: Start a new tracked change. Scaffolds all required artifacts, class
12
12
  - `specs/changes/<id>/` = why we decided this back then (passive archive ??read only when investigating history, never as input to planning)
13
13
  - `CLAUDE.md` = what this project is and how to start work
14
14
 
15
- ## Spec depth rules
15
+ ## Artifact ownership and deduplication
16
16
 
17
- Every artifact under `specs/changes/<id>/` answers **WHAT** and **WHY**, not HOW.
17
+ Every artifact under `specs/changes/<id>/` must have one authoritative job.
18
+ Do not duplicate the same fact across multiple markdown files. Later artifacts
19
+ must reference earlier artifacts by path, section, criterion id, or decision id
20
+ instead of restating full content.
21
+
22
+ Core artifacts:
23
+
24
+ | artifact | authority |
25
+ |---|---|
26
+ | `change-classification.md` | risk, tier, required agents, required artifacts, acceptance criteria, context-manifest draft |
27
+ | `context-manifest.md` | read boundary and approved context |
28
+ | `test-plan.md` | acceptance criterion to test family/file mapping |
29
+ | `ci-gates.md` | required/informational/manual gates and promotion policy |
30
+ | `design.md` | architecture/design decisions, only when required |
31
+ | `implementation-plan.md` | concise execution packet that references the above artifacts |
32
+ | `tasks.yml` | centralized task status only |
33
+
34
+ Evidence and review notes default to short optional `agent-log/*.yml` pointers.
35
+ Create report markdown (`qa-report.md`, `visual-review-report.md`,
36
+ `regression-report.md`, `monkey-test-report.md`, `stress-soak-report.md`) only
37
+ when the classifier explicitly requires it, or when a reviewer finds blocking
38
+ findings or approved-with-risk evidence that needs durable review prose.
39
+
40
+ Every spec artifact answers **WHAT** and **WHY**, not HOW.
18
41
 
19
42
  Soft caps (guidance, not gate-enforced):
20
43
  - `spec.md` ??200 lines
@@ -112,11 +135,23 @@ rules to `contracts/` or project guidance (`CLAUDE.md`/`CODEX.md`).
112
135
 
113
136
  ## Artifact opt-in policy
114
137
 
115
- Only create optional artifacts (`current-behavior.md`, `proposal.md`, `spec.md`, `design.md`, `qa-report.md`, `regression-report.md`) when the classifier's `change-classification.md` explicitly marks them as `yes`.
138
+ Only create optional artifacts (`current-behavior.md`, `proposal.md`, `spec.md`,
139
+ `design.md`, `qa-report.md`, `regression-report.md`, `visual-review-report.md`,
140
+ `monkey-test-report.md`, `stress-soak-report.md`) when the classifier's
141
+ `change-classification.md` explicitly marks them as `yes`, or when a reviewer
142
+ finds blocking findings / approved-with-risk evidence that must be preserved as prose.
143
+
144
+ `design.md` is owned by `spec-architect`, not `implementation-planner`. If the
145
+ classifier marks `design.md` as `yes`, marks `Architecture Review Required:
146
+ yes`, or lists `spec-architect` in `## Required Agents`, invoke
147
+ `spec-architect` before `implementation-planner`. If none of those triggers is
148
+ present, mark task `1.3` as `skipped`.
116
149
 
117
150
  Note: `archive.md` is created during `/cdd-close`, not during `/cdd-new` ??it is not part of the classifier's opt-in surface.
118
151
 
119
- If the classifier marks an artifact as `no` or leaves it blank, **do not create the file** ??even if a review agent could contribute to it.
152
+ If the classifier marks an artifact as `no` or leaves it blank, **do not create
153
+ the file** just because an agent could contribute to it. Use an optional
154
+ `agent-log/*.yml` pointer instead.
120
155
 
121
156
  The 7 always-required artifacts are: `change-request.md`, `change-classification.md`, `implementation-plan.md`, `test-plan.md`, `ci-gates.md`, `tasks.yml`, and `context-manifest.md`.
122
157
 
@@ -158,7 +193,7 @@ the kit and is bundled into every install.
158
193
  |---|---|---|
159
194
  | `change-request.md` | `specs/templates/change-request.md` | Fill the `## Original Request` section with the user's exact description before invoking the classifier; leave the rest blank |
160
195
  | `change-classification.md` | `specs/templates/change-classification.md` | Replace blank template with classifier output (Step 2) |
161
- | `implementation-plan.md` | `specs/templates/implementation-plan.md` | `implementation-planner` writes this directly after contracts, tests, design, and CI gate plan are known |
196
+ | `implementation-plan.md` | `specs/templates/implementation-plan.md` | `implementation-planner` writes this directly after contracts, tests, required design, and CI gate plan are known |
162
197
  | `test-plan.md` | `specs/templates/test-plan.md` | `test-strategist` writes this directly |
163
198
  | `ci-gates.md` | `specs/templates/ci-gates.md` | `ci-cd-gatekeeper` writes this directly |
164
199
  | `tasks.yml` | `specs/templates/tasks.yml` | Tick checkboxes as agents complete; backfill `tier:` frontmatter from classifier (Step 2.4) |
@@ -239,7 +274,11 @@ Wait until these five writes are done before continuing.
239
274
 
240
275
  Read `change-classification.md` to determine the tier. Then invoke agents **in the exact order below**.
241
276
 
242
- **For each read-only agent**: wait for its text response ??YOU write its artifact file(s) ??YOU write an optional handoff note when useful ??YOU tick relevant tasks.yml item(s).
277
+ **For each read-only agent**: wait for its text response. YOU write a report
278
+ artifact only if the classifier required that report or the agent found
279
+ blocking findings / approved-with-risk evidence that needs durable prose. Otherwise
280
+ write at most a short optional handoff note, then tick relevant `tasks.yml`
281
+ item(s).
243
282
 
244
283
  **For each write-capable agent**: wait for it to confirm completion ??YOU tick relevant tasks.yml item(s).
245
284
 
@@ -269,8 +308,9 @@ agent:
269
308
  - confirm required artifacts exist; optional handoff notes are not gate inputs
270
309
  - if the agent reports `blocked`, halt and surface its concrete next action
271
310
  - tick the owned `tasks.yml` items immediately
272
- - record incidental/pre-existing findings in the appropriate report instead of
273
- silently fixing unrelated scope
311
+ - record incidental/pre-existing findings in `agent-log/*.yml`; escalate to
312
+ `qa-report.md` or `regression-report.md` only when the finding blocks release,
313
+ changes the QA decision, or needs durable follow-up ownership
274
314
 
275
315
  ### Agent stage badges (UI v1)
276
316
 
@@ -348,16 +388,20 @@ prompt; the agent's behavior is defined by the agent prompt files in
348
388
  - YOU tick: applicable items in section 3 based on what test families were planned
349
389
  - Provide the classifier's `## Inferred Acceptance Criteria` list to test-strategist. These become the `criterion id` column in the Acceptance Criteria ??Test Mapping table.
350
390
 
351
- 3. **`spec-architect`** (write-capable) ??only if `change-classification.md` contains `Architecture Review Required: yes`.
352
- - YOU tick: `1.3` (if it produced a gate plan)
391
+ 3. **`spec-architect`** (write-capable) ??only if `change-classification.md` contains `Architecture Review Required: yes`, marks `design.md` as `yes`, or lists `spec-architect` in `## Required Agents`.
392
+ - Writes `specs/changes/<change-id>/design.md` directly. This is the design/architecture decision record consumed by `implementation-planner`.
393
+ - YOU tick: `1.3`
394
+ - If the classifier did not require design, YOU mark `1.3` as `skipped` before continuing.
353
395
 
354
396
  4. **`ci-cd-gatekeeper`** (write-capable) ??writes `specs/changes/<change-id>/ci-gates.md` directly before implementation planning.
355
- - YOU tick: `1.3`, `4.4`, applicable items in section 6
397
+ - YOU tick: `1.4`, `4.4`, applicable items in section 6
356
398
 
357
- 5. **`implementation-planner`** (write-capable) ??writes `specs/changes/<change-id>/implementation-plan.md` directly after classification, contracts, test plan, design, and CI gate plan are available.
399
+ 5. **`implementation-planner`** (write-capable) ??writes `specs/changes/<change-id>/implementation-plan.md` directly after classification, contracts, test plan, required design, and CI gate plan are available.
358
400
  - This is the handoff packet for implementation agents. It should contain execution scope, non-goals, required changes, file-level plan, contract updates, test execution plan, and constraints.
401
+ - It must reference `test-plan.md`, `ci-gates.md`, contracts, and `design.md` by path/section/id instead of copying their full content.
402
+ - It must not create or repair `design.md`. If required design is missing, route back to `spec-architect`.
359
403
  - If it reports `blocked`, halt and surface the missing decision/context to the user.
360
- - YOU tick: `1.4`
404
+ - YOU tick: `1.5`
361
405
 
362
406
  6. **`backend-engineer`** (write-capable) ??if the change touches server, API, data, or business logic. Writes implementation directly; may write an optional handoff note.
363
407
  - YOU tick: `4.1` and/or `4.3` based on scope
@@ -409,7 +453,8 @@ All agents from Tier 2??, plus insert these after `frontend-engineer` / `backend
409
453
  - If a required or informational test has pre-existing failures unrelated to
410
454
  this change, do not count them as this change's pass/fail result. Record the
411
455
  failing test id, baseline commit or prior evidence, owner, and follow-up in
412
- `qa-report.md`; QA may only approve this as `approved-with-risk`.
456
+ optional `agent-log/*.yml`; create `qa-report.md` only when the QA decision is
457
+ `approved-with-risk` or `blocked`.
413
458
  - If implementation uncovers unrelated old bugs, fix only those needed to meet
414
459
  this change's acceptance criteria or to avoid a new safety/security risk.
415
460
  Otherwise record them as follow-up with evidence and owner.
@@ -490,7 +535,7 @@ Gate: PASSED
490
535
  Tasks completed:
491
536
  - [x] all applicable items have status: done in specs/changes/<change-id>/tasks.yml
492
537
 
493
- All artifacts written to: specs/changes/<change-id>/
538
+ Core artifacts written to: specs/changes/<change-id>/
494
539
 
495
540
  Next step:
496
541
  git add specs/changes/<change-id>/
@@ -518,7 +563,7 @@ Please review the above items and re-run: cdd-kit gate <change-id>
518
563
  ## Rules
519
564
 
520
565
  - Never start implementation (backend/frontend-engineer) before `contract-reviewer` has completed for Tier 0?? changes
521
- - Never start implementation (backend/frontend-engineer or dedicated test engineers) before `implementation-plan.md` exists and `tasks.yml` item `1.4` is done
566
+ - Never start implementation (backend/frontend-engineer or dedicated test engineers) before `implementation-plan.md` exists and `tasks.yml` item `1.5` is done
522
567
  - Never skip `test-plan.md` for Tier 0?? changes
523
568
  - Never skip `ci-gates.md` for any implementation change
524
569
  - Agent logs are optional; do not create them just to satisfy a gate.
@@ -42,6 +42,7 @@ Read only these state files first:
42
42
  - `specs/changes/<change-id>/context-manifest.md` if present
43
43
  - `specs/changes/<change-id>/agent-log/*.yml`
44
44
  - `specs/changes/<change-id>/change-classification.md`
45
+ - `specs/changes/<change-id>/design.md` if present
45
46
  - `specs/changes/<change-id>/implementation-plan.md` if present
46
47
 
47
48
  Do not run broad repository search during resume. Do not read `src/`, `tests/`, or `contracts/` unless the current `context-manifest.md` authorizes that path or an approved expansion lists it.
@@ -55,6 +56,8 @@ Read `specs/changes/<change-id>/agent-log/` to list which agents have already ru
55
56
 
56
57
  Read `specs/changes/<change-id>/change-classification.md` to recall the tier and required agents.
57
58
 
59
+ If `change-classification.md` requires `design.md` (`Architecture Review Required: yes`, Optional Artifacts `design.md: yes`, or Required Agents includes `spec-architect`) and `design.md` is missing or still a scaffold, resume from `spec-architect` before invoking `implementation-planner`.
60
+
58
61
  Read `specs/changes/<change-id>/implementation-plan.md` if it exists. If implementation tasks are still pending and the plan is missing or still a scaffold, resume from `implementation-planner` before invoking backend/frontend/test implementation agents.
59
62
 
60
63
  Read `specs/changes/<change-id>/context-manifest.md`:
@@ -114,6 +117,7 @@ Continue until all required agents are done, then run `cdd-kit gate <change-id>`
114
117
  - Never start from Step 1 of `/cdd-new` — only resume from the next pending agent
115
118
  - Never use broad search to reconstruct state; resume from `tasks.yml`, `context-manifest.md`, and `agent-log/`
116
119
  - Never continue past pending Context Expansion Requests
120
+ - Never resume `implementation-planner` before required `design.md` exists
117
121
  - Never resume backend/frontend/test implementation agents before `implementation-plan.md` is ready
118
122
  - If tasks.yml has `status: abandoned`, report to user and stop
119
123
  - If tasks.yml has `status: gate-blocked`, go directly to gate retry (max 3)
@@ -22,6 +22,13 @@ Use this skill to turn software requests into traceable, testable, CI/CD-gated c
22
22
  3. Select required artifacts.
23
23
  - Use templates in `templates/`.
24
24
  - Do not force every artifact for tiny changes, but do require `change-classification.md`, `implementation-plan.md`, `test-plan.md`, and `ci-gates.md` for implementation changes.
25
+ - Keep each fact in one authoritative artifact. Later artifacts should
26
+ reference earlier artifacts by path, section, criterion id, decision id, or
27
+ gate name instead of duplicating full prose.
28
+ - Use optional `agent-log/*.yml` pointers for routine review evidence.
29
+ Create report markdown only for blocking findings, approved-with-risk,
30
+ excluded pre-existing failures, visual evidence bundles, or high-risk
31
+ load/soak results.
25
32
  4. Update contracts before or alongside implementation. Invoke contract-reviewer to validate API/CSS/env/data/business/CI-CD contracts before or alongside implementation.
26
33
  - API: `references/api-contract-standard.md`
27
34
  - CSS/UI: `references/css-contract-standard.md`
@@ -39,12 +46,16 @@ Use this skill to turn software requests into traceable, testable, CI/CD-gated c
39
46
  - `stress-soak-engineer` implements load, soak, and long-running stability tests.
40
47
  - Invoke the relevant test engineer(s) before or alongside implementation based on the risk tier.
41
48
  - Each engineer must read the matching standard before authoring tests: e2e-resilience-engineer → references/e2e-standard.md, monkey-test-engineer → references/monkey-operation-standard.md, stress-soak-engineer → references/stress-soak-standard.md.
42
- 6. Produce the implementation plan.
43
- - Invoke `implementation-planner` after classification, contracts, test-plan, design (if any), and CI gate plan are known.
49
+ 6. Confirm design decisions when required.
50
+ - If classification marks `Architecture Review Required: yes`, Optional Artifacts `design.md: yes`, or Required Agents includes `spec-architect`, invoke `spec-architect` before `implementation-planner`.
51
+ - `spec-architect` owns `specs/changes/<id>/design.md`.
52
+ - `implementation-planner` must not create or repair `design.md`; if required design is missing, route back to `spec-architect`.
53
+ 7. Produce the implementation plan.
54
+ - Invoke `implementation-planner` after classification, contracts, test-plan, required design, and CI gate plan are known.
44
55
  - `implementation-plan.md` is the execution packet for implementation agents: scope, non-goals, file-level plan, contract updates, tests, acceptance criteria, and constraints.
45
56
  - Keep the plan concise. It should not duplicate the full investigation history or user discussion.
46
57
  - If the planner reports missing decisions or context, stop before implementation and resolve that gap.
47
- 7. Implement through the right role.
58
+ 8. Implement through the right role.
48
59
  - Backend/frontend work must follow contracts and tests.
49
60
  - Backend/frontend/test implementation agents must read `implementation-plan.md` and should report `blocked` instead of inferring missing requirements from chat history.
50
61
  - Before invoking an agent with known concrete read paths, run
@@ -56,12 +67,12 @@ Use this skill to turn software requests into traceable, testable, CI/CD-gated c
56
67
  - Invoke ui-ux-reviewer for interaction, copy, accessibility, and information hierarchy review whenever UI changes.
57
68
  - Invoke visual-reviewer for layout, responsive, CSS contract, and screenshot diff review whenever UI changes.
58
69
  - If implementation reveals an unexpected boundary or architectural constraint, halt and re-invoke `spec-architect` before continuing.
59
- 8. Run quality gates.
70
+ 9. Run quality gates.
60
71
  - Use `references/qa-gates.md`.
61
72
  - CI/CD gate plan is mandatory.
62
73
  - `qa-reviewer` decides release readiness; Tier 1 gates must be green; Tier 3+ gates must be green or explicitly deferred with a recorded promotion policy.
63
74
  - Invoke ci-cd-gatekeeper to design and enforce the gate plan.
64
- 9. Archive and audit drift.
75
+ 10. Archive and audit drift.
65
76
  - Use `references/spec-drift-policy.md`.
66
77
  - General agents record evidence and findings only; durable learning
67
78
  promotion happens only during `/cdd-close` Step 3.
@@ -87,7 +98,7 @@ Use this skill to turn software requests into traceable, testable, CI/CD-gated c
87
98
  - test-plan
88
99
  - ci-gates
89
100
  - tasks
90
- - QA report
101
+ - QA verdict; `qa-report.md` only when blocked, approved-with-risk, or required by classification
91
102
 
92
103
  ### UI change
93
104
 
@@ -121,6 +132,10 @@ Required when the change involves report generation, large queries, auto-refresh
121
132
 
122
133
  When using this skill, produce concrete artifact content instead of vague recommendations. Include exact files to create/update, exact gates to run, exact commands if detectable, and exact acceptance criteria.
123
134
 
135
+ Avoid artifact sprawl: do not create optional markdown when a concise verdict
136
+ or `agent-log/*.yml` pointer is enough. Do not duplicate full test strategy,
137
+ CI policy, design rationale, or contract prose across artifacts.
138
+
124
139
  ## Scripts
125
140
 
126
141
  - `scripts/detect_project_profile.py`: inspect a repository and emit a Markdown project profile.
@@ -137,4 +152,6 @@ Run scripts with Python 3 from the repository root.
137
152
  - `tasks.yml`: structured YAML, validated by `src/schemas/tasks.schema.ts`.
138
153
  - `agent-log/<agent>.yml`: optional structured handoff note per `references/agent-log-protocol.md`.
139
154
  - `implementation-plan.md`: required execution handoff for implementation agents.
140
- - All other change artifacts remain markdown prose.
155
+ - Report markdown is optional and reserved for durable review evidence. Routine
156
+ pass/fail evidence belongs in short `agent-log/*.yml` pointers or the final
157
+ assistant summary.
@@ -20,7 +20,11 @@
20
20
 
21
21
  ## QA rule
22
22
 
23
- QA approval requires evidence. Evidence may be command output, CI links, logs, screenshots, videos, traces, metrics, or artifact files.
23
+ QA approval requires evidence. Evidence may be command output, CI links, logs,
24
+ screenshots, videos, traces, metrics, or artifact files. Routine approvals
25
+ should use concise verdict text plus optional `agent-log/*.yml` pointers.
26
+ Create `qa-report.md` only for blocked, approved-with-risk, or excluded
27
+ pre-existing failure decisions.
24
28
 
25
29
  ## Fixback rule
26
30
 
@@ -25,4 +25,7 @@ Run a drift audit when:
25
25
 
26
26
  ## Output
27
27
 
28
- Use `templates/regression-report.md` or create `spec-drift-audit.md` when the audit is standalone.
28
+ Use concise verdict text plus optional `agent-log/*.yml` evidence pointers for
29
+ clean audits. Use `templates/regression-report.md` or create
30
+ `spec-drift-audit.md` only when drift is found, the user asked for standalone
31
+ audit documentation, or the change needs durable follow-up prose.
@@ -40,3 +40,7 @@ Define:
40
40
  - raw logs or metrics
41
41
  - pass/fail conclusion
42
42
  - follow-up issues for degraded but non-blocking findings
43
+
44
+ Routine results may be captured as concise response text plus optional
45
+ `agent-log/*.yml` pointers. Create `stress-soak-report.md` only for required
46
+ high-risk evidence, failed/blocked runs, or approved-with-risk decisions.
@@ -24,4 +24,7 @@ Visual review is required when frontend output changes.
24
24
 
25
25
  ## Review output
26
26
 
27
- Use `templates/visual-review-report.md`.
27
+ Use concise verdict text plus optional `agent-log/*.yml` evidence pointers for
28
+ routine approvals. Use `templates/visual-review-report.md` only for blocking
29
+ visual findings, approved-with-risk decisions, or evidence bundles that need
30
+ durable review prose.
@@ -9,27 +9,36 @@ def main():
9
9
  ap.add_argument('change_id')
10
10
  ap.add_argument('--root', default='.')
11
11
  ap.add_argument('--templates', default=None)
12
+ ap.add_argument('--all', action='store_true', help='also copy optional report/spec templates')
12
13
  args=ap.parse_args()
13
14
  root=Path(args.root).resolve()
14
15
  templates=Path(args.templates).resolve() if args.templates else Path(__file__).resolve().parents[1]/'templates'
15
16
  dest=root/'specs'/'changes'/args.change_id
16
17
  dest.mkdir(parents=True, exist_ok=False)
17
- mapping={
18
+ required={
18
19
  'change-request.md':'change-request.md',
19
20
  'change-classification.md':'change-classification.md',
20
21
  'implementation-plan.md':'implementation-plan.md',
22
+ 'test-plan.md':'test-plan.md',
23
+ 'ci-gates.md':'ci-gates.md',
24
+ 'tasks.yml':'tasks.yml',
25
+ }
26
+ optional={
21
27
  'current-behavior.md':'current-behavior.md',
22
28
  'proposal.md':'proposal.md',
23
29
  'spec.md':'spec.md',
24
30
  'design.md':'design.md',
25
31
  'contracts.md':'contracts.md',
26
- 'test-plan.md':'test-plan.md',
27
- 'ci-gates.md':'ci-gates.md',
28
- 'tasks.yml':'tasks.yml',
29
32
  'qa-report.md':'qa-report.md',
30
33
  'regression-report.md':'regression-report.md',
34
+ 'visual-review-report.md':'visual-review-report.md',
35
+ 'monkey-test-report.md':'monkey-test-report.md',
36
+ 'stress-soak-report.md':'stress-soak-report.md',
31
37
  'archive.md':'archive.md',
32
38
  }
39
+ mapping=dict(required)
40
+ if args.all:
41
+ mapping.update(optional)
33
42
  for src,dst in mapping.items():
34
43
  s=templates/src
35
44
  if s.exists():
@@ -16,6 +16,7 @@
16
16
  ## Architecture Review Required
17
17
  - yes / no
18
18
  - reason: (fill only if yes)
19
+ <!-- If yes, Optional Artifacts must set design.md to yes and Required Agents must include spec-architect. -->
19
20
 
20
21
  ## Required Artifacts
21
22
  Always required: change-request.md, change-classification.md, implementation-plan.md, test-plan.md, ci-gates.md, tasks.yml, context-manifest.md
@@ -29,6 +30,14 @@ Always required: change-request.md, change-classification.md, implementation-pla
29
30
  | design.md | no | |
30
31
  | qa-report.md | no | |
31
32
  | regression-report.md | no | |
33
+ | visual-review-report.md | no | |
34
+ | monkey-test-report.md | no | |
35
+ | stress-soak-report.md | no | |
36
+
37
+ Artifact minimization:
38
+ - Prefer optional `agent-log/*.yml` pointers for routine review evidence.
39
+ - Create report markdown only for blocking findings, approved-with-risk, excluded pre-existing failures, visual evidence bundles, or high-risk load/soak results.
40
+ - Later artifacts should reference earlier artifacts by path/section/id instead of duplicating full content.
32
41
 
33
42
  ## Required Contracts
34
43
  - API:
@@ -61,7 +70,8 @@ Always required: change-request.md, change-classification.md, implementation-pla
61
70
 
62
71
  ## Tasks Not Applicable
63
72
  <!-- Comma-separated task IDs from tasks.yml that do NOT apply to this change.
64
- /cdd-new SKILL marks these as `status: skipped` in tasks.yml. -->
73
+ /cdd-new SKILL marks these as `status: skipped` in tasks.yml.
74
+ Include 1.3 when design.md is not required. -->
65
75
  - not-applicable:
66
76
 
67
77
  ## Clarifications or Assumptions
@@ -29,3 +29,7 @@
29
29
  ## Artifact Retention
30
30
 
31
31
  ## Merge Eligibility Decision
32
+
33
+ ## Notes
34
+
35
+ Reference test-plan.md rows or gate names instead of duplicating full test strategy.
@@ -24,6 +24,14 @@ last-changed: <date>
24
24
  |---|---|---|---|
25
25
  | IP-1 | | | |
26
26
 
27
+ ## Source Artifact Pointers
28
+
29
+ | source | relevant pointer | used for |
30
+ |---|---|---|
31
+ | test-plan.md | AC-1 | tests to run/write |
32
+ | ci-gates.md | required gates table | verification commands |
33
+ | design.md | Decision: | implementation constraint |
34
+
27
35
  ## File-Level Plan
28
36
 
29
37
  | path or glob | action | notes |
@@ -48,6 +56,7 @@ last-changed: <date>
48
56
  ## Handoff Constraints
49
57
 
50
58
  - Implementation agents must not infer missing requirements from chat history.
59
+ - Do not re-copy full design, test strategy, CI policy, or contract prose into this plan; follow the source pointers above.
51
60
  - If this plan omits a required file, behavior, contract, or test, stop and report `blocked`.
52
61
  - Keep implementation within the file-level plan unless a Context Expansion Request is approved.
53
62
 
@@ -11,8 +11,9 @@ tasks:
11
11
  # status: pending | done | skipped
12
12
  - { id: "1.1", section: Preparation, title: "Confirm classification and required artifacts", status: pending }
13
13
  - { id: "1.2", section: Preparation, title: "Confirm contracts to update", status: pending }
14
- - { id: "1.3", section: Preparation, title: "Confirm CI/CD gate plan", status: pending }
15
- - { id: "1.4", section: Preparation, title: "Confirm implementation plan", status: pending }
14
+ - { id: "1.3", section: Preparation, title: "Confirm design decisions if required", status: pending }
15
+ - { id: "1.4", section: Preparation, title: "Confirm CI/CD gate plan", status: pending }
16
+ - { id: "1.5", section: Preparation, title: "Confirm implementation plan", status: pending }
16
17
  - { id: "2.1", section: "Contract Updates", title: "API contract", status: pending }
17
18
  - { id: "2.2", section: "Contract Updates", title: "CSS/UI contract", status: pending }
18
19
  - { id: "2.3", section: "Contract Updates", title: "Env contract", status: pending }
@@ -22,4 +22,4 @@ Mark all that apply: unit / contract / integration / e2e / data-boundary / resil
22
22
 
23
23
  ## Notes
24
24
 
25
- (Keep this section under 10 lines. Implementation detail belongs in the test files themselves.)
25
+ (Keep this section under 10 lines. Implementation detail belongs in the test files themselves. Do not repeat full implementation-plan or CI-gate content here.)
@@ -16,6 +16,7 @@
16
16
  ## Architecture Review Required
17
17
  - yes / no
18
18
  - reason: (fill only if yes)
19
+ <!-- If yes, Optional Artifacts must set design.md to yes and Required Agents must include spec-architect. -->
19
20
 
20
21
  ## Required Artifacts
21
22
  Always required: change-request.md, change-classification.md, implementation-plan.md, test-plan.md, ci-gates.md, tasks.yml, context-manifest.md
@@ -29,6 +30,14 @@ Always required: change-request.md, change-classification.md, implementation-pla
29
30
  | design.md | no | |
30
31
  | qa-report.md | no | |
31
32
  | regression-report.md | no | |
33
+ | visual-review-report.md | no | |
34
+ | monkey-test-report.md | no | |
35
+ | stress-soak-report.md | no | |
36
+
37
+ Artifact minimization:
38
+ - Prefer optional `agent-log/*.yml` pointers for routine review evidence.
39
+ - Create report markdown only for blocking findings, approved-with-risk, excluded pre-existing failures, visual evidence bundles, or high-risk load/soak results.
40
+ - Later artifacts should reference earlier artifacts by path/section/id instead of duplicating full content.
32
41
 
33
42
  ## Required Contracts
34
43
  - API:
@@ -61,7 +70,8 @@ Always required: change-request.md, change-classification.md, implementation-pla
61
70
 
62
71
  ## Tasks Not Applicable
63
72
  <!-- Comma-separated task IDs from tasks.yml that do NOT apply to this change.
64
- /cdd-new SKILL marks these as `status: skipped` in tasks.yml. -->
73
+ /cdd-new SKILL marks these as `status: skipped` in tasks.yml.
74
+ Include 1.3 when design.md is not required. -->
65
75
  - not-applicable:
66
76
 
67
77
  ## Clarifications or Assumptions
@@ -29,3 +29,7 @@
29
29
  ## Artifact Retention
30
30
 
31
31
  ## Merge Eligibility Decision
32
+
33
+ ## Notes
34
+
35
+ Reference test-plan.md rows or gate names instead of duplicating full test strategy.
@@ -24,6 +24,14 @@ last-changed: <date>
24
24
  |---|---|---|---|
25
25
  | IP-1 | | | |
26
26
 
27
+ ## Source Artifact Pointers
28
+
29
+ | source | relevant pointer | used for |
30
+ |---|---|---|
31
+ | test-plan.md | AC-1 | tests to run/write |
32
+ | ci-gates.md | required gates table | verification commands |
33
+ | design.md | Decision: | implementation constraint |
34
+
27
35
  ## File-Level Plan
28
36
 
29
37
  | path or glob | action | notes |
@@ -48,6 +56,7 @@ last-changed: <date>
48
56
  ## Handoff Constraints
49
57
 
50
58
  - Implementation agents must not infer missing requirements from chat history.
59
+ - Do not re-copy full design, test strategy, CI policy, or contract prose into this plan; follow the source pointers above.
51
60
  - If this plan omits a required file, behavior, contract, or test, stop and report `blocked`.
52
61
  - Keep implementation within the file-level plan unless a Context Expansion Request is approved.
53
62
 
@@ -11,8 +11,9 @@ tasks:
11
11
  # status: pending | done | skipped (optional: note: "reason or context")
12
12
  - { id: "1.1", section: Preparation, title: "Confirm classification and required artifacts", status: pending }
13
13
  - { id: "1.2", section: Preparation, title: "Confirm contracts to update", status: pending }
14
- - { id: "1.3", section: Preparation, title: "Confirm CI/CD gate plan", status: pending }
15
- - { id: "1.4", section: Preparation, title: "Confirm implementation plan", status: pending }
14
+ - { id: "1.3", section: Preparation, title: "Confirm design decisions if required", status: pending }
15
+ - { id: "1.4", section: Preparation, title: "Confirm CI/CD gate plan", status: pending }
16
+ - { id: "1.5", section: Preparation, title: "Confirm implementation plan", status: pending }
16
17
  - { id: "2.1", section: "Contract Updates", title: "API contract", status: pending }
17
18
  - { id: "2.2", section: "Contract Updates", title: "CSS/UI contract", status: pending }
18
19
  - { id: "2.3", section: "Contract Updates", title: "Env contract", status: pending }
@@ -22,4 +22,4 @@ Mark all that apply: unit / contract / integration / e2e / data-boundary / resil
22
22
 
23
23
  ## Notes
24
24
 
25
- (Keep this section under 10 lines. Implementation detail belongs in the test files themselves.)
25
+ (Keep this section under 10 lines. Implementation detail belongs in the test files themselves. Do not repeat full implementation-plan or CI-gate content here.)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "contract-driven-delivery",
3
- "version": "2.0.18",
3
+ "version": "2.0.19",
4
4
  "description": "Contract-driven delivery kit for AI coding agents with deterministic context indexes, manifest-backed read-scope governance, and orchestrated contracts-first delivery.",
5
5
  "keywords": [
6
6
  "contract-driven",