cc-codeconductor 1.4.1 → 1.5.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 (219) hide show
  1. package/README.md +61 -13
  2. package/dist/core/verification/rdd-receipt.d.ts +39 -0
  3. package/dist/core/verification/verification-runner.d.ts +8 -2
  4. package/dist/index.d.ts +2 -0
  5. package/dist/index.js +1257 -330
  6. package/dist/library.js +267 -26
  7. package/dist/validation/schemas.d.ts +521 -26
  8. package/docs/generated/cli.md +20 -0
  9. package/package.json +1 -1
  10. package/presets/agy/AGENTS.md +6 -0
  11. package/presets/agy/README.md +1 -1
  12. package/presets/agy/hooks.json +1 -1
  13. package/presets/agy/scripts/invoke-hook.cjs +20 -5
  14. package/presets/agy/settings.json +1 -1
  15. package/presets/agy/skills/api-versioning/SKILL.md +394 -0
  16. package/presets/agy/skills/astro/SKILL.md +318 -0
  17. package/presets/agy/skills/auth-token-inspector/SKILL.md +30 -0
  18. package/presets/agy/skills/cc-pagespeed/SKILL.md +2 -3
  19. package/presets/agy/skills/code-review/SKILL.md +207 -0
  20. package/presets/agy/skills/django-orm/SKILL.md +460 -0
  21. package/presets/agy/skills/django-uv/SKILL.md +405 -0
  22. package/presets/agy/skills/drizzle-schema-architect/SKILL.md +50 -0
  23. package/presets/agy/skills/fastapi-pydantic-strict/SKILL.md +43 -0
  24. package/presets/agy/skills/jpa-nplusone-detector/SKILL.md +45 -0
  25. package/presets/agy/skills/jpa-postgres/SKILL.md +623 -0
  26. package/presets/agy/skills/livewire-alpine-bridge/SKILL.md +35 -0
  27. package/presets/agy/skills/nextjs-typescript/SKILL.md +390 -0
  28. package/presets/agy/skills/python/SKILL.md +611 -0
  29. package/presets/agy/skills/seo-analytics-injector/SKILL.md +43 -0
  30. package/presets/agy/skills/spring-auth-auditor/SKILL.md +29 -0
  31. package/presets/agy/skills/spring-boot-feature/SKILL.md +563 -0
  32. package/presets/agy/skills/spring-boot-testing-strategy/SKILL.md +475 -0
  33. package/presets/agy/skills/tailwind-responsive-auditor/SKILL.md +29 -0
  34. package/presets/agy/skills/tdd-mutation-tester/SKILL.md +27 -0
  35. package/presets/agy/workflows/cc-handoff.md +2 -1
  36. package/presets/agy/workflows/cc-odd.md +15 -0
  37. package/presets/agy/workflows/cc-pagespeed.md +2 -3
  38. package/presets/agy/workflows/cc-review.md +31 -0
  39. package/presets/agy/workflows/cc-security.md +1 -1
  40. package/presets/claude/CLAUDE.md +6 -0
  41. package/presets/claude/commands/cc/handoff.md +2 -1
  42. package/presets/claude/commands/cc/odd.md +15 -0
  43. package/presets/claude/commands/cc/review.md +33 -0
  44. package/presets/claude/settings.json +2 -2
  45. package/presets/claude/skills/android/SKILL.md +1 -1
  46. package/presets/claude/skills/api-versioning/SKILL.md +1 -1
  47. package/presets/claude/skills/astro/SKILL.md +318 -0
  48. package/presets/claude/skills/auth-token-inspector/SKILL.md +30 -0
  49. package/presets/claude/skills/code-review/SKILL.md +207 -0
  50. package/presets/claude/skills/django-orm/SKILL.md +1 -1
  51. package/presets/claude/skills/django-testing/SKILL.md +1 -1
  52. package/presets/claude/skills/django-uv/SKILL.md +405 -0
  53. package/presets/claude/skills/drizzle-schema-architect/SKILL.md +50 -0
  54. package/presets/claude/skills/fastapi-pydantic-strict/SKILL.md +43 -0
  55. package/presets/claude/skills/jpa-nplusone-detector/SKILL.md +45 -0
  56. package/presets/claude/skills/jpa-postgres/SKILL.md +1 -1
  57. package/presets/claude/skills/livewire-alpine-bridge/SKILL.md +35 -0
  58. package/presets/claude/skills/nextjs-typescript/SKILL.md +390 -0
  59. package/presets/claude/skills/pagespeed-perf/SKILL.md +1 -1
  60. package/presets/claude/skills/python/SKILL.md +1 -1
  61. package/presets/claude/skills/python-django-stack/SKILL.md +1 -1
  62. package/presets/claude/skills/python-fastapi-stack/SKILL.md +1 -1
  63. package/presets/claude/skills/security/SKILL.md +1 -1
  64. package/presets/claude/skills/seo-analytics-injector/SKILL.md +43 -0
  65. package/presets/claude/skills/spring-auth-auditor/SKILL.md +29 -0
  66. package/presets/claude/skills/spring-boot-feature/SKILL.md +1 -1
  67. package/presets/claude/skills/spring-boot-kotlin/SKILL.md +1 -1
  68. package/presets/claude/skills/spring-boot-testing-strategy/SKILL.md +475 -0
  69. package/presets/claude/skills/sqlalchemy/SKILL.md +1 -1
  70. package/presets/claude/skills/tailwind-responsive-auditor/SKILL.md +29 -0
  71. package/presets/claude/skills/tdd-mutation-tester/SKILL.md +27 -0
  72. package/presets/claude/skills/testing-strategy/SKILL.md +1 -1
  73. package/presets/codex/AGENTS.md +6 -0
  74. package/presets/codex/skills/android/SKILL.md +1 -1
  75. package/presets/codex/skills/api-versioning/SKILL.md +1 -1
  76. package/presets/codex/skills/astro/SKILL.md +318 -0
  77. package/presets/codex/skills/auth-token-inspector/SKILL.md +30 -0
  78. package/presets/codex/skills/cc-handoff/SKILL.md +3 -1
  79. package/presets/codex/skills/cc-odd/SKILL.md +25 -0
  80. package/presets/codex/skills/cc-openspec/SKILL.md +5 -1
  81. package/presets/codex/skills/cc-pagespeed/SKILL.md +2 -3
  82. package/presets/codex/skills/cc-review/SKILL.md +31 -0
  83. package/presets/codex/skills/cc-security/SKILL.md +1 -1
  84. package/presets/codex/skills/cc-spec-mutation/SKILL.md +5 -0
  85. package/presets/codex/skills/cc-tdd-cycle/SKILL.md +8 -0
  86. package/presets/codex/skills/code-review/SKILL.md +207 -0
  87. package/presets/codex/skills/django-orm/SKILL.md +1 -1
  88. package/presets/codex/skills/django-testing/SKILL.md +1 -1
  89. package/presets/codex/skills/django-uv/SKILL.md +405 -0
  90. package/presets/codex/skills/drizzle-schema-architect/SKILL.md +50 -0
  91. package/presets/codex/skills/fastapi-pydantic-strict/SKILL.md +43 -0
  92. package/presets/codex/skills/jpa-nplusone-detector/SKILL.md +45 -0
  93. package/presets/codex/skills/jpa-postgres/SKILL.md +1 -1
  94. package/presets/codex/skills/livewire-alpine-bridge/SKILL.md +35 -0
  95. package/presets/codex/skills/nextjs-typescript/SKILL.md +390 -0
  96. package/presets/codex/skills/pagespeed-perf/SKILL.md +1 -1
  97. package/presets/codex/skills/python/SKILL.md +1 -1
  98. package/presets/codex/skills/python-django-stack/SKILL.md +1 -1
  99. package/presets/codex/skills/python-fastapi-stack/SKILL.md +1 -1
  100. package/presets/codex/skills/security-ai-llm/SKILL.md +43 -0
  101. package/presets/codex/skills/security-blue-team/SKILL.md +43 -0
  102. package/presets/codex/skills/security-cloud/SKILL.md +43 -0
  103. package/presets/codex/skills/security-crypto/SKILL.md +43 -0
  104. package/presets/codex/skills/security-exploit-dev/SKILL.md +45 -0
  105. package/presets/codex/skills/security-grc/SKILL.md +43 -0
  106. package/presets/codex/skills/security-incident-response/SKILL.md +45 -0
  107. package/presets/codex/skills/security-log-analysis/SKILL.md +43 -0
  108. package/presets/codex/skills/security-malware-analysis/SKILL.md +44 -0
  109. package/presets/codex/skills/security-mobile/SKILL.md +43 -0
  110. package/presets/codex/skills/security-network/SKILL.md +43 -0
  111. package/presets/codex/skills/security-ot-ics/SKILL.md +43 -0
  112. package/presets/codex/skills/security-recon/SKILL.md +45 -0
  113. package/presets/codex/skills/security-red-team/SKILL.md +44 -0
  114. package/presets/codex/skills/security-reverse-engineering/SKILL.md +44 -0
  115. package/presets/codex/skills/security-soc-automation/SKILL.md +43 -0
  116. package/presets/codex/skills/security-threat-hunting/SKILL.md +43 -0
  117. package/presets/codex/skills/security-vuln-assessment/SKILL.md +45 -0
  118. package/presets/codex/skills/security-web/SKILL.md +44 -0
  119. package/presets/codex/skills/seo-analytics-injector/SKILL.md +43 -0
  120. package/presets/codex/skills/spring-auth-auditor/SKILL.md +29 -0
  121. package/presets/codex/skills/spring-boot-feature/SKILL.md +2 -2
  122. package/presets/codex/skills/spring-boot-kotlin/SKILL.md +1 -1
  123. package/presets/codex/skills/spring-boot-testing-strategy/SKILL.md +475 -0
  124. package/presets/codex/skills/sqlalchemy/SKILL.md +1 -1
  125. package/presets/codex/skills/tailwind-responsive-auditor/SKILL.md +29 -0
  126. package/presets/codex/skills/tdd-mutation-tester/SKILL.md +27 -0
  127. package/presets/codex/skills/testing-strategy/SKILL.md +1 -1
  128. package/presets/cursor/AGENTS.md +6 -0
  129. package/presets/cursor/commands/cc/handoff.md +3 -1
  130. package/presets/cursor/commands/cc/odd.md +20 -0
  131. package/presets/cursor/commands/cc/openspec.md +5 -1
  132. package/presets/cursor/commands/cc/pagespeed.md +2 -3
  133. package/presets/cursor/commands/cc/review.md +31 -0
  134. package/presets/cursor/commands/cc/security.md +1 -1
  135. package/presets/cursor/commands/cc/spec-mutation.md +5 -0
  136. package/presets/cursor/commands/cc/tdd-cycle.md +8 -0
  137. package/presets/cursor/skills/android/SKILL.md +1 -1
  138. package/presets/cursor/skills/api-versioning/SKILL.md +2 -1
  139. package/presets/cursor/skills/astro/SKILL.md +1 -1
  140. package/presets/cursor/skills/auth-token-inspector/SKILL.md +1 -1
  141. package/presets/cursor/skills/code-review/SKILL.md +1 -1
  142. package/presets/cursor/skills/django-orm/SKILL.md +3 -5
  143. package/presets/cursor/skills/django-testing/SKILL.md +1 -1
  144. package/presets/cursor/skills/django-uv/SKILL.md +1 -1
  145. package/presets/cursor/skills/drizzle-schema-architect/SKILL.md +1 -1
  146. package/presets/cursor/skills/fastapi-pydantic-strict/SKILL.md +1 -1
  147. package/presets/cursor/skills/jpa-nplusone-detector/SKILL.md +1 -1
  148. package/presets/cursor/skills/jpa-postgres/SKILL.md +2 -4
  149. package/presets/cursor/skills/livewire-alpine-bridge/SKILL.md +1 -1
  150. package/presets/cursor/skills/nextjs-typescript/SKILL.md +1 -1
  151. package/presets/cursor/skills/pagespeed-perf/SKILL.md +1 -1
  152. package/presets/cursor/skills/python/SKILL.md +6 -7
  153. package/presets/cursor/skills/python-django-stack/SKILL.md +1 -1
  154. package/presets/cursor/skills/python-fastapi-stack/SKILL.md +1 -1
  155. package/presets/cursor/skills/security/SKILL.md +1 -1
  156. package/presets/cursor/skills/seo-analytics-injector/SKILL.md +1 -1
  157. package/presets/cursor/skills/spring-auth-auditor/SKILL.md +1 -1
  158. package/presets/cursor/skills/spring-boot-feature/SKILL.md +2 -4
  159. package/presets/cursor/skills/spring-boot-kotlin/SKILL.md +1 -1
  160. package/presets/cursor/skills/spring-boot-testing-strategy/SKILL.md +1 -1
  161. package/presets/cursor/skills/sqlalchemy/SKILL.md +1 -1
  162. package/presets/cursor/skills/tailwind-responsive-auditor/SKILL.md +1 -1
  163. package/presets/cursor/skills/tdd-mutation-tester/SKILL.md +1 -1
  164. package/presets/gemini/GEMINI.md +6 -0
  165. package/presets/gemini/commands/cc/handoff.toml +3 -1
  166. package/presets/gemini/commands/cc/odd.toml +20 -0
  167. package/presets/gemini/commands/cc/openspec.toml +5 -1
  168. package/presets/gemini/commands/cc/pagespeed.toml +2 -3
  169. package/presets/gemini/commands/cc/review.toml +31 -0
  170. package/presets/gemini/commands/cc/security.toml +1 -1
  171. package/presets/gemini/commands/cc/spec-mutation.toml +5 -0
  172. package/presets/gemini/commands/cc/tdd-cycle.toml +8 -0
  173. package/presets/opencode/README.md +45 -52
  174. package/presets/opencode/agents/implementer.md +2 -0
  175. package/presets/opencode/agents/reviewer.md +2 -0
  176. package/presets/opencode/agents/tester.md +2 -0
  177. package/presets/opencode/commands/cc-handoff.md +2 -1
  178. package/presets/opencode/commands/cc-odd.md +15 -0
  179. package/presets/opencode/commands/cc-pagespeed.md +2 -3
  180. package/presets/opencode/commands/cc-review.md +31 -0
  181. package/presets/opencode/commands/cc-security.md +1 -1
  182. package/presets/opencode/opencode.jsonc +1 -1
  183. package/presets/opencode/skills/android/SKILL.md +1 -1
  184. package/presets/opencode/skills/api-versioning/SKILL.md +2 -1
  185. package/presets/opencode/skills/astro/SKILL.md +1 -1
  186. package/presets/opencode/skills/auth-token-inspector/SKILL.md +1 -1
  187. package/presets/opencode/skills/code-review/SKILL.md +1 -1
  188. package/presets/opencode/skills/django-orm/SKILL.md +3 -3
  189. package/presets/opencode/skills/django-testing/SKILL.md +1 -1
  190. package/presets/opencode/skills/django-uv/SKILL.md +1 -1
  191. package/presets/opencode/skills/drizzle-schema-architect/SKILL.md +1 -1
  192. package/presets/opencode/skills/fastapi-pydantic-strict/SKILL.md +1 -1
  193. package/presets/opencode/skills/jpa-nplusone-detector/SKILL.md +1 -1
  194. package/presets/opencode/skills/jpa-postgres/SKILL.md +2 -1
  195. package/presets/opencode/skills/livewire-alpine-bridge/SKILL.md +1 -1
  196. package/presets/opencode/skills/nextjs-typescript/SKILL.md +1 -1
  197. package/presets/opencode/skills/pagespeed-perf/SKILL.md +1 -1
  198. package/presets/opencode/skills/python/SKILL.md +6 -5
  199. package/presets/opencode/skills/python-django-stack/SKILL.md +1 -1
  200. package/presets/opencode/skills/python-fastapi-stack/SKILL.md +1 -1
  201. package/presets/opencode/skills/security/SKILL.md +1 -1
  202. package/presets/opencode/skills/seo-analytics-injector/SKILL.md +1 -1
  203. package/presets/opencode/skills/spring-auth-auditor/SKILL.md +1 -1
  204. package/presets/opencode/skills/spring-boot-feature/SKILL.md +2 -1
  205. package/presets/opencode/skills/spring-boot-kotlin/SKILL.md +1 -1
  206. package/presets/opencode/skills/spring-boot-testing-strategy/SKILL.md +1 -1
  207. package/presets/opencode/skills/sqlalchemy/SKILL.md +1 -1
  208. package/presets/opencode/skills/tailwind-responsive-auditor/SKILL.md +1 -1
  209. package/presets/opencode/skills/tdd-mutation-tester/SKILL.md +1 -1
  210. package/presets/pi/AGENTS.md +6 -0
  211. package/presets/seo-hotel/skills/astro-seo/SKILL.md +1 -1
  212. package/presets/seo-hotel/skills/geo-readiness/SKILL.md +1 -1
  213. package/presets/seo-hotel/skills/off-page/SKILL.md +1 -1
  214. package/presets/seo-hotel/skills/schema-validator/SKILL.md +1 -1
  215. package/presets/seo-hotel/skills/seo-audit/SKILL.md +1 -1
  216. package/presets/shared/invoke-hook.cjs +20 -5
  217. package/src/presets/models/roles.yml +28 -28
  218. package/src/presets/shared-skills.yml +58 -22
  219. package/src/presets/targets/pi.yml +1 -0
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Stop prompting. Start orchestrating.**
4
4
 
5
- [![Socket Badge](https://badge.socket.dev/npm/package/cc-codeconductor/1.3.0)](https://badge.socket.dev/npm/package/cc-codeconductor/1.3.0)
5
+ [![Socket Badge](https://badge.socket.dev/npm/package/cc-codeconductor/1.5.0)](https://badge.socket.dev/npm/package/cc-codeconductor/1.5.0)
6
6
 
7
7
  CodeConductor is an open-source framework for building structured, reproducible
8
8
  AI-assisted software engineering workflows.
@@ -15,19 +15,22 @@ contracts, task cards, and risk-based routing.
15
15
  >
16
16
  > ## Current Scope
17
17
  >
18
- > Published package is **1.3.x (current stable: 1.3.0)**. Limitations matrix:
18
+ > Published package is **1.5.0** (current stable line: **1.5.x**). Limitations
19
+ > matrix:
19
20
  > [docs/current-status.md](docs/current-status.md). This repository:
20
21
  > `bun run dev …` (not `npx`) while iterating.
21
22
  >
22
- > Shipped in the 1.3.x stable line:
23
+ > Shipped in the 1.5.x stable line:
23
24
  >
25
+ > - `npx cc-codeconductor setup --target <target> --yes` — onboarding flow
24
26
  > - `npx cc-codeconductor init` — detects project stack, writes
25
27
  > `.codeconductor/config.yml`, copies `council.yml` and `policy.yml` into
26
28
  > `.codeconductor/presets/`
27
29
  > - `npx cc-codeconductor install council --target <opencode|claude|codex|agy|all>`
28
30
  > - `npx cc-codeconductor install preset --target <opencode|claude|codex|gemini|cursor|agy|all>`
29
31
  > - `npx cc-codeconductor install lsp --target <…>`
30
- > - `npx cc-codeconductor detect` / `doctor` / `update`
32
+ > - `npx cc-codeconductor detect` / `status` / `version` / `doctor` / `update` /
33
+ > `migrate`
31
34
  > - `npx cc-codeconductor seo audit` / `seo llms` (SSRF-guarded fetch)
32
35
  > - `npx cc-codeconductor help` / `cc-help` (distinct contracts — see breaking
33
36
  > changes below)
@@ -42,7 +45,7 @@ contracts, task cards, and risk-based routing.
42
45
  > - `npx cc-codeconductor scorecard …`
43
46
  > - `npx cc-codeconductor goal` / `ingest` / `product` / `orchestrate` /
44
47
  > `impact` / `verify` — Product OS (see
45
- > [docs/v1.3.0-release-notes.md](docs/v1.3.0-release-notes.md))
48
+ > [docs/product-os.md](docs/product-os.md))
46
49
  > - Slash commands after `install preset` — 21 CCEP workflows plus `/cc-ask`;
47
50
  > prefer `/cc-iterative`, `/cc-triage`, `/cc-handoff` for wayfinding;
48
51
  > `/cc-backlog` authors `BACKLOG.md`; `/cc-openspec` and `/cc-tdd-cycle`
@@ -75,6 +78,29 @@ contracts, task cards, and risk-based routing.
75
78
  > maintainer-only stubs (`cc-self-review`, `cc-update-preset-models`) are
76
79
  > skipped so this repo can dogfood `install preset`.
77
80
 
81
+ ## Recommended CLI flow
82
+
83
+ Start with the high-level onboarding command, then use the maintenance commands
84
+ to inspect and reconcile the installed harness:
85
+
86
+ ```bash
87
+ npx cc-codeconductor setup --target claude --yes
88
+ npx cc-codeconductor status
89
+ npx cc-codeconductor version
90
+ npx cc-codeconductor doctor
91
+ npx cc-codeconductor update --check
92
+ npx cc-codeconductor migrate --dry-run
93
+ ```
94
+
95
+ - `setup` detects the project, initializes the harness, installs the selected
96
+ target, and runs `doctor`.
97
+ - `status` is the lightweight installation dashboard; `version` reports the CLI
98
+ and project harness versions.
99
+ - `doctor` diagnoses configuration and managed files. `update` safely reconciles
100
+ installed harness files, while `migrate` applies compatibility repairs.
101
+ - `init` and `install` remain available as lower-level primitives for automation
102
+ and targeted installations.
103
+
78
104
  ---
79
105
 
80
106
  ## Why CodeConductor?
@@ -96,9 +122,9 @@ This is not a prompt collection. It is a workflow framework.
96
122
 
97
123
  ---
98
124
 
99
- ## What's new in v1.3.0
125
+ ## Historical: v1.3.0
100
126
 
101
- v1.3.0 is the current **stable** release in the 1.3.x line. It retains the
127
+ v1.3.0 was a **stable** release in the 1.3.x line. It retained the
102
128
  v1.0.0 workflow contract baseline and adds cross-target preset fixes, centralized
103
129
  skill versioning, runner parity improvements, and the contextual web design
104
130
  engineering skill. Re-install presets after upgrading.
@@ -134,12 +160,21 @@ what they do rather than which subsystem they touch:
134
160
  | Entry | `/cc-ask`, `/cc-triage`, `/cc-explore` | Recommend a next command and stop — no writes. |
135
161
  | Delivery | `/cc-feature`, `/cc-fix`, `/cc-refactor`, `/cc-tdd-cycle`, `/cc-api-contract`, `/cc-db-migration`, `/cc-spec-mutation` | Implement, test-before-implement where both apply. |
136
162
  | Verification | `/cc-review`, `/cc-council`, `/cc-scorecard`, `/cc-test-plan`, `/cc-security` | Gate a diff or a decision before merge. |
137
- | Management | `/cc-backlog`, `/cc-openspec`, `/cc-handoff`, `/cc-clarify`, `/cc-prototype`, `/cc-pagespeed`, `/cc-iterative` | Author BACKLOG.md, deliver it, or one-off ops. |
163
+ | Management | `/cc-backlog`, `/cc-openspec`, `/cc-handoff`, `/cc-clarify`, `/cc-prototype`, `/cc-pagespeed`, `/cc-iterative`, `/cc-odd` | Author BACKLOG.md, deliver it, or one-off ops. |
138
164
 
139
165
  Prefer `/cc-iterative`, `/cc-triage`, and `/cc-handoff` for wayfinding.
140
166
  `/cc-ask` recommends a command from a natural-language problem; it does not
141
167
  start the workflow.
142
168
 
169
+ ### ODD adoption and escalation
170
+
171
+ ODD is opt-in until paired delivery evidence shows non-inferior acceptance,
172
+ tests, and findings with lower context than OpenSpec. Run
173
+ `bun run dev scorecard suite-run --suite odd-adoption` to keep that decision
174
+ reproducible. The [ODD adoption guide](docs/odd-adoption.md) explains route
175
+ selection, ledger-based resumption, and when to return to OpenSpec, TDD, or
176
+ Council.
177
+
143
178
  ### OpenSpec and TDD
144
179
 
145
180
  OpenSpec is the delivery loop for `BACKLOG.md`:
@@ -152,6 +187,18 @@ Agent phases: validate-backlog → discover → design → **test** → implemen
152
187
  review. Test-before-implement is required whenever both phases apply.
153
188
  `/cc-tdd-cycle` enforces Red → Green → Refactor (`tester` then `implementer`).
154
189
 
190
+ ### Receipt-Driven Development
191
+
192
+ RDD binds local verification evidence to the exact code, tests, contracts,
193
+ lockfiles, and configuration it observed. Use `bun run dev rdd capture --task
194
+ <id>`, `bun run dev rdd verify --receipt <id>`, and `bun run dev rdd status` to
195
+ inspect that evidence. A changed candidate invalidates its receipt and requires
196
+ the affected verification to run again. RDD complements TDD and Mutation
197
+ Testing: it checks evidence freshness rather than behavioral coverage.
198
+ Run `bun run dev rdd install-hooks` in a Git repository to install preserving
199
+ pre-commit and pre-push checks; the hook runs `rdd git-check` against the latest
200
+ receipt.
201
+
155
202
  ### Review agents
156
203
 
157
204
  15 Conductor Agents ship in `presets/<target>/agents/`. Review path:
@@ -277,14 +324,14 @@ Task Card → Risk Classification → Routing Policy → Conductor Agent → Del
277
324
 
278
325
  ## Supply chain
279
326
 
280
- Published **1.3.0** declares two production dependencies (`package.json`
327
+ Published **1.5.0** declares two production dependencies (`package.json`
281
328
  `dependencies`; same on
282
329
  [npm](https://www.npmjs.com/package/cc-codeconductor)). Neither has further
283
330
  npm transitive dependencies.
284
331
 
285
332
  ```mermaid
286
333
  graph LR
287
- cc["cc-codeconductor@1.3.0"]
334
+ cc["cc-codeconductor@1.5.0"]
288
335
  zod["zod@^3.23.8"]
289
336
  yaml["yaml@^2.4.5"]
290
337
  cc --> zod
@@ -630,7 +677,9 @@ npx cc-codeconductor openspec next
630
677
  npx cc-codeconductor openspec start BC-001-discover
631
678
  npx cc-codeconductor openspec done BC-001-discover
632
679
  npx cc-codeconductor openspec block BC-001-implement --reason "waiting on design"
680
+ npx cc-codeconductor openspec unblock BC-001-implement
633
681
  npx cc-codeconductor openspec archive BC-001
682
+ npx cc-codeconductor odd read delivery-001
634
683
  ```
635
684
 
636
685
  Subcommands: `validate` / `scan` / `plan` / `analyze` / `status` / `next` /
@@ -798,10 +847,9 @@ codeconductor/
798
847
 
799
848
  ## Roadmap
800
849
 
801
- Published package: **1.3.x (current stable: 1.3.0)**. Remaining gaps (sandbox, policy compiler, full
850
+ Published package: **1.5.x (current stable: 1.5.0)**. Remaining gaps (sandbox, policy compiler, full
802
851
  stack-specific asset pruning): [docs/current-status.md](docs/current-status.md).
803
- Release details:
804
- [docs/v1.3.0-release-notes.md](docs/v1.3.0-release-notes.md).
852
+ Release history: [CHANGELOG.md](CHANGELOG.md).
805
853
 
806
854
  See [ROADMAP.md](ROADMAP.md) for historical notes.
807
855
 
@@ -0,0 +1,39 @@
1
+ export type RddPhase = 'red' | 'green' | 'refactor' | 'verification' | 'mutation' | 'review';
2
+ export interface RddReceiptPath {
3
+ readonly path: string;
4
+ readonly hash: string;
5
+ }
6
+ export interface RddReceipt {
7
+ readonly version: 1;
8
+ readonly taskId: string;
9
+ readonly phase: RddPhase;
10
+ readonly paths: readonly RddReceiptPath[];
11
+ readonly coverage: 'paths' | 'project';
12
+ readonly manifestHash: string;
13
+ readonly command?: string;
14
+ readonly outcome: 'passed' | 'failed';
15
+ readonly capturedAt: string;
16
+ }
17
+ export interface ReceiptVerification {
18
+ readonly valid: boolean;
19
+ readonly expectedHash: string;
20
+ readonly actualHash: string;
21
+ readonly changedPaths: readonly string[];
22
+ }
23
+ export declare function isRddReceipt(value: unknown): value is RddReceipt;
24
+ export declare function captureReceipt(projectRoot: string, input: {
25
+ readonly taskId: string;
26
+ readonly phase: RddPhase;
27
+ readonly paths: readonly string[];
28
+ readonly command?: string;
29
+ readonly outcome: 'passed' | 'failed';
30
+ /** Include additions and deletions across the complete project candidate. */
31
+ readonly coverage?: 'paths' | 'project';
32
+ }): Promise<RddReceipt>;
33
+ /**
34
+ * Collect the versioned-input candidate for a local verification run. Runtime
35
+ * state and generated output are deliberately excluded because recording a
36
+ * receipt itself must not invalidate the candidate it describes.
37
+ */
38
+ export declare function collectReceiptPaths(projectRoot: string): Promise<string[]>;
39
+ export declare function verifyReceipt(projectRoot: string, receipt: RddReceipt): Promise<ReceiptVerification>;
@@ -1,6 +1,7 @@
1
1
  import type { GoalGraphInput } from '../../validation/schemas';
2
2
  import type { TddSuiteEvidence } from '../../domain/loop/loop-state';
3
3
  import { type Result } from '../../utils/result';
4
+ import { type RddReceipt } from './rdd-receipt';
4
5
  export interface VerificationCheck {
5
6
  name: string;
6
7
  passed: boolean;
@@ -42,6 +43,8 @@ export declare const TDD_CAPTURED_BY = "verification-runner";
42
43
  export interface CaptureTddSuiteOptions extends RunVerificationOptions {
43
44
  /** Allowlisted test command (`bun test`, `npm test`, …). */
44
45
  readonly command: string;
46
+ /** The TDD transition this runner invocation is expected to prove. */
47
+ readonly phase?: 'red' | 'green' | 'refactor';
45
48
  }
46
49
  /**
47
50
  * Run a test suite and store TDD evidence. Only this function writes records
@@ -51,14 +54,17 @@ export declare function captureTddSuiteEvidence(projectRoot: string, taskId: str
51
54
  evidenceId: string;
52
55
  suiteFailed: boolean;
53
56
  suitePassed: boolean;
57
+ receipt: RddReceipt;
54
58
  }, Error>>;
55
59
  /**
56
60
  * Load TDD suite evidence written by `captureTddSuiteEvidence`. Hand-edited
57
61
  * files (wrong source/type/`capturedBy`) are rejected.
58
62
  */
59
- export declare function loadTddSuiteEvidence(projectRoot: string, taskId: string, evidenceId: string): Promise<Result<TddSuiteEvidence, Error>>;
63
+ export declare function loadTddSuiteEvidence(projectRoot: string, taskId: string, evidenceId: string): Promise<Result<TddSuiteEvidence & {
64
+ receipt: RddReceipt;
65
+ }, Error>>;
60
66
  /**
61
67
  * True when the verification runner stored TDD evidence for this task.
62
68
  * Handmade JSON (wrong source/type/capturedBy) does not count.
63
69
  */
64
- export declare function hasTddRunnerEvidence(projectRoot: string, taskId: string): Promise<boolean>;
70
+ export declare function hasTddRunnerEvidence(projectRoot: string, taskId: string, expectedPhase?: 'red' | 'green'): Promise<boolean>;
package/dist/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export type { OrchestratorNextResult } from './core/orchestrator/runtime-orchest
9
9
  export { LoopEngine, runLoop, runLoopForProject, shouldRunAgentLoop, formatFeedback, advanceTddPhase, } from './core/loop/loop-engine';
10
10
  export type { LoopConfig, LoopResult, EscalationReport, GuardrailHit, GenerateFn, CompileCheckFn, } from './core/loop/loop-engine';
11
11
  export { runVerification, gateTaskCompletion, validateEvidenceIds, captureTddSuiteEvidence, loadTddSuiteEvidence, hasTddRunnerEvidence, } from './core/verification/verification-runner';
12
+ export { captureReceipt, collectReceiptPaths, isRddReceipt, verifyReceipt, } from './core/verification/rdd-receipt';
13
+ export type { RddPhase, RddReceipt, RddReceiptPath, ReceiptVerification } from './core/verification/rdd-receipt';
12
14
  export type { RunVerificationOptions, VerificationCheck, CaptureTddSuiteOptions, } from './core/verification/verification-runner';
13
15
  export * from './validation/schemas';
14
16
  export { createInitialState, loopStateMachine, createInitialTddState, tddCycleStateMachine, } from './domain/loop/loop-state';