cc-codeconductor 0.4.3 → 1.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.
- package/README.md +95 -95
- package/dist/cli/errors.d.ts +65 -0
- package/dist/core/compilation/compile-checker.d.ts +51 -0
- package/dist/core/config/codeconductor-config.d.ts +42 -0
- package/dist/core/config/config-loader.d.ts +11 -0
- package/dist/core/filesystem/credential-guard.d.ts +18 -0
- package/dist/core/goal/goal-planner.d.ts +8 -0
- package/dist/core/goal/goal-state.d.ts +15 -0
- package/dist/core/loop/git-stats.d.ts +13 -0
- package/dist/core/loop/loop-engine.d.ts +79 -0
- package/dist/core/memory/episodic-store.d.ts +6 -0
- package/dist/core/memory/operational-state.d.ts +6 -0
- package/dist/core/orchestrator/runtime-orchestrator.d.ts +25 -0
- package/dist/core/planner/product-planner.d.ts +18 -0
- package/dist/core/presets/package-paths.d.ts +4 -0
- package/dist/core/product-graph/graph-store.d.ts +11 -0
- package/dist/core/product-graph/paths.d.ts +18 -0
- package/dist/core/verification/verification-runner.d.ts +57 -0
- package/dist/domain/loop/loop-state.d.ts +74 -0
- package/dist/domain/product/entities.d.ts +11 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +23721 -15064
- package/dist/library.js +2595 -0
- package/dist/utils/result.d.ts +36 -0
- package/dist/validation/schemas.d.ts +3660 -0
- package/package.json +15 -2
- package/policy.yml +12 -11
- package/presets/agy/AGENTS.md +11 -5
- package/presets/agy/gates/pre-commit/GATE.md +136 -0
- package/presets/agy/skills/cc-fix/SKILL.md +2 -2
- package/presets/agy/skills/cc-tdd-cycle/SKILL.md +11 -0
- package/presets/agy/skills/evaluation/SKILL.md +6 -0
- package/presets/agy/skills/openspec/SKILL.md +32 -0
- package/presets/agy/workflows/cc-api-contract.md +12 -0
- package/presets/agy/workflows/cc-ask.md +55 -0
- package/presets/agy/workflows/cc-clarify.md +33 -0
- package/presets/agy/workflows/cc-council.md +31 -7
- package/presets/agy/workflows/cc-db-migration.md +22 -9
- package/presets/agy/workflows/cc-explore.md +37 -0
- package/presets/agy/workflows/cc-feature.md +41 -19
- package/presets/agy/workflows/cc-fix.md +50 -23
- package/presets/agy/workflows/cc-handoff.md +42 -0
- package/presets/agy/workflows/cc-iterative.md +128 -0
- package/presets/agy/workflows/cc-openspec.md +75 -0
- package/presets/agy/workflows/cc-pagespeed.md +12 -0
- package/presets/agy/workflows/cc-prototype.md +39 -0
- package/presets/agy/workflows/cc-refactor.md +12 -0
- package/presets/agy/workflows/cc-review.md +12 -0
- package/presets/agy/workflows/cc-scorecard.md +29 -0
- package/presets/agy/workflows/cc-tdd-cycle.md +24 -0
- package/presets/agy/workflows/cc-test-plan.md +12 -0
- package/presets/agy/workflows/cc-triage.md +35 -0
- package/presets/claude/CLAUDE.md +64 -0
- package/presets/claude/commands/cc/api-contract.md +12 -0
- package/presets/claude/commands/cc/ask.md +55 -0
- package/presets/claude/commands/cc/clarify.md +32 -0
- package/presets/claude/commands/cc/council.md +87 -0
- package/presets/claude/commands/cc/db-migration.md +22 -9
- package/presets/claude/commands/cc/explore.md +36 -0
- package/presets/claude/commands/cc/feature.md +49 -22
- package/presets/claude/commands/cc/fix.md +74 -20
- package/presets/claude/commands/cc/handoff.md +44 -0
- package/presets/claude/commands/cc/iterative.md +132 -0
- package/presets/claude/commands/cc/openspec.md +169 -0
- package/presets/claude/commands/cc/pagespeed.md +12 -0
- package/presets/claude/commands/cc/prototype.md +38 -0
- package/presets/claude/commands/cc/refactor.md +152 -1
- package/presets/claude/commands/cc/review.md +90 -17
- package/presets/claude/commands/cc/scorecard.md +77 -0
- package/presets/claude/commands/cc/tdd-cycle.md +53 -3
- package/presets/claude/commands/cc/test-plan.md +12 -0
- package/presets/claude/commands/cc/triage.md +34 -0
- package/presets/claude/gates/pre-commit/GATE.md +136 -0
- package/presets/claude/settings.json +8 -46
- package/presets/claude/skills/evaluation/SKILL.md +42 -0
- package/presets/claude/skills/openspec/SKILL.md +54 -0
- package/presets/codex/AGENTS.md +62 -5
- package/presets/codex/commands/cc-ask.md +55 -0
- package/presets/codex/gates/pre-commit/GATE.md +136 -0
- package/presets/cursor/.cursorignore +15 -0
- package/presets/cursor/AGENTS.md +504 -0
- package/presets/cursor/agents/architect.md +211 -0
- package/presets/cursor/agents/business-agent.md +44 -0
- package/presets/cursor/agents/complexity-auditor.md +76 -0
- package/presets/cursor/agents/continuous-architect.md +37 -0
- package/presets/cursor/agents/contract-builder.md +75 -0
- package/presets/cursor/agents/docs.md +181 -0
- package/presets/cursor/agents/goal-planner.md +71 -0
- package/presets/cursor/agents/impact-analyst.md +43 -0
- package/presets/cursor/agents/implementer.md +161 -0
- package/presets/cursor/agents/orchestrator.md +377 -0
- package/presets/cursor/agents/repo-explorer.md +100 -0
- package/presets/cursor/agents/reviewer.md +237 -0
- package/presets/cursor/agents/security-reviewer.md +113 -0
- package/presets/cursor/agents/task-coach.md +145 -0
- package/presets/cursor/agents/tester.md +241 -0
- package/presets/cursor/commands/cc/api-contract.md +70 -0
- package/presets/cursor/commands/cc/ask.md +55 -0
- package/presets/cursor/commands/cc/clarify.md +32 -0
- package/presets/cursor/commands/cc/council.md +87 -0
- package/presets/cursor/commands/cc/db-migration.md +71 -0
- package/presets/cursor/commands/cc/explore.md +36 -0
- package/presets/cursor/commands/cc/feature.md +137 -0
- package/presets/cursor/commands/cc/fix.md +148 -0
- package/presets/cursor/commands/cc/handoff.md +41 -0
- package/presets/cursor/commands/cc/iterative.md +133 -0
- package/presets/cursor/commands/cc/openspec.md +159 -0
- package/presets/cursor/commands/cc/pagespeed.md +115 -0
- package/presets/cursor/commands/cc/prototype.md +38 -0
- package/presets/cursor/commands/cc/refactor.md +160 -0
- package/presets/cursor/commands/cc/review.md +149 -0
- package/presets/cursor/commands/cc/scorecard.md +77 -0
- package/presets/cursor/commands/cc/tdd-cycle.md +250 -0
- package/presets/cursor/commands/cc/test-plan.md +150 -0
- package/presets/cursor/commands/cc/triage.md +34 -0
- package/presets/cursor/gates/pre-commit/GATE.md +136 -0
- package/presets/cursor/rules/behavioral-discipline.mdc +14 -0
- package/presets/cursor/rules/context-budget.mdc +12 -0
- package/presets/cursor/rules/orchestration.mdc +12 -0
- package/presets/cursor/rules/yagni-stdlib.mdc +11 -0
- package/presets/cursor/skills/android/SKILL.md +122 -0
- package/presets/cursor/skills/api-versioning/SKILL.md +394 -0
- package/presets/cursor/skills/astro/SKILL.md +322 -0
- package/presets/cursor/skills/auth-token-inspector/SKILL.md +33 -0
- package/presets/cursor/skills/code-review/SKILL.md +208 -0
- package/presets/cursor/skills/conductor-setup/SKILL.md +127 -0
- package/presets/cursor/skills/django-orm/SKILL.md +463 -0
- package/presets/cursor/skills/django-testing/SKILL.md +417 -0
- package/presets/cursor/skills/django-uv/SKILL.md +409 -0
- package/presets/cursor/skills/drizzle-schema-architect/SKILL.md +54 -0
- package/presets/cursor/skills/evaluation/SKILL.md +8 -0
- package/presets/cursor/skills/fastapi-pydantic-strict/SKILL.md +46 -0
- package/presets/cursor/skills/find-skills/SKILL.md +144 -0
- package/presets/cursor/skills/jpa-nplusone-detector/SKILL.md +49 -0
- package/presets/cursor/skills/jpa-postgres/SKILL.md +626 -0
- package/presets/cursor/skills/laravel-specialist/SKILL.md +267 -0
- package/presets/cursor/skills/laravel-specialist/references/eloquent.md +351 -0
- package/presets/cursor/skills/laravel-specialist/references/livewire.md +512 -0
- package/presets/cursor/skills/laravel-specialist/references/queues.md +423 -0
- package/presets/cursor/skills/laravel-specialist/references/routing.md +362 -0
- package/presets/cursor/skills/laravel-specialist/references/testing.md +522 -0
- package/presets/cursor/skills/livewire-alpine-bridge/SKILL.md +39 -0
- package/presets/cursor/skills/multi-agent-orchestration/README.md +144 -0
- package/presets/cursor/skills/multi-agent-orchestration/SKILL.md +579 -0
- package/presets/cursor/skills/multi-agent-orchestration/examples/framework_implementations.py +362 -0
- package/presets/cursor/skills/multi-agent-orchestration/examples/orchestration_patterns.py +411 -0
- package/presets/cursor/skills/multi-agent-orchestration/scripts/agent_communication.py +334 -0
- package/presets/cursor/skills/multi-agent-orchestration/scripts/benchmarking.py +341 -0
- package/presets/cursor/skills/multi-agent-orchestration/scripts/workflow_management.py +334 -0
- package/presets/cursor/skills/nextjs-typescript/SKILL.md +394 -0
- package/presets/cursor/skills/openspec/SKILL.md +52 -0
- package/presets/cursor/skills/pagespeed-insights/SKILL.md +445 -0
- package/presets/cursor/skills/pagespeed-insights/reference.md +50 -0
- package/presets/cursor/skills/pagespeed-perf/SKILL.md +281 -0
- package/presets/cursor/skills/php-pro/SKILL.md +210 -0
- package/presets/cursor/skills/php-pro/references/async-patterns.md +412 -0
- package/presets/cursor/skills/php-pro/references/laravel-patterns.md +377 -0
- package/presets/cursor/skills/php-pro/references/modern-php-features.md +323 -0
- package/presets/cursor/skills/php-pro/references/symfony-patterns.md +466 -0
- package/presets/cursor/skills/php-pro/references/testing-quality.md +466 -0
- package/presets/cursor/skills/python/SKILL.md +613 -0
- package/presets/cursor/skills/python-django-stack/SKILL.md +500 -0
- package/presets/cursor/skills/python-fastapi-stack/SKILL.md +464 -0
- package/presets/cursor/skills/security/SKILL.md +384 -0
- package/presets/cursor/skills/seo-analytics-injector/SKILL.md +44 -0
- package/presets/cursor/skills/spring-auth-auditor/SKILL.md +33 -0
- package/presets/cursor/skills/spring-boot-feature/SKILL.md +566 -0
- package/presets/cursor/skills/spring-boot-kotlin/SKILL.md +408 -0
- package/presets/cursor/skills/spring-boot-testing-strategy/SKILL.md +479 -0
- package/presets/cursor/skills/sqlalchemy/SKILL.md +473 -0
- package/presets/cursor/skills/tailwind-responsive-auditor/SKILL.md +32 -0
- package/presets/cursor/skills/tdd-mutation-tester/SKILL.md +28 -0
- package/presets/cursor/skills/testing-tdd/SKILL.md +592 -0
- package/presets/cursor/skills/workflow-orchestration-patterns/SKILL.md +98 -0
- package/presets/cursor/skills/workflow-orchestration-patterns/references/details.md +223 -0
- package/presets/opencode/agents/architect.md +22 -2
- package/presets/opencode/agents/complexity-auditor.md +16 -0
- package/presets/opencode/agents/contract-builder.md +109 -0
- package/presets/opencode/agents/devil.md +158 -0
- package/presets/opencode/agents/docs.md +19 -2
- package/presets/opencode/agents/goal-planner.md +112 -0
- package/presets/opencode/agents/implementer.md +39 -2
- package/presets/opencode/agents/orchestrator.md +124 -19
- package/presets/opencode/agents/planner.md +61 -0
- package/presets/opencode/agents/repo-explorer.md +15 -0
- package/presets/opencode/agents/reviewer.md +53 -2
- package/presets/opencode/agents/security-reviewer.md +159 -0
- package/presets/opencode/agents/task-coach.md +69 -2
- package/presets/opencode/agents/tester.md +18 -2
- package/presets/opencode/commands/cc-api-contract.md +12 -0
- package/presets/opencode/commands/cc-ask.md +55 -0
- package/presets/opencode/commands/cc-clarify.md +31 -0
- package/presets/opencode/commands/cc-council.md +87 -0
- package/presets/opencode/commands/cc-db-migration.md +22 -9
- package/presets/opencode/commands/cc-explore.md +35 -0
- package/presets/opencode/commands/cc-feature.md +41 -19
- package/presets/opencode/commands/cc-fix.md +50 -23
- package/presets/opencode/commands/cc-handoff.md +40 -0
- package/presets/opencode/commands/cc-iterative.md +127 -0
- package/presets/opencode/commands/cc-openspec.md +74 -0
- package/presets/opencode/commands/cc-pagespeed.md +12 -0
- package/presets/opencode/commands/cc-prototype.md +37 -0
- package/presets/opencode/commands/cc-refactor.md +12 -0
- package/presets/opencode/commands/cc-review.md +12 -0
- package/presets/opencode/commands/cc-scorecard.md +28 -0
- package/presets/opencode/commands/cc-tdd-cycle.md +24 -0
- package/presets/opencode/commands/cc-test-plan.md +12 -0
- package/presets/opencode/commands/cc-triage.md +33 -0
- package/presets/opencode/gates/pre-commit/GATE.md +136 -0
- package/presets/opencode/prompts/v0.1.0/DEPRECATED.md +11 -0
- package/presets/opencode/prompts/v0.2.0/DEPRECATED.md +11 -0
- package/presets/opencode/prompts/v0.3.0/DEPRECATED.md +11 -0
- package/presets/opencode/prompts/v0.4.0/DEPRECATED.md +11 -0
- package/presets/opencode/prompts/v0.5.0/architect.md +222 -0
- package/presets/opencode/prompts/v0.5.0/complexity-auditor.md +91 -0
- package/presets/opencode/prompts/v0.5.0/contract-builder.md +84 -0
- package/presets/opencode/prompts/v0.5.0/docs.md +190 -0
- package/presets/opencode/prompts/v0.5.0/goal-planner.md +80 -0
- package/presets/opencode/prompts/v0.5.0/implementer.md +171 -0
- package/presets/opencode/prompts/v0.5.0/orchestrator.md +388 -0
- package/presets/opencode/prompts/v0.5.0/repo-explorer.md +111 -0
- package/presets/opencode/prompts/v0.5.0/reviewer.md +248 -0
- package/presets/opencode/prompts/v0.5.0/security-reviewer.md +123 -0
- package/presets/opencode/prompts/v0.5.0/task-coach.md +156 -0
- package/presets/opencode/prompts/v0.5.0/tester.md +252 -0
- package/presets/opencode/prompts/v0.6.0/implementer.md +35 -0
- package/presets/opencode/prompts/v0.6.0/planner.md +36 -0
- package/presets/opencode/prompts/v0.6.0/reviewer.md +40 -0
- package/presets/opencode/prompts/v1.0.0/README.md +47 -0
- package/presets/opencode/prompts/v1.0.0/architect.md +259 -0
- package/presets/opencode/prompts/v1.0.0/complexity-auditor.md +116 -0
- package/presets/opencode/prompts/v1.0.0/contract-builder.md +120 -0
- package/presets/opencode/prompts/v1.0.0/devil.md +169 -0
- package/presets/opencode/prompts/v1.0.0/docs.md +229 -0
- package/presets/opencode/prompts/v1.0.0/goal-planner.md +123 -0
- package/presets/opencode/prompts/v1.0.0/implementer.md +228 -0
- package/presets/opencode/prompts/v1.0.0/orchestrator.md +474 -0
- package/presets/opencode/prompts/v1.0.0/planner.md +72 -0
- package/presets/opencode/prompts/v1.0.0/repo-explorer.md +147 -0
- package/presets/opencode/prompts/v1.0.0/reviewer.md +295 -0
- package/presets/opencode/prompts/v1.0.0/security-reviewer.md +170 -0
- package/presets/opencode/prompts/v1.0.0/task-coach.md +235 -0
- package/presets/opencode/prompts/v1.0.0/tester.md +298 -0
- package/presets/opencode/skills/evaluation/SKILL.md +6 -0
- package/presets/opencode/skills/openspec/SKILL.md +50 -0
- package/presets/seo-hotel/settings.json +0 -17
- package/presets/templates/BACKLOG.md +33 -0
- package/presets/templates/execution-profile.yml +6 -0
- package/presets/templates/model-comparison.md +11 -0
- package/presets/templates/regression-checklist.yml +10 -0
- package/src/presets/manifests/agy.yml +2 -2
- package/src/presets/manifests/claude.yml +2 -2
- package/src/presets/manifests/codex.yml +2 -2
- package/src/presets/manifests/cursor.yml +19 -3
- package/src/presets/manifests/gemini.yml +2 -2
- package/src/presets/manifests/opencode.yml +2 -2
- package/src/presets/models/agy.yml +97 -49
- package/src/presets/models/claude.yml +83 -39
- package/src/presets/models/codex.yml +83 -40
- package/src/presets/models/cursor.yml +83 -39
- package/src/presets/models/gemini.yml +83 -39
- package/src/presets/models/opencode.yml +78 -34
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >-
|
|
3
|
+
[cc: alias] Compact the session into gitignored `.codeconductor/sessions/handoff.md` (redact secrets).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Handoff Workflow
|
|
7
|
+
|
|
8
|
+
Handoff request: $ARGUMENTS
|
|
9
|
+
|
|
10
|
+
## Step 0 — CCEP Bootstrap
|
|
11
|
+
|
|
12
|
+
Command: `handoff` (fixed for this workflow — do not infer from user text)
|
|
13
|
+
|
|
14
|
+
1. Run: `npx cc-codeconductor ccep parse --command handoff "$ARGUMENTS" --output json`
|
|
15
|
+
2. Run: `npx cc-codeconductor ccep resolve --command handoff "$ARGUMENTS" --output json`
|
|
16
|
+
3. Run: `npx cc-codeconductor ccep profile handoff --output json`
|
|
17
|
+
4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command handoff --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
|
|
18
|
+
5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Step 1 — Compact (docs)
|
|
23
|
+
|
|
24
|
+
Invoke `docs`. Write **only** `.codeconductor/sessions/handoff.md` (gitignored).
|
|
25
|
+
Do not write `.codeconductor/handoff.md` or any tracked path.
|
|
26
|
+
|
|
27
|
+
Before writing, redact secrets, tokens, API keys, passwords, connection strings,
|
|
28
|
+
`.env` contents, and log/stack-trace lines that embed those values. Summarize
|
|
29
|
+
errors instead of pasting dumps. If unresolved credential material remains, stop
|
|
30
|
+
and wait for a human (CCEP `stopOnHighRisk`).
|
|
31
|
+
|
|
32
|
+
Include: goal, Task Card status (no secret fields), files touched, test
|
|
33
|
+
pass/fail (not log dumps), open questions, the next `/cc:` command, and the
|
|
34
|
+
recommended `context_scope` (`isolated` | `continuation` | `full`) for the next
|
|
35
|
+
session — derived from the Task Card status above, not invented, with a
|
|
36
|
+
one-sentence justification.
|
|
37
|
+
|
|
38
|
+
Do not edit source or tests.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Completion
|
|
43
|
+
|
|
44
|
+
Report the handoff path. Another session should be able to continue from that file alone.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >-
|
|
3
|
+
[cc: alias] Run the advanced iterative workflow — Wayfinding AST discovery,
|
|
4
|
+
Relentless Grilling, contract and spec design, TDD, council review, and docs.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Advanced Iterative Workflow
|
|
8
|
+
|
|
9
|
+
Iterative request: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Step 0 — CCEP Bootstrap
|
|
14
|
+
|
|
15
|
+
Command: `iterative` (fixed for this workflow — do not infer from user text)
|
|
16
|
+
|
|
17
|
+
1. Run: `npx cc-codeconductor ccep parse --command iterative "$ARGUMENTS" --output json`
|
|
18
|
+
2. Run: `npx cc-codeconductor ccep resolve --command iterative "$ARGUMENTS" --output json`
|
|
19
|
+
3. Run: `npx cc-codeconductor ccep profile iterative --output json`
|
|
20
|
+
4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command iterative --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
|
|
21
|
+
5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
|
|
22
|
+
Canonical delivery order is test-before-implement whenever both phases apply.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Step 1 — Wayfinding (Repo Explorer role)
|
|
27
|
+
|
|
28
|
+
If `graphify-out/graph.json` exists, run `graphify query "$ARGUMENTS"` (and
|
|
29
|
+
`graphify path` / `graphify explain` when two modules or one concept need a
|
|
30
|
+
scoped subgraph). Then adopt the **Repo Explorer** role as defined in
|
|
31
|
+
`CLAUDE.md` with that graph output.
|
|
32
|
+
|
|
33
|
+
Map directory trees, conventions, god nodes, and affected modules. Do not write
|
|
34
|
+
code in this step. Write a short phase handoff (scope, files, open questions)
|
|
35
|
+
before the next phase — do not chain agents on unspoken context.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Step 2 — Relentless Grilling & Task Card (Task Coach role)
|
|
40
|
+
|
|
41
|
+
Adopt the **Task Coach** role as defined in `CLAUDE.md`.
|
|
42
|
+
|
|
43
|
+
Produce a complete Task Card. The Task Card is ready when it contains: title,
|
|
44
|
+
type, risk classification, scope, context, acceptance criteria, and
|
|
45
|
+
constraints, and every assumption behind it has survived one grilling
|
|
46
|
+
question (Grilling protocol).
|
|
47
|
+
|
|
48
|
+
If any field is missing or ambiguous, ask one clarifying question at a time and
|
|
49
|
+
wait for the answer. Do not proceed with an incomplete Task Card.
|
|
50
|
+
|
|
51
|
+
**STOP here.** Unresolved grilling questions or missing fields populate
|
|
52
|
+
`questionsForUser` in the CCEP-1 `planner-output`; the `ConfirmationGate`
|
|
53
|
+
(`ccep evaluate`) reads that field and halts the workflow until a human
|
|
54
|
+
answers. Show the completed Task Card and wait for that confirmation before
|
|
55
|
+
continuing.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Step 3 — Contract & Technical Plan (Architect role)
|
|
60
|
+
|
|
61
|
+
Adopt the **Architect** role as defined in `CLAUDE.md`. Define contracts first,
|
|
62
|
+
then the Technical Plan.
|
|
63
|
+
|
|
64
|
+
1. Define API contracts, JSON Schemas, or TypeScript interfaces.
|
|
65
|
+
2. Formulate the Technical Plan (chosen approach, affected files, trade-offs).
|
|
66
|
+
3. Apply YAGNI, Simplicity First, and Stdlib-First.
|
|
67
|
+
|
|
68
|
+
**STOP here. Show the Technical Plan and wait for explicit human approval. Do
|
|
69
|
+
not proceed to tests until the plan is approved.**
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Step 4 — Test coverage (Tester role)
|
|
74
|
+
|
|
75
|
+
Adopt the **Tester** role as defined in `CLAUDE.md`.
|
|
76
|
+
|
|
77
|
+
1. Write or extend failing tests for the new behavior before implementation (RED).
|
|
78
|
+
2. Ensure all acceptance criteria from the Task Card have at least one test.
|
|
79
|
+
3. Produce a Test Report: test files added or modified, cases covered.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Step 5 — Implementation (Implementer role)
|
|
84
|
+
|
|
85
|
+
Adopt the **Implementer** role as defined in `CLAUDE.md`.
|
|
86
|
+
|
|
87
|
+
Use the approved Technical Plan, contracts, and the failing tests.
|
|
88
|
+
Create a Git Worktree before touching any file; all edits happen inside it.
|
|
89
|
+
|
|
90
|
+
1. Read the Technical Plan before touching any file.
|
|
91
|
+
2. Apply the minimal diff — only what the plan specifies.
|
|
92
|
+
3. Run the project test suite and make the previously written failing tests pass.
|
|
93
|
+
4. If tests fail, run up to 3 repair cycles (Implementer → Tester).
|
|
94
|
+
5. Produce an Implementation Summary: what changed, which files, how to verify
|
|
95
|
+
locally.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Step 6 — Multi-Perspective Council Review
|
|
100
|
+
|
|
101
|
+
Invoke the `council` skill on the generated diff (`council-review` phase).
|
|
102
|
+
|
|
103
|
+
The council evaluates Architecture, Security, Product, Delivery, DataOps, and
|
|
104
|
+
Devil. `security-reviewer` may set `securityVeto: true`; that REJECTED verdict
|
|
105
|
+
overrides majority consensus.
|
|
106
|
+
|
|
107
|
+
If ANY agent votes CRITICAL:
|
|
108
|
+
- The Review Report status is **BLOCKED**.
|
|
109
|
+
- Return to Step 5 with the feedback.
|
|
110
|
+
|
|
111
|
+
If APPROVED (no CRITICAL findings), continue.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Step 7 — Documentation (Docs role)
|
|
116
|
+
|
|
117
|
+
Adopt the **Docs** role as defined in `CLAUDE.md` when a public API, public
|
|
118
|
+
module, or user-visible behavior changed.
|
|
119
|
+
|
|
120
|
+
Update: README (if applicable), OpenAPI spec (if applicable), CHANGELOG
|
|
121
|
+
(always when implementation changed), ADR (if an architectural decision was
|
|
122
|
+
made).
|
|
123
|
+
|
|
124
|
+
If `graphify-out/` is in use, run `graphify update .` (AST-only).
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Completion
|
|
129
|
+
|
|
130
|
+
The iterative workflow is complete only when: all tests pass, the council
|
|
131
|
+
approves the spec and the diff, no CRITICAL findings remain, and documentation
|
|
132
|
+
and the knowledge graph reflect the implemented behavior.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >-
|
|
3
|
+
[cc: alias] Run OpenSpec backlog delivery — validate BACKLOG.md, plan TaskCards,
|
|
4
|
+
orchestrate agents by phase, review gate, and update backlog state.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# OpenSpec Backlog Workflow
|
|
8
|
+
|
|
9
|
+
Scope: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
Orchestrate FIFO delivery from `BACKLOG.md`. CodeConductor owns planning; agents execute one TaskCard per phase with the installed preset model for each role.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Planning Principles — tracer bullet and blocking edges
|
|
16
|
+
|
|
17
|
+
A **tracer bullet** is a vertical slice of work: one `BC-NNN` backlog item that goes discover → design → test → implement → review and produces a demoable result, sized to fit inside a single agent's context window without needing an intermediate `/clear`.
|
|
18
|
+
|
|
19
|
+
**Quantitative heuristic**: a tracer bullet must fit within a maximum of 5 acceptance criteria and the 5 canonical phases (discover, design, test, implement, review) per context window. If an item needs more, split it into multiple `BC-NNN` items linked by `Depends on` instead of growing one tracer bullet past that budget.
|
|
20
|
+
|
|
21
|
+
**Equivalence**: one `BC-NNN` item equals one tracer bullet equals one or more TaskCards. `cc openspec plan <BC-id>` generates the TaskCards (discover/design/test/implement/review) that implement that item's tracer bullet — each BC-NNN item corresponds to exactly one tracer bullet.
|
|
22
|
+
|
|
23
|
+
**Blocking edges**: the `Depends on` field between `BC-NNN` items expresses a blocking dependency — an item cannot be selected in Step 2 until every item in its `Depends on` list is `DONE`. `Depends on` is the sole mechanism for sequencing tracer bullets; there is no separate edge syntax.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Step 0 — Validate (mandatory gate)
|
|
28
|
+
|
|
29
|
+
Run:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx cc-codeconductor openspec validate
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If validation fails:
|
|
36
|
+
|
|
37
|
+
1. List all errors and recommendations from the CLI output.
|
|
38
|
+
2. Show the canonical BACKLOG.md structure (## Global, ## Items, ### BC-001 | Title, Priority, Status, Type, Depends on, Description, Scope, Acceptance).
|
|
39
|
+
3. **STOP.** Do not scan, plan, or execute until the user fixes BACKLOG.md.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Step 0 — CCEP Bootstrap
|
|
44
|
+
|
|
45
|
+
Command: `openspec` (fixed for this workflow — do not infer from user text)
|
|
46
|
+
|
|
47
|
+
1. Run: `npx cc-codeconductor ccep parse --command openspec "$ARGUMENTS" --output json`
|
|
48
|
+
2. Run: `npx cc-codeconductor ccep resolve --command openspec "$ARGUMENTS" --output json`
|
|
49
|
+
3. Run: `npx cc-codeconductor ccep profile openspec --output json`
|
|
50
|
+
4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command openspec --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
|
|
51
|
+
5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
|
|
52
|
+
Canonical delivery order is test-before-implement whenever both phases apply.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Step 1 — Scan
|
|
57
|
+
|
|
58
|
+
Run:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx cc-codeconductor openspec scan
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Report: new items, modified items, closed/archived items, and whether the file changed.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Step 2 — Select item
|
|
69
|
+
|
|
70
|
+
If `$ARGUMENTS` contains a `BC-xxx` ID, use that item. Otherwise run:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
npx cc-codeconductor openspec status
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Pick the next `READY` item with satisfied dependencies (FIFO by priority). Skip items in `DONE` or `Archive`.
|
|
77
|
+
|
|
78
|
+
**STOP if no eligible item.** Report backlog status and wait for the user.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Step 3 — Plan
|
|
83
|
+
|
|
84
|
+
Run:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
npx cc-codeconductor openspec plan <BC-id>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Show:
|
|
91
|
+
|
|
92
|
+
- Generated TaskCards (discover → design → test → implement → review when TDD required)
|
|
93
|
+
- Path to `openspec/changes/<slug>/` (proposal, design, tasks, specs)
|
|
94
|
+
|
|
95
|
+
Update BACKLOG item status to `PLANNED` (CLI does this automatically).
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Step 4 — Model matrix and execute loop
|
|
100
|
+
|
|
101
|
+
Before executing phases, show resolved models:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npx cc-codeconductor scorecard models
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
For each pending TaskCard, run:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npx cc-codeconductor openspec next
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Invoke the agent named on the card with **isolated** context (`/clear` between phases unless continuation is required):
|
|
114
|
+
|
|
115
|
+
| Phase | Agent | Role |
|
|
116
|
+
|-------|-------|------|
|
|
117
|
+
| discover | repo-explorer | Map repo and impact |
|
|
118
|
+
| design | architect | Technical plan |
|
|
119
|
+
| test | tester | TDD tests (before implement if TDD required) |
|
|
120
|
+
| implement | implementer | Minimal diff in worktree |
|
|
121
|
+
| review | reviewer | Acceptance + scope gate |
|
|
122
|
+
|
|
123
|
+
Use the model configured in the installed preset for each agent role.
|
|
124
|
+
|
|
125
|
+
After each phase:
|
|
126
|
+
|
|
127
|
+
- Mark progress in deliverable summary.
|
|
128
|
+
- Set TaskCard status to `done` in `.codeconductor/openspec-state.json` when phase completes.
|
|
129
|
+
|
|
130
|
+
Implementer: create a Git worktree before editing (`git worktree add ../<branch>-session <branch>`).
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Step 5 — Review gate
|
|
135
|
+
|
|
136
|
+
Run regression when BACKLOG Global `Review required: yes`:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npx cc-codeconductor scorecard regression
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
The `reviewer` agent must verify:
|
|
143
|
+
|
|
144
|
+
- All acceptance criteria from BACKLOG.md
|
|
145
|
+
- Tests pass
|
|
146
|
+
- Scope matches the backlog item
|
|
147
|
+
- No architectural violations
|
|
148
|
+
|
|
149
|
+
If **rejected**: set item status `IN_PROGRESS`, record findings in state, **STOP** and report to user.
|
|
150
|
+
|
|
151
|
+
If **approved**: proceed to Step 6.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Step 6 — Scorecard and update backlog
|
|
156
|
+
|
|
157
|
+
1. `npx cc-codeconductor scorecard create --task <BC-id> --from-diff`
|
|
158
|
+
2. Complete criteria; `scorecard record` with verdict and optional cost/tokens
|
|
159
|
+
3. Set item `Progress: 100%`, `Status: DONE` if PASS
|
|
160
|
+
4. Move item to `## Archive` in BACKLOG.md if DONE
|
|
161
|
+
5. Run `npx cc-codeconductor openspec scan`
|
|
162
|
+
|
|
163
|
+
Report completion: Task Cards executed, scorecard verdict, change folder path, files changed.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Skill
|
|
168
|
+
|
|
169
|
+
Apply `.claude/skills/openspec/SKILL.md` for backlog format rules and state transitions.
|
|
@@ -4,6 +4,18 @@ Audit web performance using the PageSpeed Insights API. Applies the 80/20
|
|
|
4
4
|
principle: identify the 20% of changes that produce 80% of the performance gain.
|
|
5
5
|
Produces a prioritized report in the current working directory.
|
|
6
6
|
|
|
7
|
+
## Step 0 — CCEP Bootstrap
|
|
8
|
+
|
|
9
|
+
Command: `pagespeed` (fixed for this workflow — do not infer from user text)
|
|
10
|
+
|
|
11
|
+
1. Run: `npx cc-codeconductor ccep parse --command pagespeed "$ARGUMENTS" --output json`
|
|
12
|
+
2. Run: `npx cc-codeconductor ccep resolve --command pagespeed "$ARGUMENTS" --output json`
|
|
13
|
+
3. Run: `npx cc-codeconductor ccep profile pagespeed --output json`
|
|
14
|
+
4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command pagespeed --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
|
|
15
|
+
5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
7
19
|
## Usage
|
|
8
20
|
|
|
9
21
|
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: >-
|
|
3
|
+
[cc: alias] Disposable spike in an isolated worktree. Not a merge candidate.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Prototype Workflow
|
|
7
|
+
|
|
8
|
+
Prototype request: $ARGUMENTS
|
|
9
|
+
|
|
10
|
+
## Step 0 — CCEP Bootstrap
|
|
11
|
+
|
|
12
|
+
Command: `prototype` (fixed for this workflow — do not infer from user text)
|
|
13
|
+
|
|
14
|
+
1. Run: `npx cc-codeconductor ccep parse --command prototype "$ARGUMENTS" --output json`
|
|
15
|
+
2. Run: `npx cc-codeconductor ccep resolve --command prototype "$ARGUMENTS" --output json`
|
|
16
|
+
3. Run: `npx cc-codeconductor ccep profile prototype --output json`
|
|
17
|
+
4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command prototype --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
|
|
18
|
+
5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Step 1 — Bounds (architect)
|
|
23
|
+
|
|
24
|
+
Invoke `architect`. Define what the spike may touch, time-box, and what must not leak into main. Do not treat this as a production Technical Plan.
|
|
25
|
+
|
|
26
|
+
**STOP here. Wait for approval of the spike bounds.**
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Step 2 — Spike (implementer)
|
|
31
|
+
|
|
32
|
+
Invoke `implementer` in a Git worktree that is not a merge candidate. Label the Implementation Summary as disposable. Do not open a PR against protected branches.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Completion
|
|
37
|
+
|
|
38
|
+
Report bounds, worktree path, and what was learned. Recommend `/cc:feature` or `/cc:fix` if the spike should become real work.
|
|
@@ -33,6 +33,18 @@ If coverage is insufficient:
|
|
|
33
33
|
|
|
34
34
|
---
|
|
35
35
|
|
|
36
|
+
## Step 0 — CCEP Bootstrap
|
|
37
|
+
|
|
38
|
+
Command: `refactor` (fixed for this workflow — do not infer from user text)
|
|
39
|
+
|
|
40
|
+
1. Run: `npx cc-codeconductor ccep parse --command refactor "$ARGUMENTS" --output json`
|
|
41
|
+
2. Run: `npx cc-codeconductor ccep resolve --command refactor "$ARGUMENTS" --output json`
|
|
42
|
+
3. Run: `npx cc-codeconductor ccep profile refactor --output json`
|
|
43
|
+
4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command refactor --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
|
|
44
|
+
5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
36
48
|
## Step 1 — Architectural justification (Architect role)
|
|
37
49
|
|
|
38
50
|
Adopt the **Architect** role as defined in `CLAUDE.md`. Always invoke this step
|
|
@@ -56,6 +68,141 @@ proceed without written approval of the plan.**
|
|
|
56
68
|
|
|
57
69
|
---
|
|
58
70
|
|
|
71
|
+
## Step 1.5 — Blast Radius Assessment (Orchestrator role)
|
|
72
|
+
|
|
73
|
+
After Architect approval, assess the scope of the refactor using impact analysis.
|
|
74
|
+
Large refactors require staged sequencing to keep the tree green between batches.
|
|
75
|
+
|
|
76
|
+
### When to apply Blast Radius Assessment
|
|
77
|
+
|
|
78
|
+
Always run this step. It determines the route for implementation:
|
|
79
|
+
|
|
80
|
+
- **Narrow refactor** (blast radius within limits) → proceed to Step 2 (normal routing by risk)
|
|
81
|
+
- **Wide refactor** (blast radius exceeds limits) → proceed to expand-migrate-contract sequence
|
|
82
|
+
|
|
83
|
+
### Measuring blast radius
|
|
84
|
+
|
|
85
|
+
Run impact analysis on the files listed in the approved Refactor Plan:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
cc impact --files <file1> <file2> ... <fileN>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The report returns three metrics:
|
|
92
|
+
|
|
93
|
+
1. **affectedComponents** (array of strings) — distinct components/modules that depend on the refactored files
|
|
94
|
+
2. **brokenContracts** (array of strings) — public interfaces or contracts that change
|
|
95
|
+
3. **affectedFlows** (array of strings) — end-to-end user flows or business processes impacted
|
|
96
|
+
|
|
97
|
+
### Threshold decision
|
|
98
|
+
|
|
99
|
+
**Hardcoded heuristic thresholds** (adjust manually for your codebase size):
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
Wide refactor triggered if ANY condition is true:
|
|
103
|
+
- affectedComponents.length >= 6
|
|
104
|
+
- brokenContracts.length >= 3
|
|
105
|
+
- affectedFlows.length >= 2
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
If blast radius exceeds these thresholds, the refactor is classified as **wide**
|
|
109
|
+
and requires staged batching. Otherwise, it is **narrow** and proceeds via
|
|
110
|
+
normal risk-based routing.
|
|
111
|
+
|
|
112
|
+
**Note:** These thresholds are heuristics meant for medium-sized codebases
|
|
113
|
+
(5–20K lines). Adjust based on your repository's complexity and component
|
|
114
|
+
density. A high-level import count alone does not guarantee impact.
|
|
115
|
+
|
|
116
|
+
### Route: Narrow refactor
|
|
117
|
+
|
|
118
|
+
If blast radius is within limits:
|
|
119
|
+
|
|
120
|
+
1. Show the impact report: affectedComponents count, brokenContracts, affectedFlows.
|
|
121
|
+
2. Proceed to Step 2 (Route by risk) using the risk level from the approved Refactor Plan.
|
|
122
|
+
|
|
123
|
+
### Route: Wide refactor — expand-migrate-contract sequence
|
|
124
|
+
|
|
125
|
+
If blast radius exceeds limits, the refactor must be delivered in sequenced
|
|
126
|
+
batches to maintain tree-green guarantees between phases.
|
|
127
|
+
|
|
128
|
+
**Process:**
|
|
129
|
+
|
|
130
|
+
1. **Expand phase** (batch 1): Introduce the new interface alongside the old one
|
|
131
|
+
without removing the old interface. This allows consumers to adopt
|
|
132
|
+
incrementally. Tests for both old and new paths must pass in this batch.
|
|
133
|
+
|
|
134
|
+
Example: If refactoring a component from function-based to class-based:
|
|
135
|
+
```typescript
|
|
136
|
+
// OLD: function-based API (keep during expand)
|
|
137
|
+
export function transformData(input: Data): Output {
|
|
138
|
+
return Transform.apply(input);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// NEW: class-based API (add during expand)
|
|
142
|
+
export class DataTransformer {
|
|
143
|
+
apply(input: Data): Output {
|
|
144
|
+
return Transform.apply(input);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Both exported; both tested; old not yet removed.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
2. **Migrate batches** (batches 2–N): Each batch moves a logical subset of
|
|
152
|
+
consumers from the old interface to the new one, running tests to confirm
|
|
153
|
+
no regressions. If tests fail in any migrate batch, that batch is BLOCKED
|
|
154
|
+
(via `Depends on` in BACKLOG.md) and subsequent batches do not start until
|
|
155
|
+
the regression is fixed.
|
|
156
|
+
|
|
157
|
+
Example: Migrate Service-A consumers in batch 2, Service-B consumers in
|
|
158
|
+
batch 3, etc. Each batch is a separate `BC-NNN` item in BACKLOG.md.
|
|
159
|
+
|
|
160
|
+
3. **Contract phase** (final batch): Remove the old interface entirely after all
|
|
161
|
+
consumers are migrated. This is the point where the contract actually changes.
|
|
162
|
+
|
|
163
|
+
**Sequencing batches via BACKLOG.md:**
|
|
164
|
+
|
|
165
|
+
Create multiple `BC-NNN` items, one per batch (expand, then one per migrate, then
|
|
166
|
+
contract). Use the `Depends on` field to enforce ordering:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
### BC-001 | Expand Phase
|
|
170
|
+
Status: READY
|
|
171
|
+
Depends on: (none)
|
|
172
|
+
Description: Introduce new interface alongside old...
|
|
173
|
+
|
|
174
|
+
### BC-002 | Migrate Batch 1 (Service-A consumers)
|
|
175
|
+
Status: READY (but not eligible until BC-001 done)
|
|
176
|
+
Depends on: BC-001
|
|
177
|
+
Description: Move Service-A from old to new interface...
|
|
178
|
+
|
|
179
|
+
### BC-003 | Migrate Batch 2 (Service-B consumers)
|
|
180
|
+
Status: READY (but not eligible until BC-002 done)
|
|
181
|
+
Depends on: BC-002
|
|
182
|
+
Description: Move Service-B from old to new interface...
|
|
183
|
+
|
|
184
|
+
### BC-004 | Contract Phase (Remove old interface)
|
|
185
|
+
Status: READY (but not eligible until BC-003 done)
|
|
186
|
+
Depends on: BC-003
|
|
187
|
+
Description: Delete old interface and consolidate tests...
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**BLOCKED policy on test failures:**
|
|
191
|
+
|
|
192
|
+
If any migrate batch's test suite fails after implementation, that batch item
|
|
193
|
+
is marked BLOCKED (and stays BLOCKED in BACKLOG.md until the regression is
|
|
194
|
+
fixed). Subsequent batches in the `Depends on` chain do not start — the
|
|
195
|
+
orchestrator skips them and reports the blocker to the user.
|
|
196
|
+
|
|
197
|
+
This ensures the tree remains green and no downstream consumer migration builds
|
|
198
|
+
on unstable code.
|
|
199
|
+
|
|
200
|
+
**STOP here. Show the Blast Radius Assessment report and the recommended route
|
|
201
|
+
(narrow or wide). If wide, show the proposed batch structure and wait for
|
|
202
|
+
user approval before proceeding.**
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
59
206
|
## Step 2 — Route by risk
|
|
60
207
|
|
|
61
208
|
Read the risk field from the Refactor Plan and follow the corresponding route.
|
|
@@ -140,9 +287,13 @@ findings block completion.
|
|
|
140
287
|
|
|
141
288
|
## Completion
|
|
142
289
|
|
|
143
|
-
Report: Refactor Plan (approved), Implementation Summary, test results before
|
|
290
|
+
Report: Refactor Plan (approved), Blast Radius Assessment (if applicable), Implementation Summary, test results before
|
|
144
291
|
and after, Review Report (if applicable).
|
|
145
292
|
|
|
146
293
|
The refactor is complete only when: all pre-existing tests still pass, the
|
|
147
294
|
implementation matches the approved plan exactly, and no CRITICAL review
|
|
148
295
|
findings remain.
|
|
296
|
+
|
|
297
|
+
If using expand-migrate-contract: completion occurs only after all batches
|
|
298
|
+
(expand, migrate, contract) are DONE and no BLOCKED items remain in the
|
|
299
|
+
sequencing chain.
|