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.
- package/README.md +61 -13
- package/dist/core/verification/rdd-receipt.d.ts +39 -0
- package/dist/core/verification/verification-runner.d.ts +8 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1257 -330
- package/dist/library.js +267 -26
- package/dist/validation/schemas.d.ts +521 -26
- package/docs/generated/cli.md +20 -0
- package/package.json +1 -1
- package/presets/agy/AGENTS.md +6 -0
- package/presets/agy/README.md +1 -1
- package/presets/agy/hooks.json +1 -1
- package/presets/agy/scripts/invoke-hook.cjs +20 -5
- package/presets/agy/settings.json +1 -1
- package/presets/agy/skills/api-versioning/SKILL.md +394 -0
- package/presets/agy/skills/astro/SKILL.md +318 -0
- package/presets/agy/skills/auth-token-inspector/SKILL.md +30 -0
- package/presets/agy/skills/cc-pagespeed/SKILL.md +2 -3
- package/presets/agy/skills/code-review/SKILL.md +207 -0
- package/presets/agy/skills/django-orm/SKILL.md +460 -0
- package/presets/agy/skills/django-uv/SKILL.md +405 -0
- package/presets/agy/skills/drizzle-schema-architect/SKILL.md +50 -0
- package/presets/agy/skills/fastapi-pydantic-strict/SKILL.md +43 -0
- package/presets/agy/skills/jpa-nplusone-detector/SKILL.md +45 -0
- package/presets/agy/skills/jpa-postgres/SKILL.md +623 -0
- package/presets/agy/skills/livewire-alpine-bridge/SKILL.md +35 -0
- package/presets/agy/skills/nextjs-typescript/SKILL.md +390 -0
- package/presets/agy/skills/python/SKILL.md +611 -0
- package/presets/agy/skills/seo-analytics-injector/SKILL.md +43 -0
- package/presets/agy/skills/spring-auth-auditor/SKILL.md +29 -0
- package/presets/agy/skills/spring-boot-feature/SKILL.md +563 -0
- package/presets/agy/skills/spring-boot-testing-strategy/SKILL.md +475 -0
- package/presets/agy/skills/tailwind-responsive-auditor/SKILL.md +29 -0
- package/presets/agy/skills/tdd-mutation-tester/SKILL.md +27 -0
- package/presets/agy/workflows/cc-handoff.md +2 -1
- package/presets/agy/workflows/cc-odd.md +15 -0
- package/presets/agy/workflows/cc-pagespeed.md +2 -3
- package/presets/agy/workflows/cc-review.md +31 -0
- package/presets/agy/workflows/cc-security.md +1 -1
- package/presets/claude/CLAUDE.md +6 -0
- package/presets/claude/commands/cc/handoff.md +2 -1
- package/presets/claude/commands/cc/odd.md +15 -0
- package/presets/claude/commands/cc/review.md +33 -0
- package/presets/claude/settings.json +2 -2
- package/presets/claude/skills/android/SKILL.md +1 -1
- package/presets/claude/skills/api-versioning/SKILL.md +1 -1
- package/presets/claude/skills/astro/SKILL.md +318 -0
- package/presets/claude/skills/auth-token-inspector/SKILL.md +30 -0
- package/presets/claude/skills/code-review/SKILL.md +207 -0
- package/presets/claude/skills/django-orm/SKILL.md +1 -1
- package/presets/claude/skills/django-testing/SKILL.md +1 -1
- package/presets/claude/skills/django-uv/SKILL.md +405 -0
- package/presets/claude/skills/drizzle-schema-architect/SKILL.md +50 -0
- package/presets/claude/skills/fastapi-pydantic-strict/SKILL.md +43 -0
- package/presets/claude/skills/jpa-nplusone-detector/SKILL.md +45 -0
- package/presets/claude/skills/jpa-postgres/SKILL.md +1 -1
- package/presets/claude/skills/livewire-alpine-bridge/SKILL.md +35 -0
- package/presets/claude/skills/nextjs-typescript/SKILL.md +390 -0
- package/presets/claude/skills/pagespeed-perf/SKILL.md +1 -1
- package/presets/claude/skills/python/SKILL.md +1 -1
- package/presets/claude/skills/python-django-stack/SKILL.md +1 -1
- package/presets/claude/skills/python-fastapi-stack/SKILL.md +1 -1
- package/presets/claude/skills/security/SKILL.md +1 -1
- package/presets/claude/skills/seo-analytics-injector/SKILL.md +43 -0
- package/presets/claude/skills/spring-auth-auditor/SKILL.md +29 -0
- package/presets/claude/skills/spring-boot-feature/SKILL.md +1 -1
- package/presets/claude/skills/spring-boot-kotlin/SKILL.md +1 -1
- package/presets/claude/skills/spring-boot-testing-strategy/SKILL.md +475 -0
- package/presets/claude/skills/sqlalchemy/SKILL.md +1 -1
- package/presets/claude/skills/tailwind-responsive-auditor/SKILL.md +29 -0
- package/presets/claude/skills/tdd-mutation-tester/SKILL.md +27 -0
- package/presets/claude/skills/testing-strategy/SKILL.md +1 -1
- package/presets/codex/AGENTS.md +6 -0
- package/presets/codex/skills/android/SKILL.md +1 -1
- package/presets/codex/skills/api-versioning/SKILL.md +1 -1
- package/presets/codex/skills/astro/SKILL.md +318 -0
- package/presets/codex/skills/auth-token-inspector/SKILL.md +30 -0
- package/presets/codex/skills/cc-handoff/SKILL.md +3 -1
- package/presets/codex/skills/cc-odd/SKILL.md +25 -0
- package/presets/codex/skills/cc-openspec/SKILL.md +5 -1
- package/presets/codex/skills/cc-pagespeed/SKILL.md +2 -3
- package/presets/codex/skills/cc-review/SKILL.md +31 -0
- package/presets/codex/skills/cc-security/SKILL.md +1 -1
- package/presets/codex/skills/cc-spec-mutation/SKILL.md +5 -0
- package/presets/codex/skills/cc-tdd-cycle/SKILL.md +8 -0
- package/presets/codex/skills/code-review/SKILL.md +207 -0
- package/presets/codex/skills/django-orm/SKILL.md +1 -1
- package/presets/codex/skills/django-testing/SKILL.md +1 -1
- package/presets/codex/skills/django-uv/SKILL.md +405 -0
- package/presets/codex/skills/drizzle-schema-architect/SKILL.md +50 -0
- package/presets/codex/skills/fastapi-pydantic-strict/SKILL.md +43 -0
- package/presets/codex/skills/jpa-nplusone-detector/SKILL.md +45 -0
- package/presets/codex/skills/jpa-postgres/SKILL.md +1 -1
- package/presets/codex/skills/livewire-alpine-bridge/SKILL.md +35 -0
- package/presets/codex/skills/nextjs-typescript/SKILL.md +390 -0
- package/presets/codex/skills/pagespeed-perf/SKILL.md +1 -1
- package/presets/codex/skills/python/SKILL.md +1 -1
- package/presets/codex/skills/python-django-stack/SKILL.md +1 -1
- package/presets/codex/skills/python-fastapi-stack/SKILL.md +1 -1
- package/presets/codex/skills/security-ai-llm/SKILL.md +43 -0
- package/presets/codex/skills/security-blue-team/SKILL.md +43 -0
- package/presets/codex/skills/security-cloud/SKILL.md +43 -0
- package/presets/codex/skills/security-crypto/SKILL.md +43 -0
- package/presets/codex/skills/security-exploit-dev/SKILL.md +45 -0
- package/presets/codex/skills/security-grc/SKILL.md +43 -0
- package/presets/codex/skills/security-incident-response/SKILL.md +45 -0
- package/presets/codex/skills/security-log-analysis/SKILL.md +43 -0
- package/presets/codex/skills/security-malware-analysis/SKILL.md +44 -0
- package/presets/codex/skills/security-mobile/SKILL.md +43 -0
- package/presets/codex/skills/security-network/SKILL.md +43 -0
- package/presets/codex/skills/security-ot-ics/SKILL.md +43 -0
- package/presets/codex/skills/security-recon/SKILL.md +45 -0
- package/presets/codex/skills/security-red-team/SKILL.md +44 -0
- package/presets/codex/skills/security-reverse-engineering/SKILL.md +44 -0
- package/presets/codex/skills/security-soc-automation/SKILL.md +43 -0
- package/presets/codex/skills/security-threat-hunting/SKILL.md +43 -0
- package/presets/codex/skills/security-vuln-assessment/SKILL.md +45 -0
- package/presets/codex/skills/security-web/SKILL.md +44 -0
- package/presets/codex/skills/seo-analytics-injector/SKILL.md +43 -0
- package/presets/codex/skills/spring-auth-auditor/SKILL.md +29 -0
- package/presets/codex/skills/spring-boot-feature/SKILL.md +2 -2
- package/presets/codex/skills/spring-boot-kotlin/SKILL.md +1 -1
- package/presets/codex/skills/spring-boot-testing-strategy/SKILL.md +475 -0
- package/presets/codex/skills/sqlalchemy/SKILL.md +1 -1
- package/presets/codex/skills/tailwind-responsive-auditor/SKILL.md +29 -0
- package/presets/codex/skills/tdd-mutation-tester/SKILL.md +27 -0
- package/presets/codex/skills/testing-strategy/SKILL.md +1 -1
- package/presets/cursor/AGENTS.md +6 -0
- package/presets/cursor/commands/cc/handoff.md +3 -1
- package/presets/cursor/commands/cc/odd.md +20 -0
- package/presets/cursor/commands/cc/openspec.md +5 -1
- package/presets/cursor/commands/cc/pagespeed.md +2 -3
- package/presets/cursor/commands/cc/review.md +31 -0
- package/presets/cursor/commands/cc/security.md +1 -1
- package/presets/cursor/commands/cc/spec-mutation.md +5 -0
- package/presets/cursor/commands/cc/tdd-cycle.md +8 -0
- package/presets/cursor/skills/android/SKILL.md +1 -1
- package/presets/cursor/skills/api-versioning/SKILL.md +2 -1
- package/presets/cursor/skills/astro/SKILL.md +1 -1
- package/presets/cursor/skills/auth-token-inspector/SKILL.md +1 -1
- package/presets/cursor/skills/code-review/SKILL.md +1 -1
- package/presets/cursor/skills/django-orm/SKILL.md +3 -5
- package/presets/cursor/skills/django-testing/SKILL.md +1 -1
- package/presets/cursor/skills/django-uv/SKILL.md +1 -1
- package/presets/cursor/skills/drizzle-schema-architect/SKILL.md +1 -1
- package/presets/cursor/skills/fastapi-pydantic-strict/SKILL.md +1 -1
- package/presets/cursor/skills/jpa-nplusone-detector/SKILL.md +1 -1
- package/presets/cursor/skills/jpa-postgres/SKILL.md +2 -4
- package/presets/cursor/skills/livewire-alpine-bridge/SKILL.md +1 -1
- package/presets/cursor/skills/nextjs-typescript/SKILL.md +1 -1
- package/presets/cursor/skills/pagespeed-perf/SKILL.md +1 -1
- package/presets/cursor/skills/python/SKILL.md +6 -7
- package/presets/cursor/skills/python-django-stack/SKILL.md +1 -1
- package/presets/cursor/skills/python-fastapi-stack/SKILL.md +1 -1
- package/presets/cursor/skills/security/SKILL.md +1 -1
- package/presets/cursor/skills/seo-analytics-injector/SKILL.md +1 -1
- package/presets/cursor/skills/spring-auth-auditor/SKILL.md +1 -1
- package/presets/cursor/skills/spring-boot-feature/SKILL.md +2 -4
- package/presets/cursor/skills/spring-boot-kotlin/SKILL.md +1 -1
- package/presets/cursor/skills/spring-boot-testing-strategy/SKILL.md +1 -1
- package/presets/cursor/skills/sqlalchemy/SKILL.md +1 -1
- package/presets/cursor/skills/tailwind-responsive-auditor/SKILL.md +1 -1
- package/presets/cursor/skills/tdd-mutation-tester/SKILL.md +1 -1
- package/presets/gemini/GEMINI.md +6 -0
- package/presets/gemini/commands/cc/handoff.toml +3 -1
- package/presets/gemini/commands/cc/odd.toml +20 -0
- package/presets/gemini/commands/cc/openspec.toml +5 -1
- package/presets/gemini/commands/cc/pagespeed.toml +2 -3
- package/presets/gemini/commands/cc/review.toml +31 -0
- package/presets/gemini/commands/cc/security.toml +1 -1
- package/presets/gemini/commands/cc/spec-mutation.toml +5 -0
- package/presets/gemini/commands/cc/tdd-cycle.toml +8 -0
- package/presets/opencode/README.md +45 -52
- package/presets/opencode/agents/implementer.md +2 -0
- package/presets/opencode/agents/reviewer.md +2 -0
- package/presets/opencode/agents/tester.md +2 -0
- package/presets/opencode/commands/cc-handoff.md +2 -1
- package/presets/opencode/commands/cc-odd.md +15 -0
- package/presets/opencode/commands/cc-pagespeed.md +2 -3
- package/presets/opencode/commands/cc-review.md +31 -0
- package/presets/opencode/commands/cc-security.md +1 -1
- package/presets/opencode/opencode.jsonc +1 -1
- package/presets/opencode/skills/android/SKILL.md +1 -1
- package/presets/opencode/skills/api-versioning/SKILL.md +2 -1
- package/presets/opencode/skills/astro/SKILL.md +1 -1
- package/presets/opencode/skills/auth-token-inspector/SKILL.md +1 -1
- package/presets/opencode/skills/code-review/SKILL.md +1 -1
- package/presets/opencode/skills/django-orm/SKILL.md +3 -3
- package/presets/opencode/skills/django-testing/SKILL.md +1 -1
- package/presets/opencode/skills/django-uv/SKILL.md +1 -1
- package/presets/opencode/skills/drizzle-schema-architect/SKILL.md +1 -1
- package/presets/opencode/skills/fastapi-pydantic-strict/SKILL.md +1 -1
- package/presets/opencode/skills/jpa-nplusone-detector/SKILL.md +1 -1
- package/presets/opencode/skills/jpa-postgres/SKILL.md +2 -1
- package/presets/opencode/skills/livewire-alpine-bridge/SKILL.md +1 -1
- package/presets/opencode/skills/nextjs-typescript/SKILL.md +1 -1
- package/presets/opencode/skills/pagespeed-perf/SKILL.md +1 -1
- package/presets/opencode/skills/python/SKILL.md +6 -5
- package/presets/opencode/skills/python-django-stack/SKILL.md +1 -1
- package/presets/opencode/skills/python-fastapi-stack/SKILL.md +1 -1
- package/presets/opencode/skills/security/SKILL.md +1 -1
- package/presets/opencode/skills/seo-analytics-injector/SKILL.md +1 -1
- package/presets/opencode/skills/spring-auth-auditor/SKILL.md +1 -1
- package/presets/opencode/skills/spring-boot-feature/SKILL.md +2 -1
- package/presets/opencode/skills/spring-boot-kotlin/SKILL.md +1 -1
- package/presets/opencode/skills/spring-boot-testing-strategy/SKILL.md +1 -1
- package/presets/opencode/skills/sqlalchemy/SKILL.md +1 -1
- package/presets/opencode/skills/tailwind-responsive-auditor/SKILL.md +1 -1
- package/presets/opencode/skills/tdd-mutation-tester/SKILL.md +1 -1
- package/presets/pi/AGENTS.md +6 -0
- package/presets/seo-hotel/skills/astro-seo/SKILL.md +1 -1
- package/presets/seo-hotel/skills/geo-readiness/SKILL.md +1 -1
- package/presets/seo-hotel/skills/off-page/SKILL.md +1 -1
- package/presets/seo-hotel/skills/schema-validator/SKILL.md +1 -1
- package/presets/seo-hotel/skills/seo-audit/SKILL.md +1 -1
- package/presets/shared/invoke-hook.cjs +20 -5
- package/src/presets/models/roles.yml +28 -28
- package/src/presets/shared-skills.yml +58 -22
- 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
|
-
[](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.
|
|
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.
|
|
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/
|
|
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
|
-
##
|
|
125
|
+
## Historical: v1.3.0
|
|
100
126
|
|
|
101
|
-
v1.3.0
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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';
|