claude-code-workflow 7.2.29 → 7.2.30
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/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json +2 -2
- package/.ccw/workflows/cli-templates/schemas/task-schema.json +14 -7
- package/.claude/agents/action-planning-agent.md +7 -4
- package/.claude/agents/cli-explore-agent.md +77 -63
- package/.claude/agents/cli-lite-planning-agent.md +11 -10
- package/.claude/agents/issue-plan-agent.md +421 -426
- package/.claude/commands/workflow/spec/setup.md +1 -1
- package/.claude/skills/ccw-chain/SKILL.md +119 -0
- package/.claude/skills/ccw-chain/chains/ccw-cycle.json +21 -0
- package/.claude/skills/ccw-chain/chains/ccw-exploration.json +47 -0
- package/.claude/skills/ccw-chain/chains/ccw-issue.json +33 -0
- package/.claude/skills/ccw-chain/chains/ccw-lightweight.json +57 -0
- package/.claude/skills/ccw-chain/chains/ccw-main.json +52 -0
- package/.claude/skills/ccw-chain/chains/ccw-standard.json +39 -0
- package/.claude/skills/ccw-chain/chains/ccw-team.json +10 -0
- package/.claude/skills/ccw-chain/chains/ccw-with-file.json +31 -0
- package/.claude/skills/ccw-chain/phases/analyze-with-file.md +788 -0
- package/.claude/skills/ccw-chain/phases/brainstorm/SKILL.md +408 -0
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/01-mode-routing.md +207 -0
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/02-artifacts.md +567 -0
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/03-role-analysis.md +748 -0
- package/.claude/skills/ccw-chain/phases/brainstorm/phases/04-synthesis.md +827 -0
- package/.claude/skills/ccw-chain/phases/brainstorm-with-file.md +482 -0
- package/.claude/skills/ccw-chain/phases/collaborative-plan-with-file.md +639 -0
- package/.claude/skills/ccw-chain/phases/debug-with-file.md +656 -0
- package/.claude/skills/ccw-chain/phases/integration-test-cycle.md +936 -0
- package/.claude/skills/ccw-chain/phases/issue-convert-to-plan.md +720 -0
- package/.claude/skills/ccw-chain/phases/issue-discover.md +483 -0
- package/.claude/skills/ccw-chain/phases/issue-execute.md +629 -0
- package/.claude/skills/ccw-chain/phases/issue-from-brainstorm.md +382 -0
- package/.claude/skills/ccw-chain/phases/issue-plan.md +343 -0
- package/.claude/skills/ccw-chain/phases/issue-queue.md +464 -0
- package/.claude/skills/ccw-chain/phases/refactor-cycle.md +852 -0
- package/.claude/skills/ccw-chain/phases/review-cycle/SKILL.md +132 -0
- package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-fix.md +760 -0
- package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-module.md +764 -0
- package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-session.md +775 -0
- package/.claude/skills/ccw-chain/phases/roadmap-with-file.md +544 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/SKILL.md +338 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-5-requirement-clarification.md +404 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-discovery.md +257 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/02-product-brief.md +274 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/03-requirements.md +184 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/04-architecture.md +248 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/05-epics-stories.md +178 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-5-auto-fix.md +144 -0
- package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-readiness-check.md +480 -0
- package/.claude/skills/ccw-chain/phases/team-planex.md +123 -0
- package/.claude/skills/ccw-chain/phases/ui-design-explore-auto.md +678 -0
- package/.claude/skills/ccw-chain/phases/unified-execute-with-file.md +870 -0
- package/.claude/skills/ccw-chain/phases/workflow-execute/SKILL.md +625 -0
- package/.claude/skills/ccw-chain/phases/workflow-execute/phases/06-review.md +215 -0
- package/.claude/skills/ccw-chain/phases/workflow-lite-plan.md +616 -0
- package/.claude/skills/ccw-chain/phases/workflow-multi-cli-plan.md +424 -0
- package/.claude/skills/ccw-chain/phases/workflow-plan/SKILL.md +466 -0
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/01-session-discovery.md +99 -0
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/02-context-gathering.md +338 -0
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/03-conflict-resolution.md +422 -0
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/04-task-generation.md +440 -0
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/05-plan-verify.md +395 -0
- package/.claude/skills/ccw-chain/phases/workflow-plan/phases/06-replan.md +594 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/SKILL.md +527 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/01-session-discovery.md +57 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/02-context-gathering.md +407 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/03-test-coverage-analysis.md +172 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/05-tdd-task-generation.md +473 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/06-tdd-structure-validation.md +189 -0
- package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/07-tdd-verify.md +635 -0
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/SKILL.md +482 -0
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/01-session-start.md +60 -0
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/02-test-context-gather.md +493 -0
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/03-test-concept-enhanced.md +150 -0
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/04-test-task-generate.md +346 -0
- package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/05-test-cycle-execute.md +538 -0
- package/.claude/skills/ccw-chain/specs/auto-mode.md +47 -0
- package/.claude/skills/ccw-chain/specs/intent-patterns.md +60 -0
- package/.claude/skills/chain-loader/SKILL.md +78 -0
- package/.claude/skills/chain-loader/phases/01-analyze-skill.md +53 -0
- package/.claude/skills/chain-loader/phases/02-design-graph.md +73 -0
- package/.claude/skills/chain-loader/phases/03-generate-validate.md +75 -0
- package/.claude/skills/chain-loader/specs/chain-schema.md +99 -0
- package/.claude/skills/chain-loader/specs/design-patterns.md +99 -0
- package/.claude/skills/chain-loader/templates/chain-json.md +63 -0
- package/.claude/skills/review-cycle/phases/review-module.md +764 -764
- package/.claude/skills/review-cycle/phases/review-session.md +775 -775
- package/.claude/skills/workflow-multi-cli-plan/SKILL.md +2 -2
- package/.claude/skills/workflow-plan/phases/03-conflict-resolution.md +422 -422
- package/.claude/skills/workflow-plan/phases/05-plan-verify.md +395 -395
- package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +407 -407
- package/.claude/skills/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -426
- package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +493 -493
- package/README.md +14 -0
- package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/litellm-api-routes.js +0 -23
- package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -1
- package/ccw/dist/tools/chain-loader.d.ts +10 -0
- package/ccw/dist/tools/chain-loader.d.ts.map +1 -0
- package/ccw/dist/tools/chain-loader.js +642 -0
- package/ccw/dist/tools/chain-loader.js.map +1 -0
- package/ccw/dist/tools/index.d.ts.map +1 -1
- package/ccw/dist/tools/index.js +2 -0
- package/ccw/dist/tools/index.js.map +1 -1
- package/ccw/dist/tools/json-builder.js +20 -0
- package/ccw/dist/tools/json-builder.js.map +1 -1
- package/ccw/dist/types/chain-types.d.ts +72 -0
- package/ccw/dist/types/chain-types.d.ts.map +1 -0
- package/ccw/dist/types/chain-types.js +5 -0
- package/ccw/dist/types/chain-types.js.map +1 -0
- package/ccw/scripts/prepublish-clean.mjs +0 -1
- package/package.json +1 -3
- package/ccw-litellm/README.md +0 -180
- package/ccw-litellm/pyproject.toml +0 -35
- package/ccw-litellm/src/ccw_litellm/__init__.py +0 -47
- package/ccw-litellm/src/ccw_litellm/cli.py +0 -108
- package/ccw-litellm/src/ccw_litellm/clients/__init__.py +0 -12
- package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +0 -270
- package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +0 -198
- package/ccw-litellm/src/ccw_litellm/config/__init__.py +0 -22
- package/ccw-litellm/src/ccw_litellm/config/loader.py +0 -343
- package/ccw-litellm/src/ccw_litellm/config/models.py +0 -162
- package/ccw-litellm/src/ccw_litellm/interfaces/__init__.py +0 -14
- package/ccw-litellm/src/ccw_litellm/interfaces/embedder.py +0 -52
- package/ccw-litellm/src/ccw_litellm/interfaces/llm.py +0 -45
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Phase 5: Epics & Stories
|
|
2
|
+
|
|
3
|
+
Decompose the specification into executable Epics and Stories with dependency mapping.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
- Group requirements into 3-7 logical Epics
|
|
8
|
+
- Tag MVP subset of Epics
|
|
9
|
+
- Generate 2-5 Stories per Epic in standard user story format
|
|
10
|
+
- Map cross-Epic dependencies (Mermaid diagram)
|
|
11
|
+
- Generate epics.md using template
|
|
12
|
+
|
|
13
|
+
## Input
|
|
14
|
+
|
|
15
|
+
- Dependency: `{workDir}/requirements/_index.md`, `{workDir}/architecture/_index.md` (and individual files)
|
|
16
|
+
- Reference: `{workDir}/product-brief.md`
|
|
17
|
+
- Config: `{workDir}/spec-config.json`
|
|
18
|
+
- Template: `templates/epics-template.md` (directory structure: `_index.md` + `EPIC-*.md`)
|
|
19
|
+
|
|
20
|
+
## Execution Steps
|
|
21
|
+
|
|
22
|
+
### Step 0: Load Validation Context
|
|
23
|
+
|
|
24
|
+
Run `ccw spec load --category validation` for verification rules and acceptance criteria to validate epic decomposition.
|
|
25
|
+
|
|
26
|
+
### Step 1: Load Phase 2-4 Context
|
|
27
|
+
|
|
28
|
+
```javascript
|
|
29
|
+
const specConfig = JSON.parse(Read(`${workDir}/spec-config.json`));
|
|
30
|
+
const productBrief = Read(`${workDir}/product-brief.md`);
|
|
31
|
+
const requirements = Read(`${workDir}/requirements.md`);
|
|
32
|
+
const architecture = Read(`${workDir}/architecture.md`);
|
|
33
|
+
|
|
34
|
+
let glossary = null;
|
|
35
|
+
try {
|
|
36
|
+
glossary = JSON.parse(Read(`${workDir}/glossary.json`));
|
|
37
|
+
} catch (e) { /* proceed without */ }
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Step 2: Epic Decomposition via Gemini CLI
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
Bash({
|
|
44
|
+
command: `ccw cli -p "PURPOSE: Decompose requirements into executable Epics and Stories for implementation planning.
|
|
45
|
+
Success: 3-7 Epics with prioritized Stories, dependency map, and MVP subset clearly defined.
|
|
46
|
+
|
|
47
|
+
PRODUCT BRIEF (summary):
|
|
48
|
+
${productBrief.slice(0, 2000)}
|
|
49
|
+
|
|
50
|
+
REQUIREMENTS:
|
|
51
|
+
${requirements.slice(0, 5000)}
|
|
52
|
+
|
|
53
|
+
ARCHITECTURE (summary):
|
|
54
|
+
${architecture.slice(0, 3000)}
|
|
55
|
+
|
|
56
|
+
TASK:
|
|
57
|
+
- Group requirements into 3-7 logical Epics:
|
|
58
|
+
- Each Epic: EPIC-NNN ID, title, description, priority (Must/Should/Could)
|
|
59
|
+
- Group by functional domain or user journey stage
|
|
60
|
+
- Tag MVP Epics (minimum set for initial release)
|
|
61
|
+
|
|
62
|
+
- For each Epic, generate 2-5 Stories:
|
|
63
|
+
- Each Story: STORY-{EPIC}-NNN ID, title
|
|
64
|
+
- User story format: As a [persona], I want [action] so that [benefit]
|
|
65
|
+
- 2-4 acceptance criteria per story (testable)
|
|
66
|
+
- Relative size estimate: S/M/L/XL
|
|
67
|
+
- Trace to source requirement(s): REQ-NNN
|
|
68
|
+
|
|
69
|
+
- Create dependency map:
|
|
70
|
+
- Cross-Epic dependencies (which Epics block others)
|
|
71
|
+
- Mermaid graph LR format
|
|
72
|
+
- Recommended execution order with rationale
|
|
73
|
+
|
|
74
|
+
- Define MVP:
|
|
75
|
+
- Which Epics are in MVP
|
|
76
|
+
- MVP definition of done (3-5 criteria)
|
|
77
|
+
- What is explicitly deferred post-MVP
|
|
78
|
+
|
|
79
|
+
MODE: analysis
|
|
80
|
+
EXPECTED: Structured output with: Epic list (ID, title, priority, MVP flag), Stories per Epic (ID, user story, AC, size, trace), dependency Mermaid diagram, execution order, MVP definition
|
|
81
|
+
CONSTRAINTS:
|
|
82
|
+
- Every Must-have requirement must appear in at least one Story
|
|
83
|
+
- Stories must be small enough to implement independently (no XL stories in MVP)
|
|
84
|
+
- Dependencies should be minimized across Epics
|
|
85
|
+
\${glossary ? \`- Maintain terminology consistency with glossary: \${glossary.terms.map(t => t.term).join(', ')}\` : ''}
|
|
86
|
+
" --tool gemini --mode analysis`,
|
|
87
|
+
run_in_background: true
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
// Wait for CLI result
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Step 3: Interactive Validation (Optional)
|
|
94
|
+
|
|
95
|
+
```javascript
|
|
96
|
+
if (!autoMode) {
|
|
97
|
+
// Present Epic overview table and dependency diagram
|
|
98
|
+
AskUserQuestion({
|
|
99
|
+
questions: [
|
|
100
|
+
{
|
|
101
|
+
question: "Review the Epic breakdown. Any adjustments needed?",
|
|
102
|
+
header: "Epics",
|
|
103
|
+
multiSelect: false,
|
|
104
|
+
options: [
|
|
105
|
+
{ label: "Looks good", description: "Epic structure is appropriate" },
|
|
106
|
+
{ label: "Merge epics", description: "Some epics should be combined" },
|
|
107
|
+
{ label: "Split epic", description: "An epic is too large, needs splitting" },
|
|
108
|
+
{ label: "Adjust MVP", description: "Change which epics are in MVP" }
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
});
|
|
113
|
+
// Apply user adjustments
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Step 4: Generate epics/ directory
|
|
118
|
+
|
|
119
|
+
```javascript
|
|
120
|
+
const template = Read('templates/epics-template.md');
|
|
121
|
+
|
|
122
|
+
// Create epics directory
|
|
123
|
+
Bash(`mkdir -p "${workDir}/epics"`);
|
|
124
|
+
|
|
125
|
+
const status = autoMode ? 'complete' : 'draft';
|
|
126
|
+
const timestamp = new Date().toISOString();
|
|
127
|
+
|
|
128
|
+
// Parse CLI output into structured Epics
|
|
129
|
+
const epicsList = parseEpics(cliOutput); // [{id, slug, title, priority, mvp, size, stories[], reqs[], adrs[], deps[]}]
|
|
130
|
+
|
|
131
|
+
// Step 4a: Write individual EPIC-*.md files (one per Epic, stories included)
|
|
132
|
+
epicsList.forEach(epic => {
|
|
133
|
+
// Use EPIC-NNN-{slug}.md template from templates/epics-template.md
|
|
134
|
+
// Fill: id, title, priority, mvp, size, description, requirements links,
|
|
135
|
+
// architecture links, dependency links, stories with user stories + AC
|
|
136
|
+
Write(`${workDir}/epics/EPIC-${epic.id}-${epic.slug}.md`, epicContent);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
// Step 4b: Write _index.md (overview + dependency map + MVP scope + traceability)
|
|
140
|
+
// Use _index.md template from templates/epics-template.md
|
|
141
|
+
// Fill: epic overview table (with links), dependency Mermaid diagram,
|
|
142
|
+
// execution order, MVP scope, traceability matrix, estimation summary
|
|
143
|
+
Write(`${workDir}/epics/_index.md`, indexContent);
|
|
144
|
+
|
|
145
|
+
// Update spec-config.json
|
|
146
|
+
specConfig.phasesCompleted.push({
|
|
147
|
+
phase: 5,
|
|
148
|
+
name: "epics-stories",
|
|
149
|
+
output_dir: "epics/",
|
|
150
|
+
output_index: "epics/_index.md",
|
|
151
|
+
file_count: epicsList.length + 1,
|
|
152
|
+
completed_at: timestamp
|
|
153
|
+
});
|
|
154
|
+
Write(`${workDir}/spec-config.json`, JSON.stringify(specConfig, null, 2));
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Output
|
|
158
|
+
|
|
159
|
+
- **Directory**: `epics/`
|
|
160
|
+
- `_index.md` — Overview table, dependency map, MVP scope, traceability matrix, links
|
|
161
|
+
- `EPIC-NNN-{slug}.md` — Individual Epic with Stories (per Epic)
|
|
162
|
+
- **Format**: Markdown with YAML frontmatter, cross-linked to requirements and architecture via relative paths
|
|
163
|
+
|
|
164
|
+
## Quality Checklist
|
|
165
|
+
|
|
166
|
+
- [ ] 3-7 Epic files with EPIC-NNN IDs
|
|
167
|
+
- [ ] >= 1 Epic tagged as MVP in frontmatter
|
|
168
|
+
- [ ] 2-5 Stories per Epic file
|
|
169
|
+
- [ ] Stories use "As a...I want...So that..." format
|
|
170
|
+
- [ ] `_index.md` has cross-Epic dependency map (Mermaid)
|
|
171
|
+
- [ ] `_index.md` links to all individual Epic files
|
|
172
|
+
- [ ] Relative sizing (S/M/L/XL) per Story
|
|
173
|
+
- [ ] Epic files link to requirement files and ADR files
|
|
174
|
+
- [ ] All files have valid YAML frontmatter
|
|
175
|
+
|
|
176
|
+
## Next Phase
|
|
177
|
+
|
|
178
|
+
Proceed to [Phase 6: Readiness Check](06-readiness-check.md) to validate the complete specification package.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Phase 6.5: Auto-Fix
|
|
2
|
+
|
|
3
|
+
Automatically repair specification issues identified in Phase 6 Readiness Check.
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
- Parse readiness-report.md to extract Error and Warning items
|
|
8
|
+
- Group issues by originating Phase (2-5)
|
|
9
|
+
- Re-generate affected sections with error context injected into CLI prompts
|
|
10
|
+
- Re-run Phase 6 validation after fixes
|
|
11
|
+
|
|
12
|
+
## Input
|
|
13
|
+
|
|
14
|
+
- Dependency: `{workDir}/readiness-report.md` (Phase 6 output)
|
|
15
|
+
- Config: `{workDir}/spec-config.json` (with iteration_count)
|
|
16
|
+
- All Phase 2-5 outputs
|
|
17
|
+
|
|
18
|
+
## Execution Steps
|
|
19
|
+
|
|
20
|
+
### Step 1: Parse Readiness Report
|
|
21
|
+
|
|
22
|
+
```javascript
|
|
23
|
+
const readinessReport = Read(`${workDir}/readiness-report.md`);
|
|
24
|
+
const specConfig = JSON.parse(Read(`${workDir}/spec-config.json`));
|
|
25
|
+
|
|
26
|
+
// Load glossary for terminology consistency during fixes
|
|
27
|
+
let glossary = null;
|
|
28
|
+
try {
|
|
29
|
+
glossary = JSON.parse(Read(`${workDir}/glossary.json`));
|
|
30
|
+
} catch (e) { /* proceed without */ }
|
|
31
|
+
|
|
32
|
+
// Extract issues from readiness report
|
|
33
|
+
// Parse Error and Warning severity items
|
|
34
|
+
// Group by originating phase:
|
|
35
|
+
// Phase 2 issues: vision, problem statement, scope, personas
|
|
36
|
+
// Phase 3 issues: requirements, acceptance criteria, priority, traceability
|
|
37
|
+
// Phase 4 issues: architecture, ADRs, tech stack, data model, state machine
|
|
38
|
+
// Phase 5 issues: epics, stories, dependencies, MVP scope
|
|
39
|
+
|
|
40
|
+
const issuesByPhase = {
|
|
41
|
+
2: [], // product brief issues
|
|
42
|
+
3: [], // requirements issues
|
|
43
|
+
4: [], // architecture issues
|
|
44
|
+
5: [] // epics issues
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Parse structured issues from report
|
|
48
|
+
// Each issue: { severity: "Error"|"Warning", description: "...", location: "file:section" }
|
|
49
|
+
|
|
50
|
+
// Map phase numbers to output files
|
|
51
|
+
const phaseOutputFile = {
|
|
52
|
+
2: 'product-brief.md',
|
|
53
|
+
3: 'requirements/_index.md',
|
|
54
|
+
4: 'architecture/_index.md',
|
|
55
|
+
5: 'epics/_index.md'
|
|
56
|
+
};
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Step 2: Fix Affected Phases (Sequential)
|
|
60
|
+
|
|
61
|
+
For each phase with issues (in order 2 -> 3 -> 4 -> 5):
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
for (const [phase, issues] of Object.entries(issuesByPhase)) {
|
|
65
|
+
if (issues.length === 0) continue;
|
|
66
|
+
|
|
67
|
+
const errorContext = issues.map(i => `[${i.severity}] ${i.description} (at ${i.location})`).join('\n');
|
|
68
|
+
|
|
69
|
+
// Read current phase output
|
|
70
|
+
const currentOutput = Read(`${workDir}/${phaseOutputFile[phase]}`);
|
|
71
|
+
|
|
72
|
+
Bash({
|
|
73
|
+
command: `ccw cli -p "PURPOSE: Fix specification issues identified in readiness check for Phase ${phase}.
|
|
74
|
+
Success: All listed issues resolved while maintaining consistency with other documents.
|
|
75
|
+
|
|
76
|
+
CURRENT DOCUMENT:
|
|
77
|
+
${currentOutput.slice(0, 5000)}
|
|
78
|
+
|
|
79
|
+
ISSUES TO FIX:
|
|
80
|
+
${errorContext}
|
|
81
|
+
|
|
82
|
+
${glossary ? `GLOSSARY (maintain consistency):
|
|
83
|
+
${JSON.stringify(glossary.terms, null, 2)}` : ''}
|
|
84
|
+
|
|
85
|
+
TASK:
|
|
86
|
+
- Address each listed issue specifically
|
|
87
|
+
- Maintain all existing content that is not flagged
|
|
88
|
+
- Ensure terminology consistency with glossary
|
|
89
|
+
- Preserve YAML frontmatter and cross-references
|
|
90
|
+
- Use RFC 2119 keywords for behavioral requirements
|
|
91
|
+
- Increment document version number
|
|
92
|
+
|
|
93
|
+
MODE: analysis
|
|
94
|
+
EXPECTED: Corrected document content addressing all listed issues
|
|
95
|
+
CONSTRAINTS: Minimal changes - only fix flagged issues, do not restructure unflagged sections
|
|
96
|
+
" --tool gemini --mode analysis`,
|
|
97
|
+
run_in_background: true
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Wait for result, apply fixes to document
|
|
101
|
+
// Update document version in frontmatter
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Step 3: Update State
|
|
106
|
+
|
|
107
|
+
```javascript
|
|
108
|
+
specConfig.phasesCompleted.push({
|
|
109
|
+
phase: 6.5,
|
|
110
|
+
name: "auto-fix",
|
|
111
|
+
iteration: specConfig.iteration_count,
|
|
112
|
+
phases_fixed: Object.keys(issuesByPhase).filter(p => issuesByPhase[p].length > 0),
|
|
113
|
+
completed_at: new Date().toISOString()
|
|
114
|
+
});
|
|
115
|
+
Write(`${workDir}/spec-config.json`, JSON.stringify(specConfig, null, 2));
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Step 4: Re-run Phase 6 Validation
|
|
119
|
+
|
|
120
|
+
```javascript
|
|
121
|
+
// Re-execute Phase 6: Readiness Check
|
|
122
|
+
// This creates a new readiness-report.md
|
|
123
|
+
// If still Fail and iteration_count < 2: loop back to Step 1
|
|
124
|
+
// If Pass or iteration_count >= 2: proceed to handoff
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Output
|
|
128
|
+
|
|
129
|
+
- **Updated**: Phase 2-5 documents (only affected ones)
|
|
130
|
+
- **Updated**: `spec-config.json` (iteration tracking)
|
|
131
|
+
- **Triggers**: Phase 6 re-validation
|
|
132
|
+
|
|
133
|
+
## Quality Checklist
|
|
134
|
+
|
|
135
|
+
- [ ] All Error-severity issues addressed
|
|
136
|
+
- [ ] Warning-severity issues attempted (best effort)
|
|
137
|
+
- [ ] Document versions incremented for modified files
|
|
138
|
+
- [ ] Terminology consistency maintained
|
|
139
|
+
- [ ] Cross-references still valid after fixes
|
|
140
|
+
- [ ] Iteration count not exceeded (max 2)
|
|
141
|
+
|
|
142
|
+
## Next Phase
|
|
143
|
+
|
|
144
|
+
Re-run [Phase 6: Readiness Check](06-readiness-check.md) to validate fixes.
|