owflow 0.1.0 → 0.1.2
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 +8 -1
- package/dist/agents/bottleneck-analyzer.md +329 -0
- package/dist/agents/code-quality-pragmatist.md +354 -0
- package/dist/agents/code-reviewer.md +239 -0
- package/dist/agents/codebase-analysis-reporter.md +246 -0
- package/dist/agents/docs-operator.md +23 -0
- package/dist/agents/e2e-test-verifier.md +448 -0
- package/dist/agents/gap-analyzer.md +502 -0
- package/dist/agents/implementation-completeness-checker.md +220 -0
- package/dist/agents/implementation-planner.md +309 -0
- package/dist/agents/information-gatherer.md +691 -0
- package/dist/agents/production-readiness-checker.md +279 -0
- package/dist/agents/project-analyzer.md +404 -0
- package/dist/agents/reality-assessor.md +366 -0
- package/dist/agents/research-planner.md +447 -0
- package/dist/agents/research-synthesizer.md +401 -0
- package/dist/agents/solution-brainstormer.md +257 -0
- package/dist/agents/solution-designer.md +372 -0
- package/dist/agents/spec-auditor.md +298 -0
- package/dist/agents/specification-creator.md +334 -0
- package/dist/agents/task-classifier.md +462 -0
- package/dist/agents/task-group-implementer.md +284 -0
- package/dist/agents/test-suite-runner.md +195 -0
- package/dist/agents/ui-mockup-generator.md +369 -0
- package/dist/agents/user-docs-generator.md +509 -0
- package/dist/commands/development.md +37 -0
- package/dist/commands/flow-init.md +37 -0
- package/dist/commands/migration.md +37 -0
- package/dist/commands/performance.md +37 -0
- package/dist/commands/product-design.md +37 -0
- package/dist/commands/quick-bugfix.md +37 -0
- package/dist/commands/quick-dev.md +140 -0
- package/dist/commands/quick-plan.md +132 -0
- package/dist/commands/research.md +37 -0
- package/dist/commands/reviews-code.md +90 -0
- package/dist/commands/reviews-pragmatic.md +99 -0
- package/dist/commands/reviews-production-readiness.md +113 -0
- package/dist/commands/reviews-reality-check.md +110 -0
- package/dist/commands/reviews-spec-audit.md +114 -0
- package/dist/commands/standards-discover.md +37 -0
- package/dist/commands/standards-update.md +37 -0
- package/dist/commands/work.md +284 -0
- package/dist/skills/codebase-analyzer/SKILL.md +162 -0
- package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -0
- package/dist/skills/codebase-analyzer/references/combined.md +31 -0
- package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -0
- package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -0
- package/dist/skills/codebase-analyzer/references/migration-target.md +23 -0
- package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -0
- package/dist/skills/development/SKILL.md +669 -0
- package/dist/skills/docs-manager/SKILL.md +379 -0
- package/dist/skills/docs-manager/docs/INDEX.md +199 -0
- package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -0
- package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -0
- package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -0
- package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -0
- package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -0
- package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -0
- package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -0
- package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -0
- package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -0
- package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -0
- package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -0
- package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -0
- package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -0
- package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -0
- package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -0
- package/dist/skills/docs-manager/references/claude-md-template.md +29 -0
- package/dist/skills/docs-manager/references/index-md-template.md +73 -0
- package/dist/skills/flow-init/SKILL.md +198 -0
- package/dist/skills/flow-init/references/architecture-template.md +45 -0
- package/dist/skills/flow-init/references/roadmap-templates.md +93 -0
- package/dist/skills/flow-init/references/tech-stack-template.md +70 -0
- package/dist/skills/flow-init/references/vision-templates.md +75 -0
- package/dist/skills/implementation-plan-executor/SKILL.md +378 -0
- package/dist/skills/implementation-verifier/SKILL.md +307 -0
- package/dist/skills/migration/SKILL.md +380 -0
- package/dist/skills/migration/references/migration-strategies.md +397 -0
- package/dist/skills/migration/references/migration-types.md +437 -0
- package/dist/skills/orchestrator-framework/SKILL.md +65 -0
- package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +47 -0
- package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +329 -0
- package/dist/skills/performance/SKILL.md +418 -0
- package/dist/skills/performance/references/performance-optimization-guide.md +365 -0
- package/dist/skills/product-design/SKILL.md +843 -0
- package/dist/skills/product-design/references/characteristic-detection.md +92 -0
- package/dist/skills/product-design/references/interaction-patterns.md +206 -0
- package/dist/skills/product-design/references/visual-companion.md +190 -0
- package/dist/skills/product-design/server/index.ts +359 -0
- package/dist/skills/product-design/server/template.html +256 -0
- package/dist/skills/quick-bugfix/SKILL.md +241 -0
- package/dist/skills/research/SKILL.md +493 -0
- package/dist/skills/research/references/brainstorming-techniques.md +84 -0
- package/dist/skills/research/references/design-techniques.md +40 -0
- package/dist/skills/research/references/research-methodologies.md +710 -0
- package/dist/skills/standards-discover/SKILL.md +236 -0
- package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -0
- package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -0
- package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -0
- package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -0
- package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -0
- package/dist/skills/standards-update/SKILL.md +159 -0
- package/package.json +14 -6
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# Orchestrator Patterns
|
|
2
|
+
|
|
3
|
+
Shared execution rules, schemas, and patterns for all workflow orchestrators.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Delegation Rules
|
|
8
|
+
|
|
9
|
+
**Always use Skill/Task tools to delegate. Never execute delegated work inline.**
|
|
10
|
+
|
|
11
|
+
When a phase requires delegation:
|
|
12
|
+
|
|
13
|
+
1. Use the **Skill tool** for **skills** — loads SKILL.md instructions into the main agent's context; the main agent executes the skill's instructions and continues with the orchestrator workflow afterward
|
|
14
|
+
2. Use the **Task tool** for **subagents/agents** — spawns an isolated subprocess that returns results when complete
|
|
15
|
+
3. Wait for completion before continuing
|
|
16
|
+
|
|
17
|
+
**Skills and agents are NOT interchangeable.** Skills always use Skill tool; agents always use Task tool. Never invoke a skill via Task tool (`subagent_type`) — it will fail with "Agent type not found."
|
|
18
|
+
|
|
19
|
+
**Why skills MUST use Skill tool**: Skills like `codebase-analyzer`, `implementation-plan-executor`, and `implementation-verifier` spawn their own subagents (Explore agents, reporters, planners). Subagents cannot spawn other subagents — so these skills must run in the main agent context via Skill tool.
|
|
20
|
+
|
|
21
|
+
**Companion agent pattern** (e.g., `docs-operator`): Only works for skills that do NOT spawn subagents (like `docs-manager` which only does file operations). A companion agent preloads the skill via the `skills` frontmatter field and is invoked via Task tool. This pattern fails for any skill that needs to spawn subagents.
|
|
22
|
+
|
|
23
|
+
### Anti-Patterns
|
|
24
|
+
|
|
25
|
+
| Anti-Pattern | Why It's Wrong | Correct Approach |
|
|
26
|
+
| --------------------------------------- | ------------------------------------------- | ----------------------------------------------------- |
|
|
27
|
+
| "I'll analyze the codebase..." | Bypasses codebase-analyzer skill | Use `Skill` tool with `codebase-analyzer` |
|
|
28
|
+
| "Let me create the specification..." | Bypasses specification-creator | Use `Task` tool with `specification-creator` subagent |
|
|
29
|
+
| "Looking at the gaps between..." | Bypasses gap-analyzer subagent | Use `Task` tool with `gap-analyzer` |
|
|
30
|
+
| "I'll implement this by..." | Bypasses implementation-plan-executor skill | Use `Skill` tool with `implementation-plan-executor` |
|
|
31
|
+
| Reading a SKILL.md then doing the work | Skill files are instructions FOR skills | Use Skill tool to invoke |
|
|
32
|
+
| Spawning Explore agents in orchestrator | Codebase-analyzer manages its own agents | Invoke skill, let IT spawn agents |
|
|
33
|
+
|
|
34
|
+
### When Inline Execution is Acceptable
|
|
35
|
+
|
|
36
|
+
These do NOT require delegation:
|
|
37
|
+
|
|
38
|
+
1. **Clarifying questions phases** — question is direct
|
|
39
|
+
2. **State updates** — Reading/writing orchestrator-state.yml
|
|
40
|
+
3. **Phase announcements** — Outputting status messages
|
|
41
|
+
4. **Simple decisions** — Enabling/disabling optional phases
|
|
42
|
+
5. **Finalization** — Creating summary, updating metadata
|
|
43
|
+
|
|
44
|
+
For all analysis, planning, implementation, and verification phases: **ALWAYS DELEGATE**.
|
|
45
|
+
|
|
46
|
+
**Never acceptable inline** (regardless of perceived task simplicity):
|
|
47
|
+
|
|
48
|
+
- Specification creation → always delegate to `specification-creator` subagent
|
|
49
|
+
- Implementation planning → always delegate to `implementation-planner` subagent
|
|
50
|
+
- Gap analysis → always delegate to `gap-analyzer` subagent
|
|
51
|
+
- Codebase analysis → always delegate to `codebase-analyzer` skill
|
|
52
|
+
- Code review → always delegate to `code-reviewer` subagent
|
|
53
|
+
- Test execution → always delegate to `test-suite-runner` subagent
|
|
54
|
+
- Implementation completeness → always delegate to `implementation-completeness-checker` subagent
|
|
55
|
+
|
|
56
|
+
"The task is simple" is NOT a valid reason to skip delegation.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 2. Phase Gate Behavior
|
|
61
|
+
|
|
62
|
+
**`→ Pause` means STOP and USE question.** This is NOT optional. You MUST invoke the `question` tool and WAIT for user response. Proceeding without it is a protocol violation.
|
|
63
|
+
|
|
64
|
+
All orchestrators pause at `→ Pause` transitions for user review and prompt for optional phases.
|
|
65
|
+
|
|
66
|
+
**State ordering rule**: Phase state MUST NOT be updated to 'completed' (via orchestrator-state.yml or TaskUpdate) until AFTER the user responds to the exit gate. Correct sequence: finish phase work → call question → receive user response → update state to completed.
|
|
67
|
+
|
|
68
|
+
### Phase Entry Checks
|
|
69
|
+
|
|
70
|
+
Every phase that follows a `→ Pause` gate includes an entry check at its TOP:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
> **Phase gate**: Confirm Phase N completion before executing.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
This catches missed gates: if the previous phase's `→ Pause` was skipped (e.g., the model output a summary and moved on), the entry check forces the gate to fire before the next phase executes. If the gate already fired, continue normally.
|
|
77
|
+
|
|
78
|
+
### AUTO-CONTINUE Rules
|
|
79
|
+
|
|
80
|
+
When a phase ends with `→ **AUTO-CONTINUE**`:
|
|
81
|
+
|
|
82
|
+
- You MAY output a brief phase summary (1-2 lines)
|
|
83
|
+
- Do NOT end your turn
|
|
84
|
+
- Do NOT use question
|
|
85
|
+
- Do NOT wait for user input
|
|
86
|
+
- After any summary, proceed immediately to the next phase
|
|
87
|
+
|
|
88
|
+
**Common mistake**: Outputting a summary and then stopping/ending the turn. The summary is fine — stopping is not.
|
|
89
|
+
|
|
90
|
+
### Anti-Patterns
|
|
91
|
+
|
|
92
|
+
| Anti-Pattern | Why It's Wrong |
|
|
93
|
+
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
94
|
+
| Proceeding without question at phase gates | User loses control, can't review or stop |
|
|
95
|
+
| Saying "I'll pause here" without tool call | Words are not pauses. Tool invocation required. |
|
|
96
|
+
| Auto-accepting subagent decisions without asking | User must consent to scope/approach decisions |
|
|
97
|
+
| Outputting a summary after phase work, then ending turn before reaching `→ Pause` | Gate is skipped; user loses control at the most critical review point. The gate must be the FIRST action after phase work completes — no summaries, no output before it. |
|
|
98
|
+
| Marking phase as completed (state/TaskUpdate) before the exit gate executes | State corruption — downstream phases see false "completed" status. Gate → user response → state update. Never reverse this order. |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 3. Context Passing & Decisions
|
|
103
|
+
|
|
104
|
+
### Context Passing
|
|
105
|
+
|
|
106
|
+
All subagent prompts must include context from prior phases:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
prompt: |
|
|
110
|
+
[Task instructions]
|
|
111
|
+
Task path: [path]
|
|
112
|
+
|
|
113
|
+
## CONTEXT FROM PRIOR PHASES
|
|
114
|
+
[Key state fields from orchestrator-state.yml]
|
|
115
|
+
[Summaries of completed phases from phase_summaries]
|
|
116
|
+
|
|
117
|
+
## RESEARCH CONTEXT (if research_reference exists)
|
|
118
|
+
Research question: [research_reference.research_question]
|
|
119
|
+
Summary: [phase_summaries.research.summary]
|
|
120
|
+
|
|
121
|
+
## ARTIFACTS TO READ
|
|
122
|
+
[List relevant files for full details]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Why**: Subagents run in isolated context. Without summaries, they must re-parse entire files and miss prior decisions.
|
|
126
|
+
|
|
127
|
+
### Context Extraction
|
|
128
|
+
|
|
129
|
+
After each phase, extract key findings into `[domain]_context.phase_summaries`:
|
|
130
|
+
|
|
131
|
+
1. Parse subagent output for key fields
|
|
132
|
+
2. Create 1-2 sentence summary
|
|
133
|
+
3. Update state: `[domain]_context.phase_summaries.[phase_name]`
|
|
134
|
+
|
|
135
|
+
This enables context passing to downstream phases and supports resume.
|
|
136
|
+
|
|
137
|
+
**Critical**: Some subagent outputs contain structured fields that control downstream phase logic (e.g., `task_characteristics` from gap-analyzer gates Phase 4 and Phase 10 defaults). These MUST be extracted and written to state immediately — not just summarized. Re-read state after writing to verify the values were stored correctly.
|
|
138
|
+
|
|
139
|
+
### Decision Enforcement
|
|
140
|
+
|
|
141
|
+
When a subagent returns `decisions_needed` items, the orchestrator MUST present them to the user via question. Decisions are never silently skipped.
|
|
142
|
+
|
|
143
|
+
**Anti-Patterns** (NEVER do this):
|
|
144
|
+
|
|
145
|
+
| Anti-Pattern | Why It's Wrong |
|
|
146
|
+
| ----------------------------------------------- | ---------------------------------------------------- |
|
|
147
|
+
| "I'll accept the recommended defaults" | User loses control over critical scope decisions |
|
|
148
|
+
| Logging decisions without asking | Documentation is not consent |
|
|
149
|
+
| "The recommendations are clear, no need to ask" | Clarity is not consent. User may disagree. |
|
|
150
|
+
| Skipping decisions because task seems simple | Simple tasks can have non-obvious scope implications |
|
|
151
|
+
|
|
152
|
+
**Decision Gate Pattern**:
|
|
153
|
+
|
|
154
|
+
1. **Parse**: Extract all critical and important decisions from subagent output
|
|
155
|
+
2. **Present**: Use `question` for each critical decision; batch important decisions into multi-select
|
|
156
|
+
3. **SELF-CHECK**: "Did I present ALL decisions from `decisions_needed`? If not, STOP."
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 4. State Schema
|
|
161
|
+
|
|
162
|
+
All orchestrators use `orchestrator-state.yml` at `.owflow/tasks/[type]/YYYY-MM-DD-task-name/orchestrator-state.yml`.
|
|
163
|
+
|
|
164
|
+
### Common Fields
|
|
165
|
+
|
|
166
|
+
```yaml
|
|
167
|
+
orchestrator:
|
|
168
|
+
# Phase tracking
|
|
169
|
+
started_phase: [phase-name]
|
|
170
|
+
completed_phases: []
|
|
171
|
+
failed_phases: []
|
|
172
|
+
|
|
173
|
+
# Auto-fix tracking (per phase)
|
|
174
|
+
auto_fix_attempts:
|
|
175
|
+
phase-1: 0
|
|
176
|
+
phase-2: 0
|
|
177
|
+
|
|
178
|
+
# Optional phase flags
|
|
179
|
+
options:
|
|
180
|
+
e2e_enabled: true | false | null
|
|
181
|
+
user_docs_enabled: true | false | null
|
|
182
|
+
code_review_enabled: true | false | null
|
|
183
|
+
|
|
184
|
+
# Timestamps
|
|
185
|
+
created: [ISO 8601 timestamp]
|
|
186
|
+
updated: [ISO 8601 timestamp]
|
|
187
|
+
task_path: .owflow/tasks/[type]/YYYY-MM-DD-task-name
|
|
188
|
+
|
|
189
|
+
# Task tracking IDs (maps phase names to TaskCreate IDs)
|
|
190
|
+
task_ids:
|
|
191
|
+
phase-1: null
|
|
192
|
+
phase-2: null
|
|
193
|
+
|
|
194
|
+
# Task metadata
|
|
195
|
+
task:
|
|
196
|
+
title: [human-readable task title]
|
|
197
|
+
description: [full task description]
|
|
198
|
+
status: pending | in_progress | completed | failed | blocked
|
|
199
|
+
tags: []
|
|
200
|
+
priority: null # high | medium | low
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Extension Pattern
|
|
204
|
+
|
|
205
|
+
Orchestrators add domain-specific fields using `[domain]_context`:
|
|
206
|
+
|
|
207
|
+
| Domain | Context Field | Example Fields |
|
|
208
|
+
| ----------- | --------------------- | -------------------------------------------------- |
|
|
209
|
+
| Development | `task_context` | risk_level, ui_heavy, architecture_decision |
|
|
210
|
+
| Performance | `performance_context` | baseline_p95, target_p95, optimizations_completed |
|
|
211
|
+
| Migration | `migration_context` | migration_type, steps_completed |
|
|
212
|
+
| Research | `research_context` | research_type, research_question, confidence_level |
|
|
213
|
+
|
|
214
|
+
See each orchestrator's SKILL.md "Domain Context" section for full schema.
|
|
215
|
+
|
|
216
|
+
### Shared: research_reference
|
|
217
|
+
|
|
218
|
+
When development starts from completed research (`--research` flag):
|
|
219
|
+
|
|
220
|
+
```yaml
|
|
221
|
+
task_context:
|
|
222
|
+
research_reference:
|
|
223
|
+
path: null
|
|
224
|
+
research_question: null
|
|
225
|
+
research_type: null # technical | requirements | literature | mixed
|
|
226
|
+
confidence_level: null # high | medium | low
|
|
227
|
+
|
|
228
|
+
phase_summaries:
|
|
229
|
+
research:
|
|
230
|
+
summary: null
|
|
231
|
+
key_findings: []
|
|
232
|
+
recommended_approach: null
|
|
233
|
+
decisions_made: []
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
Research context flows to ALL phases via context passing. Artifacts are also copied to `analysis/research-context/`.
|
|
237
|
+
|
|
238
|
+
### Shared: verification_context
|
|
239
|
+
|
|
240
|
+
All orchestrators with verification phases use:
|
|
241
|
+
|
|
242
|
+
```yaml
|
|
243
|
+
verification_context:
|
|
244
|
+
last_status: passed | passed_with_issues | failed | null
|
|
245
|
+
issues_found: []
|
|
246
|
+
fixes_applied: []
|
|
247
|
+
decisions_made: []
|
|
248
|
+
reverify_count: 0 # max 3
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 5. Initialization & Resume
|
|
254
|
+
|
|
255
|
+
### Initialization Steps
|
|
256
|
+
|
|
257
|
+
1. **Parse arguments**: Extract description, type, entry point (`--from`), optional flags
|
|
258
|
+
2. **Determine starting phase**: New task starts Phase 1; resume reads state for first incomplete phase
|
|
259
|
+
3. **Create task directory**: Standard structure with analysis/, implementation/, verification/, documentation/ _(skip on resume)_
|
|
260
|
+
4. **Create state file**: `orchestrator-state.yml` _(skip on resume)_
|
|
261
|
+
5. **Create task items**: `TaskCreate` for all phases, then `TaskUpdate addBlockedBy` for dependencies. On resume, also restore completed phase statuses.
|
|
262
|
+
6. **Output summary**: Show task info, phases, starting message
|
|
263
|
+
|
|
264
|
+
### Task Name Generation
|
|
265
|
+
|
|
266
|
+
1. Extract 3-5 key words from description
|
|
267
|
+
2. Convert to lowercase kebab-case
|
|
268
|
+
3. Prepend current date: `YYYY-MM-DD`
|
|
269
|
+
|
|
270
|
+
Examples: "Fix login timeout bug" → `2025-12-17-fix-login-timeout`
|
|
271
|
+
|
|
272
|
+
### Task Restoration on Resume
|
|
273
|
+
|
|
274
|
+
Task system IDs are ephemeral to a session. On resume:
|
|
275
|
+
|
|
276
|
+
1. Create all phase tasks (same `TaskCreate` loop, all start pending)
|
|
277
|
+
2. Set dependencies (same `TaskUpdate addBlockedBy`)
|
|
278
|
+
3. Mark completed phases (`TaskUpdate` to `completed` with `metadata: {restored: true}`)
|
|
279
|
+
4. Update state with new task IDs
|
|
280
|
+
|
|
281
|
+
### Resume Logic
|
|
282
|
+
|
|
283
|
+
1. **Read state file** — Load `orchestrator-state.yml`
|
|
284
|
+
2. **Validate artifacts** — Check expected files for `completed_phases`. If missing, remove from list.
|
|
285
|
+
3. **Find resume point** — First phase not in `completed_phases`
|
|
286
|
+
4. **Check prerequisites** — Verify required artifacts exist
|
|
287
|
+
5. **Restore task items** — Re-create phase tasks and mark completed ones
|
|
288
|
+
|
|
289
|
+
| Starting From | Required Prerequisites |
|
|
290
|
+
| -------------- | -------------------------------- |
|
|
291
|
+
| Gap Analysis | `analysis/codebase-analysis.md` |
|
|
292
|
+
| Specification | `analysis/gap-analysis.md` |
|
|
293
|
+
| Planning | `implementation/spec.md` |
|
|
294
|
+
| Implementation | spec.md + implementation-plan.md |
|
|
295
|
+
| Verification | Implementation complete |
|
|
296
|
+
|
|
297
|
+
If prerequisites missing, use question: "Start from Phase 1", "Specify different phase", or "Exit".
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## 6. Issue Resolution
|
|
302
|
+
|
|
303
|
+
**Don't just report issues — resolve them.** Use after verification phases that return structured issues.
|
|
304
|
+
|
|
305
|
+
### Fix-Then-Reverify Loop
|
|
306
|
+
|
|
307
|
+
1. Read verification results (structured issues)
|
|
308
|
+
2. For each issue: trivial/auto-fixable → fix silently, log action; non-trivial → question
|
|
309
|
+
3. If fixes applied → set `skip_test_suite: false` (code changed) → re-run verification
|
|
310
|
+
4. Loop until: passes OR user proceeds with known issues OR max iterations (3)
|
|
311
|
+
|
|
312
|
+
### Fixability Assessment
|
|
313
|
+
|
|
314
|
+
| Likely Fixable | Likely Not Fixable |
|
|
315
|
+
| ------------------- | -------------------------- |
|
|
316
|
+
| Lint errors | Architecture decisions |
|
|
317
|
+
| Formatting issues | Design trade-offs |
|
|
318
|
+
| Missing imports | Test logic errors |
|
|
319
|
+
| Obvious typos | Unclear requirements |
|
|
320
|
+
| Simple config fixes | Performance tuning choices |
|
|
321
|
+
|
|
322
|
+
### Exit Conditions
|
|
323
|
+
|
|
324
|
+
| Condition | Action |
|
|
325
|
+
| ---------------------------------------- | -------------------------------------------------- |
|
|
326
|
+
| Verification passes | Proceed to next phase |
|
|
327
|
+
| User chooses "Proceed with known issues" | Proceed with warning logged |
|
|
328
|
+
| Max iterations (3) reached | Ask user how to proceed |
|
|
329
|
+
| Critical issues remain unresolved | **MUST NOT proceed** — require user approval first |
|