contract-driven-delivery 1.16.0 → 2.0.1
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 +48 -0
- package/README.md +48 -28
- package/assets/CODEX.template.md +4 -4
- package/assets/agents/backend-engineer.md +2 -2
- package/assets/agents/change-classifier.md +6 -5
- package/assets/agents/ci-cd-gatekeeper.md +1 -1
- package/assets/agents/contract-reviewer.md +3 -2
- package/assets/agents/dependency-security-reviewer.md +3 -3
- package/assets/agents/e2e-resilience-engineer.md +1 -1
- package/assets/agents/frontend-engineer.md +1 -1
- package/assets/agents/monkey-test-engineer.md +1 -1
- package/assets/agents/qa-reviewer.md +3 -2
- package/assets/agents/repo-context-scanner.md +3 -3
- package/assets/agents/spec-architect.md +1 -1
- package/assets/agents/spec-drift-auditor.md +3 -3
- package/assets/agents/stress-soak-engineer.md +1 -1
- package/assets/agents/test-strategist.md +1 -1
- package/assets/agents/ui-ux-reviewer.md +3 -3
- package/assets/agents/visual-reviewer.md +3 -3
- package/assets/skills/cdd-close/SKILL.md +9 -9
- package/assets/skills/cdd-new/SKILL.md +28 -28
- package/assets/skills/cdd-resume/SKILL.md +15 -15
- package/assets/skills/contract-driven-delivery/SKILL.md +6 -0
- package/assets/skills/contract-driven-delivery/references/agent-log-protocol.md +90 -60
- package/assets/skills/contract-driven-delivery/scripts/generate_change_scaffold.py +1 -1
- package/assets/skills/contract-driven-delivery/scripts/validate_spec_traceability.py +1 -1
- package/assets/skills/contract-driven-delivery/templates/agent-log.example.yml +14 -0
- package/assets/skills/contract-driven-delivery/templates/change-classification.md +1 -1
- package/assets/skills/contract-driven-delivery/templates/tasks.yml +39 -0
- package/assets/specs-templates/change-classification.md +1 -1
- package/assets/specs-templates/tasks.yml +39 -0
- package/dist/cli/index.js +10228 -555
- package/package.json +6 -2
- package/assets/skills/contract-driven-delivery/templates/tasks.md +0 -50
- package/assets/specs-templates/tasks.md +0 -54
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [2.0.1] - 2026-04-30
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- Clarified the agent ownership model in the public docs so read-only reviewers
|
|
8
|
+
and write-capable implementation agents have explicit, non-conflicting file
|
|
9
|
+
ownership rules.
|
|
10
|
+
- Aligned bundled prompts so read-only agents emit an `Agent Log` YAML block
|
|
11
|
+
for main Claude to persist, while write-capable agents continue writing their
|
|
12
|
+
own artifacts and `agent-log/*.yml` files.
|
|
13
|
+
- Synchronized package version metadata for the post-`2.0.0` publish path.
|
|
14
|
+
|
|
15
|
+
## [2.0.0] - 2026-04-30
|
|
16
|
+
|
|
17
|
+
### BREAKING: structured YAML for tasks and agent-log
|
|
18
|
+
|
|
19
|
+
- `tasks.md` is replaced by `tasks.yml`. The previous markdown-frontmatter +
|
|
20
|
+
checklist hybrid is gone. The new file is a single YAML document validated
|
|
21
|
+
by `src/schemas/tasks.schema.ts` (JSON Schema, draft-07). Task items use
|
|
22
|
+
`status: pending | done | skipped` instead of `[ ] / [x] / [-]` checkboxes.
|
|
23
|
+
- `agent-log/<agent>.md` is replaced by `agent-log/<agent>.yml`, validated by
|
|
24
|
+
`src/schemas/agent-log.schema.ts`. The "field: value" prose convention is
|
|
25
|
+
gone; agents now emit a structured YAML record with `change-id`, `agent`,
|
|
26
|
+
`timestamp` (ISO 8601), `status`, `files-read`, `artifacts`, and
|
|
27
|
+
`next-action`.
|
|
28
|
+
- `cdd-kit gate` parses both files with `js-yaml` and validates them with
|
|
29
|
+
`ajv`. Errors and warnings now reference YAML paths rather than markdown
|
|
30
|
+
line patterns.
|
|
31
|
+
- All bundled templates, skill prompts, agent prompts, and Python helper
|
|
32
|
+
scripts have been updated to point at the new file names.
|
|
33
|
+
|
|
34
|
+
### Upgrading
|
|
35
|
+
|
|
36
|
+
Run `cdd-kit migrate <change-id>` (or `cdd-kit migrate --all`) to convert
|
|
37
|
+
existing changes:
|
|
38
|
+
|
|
39
|
+
- `tasks.md` is parsed (frontmatter + markdown checklist) and rewritten as
|
|
40
|
+
`tasks.yml`. The legacy `tasks.md` is deleted.
|
|
41
|
+
- Every `agent-log/*.md` is parsed and rewritten as `agent-log/*.yml`. The
|
|
42
|
+
legacy markdown logs are deleted.
|
|
43
|
+
- A backup of the change directory is written to
|
|
44
|
+
`.cdd/migrate-backup/<stamp>/<change-id>/` before any rewrite.
|
|
45
|
+
|
|
46
|
+
### Notes
|
|
47
|
+
|
|
48
|
+
This is a breaking release; pin to `^1.16.0` if you still depend on the old
|
|
49
|
+
markdown formats.
|
|
50
|
+
|
|
3
51
|
## [1.16.0] - 2026-04-30
|
|
4
52
|
|
|
5
53
|
### Visual narration: per-agent stage badges
|
package/README.md
CHANGED
|
@@ -99,10 +99,23 @@ or
|
|
|
99
99
|
8. `cdd-kit gate <change-id>` runs automatically to confirm all artifacts are complete
|
|
100
100
|
9. Claude reports a summary and the suggested git commit
|
|
101
101
|
|
|
102
|
+
### Agent Ownership Model
|
|
103
|
+
|
|
104
|
+
CDD uses two agent classes on purpose:
|
|
105
|
+
|
|
106
|
+
- `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 an `Agent Log` YAML block; main Claude writes the corresponding files.
|
|
107
|
+
- `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 and their own `agent-log/*.yml`.
|
|
108
|
+
|
|
109
|
+
This split is deliberate:
|
|
110
|
+
|
|
111
|
+
- Review and audit agents stay read-only so they do not silently change the thing they are supposed to assess.
|
|
112
|
+
- 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.
|
|
113
|
+
- `tasks.yml` remains owned by main Claude so task state changes stay centralized even when multiple agents contribute files.
|
|
114
|
+
|
|
102
115
|
**You stay in control by:**
|
|
103
116
|
- Reviewing the `change-classification.md` before implementation starts
|
|
104
117
|
- Checking the `test-plan.md` to confirm the right test families are planned
|
|
105
|
-
- Reading the final `agent-log/qa-reviewer.
|
|
118
|
+
- Reading the final `agent-log/qa-reviewer.yml` for the release-readiness verdict
|
|
106
119
|
|
|
107
120
|
---
|
|
108
121
|
|
|
@@ -142,12 +155,12 @@ What changes are currently in progress? (cdd-kit list)
|
|
|
142
155
|
```
|
|
143
156
|
|
|
144
157
|
**What happens:**
|
|
145
|
-
1. Claude reads `tasks.
|
|
158
|
+
1. Claude reads `tasks.yml` and `agent-log/` to determine what was completed
|
|
146
159
|
2. Reports the current state (which agents ran, which tasks are pending)
|
|
147
160
|
3. Asks if you want to continue from the next pending agent
|
|
148
161
|
4. Resumes the full agent flow from where it stopped, with no duplication
|
|
149
162
|
|
|
150
|
-
> If you're upgrading from an older version and your change was created before
|
|
163
|
+
> If you're upgrading from an older version and your change was created before v2.0.0, Claude will automatically run `cdd-kit migrate <change-id>` to upgrade the format before resuming.
|
|
151
164
|
|
|
152
165
|
---
|
|
153
166
|
|
|
@@ -285,18 +298,18 @@ cdd-kit gate add-jwt-auth --lax
|
|
|
285
298
|
```
|
|
286
299
|
|
|
287
300
|
Checks:
|
|
288
|
-
- All required artifacts exist (`change-request.md`, `change-classification.md`, `test-plan.md`, `ci-gates.md`, `tasks.
|
|
301
|
+
- All required artifacts exist (`change-request.md`, `change-classification.md`, `test-plan.md`, `ci-gates.md`, `tasks.yml`; new context-governed changes also require `context-manifest.md`)
|
|
289
302
|
- Each artifact has sufficient content (not a stub): change-classification ≥ 200 chars, test-plan ≥ 200, ci-gates ≥ 150, others ≥ 100
|
|
290
303
|
- `change-classification.md` contains a tier or risk marker
|
|
291
|
-
- `agent-log/*.
|
|
292
|
-
- For context-governed changes, `agent-log/*.
|
|
304
|
+
- `agent-log/*.yml` files all have `status: complete` (not blocked)
|
|
305
|
+
- For context-governed changes, `agent-log/*.yml` files include a structured `files-read:` list and those repo-relative paths are audited against `context-manifest.md` and `.cdd/context-policy.json`
|
|
293
306
|
- Atomic `depends-on` upstream changes are completed or archived before dependent work gates
|
|
294
307
|
- Tier 0–1 changes have `e2e-resilience-engineer`, `monkey-test-engineer`, and `stress-soak-engineer` logs
|
|
295
308
|
- Tier 0–3 changes have `contract-reviewer` and `qa-reviewer` logs
|
|
296
309
|
- All contract validators pass
|
|
297
310
|
|
|
298
311
|
`--strict` additionally:
|
|
299
|
-
- Treats any
|
|
312
|
+
- Treats any task with `status: pending` (except IDs listed in `archive-tasks`) as an error
|
|
300
313
|
- Treats runtime-vs-declared `files-read` drift as errors
|
|
301
314
|
- Treats legacy changes missing `context-manifest.md` or `files-read` audit data as errors
|
|
302
315
|
|
|
@@ -309,8 +322,8 @@ Pre-commit hook uses `--strict` by default (installed via `cdd-kit install-hooks
|
|
|
309
322
|
|
|
310
323
|
✗ gate failed for change: feat-001
|
|
311
324
|
✗ change-classification.md: appears to be a stub (< 200 meaningful chars)
|
|
312
|
-
✗ Tier 1 change requires agent-log/e2e-resilience-engineer.
|
|
313
|
-
✗ 1 task(s) still pending (
|
|
325
|
+
✗ Tier 1 change requires agent-log/e2e-resilience-engineer.yml
|
|
326
|
+
✗ 1 task(s) still pending (mark archive items in archive-tasks frontmatter; mark N/A items as status: skipped)
|
|
314
327
|
```
|
|
315
328
|
|
|
316
329
|
---
|
|
@@ -342,13 +355,13 @@ cdd-kit archive add-jwt-auth
|
|
|
342
355
|
# ✓ Index updated: specs/archive/INDEX.md
|
|
343
356
|
```
|
|
344
357
|
|
|
345
|
-
Warns (but does not block) if `tasks.
|
|
358
|
+
Warns (but does not block) if `tasks.yml` has pending items or `status: gate-blocked`. Use after `/cdd-close` — the skill runs this automatically at the end.
|
|
346
359
|
|
|
347
360
|
---
|
|
348
361
|
|
|
349
362
|
### `cdd-kit abandon <change-id>`
|
|
350
363
|
|
|
351
|
-
Marks a change as abandoned. Updates `tasks.
|
|
364
|
+
Marks a change as abandoned. Updates `tasks.yml` status to `abandoned`, records the reason in `specs/archive/INDEX.md`. The directory stays on disk for git history.
|
|
352
365
|
|
|
353
366
|
```bash
|
|
354
367
|
cdd-kit abandon add-jwt-auth --reason "using Auth0 instead"
|
|
@@ -359,7 +372,7 @@ cdd-kit abandon add-jwt-auth --reason "using Auth0 instead"
|
|
|
359
372
|
|
|
360
373
|
### `cdd-kit migrate <change-id> | --all`
|
|
361
374
|
|
|
362
|
-
Upgrades pre-
|
|
375
|
+
Upgrades pre-v2.0.0 change directories to the current format.
|
|
363
376
|
|
|
364
377
|
```bash
|
|
365
378
|
cdd-kit migrate add-jwt-auth # migrate one change
|
|
@@ -369,15 +382,15 @@ cdd-kit migrate --all --enable-context-governance
|
|
|
369
382
|
```
|
|
370
383
|
|
|
371
384
|
What it upgrades:
|
|
372
|
-
- `tasks.
|
|
385
|
+
- `tasks.yml`: converts legacy `tasks.md` checklist/frontmatter into structured YAML task records
|
|
373
386
|
- `change-classification.md`: detects old `**Tier:** Tier N` format and appends the new `## Tier\n- N` section so tier-based gate checks activate
|
|
374
387
|
- `context-manifest.md`: adds a legacy manifest scaffold by default so old changes can continue with warning-only context audit behavior
|
|
375
388
|
- `--enable-context-governance`: explicitly adds `context-governance: v1` and a context-governed manifest scaffold, making missing manifest or malformed `files-read` data hard gate failures
|
|
376
389
|
|
|
377
|
-
`agent-log/*.
|
|
390
|
+
`agent-log/*.yml` must use this `files-read` format for context-governed changes:
|
|
378
391
|
|
|
379
|
-
```
|
|
380
|
-
|
|
392
|
+
```yaml
|
|
393
|
+
files-read:
|
|
381
394
|
- contracts/api/api-contract.md
|
|
382
395
|
- src/server/routes/users.ts
|
|
383
396
|
```
|
|
@@ -415,7 +428,7 @@ cdd-kit context approve add-jwt-auth CER-001
|
|
|
415
428
|
cdd-kit context approve add-jwt-auth --all-pending # bulk approve every pending request
|
|
416
429
|
```
|
|
417
430
|
|
|
418
|
-
This keeps expansion history explicit while avoiding manual manifest editing. Agents still have to report `files-read` in `agent-log/*.
|
|
431
|
+
This keeps expansion history explicit while avoiding manual manifest editing. Agents still have to report `files-read` in `agent-log/*.yml`; `cdd-kit gate` audits those paths against the manifest.
|
|
419
432
|
|
|
420
433
|
---
|
|
421
434
|
|
|
@@ -470,7 +483,7 @@ cdd-kit new add-user-auth --skip-scan
|
|
|
470
483
|
|
|
471
484
|
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
485
|
|
|
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.
|
|
486
|
+
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`.
|
|
474
487
|
|
|
475
488
|
---
|
|
476
489
|
|
|
@@ -559,7 +572,7 @@ git add specs/changes/
|
|
|
559
572
|
git commit -m "chore: migrate changes to current cdd-kit format"
|
|
560
573
|
```
|
|
561
574
|
|
|
562
|
-
This gives those legacy specs
|
|
575
|
+
This gives those legacy specs a new `tasks.yml`, tier markers, and a warning-mode `context-manifest.md` without forcing strict context governance on closed work.
|
|
563
576
|
|
|
564
577
|
### Old in-progress specs
|
|
565
578
|
|
|
@@ -606,7 +619,7 @@ your-repo/
|
|
|
606
619
|
│ │ ├── change-classification.md (required)
|
|
607
620
|
│ │ ├── test-plan.md (required)
|
|
608
621
|
│ │ ├── ci-gates.md (required)
|
|
609
|
-
│ │ ├── tasks.
|
|
622
|
+
│ │ ├── tasks.yml (required)
|
|
610
623
|
│ │ └── agent-log/ ← machine-verifiable evidence per agent
|
|
611
624
|
│ ├── archive/ ← completed and abandoned changes
|
|
612
625
|
│ │ ├── INDEX.md
|
|
@@ -630,15 +643,22 @@ your-repo/
|
|
|
630
643
|
|
|
631
644
|
---
|
|
632
645
|
|
|
633
|
-
## Task notation in `tasks.
|
|
634
|
-
|
|
635
|
-
```markdown
|
|
636
|
-
- [x] 1.1 Confirm classification ← done
|
|
637
|
-
- [-] 2.2 CSS/UI contract ← N/A (not applicable to this change)
|
|
638
|
-
- [ ] 4.1 Backend implementation ← pending
|
|
639
|
-
```
|
|
646
|
+
## Task notation in `tasks.yml`
|
|
640
647
|
|
|
641
|
-
|
|
648
|
+
```yaml
|
|
649
|
+
tasks:
|
|
650
|
+
- id: "1.1"
|
|
651
|
+
title: Confirm classification
|
|
652
|
+
status: done
|
|
653
|
+
- id: "2.2"
|
|
654
|
+
title: CSS/UI contract
|
|
655
|
+
status: skipped
|
|
656
|
+
- id: "4.1"
|
|
657
|
+
title: Backend implementation
|
|
658
|
+
status: pending
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
`cdd-kit gate --strict` treats any task with `status: pending` (except IDs listed in `archive-tasks`, which default to `7.1` and `7.2`) as an error. Use `status: skipped` for tasks that are genuinely not applicable to a given change.
|
|
642
662
|
|
|
643
663
|
---
|
|
644
664
|
|
package/assets/CODEX.template.md
CHANGED
|
@@ -18,12 +18,12 @@ Read `specs/changes/<change-id>/context-manifest.md` before using file-reading o
|
|
|
18
18
|
- Read only paths allowed by the manifest or approved expansions.
|
|
19
19
|
- Do not use broad repository search unless the manifest authorizes it.
|
|
20
20
|
- If more context is needed, stop and write a Context Expansion Request in the manifest.
|
|
21
|
-
- Record every file read through tools in the relevant `agent-log/*.
|
|
21
|
+
- Record every file read through tools in the relevant `agent-log/*.yml` under `files-read:`.
|
|
22
22
|
|
|
23
|
-
Required `agent-log/*.
|
|
23
|
+
Required `agent-log/*.yml` format:
|
|
24
24
|
|
|
25
|
-
```
|
|
26
|
-
|
|
25
|
+
```yaml
|
|
26
|
+
files-read:
|
|
27
27
|
- contracts/api/api-contract.md
|
|
28
28
|
- src/server/routes/users.ts
|
|
29
29
|
```
|
|
@@ -17,7 +17,7 @@ Before editing production code, read the change artifacts, API/env/data/business
|
|
|
17
17
|
- Validate input at the boundary.
|
|
18
18
|
- Return standardized errors, not raw exceptions.
|
|
19
19
|
- Preserve backward compatibility unless the spec explicitly marks a breaking change.
|
|
20
|
-
- **TDD**: Read `specs/changes/<id>/test-plan.md` first. Write failing unit, contract, and integration tests BEFORE writing feature code. Tests in `tasks.
|
|
20
|
+
- **TDD**: Read `specs/changes/<id>/test-plan.md` first. Write failing unit, contract, and integration tests BEFORE writing feature code. Tests in `tasks.yml` items 3.1–3.2 are your responsibility.
|
|
21
21
|
- Update CI/CD workflows when required by `ci-gates.md`.
|
|
22
22
|
|
|
23
23
|
## Common pitfalls
|
|
@@ -48,7 +48,7 @@ In your agent log, reference file paths and function names — do not paste code
|
|
|
48
48
|
## Machine-Verifiable Evidence
|
|
49
49
|
|
|
50
50
|
After completing your task, write or append to
|
|
51
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
51
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
52
52
|
field rules, and gate-enforcement behavior are defined once in
|
|
53
53
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
54
54
|
|
|
@@ -47,7 +47,7 @@ Before producing a single classification, check these triggers:
|
|
|
47
47
|
export).
|
|
48
48
|
- **Contract-heavy**: ≥ 5 of the 6 contracts (api / css / env / data /
|
|
49
49
|
business / ci) need changes.
|
|
50
|
-
- **Task-heavy**: estimated > 10 task-IDs across sections 3-4 of `tasks.
|
|
50
|
+
- **Task-heavy**: estimated > 10 task-IDs across sections 3-4 of `tasks.yml`.
|
|
51
51
|
|
|
52
52
|
If **any one trigger fires**, output `## Atomic Split Proposal` INSTEAD of the
|
|
53
53
|
normal classification, in this exact shape:
|
|
@@ -140,7 +140,7 @@ Use this structure:
|
|
|
140
140
|
## Required Artifacts
|
|
141
141
|
|
|
142
142
|
The following 5 artifacts are always required for implementation changes:
|
|
143
|
-
`change-request.md`, `change-classification.md`, `test-plan.md`, `ci-gates.md`, `tasks.
|
|
143
|
+
`change-request.md`, `change-classification.md`, `test-plan.md`, `ci-gates.md`, `tasks.yml`
|
|
144
144
|
|
|
145
145
|
## Optional Artifacts (default: no — set yes only with explicit reason)
|
|
146
146
|
|
|
@@ -216,7 +216,7 @@ Note: `archive.md` is created during change close-out, not at classification tim
|
|
|
216
216
|
- AC-3:
|
|
217
217
|
|
|
218
218
|
## Tasks Not Applicable
|
|
219
|
-
(List task IDs from tasks.
|
|
219
|
+
(List task IDs from tasks.yml that are NOT applicable to this change, using the format `2.2, 2.3, 4.2`. Main Claude will mark these as `status: skipped` in tasks.yml.)
|
|
220
220
|
- not-applicable:
|
|
221
221
|
|
|
222
222
|
## Clarifications or Assumptions
|
|
@@ -225,8 +225,9 @@ Note: `archive.md` is created during change close-out, not at classification tim
|
|
|
225
225
|
|
|
226
226
|
## Machine-Verifiable Evidence
|
|
227
227
|
|
|
228
|
-
After completing your task,
|
|
229
|
-
|
|
228
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
229
|
+
for main Claude to write to
|
|
230
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
230
231
|
field rules, and gate-enforcement behavior are defined once in
|
|
231
232
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
232
233
|
|
|
@@ -65,7 +65,7 @@ mergeable / blocked / informational-risk
|
|
|
65
65
|
## Machine-Verifiable Evidence
|
|
66
66
|
|
|
67
67
|
After completing your task, write or append to
|
|
68
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
68
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
69
69
|
field rules, and gate-enforcement behavior are defined once in
|
|
70
70
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
71
71
|
|
|
@@ -63,8 +63,9 @@ approved / changes-required
|
|
|
63
63
|
|
|
64
64
|
## Machine-Verifiable Evidence
|
|
65
65
|
|
|
66
|
-
After completing your task,
|
|
67
|
-
|
|
66
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
67
|
+
for main Claude to write to
|
|
68
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
68
69
|
field rules, and gate-enforcement behavior are defined once in
|
|
69
70
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
70
71
|
|
|
@@ -64,8 +64,9 @@ approved / changes-required / blocked
|
|
|
64
64
|
|
|
65
65
|
## Machine-Verifiable Evidence
|
|
66
66
|
|
|
67
|
-
After completing your task,
|
|
68
|
-
|
|
67
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
68
|
+
for main Claude to write to
|
|
69
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
69
70
|
field rules, and gate-enforcement behavior are defined once in
|
|
70
71
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
71
72
|
|
|
@@ -74,4 +75,3 @@ field rules, and gate-enforcement behavior are defined once in
|
|
|
74
75
|
- `cve-findings`: count + severity buckets
|
|
75
76
|
- `license-issues`: list or "none"
|
|
76
77
|
- `lockfile-changes`: list of files
|
|
77
|
-
|
|
@@ -42,7 +42,7 @@ Record test files, scenarios, fixtures/mocks, commands, screenshots/videos, and
|
|
|
42
42
|
## Machine-Verifiable Evidence
|
|
43
43
|
|
|
44
44
|
After completing your task, write or append to
|
|
45
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
45
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
46
46
|
field rules, and gate-enforcement behavior are defined once in
|
|
47
47
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
48
48
|
|
|
@@ -46,7 +46,7 @@ In your agent log, reference file paths and function names — do not paste code
|
|
|
46
46
|
## Machine-Verifiable Evidence
|
|
47
47
|
|
|
48
48
|
After completing your task, write or append to
|
|
49
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
49
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
50
50
|
field rules, and gate-enforcement behavior are defined once in
|
|
51
51
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
52
52
|
|
|
@@ -45,7 +45,7 @@ Use fuzz payloads, Playwright action sequences, property-based tests, and target
|
|
|
45
45
|
## Machine-Verifiable Evidence
|
|
46
46
|
|
|
47
47
|
After completing your task, write or append to
|
|
48
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
48
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
49
49
|
field rules, and gate-enforcement behavior are defined once in
|
|
50
50
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
51
51
|
|
|
@@ -75,8 +75,9 @@ approved / blocked / approved-with-risk
|
|
|
75
75
|
|
|
76
76
|
## Machine-Verifiable Evidence
|
|
77
77
|
|
|
78
|
-
After completing your task,
|
|
79
|
-
|
|
78
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
79
|
+
for main Claude to write to
|
|
80
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
80
81
|
field rules, and gate-enforcement behavior are defined once in
|
|
81
82
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
82
83
|
|
|
@@ -84,8 +84,9 @@ frontend / backend / fullstack / monorepo / library / tool
|
|
|
84
84
|
|
|
85
85
|
## Machine-Verifiable Evidence
|
|
86
86
|
|
|
87
|
-
After completing your task,
|
|
88
|
-
|
|
87
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
88
|
+
for main Claude to write to
|
|
89
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
89
90
|
field rules, and gate-enforcement behavior are defined once in
|
|
90
91
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
91
92
|
|
|
@@ -93,4 +94,3 @@ field rules, and gate-enforcement behavior are defined once in
|
|
|
93
94
|
- `profile-path`: `project-profile.generated.md`
|
|
94
95
|
- `stack-detected`: from cdd-kit detect-stack
|
|
95
96
|
- `surfaces-flagged`: list of missing standardization surfaces
|
|
96
|
-
|
|
@@ -94,7 +94,7 @@ Target: `design.md` ≤ 150 lines.
|
|
|
94
94
|
## Machine-Verifiable Evidence
|
|
95
95
|
|
|
96
96
|
After completing your task, write or append to
|
|
97
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
97
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
98
98
|
field rules, and gate-enforcement behavior are defined once in
|
|
99
99
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
100
100
|
|
|
@@ -52,8 +52,9 @@ By default, do NOT read `specs/changes/` history. Only read historical change re
|
|
|
52
52
|
|
|
53
53
|
## Machine-Verifiable Evidence
|
|
54
54
|
|
|
55
|
-
After completing your task,
|
|
56
|
-
|
|
55
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
56
|
+
for main Claude to write to
|
|
57
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
57
58
|
field rules, and gate-enforcement behavior are defined once in
|
|
58
59
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
59
60
|
|
|
@@ -62,4 +63,3 @@ field rules, and gate-enforcement behavior are defined once in
|
|
|
62
63
|
- `drift-items`: count + severity
|
|
63
64
|
- `drift-summary-path`: `specs/audits/<YYYY-MM-DD>-drift-audit.md`
|
|
64
65
|
- `next-audit-due`: ISO date
|
|
65
|
-
|
|
@@ -69,7 +69,7 @@ Use realistic load profiles rather than arbitrary request loops.
|
|
|
69
69
|
## Machine-Verifiable Evidence
|
|
70
70
|
|
|
71
71
|
After completing your task, write or append to
|
|
72
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
72
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
73
73
|
field rules, and gate-enforcement behavior are defined once in
|
|
74
74
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
75
75
|
|
|
@@ -73,7 +73,7 @@ Target: `test-plan.md` ≤ 100 lines.
|
|
|
73
73
|
## Machine-Verifiable Evidence
|
|
74
74
|
|
|
75
75
|
After completing your task, write or append to
|
|
76
|
-
`specs/changes/<change-id>/agent-log/<your-agent-name>.
|
|
76
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
77
77
|
field rules, and gate-enforcement behavior are defined once in
|
|
78
78
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
79
79
|
|
|
@@ -51,8 +51,9 @@ approved / changes-required
|
|
|
51
51
|
|
|
52
52
|
## Machine-Verifiable Evidence
|
|
53
53
|
|
|
54
|
-
After completing your task,
|
|
55
|
-
|
|
54
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
55
|
+
for main Claude to write to
|
|
56
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
56
57
|
field rules, and gate-enforcement behavior are defined once in
|
|
57
58
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
58
59
|
|
|
@@ -61,4 +62,3 @@ field rules, and gate-enforcement behavior are defined once in
|
|
|
61
62
|
- `state-coverage`: list of `<screen>: empty/loading/error/success` matrix
|
|
62
63
|
- `copy-issues`: count + severity
|
|
63
64
|
- `accessibility-findings`: count + severity
|
|
64
|
-
|
|
@@ -53,8 +53,9 @@ approved / changes-required
|
|
|
53
53
|
|
|
54
54
|
## Machine-Verifiable Evidence
|
|
55
55
|
|
|
56
|
-
After completing your task,
|
|
57
|
-
|
|
56
|
+
After completing your task, end your response with an `Agent Log` YAML block
|
|
57
|
+
for main Claude to write to
|
|
58
|
+
`specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
|
|
58
59
|
field rules, and gate-enforcement behavior are defined once in
|
|
59
60
|
`references/agent-log-protocol.md` — do not duplicate them in this prompt.
|
|
60
61
|
|
|
@@ -63,4 +64,3 @@ field rules, and gate-enforcement behavior are defined once in
|
|
|
63
64
|
- `diff-percentage`: per-screen
|
|
64
65
|
- `state-coverage`: matrix
|
|
65
66
|
- `tokens-violated`: list of CSS contract violations or "none"
|
|
66
|
-
|
|
@@ -38,7 +38,7 @@ If the user wants to **abandon** this change (not close as complete):
|
|
|
38
38
|
cdd-kit abandon <change-id> --reason "<reason>"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
This marks `tasks.
|
|
41
|
+
This marks `tasks.yml` as `status: abandoned` and records it in `specs/archive/INDEX.md`. The directory is preserved for git history. Do NOT run the rest of this skill after abandoning.
|
|
42
42
|
|
|
43
43
|
---
|
|
44
44
|
|
|
@@ -48,13 +48,13 @@ Run: `cdd-kit gate <change-id>`
|
|
|
48
48
|
|
|
49
49
|
If gate fails: stop and report failures. Do NOT archive a change that hasn't passed gate.
|
|
50
50
|
|
|
51
|
-
Exception: if `tasks.
|
|
51
|
+
Exception: if `tasks.yml` contains `status: gate-blocked`, ask the user: "This change was gate-blocked. Abandon it? (yes/no)". If yes, run `cdd-kit abandon <change-id> --reason "gate-blocked after 3 attempts"` and stop.
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
55
|
-
## Step 2: Review tasks.
|
|
55
|
+
## Step 2: Review tasks.yml section 7
|
|
56
56
|
|
|
57
|
-
Read `specs/changes/<change-id>/tasks.
|
|
57
|
+
Read `specs/changes/<change-id>/tasks.yml`.
|
|
58
58
|
|
|
59
59
|
Check section 7:
|
|
60
60
|
- `7.1 Archive change` — will be ticked after Step 4
|
|
@@ -71,7 +71,7 @@ Read only active evidence for this change:
|
|
|
71
71
|
- `specs/changes/<change-id>/qa-report.md` (if exists)
|
|
72
72
|
- `specs/changes/<change-id>/ci-gates.md`
|
|
73
73
|
- `specs/changes/<change-id>/context-manifest.md`
|
|
74
|
-
- `specs/changes/<change-id>/tasks.
|
|
74
|
+
- `specs/changes/<change-id>/tasks.yml`
|
|
75
75
|
|
|
76
76
|
Do not read `specs/archive/` while closing a change. Historical archives are cold data and must not be used as current requirements.
|
|
77
77
|
|
|
@@ -110,9 +110,9 @@ After contract-reviewer responds:
|
|
|
110
110
|
3. Run `cdd-kit validate --contracts` to confirm contract format is preserved
|
|
111
111
|
4. Run `cdd-kit context-scan` so future classifiers see updated hot context indexes
|
|
112
112
|
5. Fill in `## Lessons Promoted to Standards` in archive.md with what was promoted, where, and evidence path
|
|
113
|
-
6.
|
|
113
|
+
6. Set task `7.2` to `status: done` in tasks.yml
|
|
114
114
|
|
|
115
|
-
If there are no lessons to promote, mark `
|
|
115
|
+
If there are no lessons to promote, mark `7.2` as `status: skipped` with rationale.
|
|
116
116
|
|
|
117
117
|
---
|
|
118
118
|
|
|
@@ -120,8 +120,8 @@ If there are no lessons to promote, mark `[-]` for 7.2 with rationale.
|
|
|
120
120
|
|
|
121
121
|
Run: `cdd-kit archive <change-id>`
|
|
122
122
|
|
|
123
|
-
If successful,
|
|
124
|
-
`specs/archive/<year>/<change-id>/tasks.
|
|
123
|
+
If successful, set task `7.1` to `status: done` in tasks.yml (the file is now in specs/archive/, update it there):
|
|
124
|
+
`specs/archive/<year>/<change-id>/tasks.yml` — change `7.1` from `status: pending` to `status: done`.
|
|
125
125
|
|
|
126
126
|
---
|
|
127
127
|
|