contract-driven-delivery 1.16.0 → 2.0.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.
Files changed (34) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +35 -28
  3. package/assets/agents/backend-engineer.md +2 -2
  4. package/assets/agents/change-classifier.md +4 -4
  5. package/assets/agents/ci-cd-gatekeeper.md +1 -1
  6. package/assets/agents/contract-reviewer.md +1 -1
  7. package/assets/agents/dependency-security-reviewer.md +1 -1
  8. package/assets/agents/e2e-resilience-engineer.md +1 -1
  9. package/assets/agents/frontend-engineer.md +1 -1
  10. package/assets/agents/monkey-test-engineer.md +1 -1
  11. package/assets/agents/qa-reviewer.md +1 -1
  12. package/assets/agents/repo-context-scanner.md +1 -1
  13. package/assets/agents/spec-architect.md +1 -1
  14. package/assets/agents/spec-drift-auditor.md +1 -1
  15. package/assets/agents/stress-soak-engineer.md +1 -1
  16. package/assets/agents/test-strategist.md +1 -1
  17. package/assets/agents/ui-ux-reviewer.md +1 -1
  18. package/assets/agents/visual-reviewer.md +1 -1
  19. package/assets/skills/cdd-close/SKILL.md +9 -9
  20. package/assets/skills/cdd-new/SKILL.md +28 -28
  21. package/assets/skills/cdd-resume/SKILL.md +15 -15
  22. package/assets/skills/contract-driven-delivery/SKILL.md +6 -0
  23. package/assets/skills/contract-driven-delivery/references/agent-log-protocol.md +90 -60
  24. package/assets/skills/contract-driven-delivery/scripts/generate_change_scaffold.py +1 -1
  25. package/assets/skills/contract-driven-delivery/scripts/validate_spec_traceability.py +1 -1
  26. package/assets/skills/contract-driven-delivery/templates/agent-log.example.yml +14 -0
  27. package/assets/skills/contract-driven-delivery/templates/change-classification.md +1 -1
  28. package/assets/skills/contract-driven-delivery/templates/tasks.yml +39 -0
  29. package/assets/specs-templates/change-classification.md +1 -1
  30. package/assets/specs-templates/tasks.yml +39 -0
  31. package/dist/cli/index.js +10228 -555
  32. package/package.json +6 -2
  33. package/assets/skills/contract-driven-delivery/templates/tasks.md +0 -50
  34. package/assets/specs-templates/tasks.md +0 -54
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.0.0] - 2026-04-30
4
+
5
+ ### BREAKING: structured YAML for tasks and agent-log
6
+
7
+ - `tasks.md` is replaced by `tasks.yml`. The previous markdown-frontmatter +
8
+ checklist hybrid is gone. The new file is a single YAML document validated
9
+ by `src/schemas/tasks.schema.ts` (JSON Schema, draft-07). Task items use
10
+ `status: pending | done | skipped` instead of `[ ] / [x] / [-]` checkboxes.
11
+ - `agent-log/<agent>.md` is replaced by `agent-log/<agent>.yml`, validated by
12
+ `src/schemas/agent-log.schema.ts`. The "field: value" prose convention is
13
+ gone; agents now emit a structured YAML record with `change-id`, `agent`,
14
+ `timestamp` (ISO 8601), `status`, `files-read`, `artifacts`, and
15
+ `next-action`.
16
+ - `cdd-kit gate` parses both files with `js-yaml` and validates them with
17
+ `ajv`. Errors and warnings now reference YAML paths rather than markdown
18
+ line patterns.
19
+ - All bundled templates, skill prompts, agent prompts, and Python helper
20
+ scripts have been updated to point at the new file names.
21
+
22
+ ### Upgrading
23
+
24
+ Run `cdd-kit migrate <change-id>` (or `cdd-kit migrate --all`) to convert
25
+ existing changes:
26
+
27
+ - `tasks.md` is parsed (frontmatter + markdown checklist) and rewritten as
28
+ `tasks.yml`. The legacy `tasks.md` is deleted.
29
+ - Every `agent-log/*.md` is parsed and rewritten as `agent-log/*.yml`. The
30
+ legacy markdown logs are deleted.
31
+ - A backup of the change directory is written to
32
+ `.cdd/migrate-backup/<stamp>/<change-id>/` before any rewrite.
33
+
34
+ ### Notes
35
+
36
+ This is a breaking release; pin to `^1.16.0` if you still depend on the old
37
+ markdown formats.
38
+
3
39
  ## [1.16.0] - 2026-04-30
4
40
 
5
41
  ### Visual narration: per-agent stage badges
package/README.md CHANGED
@@ -102,7 +102,7 @@ or
102
102
  **You stay in control by:**
103
103
  - Reviewing the `change-classification.md` before implementation starts
104
104
  - Checking the `test-plan.md` to confirm the right test families are planned
105
- - Reading the final `agent-log/qa-reviewer.md` for the release-readiness verdict
105
+ - Reading the final `agent-log/qa-reviewer.yml` for the release-readiness verdict
106
106
 
107
107
  ---
108
108
 
@@ -142,12 +142,12 @@ What changes are currently in progress? (cdd-kit list)
142
142
  ```
143
143
 
144
144
  **What happens:**
145
- 1. Claude reads `tasks.md` and `agent-log/` to determine what was completed
145
+ 1. Claude reads `tasks.yml` and `agent-log/` to determine what was completed
146
146
  2. Reports the current state (which agents ran, which tasks are pending)
147
147
  3. Asks if you want to continue from the next pending agent
148
148
  4. Resumes the full agent flow from where it stopped, with no duplication
149
149
 
150
- > If you're upgrading from an older version and your change was created before v1.11.0, Claude will automatically run `cdd-kit migrate <change-id>` to upgrade the format before resuming.
150
+ > 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
151
 
152
152
  ---
153
153
 
@@ -285,18 +285,18 @@ cdd-kit gate add-jwt-auth --lax
285
285
  ```
286
286
 
287
287
  Checks:
288
- - All required artifacts exist (`change-request.md`, `change-classification.md`, `test-plan.md`, `ci-gates.md`, `tasks.md`; new context-governed changes also require `context-manifest.md`)
288
+ - 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
289
  - Each artifact has sufficient content (not a stub): change-classification ≥ 200 chars, test-plan ≥ 200, ci-gates ≥ 150, others ≥ 100
290
290
  - `change-classification.md` contains a tier or risk marker
291
- - `agent-log/*.md` files all have `status: complete` (not blocked)
292
- - For context-governed changes, `agent-log/*.md` files include a structured `- files-read:` list and those repo-relative paths are audited against `context-manifest.md` and `.cdd/context-policy.json`
291
+ - `agent-log/*.yml` files all have `status: complete` (not blocked)
292
+ - 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
293
  - Atomic `depends-on` upstream changes are completed or archived before dependent work gates
294
294
  - Tier 0–1 changes have `e2e-resilience-engineer`, `monkey-test-engineer`, and `stress-soak-engineer` logs
295
295
  - Tier 0–3 changes have `contract-reviewer` and `qa-reviewer` logs
296
296
  - All contract validators pass
297
297
 
298
298
  `--strict` additionally:
299
- - Treats any pending `[ ]` tasks (except section 7 archive items) as errors
299
+ - Treats any task with `status: pending` (except IDs listed in `archive-tasks`) as an error
300
300
  - Treats runtime-vs-declared `files-read` drift as errors
301
301
  - Treats legacy changes missing `context-manifest.md` or `files-read` audit data as errors
302
302
 
@@ -309,8 +309,8 @@ Pre-commit hook uses `--strict` by default (installed via `cdd-kit install-hooks
309
309
 
310
310
  ✗ gate failed for change: feat-001
311
311
  ✗ change-classification.md: appears to be a stub (< 200 meaningful chars)
312
- ✗ Tier 1 change requires agent-log/e2e-resilience-engineer.md
313
- ✗ 1 task(s) still pending (use [-] for N/A items, [x] for done)
312
+ ✗ Tier 1 change requires agent-log/e2e-resilience-engineer.yml
313
+ ✗ 1 task(s) still pending (mark archive items in archive-tasks frontmatter; mark N/A items as status: skipped)
314
314
  ```
315
315
 
316
316
  ---
@@ -342,13 +342,13 @@ cdd-kit archive add-jwt-auth
342
342
  # ✓ Index updated: specs/archive/INDEX.md
343
343
  ```
344
344
 
345
- Warns (but does not block) if `tasks.md` has pending items or `status: gate-blocked`. Use after `/cdd-close` — the skill runs this automatically at the end.
345
+ 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
346
 
347
347
  ---
348
348
 
349
349
  ### `cdd-kit abandon <change-id>`
350
350
 
351
- Marks a change as abandoned. Updates `tasks.md` status to `abandoned`, records the reason in `specs/archive/INDEX.md`. The directory stays on disk for git history.
351
+ 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
352
 
353
353
  ```bash
354
354
  cdd-kit abandon add-jwt-auth --reason "using Auth0 instead"
@@ -359,7 +359,7 @@ cdd-kit abandon add-jwt-auth --reason "using Auth0 instead"
359
359
 
360
360
  ### `cdd-kit migrate <change-id> | --all`
361
361
 
362
- Upgrades pre-v1.11.0 change directories to the current format.
362
+ Upgrades pre-v2.0.0 change directories to the current format.
363
363
 
364
364
  ```bash
365
365
  cdd-kit migrate add-jwt-auth # migrate one change
@@ -369,15 +369,15 @@ cdd-kit migrate --all --enable-context-governance
369
369
  ```
370
370
 
371
371
  What it upgrades:
372
- - `tasks.md`: adds YAML frontmatter (`change-id`, `status: in-progress`) and `[x]/[-]/[ ]` legend if missing
372
+ - `tasks.yml`: converts legacy `tasks.md` checklist/frontmatter into structured YAML task records
373
373
  - `change-classification.md`: detects old `**Tier:** Tier N` format and appends the new `## Tier\n- N` section so tier-based gate checks activate
374
374
  - `context-manifest.md`: adds a legacy manifest scaffold by default so old changes can continue with warning-only context audit behavior
375
375
  - `--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
376
 
377
- `agent-log/*.md` must use this `files-read` format for context-governed changes:
377
+ `agent-log/*.yml` must use this `files-read` format for context-governed changes:
378
378
 
379
- ```md
380
- - files-read:
379
+ ```yaml
380
+ files-read:
381
381
  - contracts/api/api-contract.md
382
382
  - src/server/routes/users.ts
383
383
  ```
@@ -415,7 +415,7 @@ cdd-kit context approve add-jwt-auth CER-001
415
415
  cdd-kit context approve add-jwt-auth --all-pending # bulk approve every pending request
416
416
  ```
417
417
 
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.
418
+ 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
419
 
420
420
  ---
421
421
 
@@ -470,7 +470,7 @@ cdd-kit new add-user-auth --skip-scan
470
470
 
471
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
472
 
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.
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.yml`.
474
474
 
475
475
  ---
476
476
 
@@ -559,7 +559,7 @@ git add specs/changes/
559
559
  git commit -m "chore: migrate changes to current cdd-kit format"
560
560
  ```
561
561
 
562
- This gives those legacy specs the new `tasks.md` frontmatter, tier markers, and a warning-mode `context-manifest.md` without forcing strict context governance on closed work.
562
+ 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
563
 
564
564
  ### Old in-progress specs
565
565
 
@@ -606,7 +606,7 @@ your-repo/
606
606
  │ │ ├── change-classification.md (required)
607
607
  │ │ ├── test-plan.md (required)
608
608
  │ │ ├── ci-gates.md (required)
609
- │ │ ├── tasks.md (required)
609
+ │ │ ├── tasks.yml (required)
610
610
  │ │ └── agent-log/ ← machine-verifiable evidence per agent
611
611
  │ ├── archive/ ← completed and abandoned changes
612
612
  │ │ ├── INDEX.md
@@ -630,15 +630,22 @@ your-repo/
630
630
 
631
631
  ---
632
632
 
633
- ## Task notation in `tasks.md`
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
- ```
633
+ ## Task notation in `tasks.yml`
640
634
 
641
- `cdd-kit gate --strict` treats any `[ ]` (except section 7 archive tasks) as an error. Use `[-]` for items that are genuinely not applicable to a given change.
635
+ ```yaml
636
+ tasks:
637
+ - id: "1.1"
638
+ title: Confirm classification
639
+ status: done
640
+ - id: "2.2"
641
+ title: CSS/UI contract
642
+ status: skipped
643
+ - id: "4.1"
644
+ title: Backend implementation
645
+ status: pending
646
+ ```
647
+
648
+ `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
649
 
643
650
  ---
644
651
 
@@ -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.md` items 3.1–3.2 are your responsibility.
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>.md`. Required fields,
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.md`.
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.md`
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.md that are NOT applicable to this change, using the format `2.2, 2.3, 4.2`. Main Claude will mark these as [-] in tasks.md.)
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
@@ -226,7 +226,7 @@ Note: `archive.md` is created during change close-out, not at classification tim
226
226
  ## Machine-Verifiable Evidence
227
227
 
228
228
  After completing your task, write or append to
229
- `specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
229
+ `specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
230
230
  field rules, and gate-enforcement behavior are defined once in
231
231
  `references/agent-log-protocol.md` — do not duplicate them in this prompt.
232
232
 
@@ -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>.md`. Required fields,
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
 
@@ -64,7 +64,7 @@ approved / changes-required
64
64
  ## Machine-Verifiable Evidence
65
65
 
66
66
  After completing your task, write or append to
67
- `specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
67
+ `specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
68
68
  field rules, and gate-enforcement behavior are defined once in
69
69
  `references/agent-log-protocol.md` — do not duplicate them in this prompt.
70
70
 
@@ -65,7 +65,7 @@ approved / changes-required / blocked
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>.md`. Required fields,
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
 
@@ -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>.md`. Required fields,
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>.md`. Required fields,
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>.md`. Required fields,
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
 
@@ -76,7 +76,7 @@ approved / blocked / approved-with-risk
76
76
  ## Machine-Verifiable Evidence
77
77
 
78
78
  After completing your task, write or append to
79
- `specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
79
+ `specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
80
80
  field rules, and gate-enforcement behavior are defined once in
81
81
  `references/agent-log-protocol.md` — do not duplicate them in this prompt.
82
82
 
@@ -85,7 +85,7 @@ frontend / backend / fullstack / monorepo / library / tool
85
85
  ## Machine-Verifiable Evidence
86
86
 
87
87
  After completing your task, write or append to
88
- `specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
88
+ `specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
89
89
  field rules, and gate-enforcement behavior are defined once in
90
90
  `references/agent-log-protocol.md` — do not duplicate them in this prompt.
91
91
 
@@ -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>.md`. Required fields,
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
 
@@ -53,7 +53,7 @@ By default, do NOT read `specs/changes/` history. Only read historical change re
53
53
  ## Machine-Verifiable Evidence
54
54
 
55
55
  After completing your task, write or append to
56
- `specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
56
+ `specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
57
57
  field rules, and gate-enforcement behavior are defined once in
58
58
  `references/agent-log-protocol.md` — do not duplicate them in this prompt.
59
59
 
@@ -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>.md`. Required fields,
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>.md`. Required fields,
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
 
@@ -52,7 +52,7 @@ approved / changes-required
52
52
  ## Machine-Verifiable Evidence
53
53
 
54
54
  After completing your task, write or append to
55
- `specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
55
+ `specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
56
56
  field rules, and gate-enforcement behavior are defined once in
57
57
  `references/agent-log-protocol.md` — do not duplicate them in this prompt.
58
58
 
@@ -54,7 +54,7 @@ approved / changes-required
54
54
  ## Machine-Verifiable Evidence
55
55
 
56
56
  After completing your task, write or append to
57
- `specs/changes/<change-id>/agent-log/<your-agent-name>.md`. Required fields,
57
+ `specs/changes/<change-id>/agent-log/<your-agent-name>.yml`. Required fields,
58
58
  field rules, and gate-enforcement behavior are defined once in
59
59
  `references/agent-log-protocol.md` — do not duplicate them in this prompt.
60
60
 
@@ -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.md` 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.
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.md` 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.
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.md section 7
55
+ ## Step 2: Review tasks.yml section 7
56
56
 
57
- Read `specs/changes/<change-id>/tasks.md`.
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.md`
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. Tick `7.2` in tasks.md
113
+ 6. Set task `7.2` to `status: done` in tasks.yml
114
114
 
115
- If there are no lessons to promote, mark `[-]` for 7.2 with rationale.
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, tick `7.1` in tasks.md (the file is now in specs/archive/, update it there):
124
- `specs/archive/<year>/<change-id>/tasks.md` — change `7.1` from `[ ]` to `[x]`.
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