owflow 0.2.0 → 0.4.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 +83 -28
- package/dist/agents/code-reviewer.md +1 -1
- package/dist/agents/information-gatherer.md +691 -691
- package/dist/agents/production-readiness-checker.md +1 -1
- package/dist/agents/project-analyzer.md +0 -1
- package/dist/agents/research-planner.md +450 -447
- package/dist/agents/research-synthesizer.md +403 -401
- package/dist/agents/solution-brainstormer.md +257 -257
- package/dist/agents/solution-designer.md +372 -372
- package/dist/agents/task-classifier.md +3 -3
- package/dist/commands/agents-md-generator.md +36 -0
- package/dist/commands/dev-analyze.md +33 -0
- package/dist/commands/dev-bugfix.md +37 -0
- package/dist/commands/dev-finalize.md +33 -0
- package/dist/commands/dev-implement.md +34 -0
- package/dist/commands/dev-plan.md +37 -0
- package/dist/commands/dev-spec.md +37 -0
- package/dist/commands/dev-tdd-red.md +33 -0
- package/dist/commands/dev-verify.md +33 -0
- package/dist/commands/development.md +11 -12
- package/dist/commands/diagrams-mermaid.md +3 -4
- package/dist/commands/flow-init.md +3 -4
- package/dist/commands/goal-development.md +32 -0
- package/dist/commands/goal-research.md +33 -0
- package/dist/commands/html-renderer.md +3 -4
- package/dist/commands/migration.md +3 -4
- package/dist/commands/performance.md +3 -4
- package/dist/commands/research-brainstorm.md +33 -0
- package/dist/commands/research-converge.md +33 -0
- package/dist/commands/research-design.md +33 -0
- package/dist/commands/research-finalize.md +33 -0
- package/dist/commands/research-fork.md +40 -0
- package/dist/commands/research-gather.md +33 -0
- package/dist/commands/research-plan.md +37 -0
- package/dist/commands/research-quick.md +37 -0
- package/dist/commands/research-synthesize.md +33 -0
- package/dist/commands/research.md +55 -37
- package/dist/commands/reviews-code.md +4 -4
- package/dist/commands/reviews-pragmatic.md +4 -4
- package/dist/commands/reviews-production-readiness.md +4 -4
- package/dist/commands/reviews-reality-check.md +4 -4
- package/dist/commands/reviews-spec-audit.md +4 -4
- package/dist/commands/rule-reviewer.md +38 -0
- package/dist/commands/standards-discover.md +3 -4
- package/dist/commands/standards-update.md +3 -4
- package/dist/commands/work.md +21 -21
- package/dist/configuration/skills-config.js +1 -1
- package/dist/index.js +5 -2
- package/dist/skills/agents-md-generator/SKILL.md +223 -0
- package/dist/skills/codebase-analyzer/SKILL.md +1 -1
- package/dist/skills/dev-analyze/SKILL.md +115 -0
- package/dist/skills/dev-bugfix/SKILL.md +452 -0
- package/dist/skills/dev-finalize/SKILL.md +118 -0
- package/dist/skills/dev-implement/SKILL.md +167 -0
- package/dist/skills/dev-plan/SKILL.md +147 -0
- package/dist/skills/dev-spec/SKILL.md +182 -0
- package/dist/skills/dev-tdd-red/SKILL.md +94 -0
- package/dist/skills/dev-verify/SKILL.md +160 -0
- package/dist/skills/development/SKILL.md +130 -522
- package/dist/skills/diagrams-mermaid/SKILL.md +3 -1
- package/dist/skills/docs-manager/SKILL.md +4 -4
- package/dist/skills/docs-manager/references/agents-md-template.md +1 -1
- package/dist/skills/flow-init/SKILL.md +34 -13
- package/dist/skills/goal-development/SKILL.md +96 -0
- package/dist/skills/goal-research/SKILL.md +118 -0
- package/dist/skills/html-renderer/SKILL.md +14 -1
- package/dist/skills/implementation-plan-executor/SKILL.md +1 -1
- package/dist/skills/implementation-verifier/SKILL.md +1 -1
- package/dist/skills/migration/SKILL.md +63 -18
- package/dist/skills/orchestrator-framework/SKILL.md +1 -1
- package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -0
- package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -0
- package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -0
- package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -0
- package/dist/skills/orchestrator-framework/references/gate-contract.md +112 -0
- package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +3 -0
- package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +8 -50
- package/dist/skills/performance/SKILL.md +52 -18
- package/dist/skills/research/SKILL.md +249 -462
- package/dist/skills/research-brainstorm/SKILL.md +120 -0
- package/dist/skills/{research → research-brainstorm}/references/brainstorming-techniques.md +1 -1
- package/dist/skills/research-converge/SKILL.md +130 -0
- package/dist/skills/research-design/SKILL.md +146 -0
- package/dist/skills/{research → research-design}/references/design-techniques.md +1 -1
- package/dist/skills/research-finalize/SKILL.md +125 -0
- package/dist/skills/research-fork/SKILL.md +190 -0
- package/dist/skills/research-gather/SKILL.md +133 -0
- package/dist/skills/research-plan/SKILL.md +141 -0
- package/dist/skills/research-quick/SKILL.md +139 -0
- package/dist/skills/research-synthesize/SKILL.md +127 -0
- package/dist/skills/rule-reviewer/SKILL.md +334 -0
- package/dist/skills/standards-discover/SKILL.md +37 -14
- package/dist/skills/standards-update/SKILL.md +58 -10
- package/dist/templates/orchestrator-state-development.yml +14 -13
- package/dist/templates/orchestrator-state-research.yml +19 -13
- package/dist/tools/fork_task.js +36 -0
- package/dist/tools/verify_template.js +10 -31
- package/dist/utils/file-util.js +14 -8
- package/dist/utils/fork-task.js +74 -0
- package/dist/utils/plugin-info.js +20 -0
- package/dist/utils/yaml-structure.js +32 -0
- package/package.json +1 -1
- package/dist/commands/quick-bugfix.md +0 -37
- package/dist/commands/quick-dev.md +0 -182
- package/dist/commands/quick-plan.md +0 -167
- package/dist/constants.js +0 -4
- package/dist/skills/quick-bugfix/SKILL.md +0 -311
- package/dist/templates/quick-bugfix-task.yml +0 -10
- package/dist/templates/quick-dev-task.yml +0 -10
- package/dist/templates/quick-plan-task.yml +0 -11
- /package/dist/skills/{research → research-plan}/references/research-methodologies.md +0 -0
|
@@ -1,534 +1,147 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: development
|
|
3
|
-
description:
|
|
2
|
+
name: owflow:development
|
|
3
|
+
description: Development workflow dispatcher. Initializes/resumes development tasks, derives the next phase from state, and hands off to the matching /owflow:dev-* subskill. Use /owflow:goal-development to run all phases in one loop.
|
|
4
|
+
argument-hint: "[task description | task-path] [--from=<step-slug>] [--research=PATH] [--e2e] [--user-docs]"
|
|
4
5
|
user-invocable: true
|
|
5
6
|
---
|
|
6
7
|
|
|
7
|
-
# Development
|
|
8
|
+
# Development Dispatcher
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
Entry point for development tasks in **assisted mode**: initialize (or resume) the task, derive the next pending step from `orchestrator-state.yml`, print the matching subskill command, and STOP. Each `/owflow:dev-*` subskill runs its steps with fresh context — the explicit invocation IS the step gate.
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
Development state uses descriptive step slugs in `completed_phases` / `failed_phases` / `auto_fix_attempts` (NOT phase numbers): `codebase-analysed`, `gap-analysed`, `tdd-red-proven`, `spec-written`, `spec-audited`, `plan-created`, `implementation-done`, `tdd-green-proven`, `options-chosen`, `verification-done`, `e2e-run`, `docs-generated`, `task-completed`. The routing table below maps slugs to subskills.
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
For the all-in-one loop with in-session `question` gates, use `/owflow:goal-development`.
|
|
15
|
+
|
|
16
|
+
Gates follow the shared contract in the [Gate Contract](../orchestrator-framework/references/gate-contract.md), with the [dispatcher exception](../orchestrator-framework/references/gate-contract.md).
|
|
17
|
+
|
|
18
|
+
## Entry Gate
|
|
19
|
+
|
|
20
|
+
**BEFORE deriving the handoff, complete these steps:**
|
|
14
21
|
|
|
15
22
|
### Step 1: Load Framework Patterns
|
|
16
23
|
|
|
17
24
|
**Read the framework reference file NOW using the Read tool:**
|
|
18
25
|
|
|
19
|
-
1.
|
|
26
|
+
1. The [Dispatcher & Handoff Pattern](../orchestrator-framework/references/dispatcher-handoff.md) and [Command Namespacing](../orchestrator-framework/references/command-namespacing.md) govern this skill.
|
|
20
27
|
|
|
21
28
|
### Step 2: Detect Prior Work Context
|
|
22
29
|
|
|
23
30
|
**If argument is a research folder path** (matches `.owflow/tasks/research/*`):
|
|
24
31
|
|
|
25
32
|
- Auto-detect research folder, extract task description from `research_context.research_question`
|
|
26
|
-
- Read research artifacts (see Research-Based Development
|
|
33
|
+
- Read research artifacts (see Research-Based Development below)
|
|
27
34
|
- Set `research_reference` in state automatically
|
|
28
35
|
|
|
29
36
|
**If `--research=<path>` flag provided**:
|
|
30
37
|
|
|
31
|
-
- Read research artifacts from specified path
|
|
32
|
-
- Copy to `analysis/research-context/`
|
|
38
|
+
- Read research artifacts from specified path, copy to `analysis/research-context/`
|
|
33
39
|
- Set `research_reference` in state
|
|
34
40
|
|
|
35
|
-
**If
|
|
36
|
-
|
|
37
|
-
1. Read `task.yml` — extract `command`, `description`, `standards_applied`, `escalation_reason`
|
|
38
|
-
2. Read `analysis/findings.md` — extract root cause, affected files, complexity assessment, test strategy
|
|
39
|
-
3. Use `description` as the task description (same as research extracts `research_question`)
|
|
40
|
-
4. Set `quick_reference` in orchestrator state:
|
|
41
|
-
```yaml
|
|
42
|
-
task_context:
|
|
43
|
-
quick_reference:
|
|
44
|
-
path: .owflow/tasks/quick-bugfix/2026-05-28-fix-login-timeout
|
|
45
|
-
command: quick-bugfix
|
|
46
|
-
escalation_reason: "5+ files, unclear root cause"
|
|
47
|
-
phase_summaries:
|
|
48
|
-
quick_analysis:
|
|
49
|
-
{ summary: "...", affected_files: [...], root_cause: "..." }
|
|
50
|
-
```
|
|
51
|
-
5. Update the quick-\* `task.yml`: set `escalated_to` to the new development task path
|
|
52
|
-
|
|
53
|
-
**How quick-\* context informs development phases**:
|
|
54
|
-
|
|
55
|
-
| Phase | How Quick-\* Context is Used |
|
|
56
|
-
| ------- | --------------------------------------------------------------------------- |
|
|
57
|
-
| Phase 1 | Codebase analyzer receives affected files and root cause as search guidance |
|
|
58
|
-
| Phase 2 | Gap analyzer uses complexity assessment for risk level |
|
|
59
|
-
| Phase 3 | TDD gate uses test strategy from findings.md as starting point |
|
|
60
|
-
| Phase 4 | Specification creator receives prior analysis as input context |
|
|
61
|
-
|
|
62
|
-
### Step 3: Initialize Workflow
|
|
63
|
-
|
|
64
|
-
1. **Create Task Items**: Use `TaskCreate` for all phases (see Phase Configuration), then set dependencies with `TaskUpdate addBlockedBy`
|
|
65
|
-
2. **Create Task Directory**: `.owflow/tasks/development/YYYY-MM-DD-task-name/`
|
|
66
|
-
3. **Initialize State**: Create `orchestrator-state.yml` with task info and research reference
|
|
67
|
-
- **CRITICAL**: Use the `verify_template` tool immediately after creation to check YAML validity against `orchestrator-state-development.yml`.
|
|
68
|
-
4. **Discover project documentation**: Read `.owflow/docs/INDEX.md` (if exists), extract ALL file paths from the "Project Documentation" section. This includes predefined docs (vision, roadmap, tech-stack, architecture) AND any user-added project docs (e.g., deployment.md, api-strategy.md). Store complete list as `project_context.project_doc_paths` in state.
|
|
41
|
+
**If the task's state shows `orchestrator.entry_point: "dev-bugfix"`** (task created or last run by the quick bug fix skill):
|
|
69
42
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
🚀 Development Orchestrator Started
|
|
74
|
-
|
|
75
|
-
Task: [description]
|
|
76
|
-
Directory: [task-path]
|
|
77
|
-
|
|
78
|
-
Starting Phase 1: Codebase Analysis...
|
|
79
|
-
```
|
|
43
|
+
1. No special intake needed — it is a standard development task using the standard state file and artifacts. Its dev-bugfix run already recorded condensed analysis and TDD slugs in `completed_phases`.
|
|
44
|
+
2. Route by the FIRST step slug NOT in `completed_phases`, per the Routing Table — with one exception: if `implementation-done` is already complete (typical for a completed dev-bugfix run), route to `/owflow:dev-verify <task-path>`; verification does NOT require spec/plan. If the task's status is `escalated`, route normally from the first missing slug (usually `spec-written`).
|
|
80
45
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
## When to Use
|
|
84
|
-
|
|
85
|
-
Use for **all development tasks**: bug fixes, enhancements, new features, and any work that modifies code.
|
|
86
|
-
|
|
87
|
-
**DO NOT use for**: Performance optimization, security remediation, migrations, documentation-only, pure refactoring (use specialized orchestrators).
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Phase Configuration
|
|
92
|
-
|
|
93
|
-
| Phase | content | activeForm | Activation |
|
|
94
|
-
| ----- | -------------------------------------------- | ------------------------------------------------- | ------------------------------ |
|
|
95
|
-
| 1 | "Analyze codebase & clarify requirements" | "Analyzing codebase & clarifying" | Always |
|
|
96
|
-
| 2 | "Analyze gaps & clarify scope" | "Analyzing gaps & clarifying scope" | Always |
|
|
97
|
-
| 3 | "Write failing test (TDD Red)" | "Writing failing test" | When `has_reproducible_defect` |
|
|
98
|
-
| 4 | "Gather requirements & create specification" | "Gathering requirements & creating specification" | Always |
|
|
99
|
-
| 5 | "Audit specification" | "Auditing specification" | Always (conditional) |
|
|
100
|
-
| 6 | "Plan implementation" | "Planning implementation" | Always |
|
|
101
|
-
| 7 | "Execute implementation" | "Executing implementation" | Always |
|
|
102
|
-
| 8 | "Verify test passes (TDD Green)" | "Verifying test passes" | When Phase 3 was executed |
|
|
103
|
-
| 9 | "Prompt verification options" | "Prompting verification options" | Always |
|
|
104
|
-
| 10 | "Verify implementation & resolve issues" | "Verifying implementation" | Always |
|
|
105
|
-
| 11 | "Run E2E tests" | "Running E2E tests" | When `e2e_enabled` |
|
|
106
|
-
| 12 | "Generate user documentation" | "Generating user documentation" | When `user_docs_enabled` |
|
|
107
|
-
| 13 | "Finalize workflow" | "Finalizing workflow" | Always |
|
|
108
|
-
|
|
109
|
-
---
|
|
46
|
+
The dispatcher hands off to subskills from analysis onward — spec, plan, verify, finalize steps are unchanged; research context flows through all of them.
|
|
110
47
|
|
|
111
|
-
|
|
48
|
+
**How dev-bugfix context informs subskills**: dev-spec receives `phase_summaries.quick_analysis` (root cause, affected files, test strategy) as condensed analysis input; dev-verify receives the fix summary.
|
|
112
49
|
|
|
113
|
-
###
|
|
50
|
+
### Step 3: Initialize or Resume
|
|
114
51
|
|
|
115
|
-
**
|
|
116
|
-
**Execute**:
|
|
117
|
-
|
|
118
|
-
1. Skill tool - `codebase-analyzer`
|
|
119
|
-
2. Update state with analysis results
|
|
120
|
-
3. Direct - use question for max 5 critical clarifying questions
|
|
121
|
-
4. Save clarifications to `analysis/clarifications.md`
|
|
122
|
-
**Output**: `analysis/codebase-analysis.md`, `analysis/clarifications.md`
|
|
123
|
-
**State**: Update `task_context.risk_level`, `phase_summaries.codebase_analysis`, `task_context.clarifications_resolved`
|
|
124
|
-
|
|
125
|
-
→ **AUTO-CONTINUE** — Do NOT end turn, do NOT prompt user. Proceed immediately to Phase 2.
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
### Phase 2: Gap Analysis & Scope Clarification
|
|
130
|
-
|
|
131
|
-
**Purpose**: Compare current vs desired state, detect task characteristics, then resolve scope/approach decisions
|
|
132
|
-
**Execute**:
|
|
133
|
-
|
|
134
|
-
1. Task tool - `gap-analyzer` subagent
|
|
135
|
-
2. **Extract and store structured data from gap-analyzer result**:
|
|
136
|
-
a. Read `task_characteristics` from gap-analyzer output — 5 fields: `has_reproducible_defect`, `modifies_existing_code`, `creates_new_entities`, `involves_data_operations`, `ui_heavy`
|
|
137
|
-
b. Write all 5 fields to `orchestrator-state.yml` at `task_context.task_characteristics`
|
|
138
|
-
c. Read `risk_level` from output and write to `task_context.risk_level`
|
|
139
|
-
d. Extract phase summary (1-2 sentences) and write to `phase_summaries.gap_analysis`
|
|
140
|
-
e. **SELF-CHECK**: "Did I read the 5 task_characteristics from the gap-analyzer output and write them to state? Let me re-read `orchestrator-state.yml` to verify the values match the gap-analyzer output."
|
|
141
|
-
|
|
142
|
-
**⛔ DECISION GATE** (mandatory — do NOT skip):
|
|
143
|
-
|
|
144
|
-
- Parse `decisions_needed` from gap-analyzer output
|
|
145
|
-
- If `decisions_needed.critical` OR `decisions_needed.important` is non-empty:
|
|
146
|
-
- MUST use `question` — one question per critical decision, batch important decisions into a single multi-select question
|
|
147
|
-
- If both are empty: Note "No scope decisions needed" in state
|
|
148
|
-
|
|
149
|
-
**SELF-CHECK** before continuing: "Did the gap-analyzer return `decisions_needed` items? If yes, did I invoke `question`? If I skipped this, STOP and go back."
|
|
150
|
-
|
|
151
|
-
3. Save scope clarifications to `analysis/scope-clarifications.md`
|
|
152
|
-
4. **Set optional phase defaults** based on detected characteristics:
|
|
153
|
-
- If `task_characteristics.ui_heavy: true` → set `options.e2e_enabled: true`, `options.user_docs_enabled: true`
|
|
154
|
-
- If `task_characteristics.creates_new_entities: true` → set `options.user_docs_enabled: true`
|
|
155
|
-
- Command flags (`--e2e`, `--no-e2e`, `--user-docs`, `--no-user-docs`) override these defaults
|
|
156
|
-
|
|
157
|
-
**Output**: `analysis/gap-analysis.md`, `analysis/scope-clarifications.md` (conditional)
|
|
158
|
-
**State**: Update `task_context.task_characteristics`, `task_context.scope_expanded`, `options.e2e_enabled`, `options.user_docs_enabled`, `phase_summaries.gap_analysis`
|
|
159
|
-
|
|
160
|
-
**Context to pass**: Risk level, codebase summary, key files, clarifications, project_doc_paths (from state)
|
|
161
|
-
|
|
162
|
-
→ Pause (when decisions exist), otherwise Conditional
|
|
163
|
-
|
|
164
|
-
**ANTI-PATTERN — DO NOT DO THIS:**
|
|
165
|
-
|
|
166
|
-
- ❌ "No new screens needed, just a component..." — STOP. `ui_heavy` is a signal from the gap-analyzer. Do NOT override it with your own complexity judgment.
|
|
167
|
-
|
|
168
|
-
question - Display executive summary before asking. Read `analysis/gap-analysis.md` and extract: task type detected, risk level, key characteristics enabled (TDD gates, E2E, user docs), scope decisions made (if any). Then read `task_context.task_characteristics` from `orchestrator-state.yml` and determine the next phase:
|
|
169
|
-
|
|
170
|
-
- If `has_reproducible_defect` is true → ask "Continue to Phase 3: TDD Red Gate?"
|
|
171
|
-
- Otherwise → ask "Continue to Phase 4: Technical Approach, Requirements & Specification?"
|
|
172
|
-
|
|
173
|
-
---
|
|
52
|
+
**New task** (description argument):
|
|
174
53
|
|
|
175
|
-
|
|
54
|
+
1. **Create Task Directory**: `.owflow/tasks/development/YYYY-MM-DD-task-name/`
|
|
55
|
+
2. **Initialize State**: create `orchestrator-state.yml` with task info, research/quick reference, flags
|
|
56
|
+
- **CRITICAL**: use the `verify_template` tool immediately after creation to check YAML validity against `orchestrator-state-development.yml`.
|
|
57
|
+
3. **Discover project documentation**: read `.owflow/docs/INDEX.md` (if exists), extract ALL file paths from the "Project Documentation" section; store as `project_context.project_doc_paths` in state.
|
|
58
|
+
4. **Command flags** (`--e2e`, `--no-e2e`, `--user-docs`, `--no-user-docs`, `--audit`, `--no-audit`) → write to `options.*` in state. Subskills read them from there.
|
|
176
59
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
**Purpose**: Write a failing test that reproduces the defect
|
|
180
|
-
**Execute**: Direct - write test, verify it FAILS
|
|
181
|
-
**Output**: `implementation/tdd-red-gate.md`, failing test file
|
|
182
|
-
**State**: Update `tdd_red_passed: true`
|
|
183
|
-
|
|
184
|
-
**Skip if**: `task_characteristics.has_reproducible_defect` is false (not set by gap-analyzer)
|
|
185
|
-
|
|
186
|
-
**Critical**: Test MUST fail before implementation (proves defect exists)
|
|
187
|
-
|
|
188
|
-
→ Pause
|
|
189
|
-
|
|
190
|
-
question - "TDD red gate complete. Continue to Phase 4?"
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
### Phase 4: Technical Approach, Requirements & Specification
|
|
195
|
-
|
|
196
|
-
> **Phase gate**: Requires `question` confirmation from the preceding phase before executing.
|
|
197
|
-
|
|
198
|
-
**⛔ ROUTING GUARD**: Read `task_context.task_characteristics` from `orchestrator-state.yml`. If `has_reproducible_defect` is true and Phase 3 is NOT in `completed_phases` → STOP, execute Phase 3 first.
|
|
199
|
-
|
|
200
|
-
**Purpose**: Resolve technical decisions, gather specification requirements, then create comprehensive specification
|
|
201
|
-
**Execute**:
|
|
202
|
-
|
|
203
|
-
**Part A — Technical & Architecture Clarification (inline, conditional)**:
|
|
204
|
-
|
|
205
|
-
1. If complex task with multiple approaches: Direct - use question for 3-5 technical questions
|
|
206
|
-
2. If multiple valid architectural approaches exist: Present 2-3 approaches via question. The chosen approach is passed to specification-creator so the spec is written with the decided architecture.
|
|
207
|
-
3. Save to `analysis/technical-clarifications.md` (conditional)
|
|
208
|
-
|
|
209
|
-
**Skip technical clarification if**: Simple task, risk_level = low, no multiple approaches detected
|
|
210
|
-
|
|
211
|
-
**Part B — Requirements Gathering (inline)**: 3. Direct - use question for specification requirements:
|
|
212
|
-
|
|
213
|
-
- Adaptive question count based on description length:
|
|
214
|
-
- Brief (<30 words): 6-8 questions
|
|
215
|
-
- Standard (30-100 words): 4-6 questions
|
|
216
|
-
- Detailed (>100 words): 2-3 focused questions
|
|
217
|
-
- Frame as confirmable assumptions: "I assume X, is that correct?"
|
|
218
|
-
- REQUIRED questions (always include):
|
|
219
|
-
1. **User Journey**: How will users discover/access this? Which personas? How fits existing workflows?
|
|
220
|
-
2. **Existing Code Reuse**: Similar features, UI components, backend patterns to reference?
|
|
221
|
-
3. **Visual Assets**: Any mockups, wireframes, screenshots? Place in `analysis/visuals/`
|
|
222
|
-
|
|
223
|
-
4. Check for visual assets in `analysis/visuals/` (even if user says none)
|
|
224
|
-
- If found: note for subagent context
|
|
225
|
-
- If not found and non-UI task: skip visual asset processing
|
|
226
|
-
5. Save gathered requirements to `analysis/requirements.md` with: initial description, Q&A from all rounds, similar features identified, visual assets and insights, functional requirements summary, reusability opportunities, scope boundaries, technical considerations
|
|
227
|
-
|
|
228
|
-
**Part C — Specification Creation (subagent)**:
|
|
229
|
-
|
|
230
|
-
**ANTI-PATTERN — DO NOT DO THIS:**
|
|
231
|
-
|
|
232
|
-
- ❌ "Let me create the specification..." — STOP. Delegate to specification-creator.
|
|
233
|
-
- ❌ "I'll write the spec based on requirements..." — STOP. Delegate to specification-creator.
|
|
234
|
-
- ❌ "The task is simple enough to spec inline..." — STOP. Simplicity is NOT a reason to skip delegation.
|
|
235
|
-
|
|
236
|
-
**INVOKE NOW** — Task tool call:
|
|
237
|
-
|
|
238
|
-
6. Task tool - `specification-creator` subagent
|
|
239
|
-
|
|
240
|
-
**Context to pass to subagent**: task_path, task_description, task_characteristics, requirements_path (analysis/requirements.md), project_context_paths (INDEX.md + project_doc_paths from state — all discovered project docs), risk_level, phase_summaries (codebase_analysis, gap_analysis, clarifications, scope_clarifications, ui_mockups), research_context (if any)
|
|
241
|
-
|
|
242
|
-
**SELF-CHECK**: Did you just invoke the Task tool with `specification-creator`? Or did you start writing spec.md yourself? If the latter, STOP immediately and invoke the Task tool instead.
|
|
243
|
-
|
|
244
|
-
**Part D — Diagram Refinement (Skill, content-preserving)**:
|
|
245
|
-
|
|
246
|
-
7. Invoke Skill tool: `diagrams-mermaid` to refine `implementation/spec.md`
|
|
247
|
-
8. Add diagrams that clarify scope and communication (without replacing prose):
|
|
248
|
-
- `flowchart` for primary functional path,
|
|
249
|
-
- `sequenceDiagram` for key component interaction,
|
|
250
|
-
- optionally `C4Component` if internal module structure is required by scope.
|
|
251
|
-
9. If required context is missing, add explicit open questions/assumptions section instead of inventing entities.
|
|
252
|
-
|
|
253
|
-
**Output**: `analysis/technical-clarifications.md` (conditional), `analysis/requirements.md`, `implementation/spec.md`
|
|
254
|
-
**State**: Update `task_context.tech_clarified`, `task_context.architecture_decision`, `phase_summaries.specification`
|
|
255
|
-
|
|
256
|
-
→ Pause
|
|
257
|
-
|
|
258
|
-
question - Display executive summary before asking. Read `implementation/spec.md` and extract: spec title, scope boundaries (what's included and excluded), number of key requirements, architecture approach chosen (if any), assumptions made. Format as brief overview then "Continue to specification audit?"
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
### Phase 5: Specification Audit (Recommended)
|
|
263
|
-
|
|
264
|
-
> **Phase gate**: Requires `question` confirmation from Phase 4 before executing.
|
|
265
|
-
|
|
266
|
-
**Purpose**: Independent review of specification before implementation
|
|
267
|
-
**Execute**: Task tool - `spec-auditor` subagent
|
|
268
|
-
**Output**: `verification/spec-audit.md`
|
|
269
|
-
**State**: Update `options.spec_audit_enabled`
|
|
270
|
-
|
|
271
|
-
**Recommended**: Always. Present spec audit as the recommended default. User can skip if they choose.
|
|
272
|
-
|
|
273
|
-
question - "Run specification audit? (Recommended)" with "Yes, run audit (Recommended)" as first option
|
|
274
|
-
|
|
275
|
-
→ Pause
|
|
276
|
-
|
|
277
|
-
question - Display executive summary before asking. Read `verification/spec-audit.md` and extract: overall verdict (pass/pass-with-concerns/fail), issue counts by severity, top 1-2 critical findings if any. Format as brief overview then "Continue to implementation planning?"
|
|
278
|
-
|
|
279
|
-
---
|
|
60
|
+
**Resume** (task-path argument):
|
|
280
61
|
|
|
281
|
-
|
|
62
|
+
1. Read `orchestrator-state.yml`; validate expected artifacts for `completed_phases` (remove entries with missing artifacts)
|
|
63
|
+
2. Find resume point: first step slug NOT in `completed_phases`; `--from=<step-slug>` overrides (validate prerequisites exist, else use `question`)
|
|
282
64
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
**Purpose**: Break specification into implementation steps
|
|
286
|
-
|
|
287
|
-
**ANTI-PATTERN — DO NOT DO THIS:**
|
|
288
|
-
|
|
289
|
-
- ❌ "Let me create the implementation plan..." — STOP. Delegate to implementation-planner.
|
|
290
|
-
- ❌ "I'll break this into steps..." — STOP. Delegate to implementation-planner.
|
|
291
|
-
- ❌ "This is simple enough to plan inline..." — STOP. Simplicity is NOT a reason to skip delegation.
|
|
292
|
-
|
|
293
|
-
**INVOKE NOW** — Task tool call:
|
|
294
|
-
|
|
295
|
-
**Execute**: Task tool - `implementation-planner` subagent
|
|
296
|
-
**Output**: `implementation/implementation-plan.md`
|
|
297
|
-
**State**: Update task groups and dependencies
|
|
298
|
-
|
|
299
|
-
**Context to pass to subagent**: task_path, task_description, task_characteristics, phase_summaries (specification, gap_analysis, codebase_analysis), research_context (if any)
|
|
300
|
-
|
|
301
|
-
**SELF-CHECK**: Did you just invoke the Task tool with `implementation-planner`? Or did you start writing implementation-plan.md yourself? If the latter, STOP immediately and invoke the Task tool instead.
|
|
302
|
-
|
|
303
|
-
**Post-plan diagram refinement (Skill, content-preserving)**:
|
|
304
|
-
|
|
305
|
-
- Invoke Skill tool: `diagrams-mermaid` for `implementation/implementation-plan.md`
|
|
306
|
-
- Add a compact execution diagram (task-group dependency flow or phase/state view).
|
|
307
|
-
- Keep implementation steps authoritative; diagrams are explanatory, not a replacement for task descriptions.
|
|
65
|
+
**Output**:
|
|
308
66
|
|
|
309
|
-
|
|
67
|
+
```
|
|
68
|
+
🚀 Development Dispatcher
|
|
310
69
|
|
|
311
|
-
|
|
70
|
+
Task: [description]
|
|
71
|
+
Directory: [task-path]
|
|
72
|
+
Next step: [step name]
|
|
73
|
+
```
|
|
312
74
|
|
|
313
75
|
---
|
|
314
76
|
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
> **Phase gate**: Requires `question` confirmation from Phase 6 before executing.
|
|
318
|
-
|
|
319
|
-
**Purpose**: Execute the implementation plan
|
|
320
|
-
|
|
321
|
-
**ANTI-PATTERN — DO NOT DO THIS:**
|
|
322
|
-
|
|
323
|
-
- ❌ "Let me implement this directly..." — STOP. Delegate to implementation-plan-executor.
|
|
324
|
-
- ❌ "This is simple enough to code inline..." — STOP. Simplicity is NOT a reason to skip delegation.
|
|
325
|
-
|
|
326
|
-
**INVOKE NOW** — Skill tool call:
|
|
327
|
-
|
|
328
|
-
**Execute**: Skill tool - `implementation-plan-executor`
|
|
329
|
-
**Output**: Implemented code, `implementation/work-log.md`
|
|
330
|
-
**State**: Update implementation progress, extract phase_summaries.implementation
|
|
331
|
-
|
|
332
|
-
**SELF-CHECK**: Did you just invoke the Skill tool with `implementation-plan-executor`? Or did you start writing code yourself? If the latter, STOP immediately and invoke the Skill tool instead.
|
|
333
|
-
|
|
334
|
-
**⚠️ POST-IMPLEMENTATION CONTINUATION** — After the skill completes and returns control:
|
|
335
|
-
|
|
336
|
-
1. Read `orchestrator-state.yml` to confirm you are the orchestrator
|
|
337
|
-
2. Update state: add Phase 7 to `completed_phases`
|
|
338
|
-
3. Evaluate conditional: if `task_characteristics.has_reproducible_defect` AND Phase 3 in `completed_phases` → Phase 8, else → Phase 9
|
|
77
|
+
## When to Use
|
|
339
78
|
|
|
340
|
-
|
|
79
|
+
Use for **all development tasks**: bug fixes, enhancements, new features, and any work that modifies code. Bug-shaped work has a lighter entry point: `/owflow:dev-bugfix "<description>"` (or with a task path, to fix a bug that emerged on an existing task) — it produces the same standard state and is resumable by this dispatcher. Condensed quick lanes also exist per phase — `/owflow:dev-spec --quick "<description>"`, `/owflow:dev-plan --quick "<description>"`, `/owflow:dev-implement --quick "<description>"` — each bootstraps the same standard state and stops after its phase.
|
|
341
80
|
|
|
342
|
-
|
|
81
|
+
**DO NOT use for**: Performance optimization, security remediation, migrations, documentation-only, pure refactoring (use the specialized orchestrators).
|
|
343
82
|
|
|
344
83
|
---
|
|
345
84
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
> **Phase gate**: Requires `question` confirmation from Phase 7 before executing.
|
|
85
|
+
## Routing Table (completed_phases → next subskill)
|
|
349
86
|
|
|
350
|
-
|
|
351
|
-
**Execute**: Direct - run the test written in Phase 3
|
|
352
|
-
**Output**: `implementation/tdd-green-gate.md`
|
|
353
|
-
**State**: Update `tdd_green_passed: true`
|
|
87
|
+
Derive the FIRST step slug not in `completed_phases`, then print the matching command:
|
|
354
88
|
|
|
355
|
-
|
|
89
|
+
| Next step (slug) | Condition (from state) | Handoff command | Produces |
|
|
90
|
+
| ------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------- | ------------------------------------------------- |
|
|
91
|
+
| Analysis (`codebase-analysed`, `gap-analysed`) | Always (new task or partial analysis) | `/owflow:dev-analyze <task-path>` | `analysis/codebase-analysis.md`, `gap-analysis.md` |
|
|
92
|
+
| TDD red gate (`tdd-red-proven`) | `task_characteristics.has_reproducible_defect: true` | `/owflow:dev-tdd-red <task-path>` | `implementation/tdd-red-gate.md` |
|
|
93
|
+
| Specification (`spec-written`, `spec-audited`) | `gap-analysed` completed (and `tdd-red-proven` if required)| `/owflow:dev-spec <task-path>` | `implementation/spec.md`, `verification/spec-audit.md` |
|
|
94
|
+
| Planning (`plan-created`) | `implementation/spec.md` exists | `/owflow:dev-plan <task-path>` | `implementation/implementation-plan.md` |
|
|
95
|
+
| Implementation (`implementation-done`, `tdd-green-proven`) | Spec + plan exist | `/owflow:dev-implement <task-path>` | implemented code, `work-log.md` |
|
|
96
|
+
| Verification (`options-chosen`, `verification-done`) | `implementation-done` completed (also dev-bugfix tasks — see entry gate note; spec/plan NOT required) | `/owflow:dev-verify <task-path>` | `verification/implementation-verification.md` |
|
|
97
|
+
| Finalization (`e2e-run`, `docs-generated`, `task-completed`) | `verification-done` completed | `/owflow:dev-finalize <task-path>` | `documentation/`, completed task |
|
|
356
98
|
|
|
357
|
-
|
|
99
|
+
The TDD red gate is SKIPPED when `has_reproducible_defect` is false — route to dev-spec. All conditional flags (`e2e_enabled`, `user_docs_enabled`) live in state and are honored by the subskills.
|
|
358
100
|
|
|
359
|
-
|
|
101
|
+
**Dev-bugfix tasks**: tasks whose `completed_phases` holds the quick slice (`codebase-analysed`, `gap-analysed`, `tdd-red-proven`, `implementation-done`, `tdd-green-proven` — no `spec-written`/`plan-created`) are valid dev tasks. The FIRST-missing-slug rule would route them to `dev-spec`; instead, when `implementation-done` is complete, prefer `/owflow:dev-verify`. Escalated (`task.status: escalated`) dev-bugfix tasks route normally from the first missing slug — the full pipeline fills in specification and planning.
|
|
360
102
|
|
|
361
|
-
|
|
103
|
+
**Alternative entry points for bugs**: `/owflow:dev-bugfix "<description>"` — standalone bug fix creating the same state from scratch; `/owflow:dev-bugfix <task-path>` — fix a newly emerging problem on an existing dev task (resets downstream verification slugs after the fix, so this router re-routes to dev-verify).
|
|
362
104
|
|
|
363
|
-
|
|
105
|
+
### Exit Gate (adapted for dispatch mode)
|
|
364
106
|
|
|
365
|
-
|
|
107
|
+
After deriving the handoff, present the results box, ask how to proceed, then hand off accordingly (see the [dispatcher exception](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the subskill.
|
|
366
108
|
|
|
367
|
-
|
|
109
|
+
#### Results box
|
|
368
110
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
**Output**: Updated state with all verification options
|
|
372
|
-
**State**: Set `options.code_review_enabled`, `options.pragmatic_review_enabled`, `options.reality_check_enabled`, `options.production_check_enabled`, `options.e2e_enabled`, `options.user_docs_enabled`
|
|
373
|
-
**Auto-set**: `skip_test_suite: true` (full test suite already passed during implementation phase; cleared before re-verification if fixes are applied)
|
|
111
|
+
```markdown
|
|
112
|
+
## ✅ DEVELOPMENT TASK READY — <task name>
|
|
374
113
|
|
|
375
|
-
**
|
|
114
|
+
**Task** — [description]
|
|
115
|
+
**Directory** — `<task-path>`
|
|
116
|
+
**Next step** — [step name]
|
|
117
|
+
[Resume note: completed steps / fresh task]
|
|
376
118
|
|
|
119
|
+
**Next ▸** `/owflow:<subskill> <task-path>`
|
|
377
120
|
```
|
|
378
|
-
Verification Plan:
|
|
379
|
-
Obligatory (always run):
|
|
380
|
-
✓ Completeness check
|
|
381
|
-
✓ Test suite (skipped — passed during implementation; re-enabled after fixes)
|
|
382
|
-
|
|
383
|
-
Recommended (adjustable):
|
|
384
|
-
✓ Code review — quality and security analysis
|
|
385
|
-
✓ Pragmatic review — detects over-engineering
|
|
386
|
-
✓ Reality check — validates work solves the problem
|
|
387
|
-
✓ Production readiness — deployment readiness checks
|
|
388
|
-
|
|
389
|
-
Conditional:
|
|
390
|
-
[✓/—] E2E browser testing — [reason]
|
|
391
|
-
[✓/—] User documentation — [reason]
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
**Step 2** (3 questions):
|
|
395
|
-
|
|
396
|
-
**Q1** (always): question (multi-select) — "Which standard verifications to run?"
|
|
397
|
-
Options: "Code review (Recommended)", "Pragmatic review (Recommended)", "Reality check (Recommended)", "Production readiness (Recommended)". All pre-selected.
|
|
398
|
-
|
|
399
|
-
**Q2** (SKIP if `options.e2e_enabled: false` and no `--e2e` flag): question — "Enable E2E browser verification?" Options: "Yes (Recommended)", "No, skip".
|
|
400
121
|
|
|
401
|
-
|
|
122
|
+
#### Acceptance question
|
|
402
123
|
|
|
403
|
-
|
|
124
|
+
Use `question` — "Task ready. How would you like to proceed?" with options:
|
|
404
125
|
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
> **Phase gate**: Requires `question` confirmation from Phase 9 before executing.
|
|
410
|
-
|
|
411
|
-
**Purpose**: Comprehensive implementation verification with fix-then-reverify cycles
|
|
412
|
-
**Output**: `verification/implementation-verification.md`, optional code-review/pragmatic/reality reports, updated `implementation/work-log.md`
|
|
413
|
-
**State**: Update verification results, `verification_context`
|
|
414
|
-
|
|
415
|
-
**Execute**:
|
|
126
|
+
- **Hand off to /owflow:<subskill>** — the user invokes the suggested command (dispatcher copies it to chat for convenience). Execution starts in a fresh context.
|
|
127
|
+
- **Switch to autonomous mode** — illustrate with `/owflow:goal-development <task-path>` to run remaining phases in one session with gates.
|
|
128
|
+
- **Adjust** — task set-up is wrong (wrong flags, wrong research reference, wrong task); re-run the affected initialization step, re-present the results box.
|
|
129
|
+
- **Stop here** — print the resume command (`/owflow:development <task-path>`) and end.
|
|
416
130
|
|
|
417
|
-
|
|
131
|
+
#### Handoff message
|
|
418
132
|
|
|
419
|
-
|
|
133
|
+
On Accept (hand off choice), print, then STOP:
|
|
420
134
|
|
|
421
135
|
```
|
|
422
|
-
|
|
423
|
-
Critical ([N]):
|
|
424
|
-
- [category]: [description] — [file:line] [fixable/manual]
|
|
425
|
-
...
|
|
426
|
-
Warning ([N]):
|
|
427
|
-
- [category]: [description] — [file:line] [fixable/manual]
|
|
428
|
-
...
|
|
429
|
-
Info ([N]):
|
|
430
|
-
- [description] (listed for awareness, not actionable)
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
**Step 3**: Gate on verification status:
|
|
434
|
-
|
|
435
|
-
- `status: passed` → skip to Post-Verification Continuation
|
|
436
|
-
- `status: passed_with_issues` or `failed` → enter user-driven fix loop (Step 4)
|
|
437
|
-
|
|
438
|
-
**Step 4**: User-driven fix loop (max 3 iterations):
|
|
439
|
-
|
|
440
|
-
1. Present all critical + warning issues as a numbered list
|
|
441
|
-
2. question — "Which issues should I fix?" with options:
|
|
442
|
-
- "Fix all fixable issues" (convenience default)
|
|
443
|
-
- "Let me choose specific issues" (user picks by number)
|
|
444
|
-
- "Skip fixes, proceed as-is"
|
|
445
|
-
3. Fix selected issues, log each to `verification_context.fixes_applied`
|
|
446
|
-
4. After fixes applied: set `skip_test_suite: false` (code changed, tests must re-run)
|
|
447
|
-
5. question — "Re-run verification to check fixes?" with options:
|
|
448
|
-
- "Yes, re-run verification" → re-invoke `implementation-verifier` → return to Step 2
|
|
449
|
-
- "No, proceed to next phase"
|
|
450
|
-
6. Update `verification_context.reverify_count`
|
|
136
|
+
✓ Task ready at <task-path>
|
|
451
137
|
|
|
452
|
-
|
|
138
|
+
Next step:
|
|
139
|
+
→ /owflow:<subskill> <task-path>
|
|
453
140
|
|
|
454
|
-
|
|
455
|
-
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
**⚠️ POST-VERIFICATION CONTINUATION** — After issue resolution completes:
|
|
460
|
-
|
|
461
|
-
1. Read `orchestrator-state.yml` to confirm you are the orchestrator
|
|
462
|
-
2. Update state: add Phase 10 to `completed_phases`
|
|
463
|
-
3. Proceed to Phase 11
|
|
464
|
-
|
|
465
|
-
→ Pause
|
|
466
|
-
|
|
467
|
-
question - Display executive summary: total issues found, issues fixed, issues remaining by severity. Then "Continue to Phase 11?"
|
|
468
|
-
|
|
469
|
-
---
|
|
470
|
-
|
|
471
|
-
### Phase 11: E2E Testing (Optional)
|
|
472
|
-
|
|
473
|
-
> **Phase gate**: Requires `question` confirmation from Phase 10 before executing.
|
|
474
|
-
|
|
475
|
-
**Purpose**: Runtime browser verification with screenshots (via Playwright MCP tools, not test file generation)
|
|
476
|
-
**Execute**: Task tool - `e2e-test-verifier` subagent
|
|
477
|
-
**Prompt must include**: task_path (absolute), spec_path, base_url. Report saves to `{task_path}/verification/e2e-verification-report.md`.
|
|
478
|
-
**Output**: `verification/e2e-verification-report.md`, screenshots
|
|
479
|
-
**State**: Update E2E results
|
|
480
|
-
|
|
481
|
-
**Skip if**: `options.e2e_enabled = false`
|
|
482
|
-
|
|
483
|
-
→ Pause
|
|
484
|
-
|
|
485
|
-
question - "E2E complete. Continue to Phase 12?"
|
|
486
|
-
|
|
487
|
-
---
|
|
488
|
-
|
|
489
|
-
### Phase 12: User Documentation (Optional)
|
|
490
|
-
|
|
491
|
-
> **Phase gate**: Requires `question` confirmation from the preceding phase before executing.
|
|
492
|
-
|
|
493
|
-
**Purpose**: Generate user-facing documentation with screenshots
|
|
494
|
-
**Execute**: Task tool - `user-docs-generator` subagent
|
|
495
|
-
**Prompt must include**: task_path (absolute), spec_path, base_url. Guide saves to `{task_path}/documentation/user-guide.md`.
|
|
496
|
-
**Output**: `documentation/user-guide.md`, screenshots
|
|
497
|
-
**State**: Update docs generation status
|
|
498
|
-
|
|
499
|
-
**Skip if**: `options.user_docs_enabled = false`
|
|
500
|
-
|
|
501
|
-
→ Pause
|
|
502
|
-
|
|
503
|
-
question - "Documentation complete. Continue to Phase 13?"
|
|
504
|
-
|
|
505
|
-
---
|
|
506
|
-
|
|
507
|
-
### Phase 13: Finalization
|
|
508
|
-
|
|
509
|
-
> **Phase gate**: Requires `question` confirmation from the preceding phase before executing.
|
|
510
|
-
|
|
511
|
-
**Purpose**: Complete workflow and provide next steps
|
|
512
|
-
**Execute**: Direct - create summary, update state, guide commit
|
|
513
|
-
**Output**: Workflow summary
|
|
514
|
-
**State**: Set `task.status: completed`
|
|
515
|
-
|
|
516
|
-
**Process**:
|
|
517
|
-
|
|
518
|
-
1. Create workflow summary
|
|
519
|
-
2. Update task status to "completed"
|
|
520
|
-
3. Provide commit message template
|
|
521
|
-
4. Guide next steps (code review, PR, deployment)
|
|
522
|
-
|
|
523
|
-
→ End of workflow
|
|
524
|
-
|
|
525
|
-
---
|
|
526
|
-
|
|
527
|
-
## Domain Context (State Extensions)
|
|
528
|
-
|
|
529
|
-
Development-specific fields in `orchestrator-state.yml`:
|
|
530
|
-
|
|
531
|
-
Refer to the template [src/templates/orchestrator-state-development.yml](../../templates/orchestrator-state-development.yml).
|
|
141
|
+
Other options:
|
|
142
|
+
/owflow:goal-development <task-path> — run remaining phases in one loop
|
|
143
|
+
/owflow:development --from=<step-slug> <task-path> — jump to a specific step
|
|
144
|
+
```
|
|
532
145
|
|
|
533
146
|
---
|
|
534
147
|
|
|
@@ -536,43 +149,47 @@ Refer to the template [src/templates/orchestrator-state-development.yml](../../t
|
|
|
536
149
|
|
|
537
150
|
```
|
|
538
151
|
.owflow/tasks/development/YYYY-MM-DD-task-name/
|
|
539
|
-
├── orchestrator-state.yml
|
|
152
|
+
├── orchestrator-state.yml # Canonical state — all modes share it
|
|
540
153
|
├── analysis/
|
|
541
|
-
│ ├── research-context/
|
|
542
|
-
│ ├── codebase-analysis.md
|
|
543
|
-
│ ├── clarifications.md
|
|
544
|
-
│ ├── gap-analysis.md
|
|
545
|
-
│ ├── scope-clarifications.md
|
|
546
|
-
│
|
|
154
|
+
│ ├── research-context/ # If --research provided
|
|
155
|
+
│ ├── codebase-analysis.md # dev-analyze
|
|
156
|
+
│ ├── clarifications.md # dev-analyze
|
|
157
|
+
│ ├── gap-analysis.md # dev-analyze
|
|
158
|
+
│ ├── scope-clarifications.md # dev-analyze (conditional)
|
|
159
|
+
│ ├── technical-clarifications.md # dev-spec (conditional)
|
|
160
|
+
│ ├── requirements.md # dev-spec
|
|
161
|
+
│ └── visuals/ # user-provided mockups
|
|
547
162
|
├── implementation/
|
|
548
|
-
│ ├── spec.md
|
|
549
|
-
│ ├──
|
|
550
|
-
│ ├──
|
|
551
|
-
│ ├── work-log.md
|
|
552
|
-
│ ├── tdd-red-gate.md
|
|
553
|
-
│ └── tdd-green-gate.md
|
|
163
|
+
│ ├── spec.md # dev-spec
|
|
164
|
+
│ ├── implementation-plan.md # dev-plan
|
|
165
|
+
│ ├── fix-plan.md # dev-bugfix (condensed approval-gated fix plan)
|
|
166
|
+
│ ├── work-log.md # dev-implement / dev-bugfix
|
|
167
|
+
│ ├── tdd-red-gate.md # dev-tdd-red / dev-bugfix (conditional)
|
|
168
|
+
│ └── tdd-green-gate.md # dev-implement / dev-bugfix (conditional)
|
|
169
|
+
├── summary.md # dev-bugfix (per fix run)
|
|
554
170
|
├── verification/
|
|
555
|
-
│ ├── spec-audit.md
|
|
556
|
-
│ ├── implementation-verification.md #
|
|
557
|
-
│ └── e2e-verification-report.md
|
|
171
|
+
│ ├── spec-audit.md # dev-spec (recommended)
|
|
172
|
+
│ ├── implementation-verification.md # dev-verify
|
|
173
|
+
│ └── e2e-verification-report.md # dev-finalize (optional)
|
|
558
174
|
└── documentation/
|
|
559
|
-
└── user-guide.md
|
|
175
|
+
└── user-guide.md # dev-finalize (optional)
|
|
560
176
|
```
|
|
561
177
|
|
|
562
178
|
---
|
|
563
179
|
|
|
564
180
|
## Auto-Recovery
|
|
565
181
|
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
|
569
|
-
|
|
|
570
|
-
|
|
|
571
|
-
|
|
|
572
|
-
|
|
|
573
|
-
|
|
|
574
|
-
|
|
|
575
|
-
|
|
|
182
|
+
Retries are owned by each subskill (max attempts per phase):
|
|
183
|
+
|
|
184
|
+
| Subskill | Max Attempts | Strategy |
|
|
185
|
+
| -------------- | ------------ | ----------------------------------- |
|
|
186
|
+
| dev-analyze | 2 | Expand search, re-analyze, ask user |
|
|
187
|
+
| dev-tdd-red | 2 | Rewrite test, skip TDD with doc |
|
|
188
|
+
| dev-spec | 2 | Regenerate spec |
|
|
189
|
+
| dev-plan | 2 | Regenerate plan |
|
|
190
|
+
| dev-implement | 5 (green) | Fix syntax, imports, tests |
|
|
191
|
+
| dev-verify | 3 (loop) | Fix issues, re-run verification |
|
|
192
|
+
| dev-finalize | 3 | Fix tests, re-run |
|
|
576
193
|
|
|
577
194
|
---
|
|
578
195
|
|
|
@@ -580,7 +197,7 @@ Refer to the template [src/templates/orchestrator-state-development.yml](../../t
|
|
|
580
197
|
|
|
581
198
|
| Flag | Effect |
|
|
582
199
|
| -------------------------------- | ------------------------------- |
|
|
583
|
-
| `--from
|
|
200
|
+
| `--from=<step-slug>` | Hand off from a specific step |
|
|
584
201
|
| `--research=PATH` | Link to completed research task |
|
|
585
202
|
| `--audit` / `--no-audit` | Force/skip specification audit |
|
|
586
203
|
| `--e2e` / `--no-e2e` | Force/skip E2E testing |
|
|
@@ -590,50 +207,39 @@ Refer to the template [src/templates/orchestrator-state-development.yml](../../t
|
|
|
590
207
|
|
|
591
208
|
## Research-Based Development
|
|
592
209
|
|
|
593
|
-
When starting
|
|
210
|
+
When starting from a completed research task, the dispatcher loads research context to **INFORM** all subskills — research never SKIPS phases. Artifacts pass via `task_context.phase_summaries.research` in state and `analysis/research-context/`.
|
|
594
211
|
|
|
595
212
|
### Invocation Methods
|
|
596
213
|
|
|
597
214
|
**Method 1: Research folder as sole argument** (recommended)
|
|
598
215
|
|
|
599
216
|
```
|
|
600
|
-
/development .owflow/tasks/research/2026-01-12-oauth-research
|
|
217
|
+
/owflow:development .owflow/tasks/research/2026-01-12-oauth-research
|
|
601
218
|
```
|
|
602
219
|
|
|
603
|
-
The orchestrator auto-detects this is a research folder and:
|
|
604
|
-
|
|
605
|
-
- Extracts task description from `research_context.research_question`
|
|
606
|
-
- Reads all research artifacts
|
|
607
|
-
- Sets `research_reference` in state
|
|
608
|
-
|
|
609
220
|
**Method 2: Explicit --research flag**
|
|
610
221
|
|
|
611
222
|
```
|
|
612
|
-
/development "Implement OAuth" --research=.owflow/tasks/research/2026-01-12-oauth-research
|
|
223
|
+
/owflow:development "Implement OAuth" --research=.owflow/tasks/research/2026-01-12-oauth-research
|
|
613
224
|
```
|
|
614
225
|
|
|
615
226
|
### Research Artifacts (Standard List)
|
|
616
227
|
|
|
617
|
-
When research context is detected, read these files from the research folder:
|
|
618
|
-
|
|
619
228
|
| Artifact | Path | Purpose |
|
|
620
229
|
| -------------------- | --------------------------------- | ---------------------------------------------- |
|
|
621
230
|
| State | `orchestrator-state.yml` | research_type, confidence_level |
|
|
622
231
|
| Report | `outputs/research-report.md` | Main findings and conclusions |
|
|
623
|
-
| Solution Exploration | `outputs/solution-exploration.md` | Alternatives and trade-offs (input to
|
|
624
|
-
| High-Level Design | `outputs/high-level-design.md` | C4 architecture (input to
|
|
625
|
-
| Decision Log | `outputs/decision-log.md` | ADR decisions (input to
|
|
232
|
+
| Solution Exploration | `outputs/solution-exploration.md` | Alternatives and trade-offs (input to dev-spec) |
|
|
233
|
+
| High-Level Design | `outputs/high-level-design.md` | C4 architecture (input to dev-spec) |
|
|
234
|
+
| Decision Log | `outputs/decision-log.md` | ADR decisions (input to dev-spec) |
|
|
626
235
|
|
|
627
|
-
### How Research Informs
|
|
236
|
+
### How Research Informs Subskills
|
|
628
237
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
|
632
|
-
|
|
|
633
|
-
|
|
|
634
|
-
| Phase 2 | Gap analyzer uses research recommendations for comparison |
|
|
635
|
-
| Phase 4 | Specification creator uses high-level-design.md as INPUT (still creates full spec). Architecture decisions use research report AND decision-log.md (lighter when ADRs comprehensive) |
|
|
636
|
-
| Phase 6 | Implementation planner references research approach for task grouping |
|
|
238
|
+
| Subskill | How Research Context is Used |
|
|
239
|
+
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
240
|
+
| dev-analyze | Codebase analyzer and gap analyzer receive research findings as search/comparison guidance |
|
|
241
|
+
| dev-spec | specification-creator uses high-level-design.md as INPUT (still creates full spec); architecture decisions use research report AND decision-log.md |
|
|
242
|
+
| dev-plan | implementation-planner references research approach for task grouping |
|
|
637
243
|
|
|
638
244
|
---
|
|
639
245
|
|
|
@@ -641,12 +247,14 @@ When research context is detected, read these files from the research folder:
|
|
|
641
247
|
|
|
642
248
|
Invoked via:
|
|
643
249
|
|
|
644
|
-
- `/development [description] [--e2e] [--user-docs] [--research=PATH]` (new)
|
|
645
|
-
- `/development [task-path] [--from
|
|
250
|
+
- `/owflow:development [description] [--e2e] [--user-docs] [--research=PATH]` (new)
|
|
251
|
+
- `/owflow:development [task-path] [--from=<step-slug>] [--reset-attempts]` (resume)
|
|
252
|
+
|
|
253
|
+
Alternative: `/owflow:goal-development` — same task lifecycle, all subskills invoked in one session with `question` gates.
|
|
646
254
|
|
|
647
255
|
---
|
|
648
256
|
|
|
649
257
|
## TDD Gate Rules
|
|
650
258
|
|
|
651
|
-
**
|
|
652
|
-
**
|
|
259
|
+
**Red Gate** (`/owflow:dev-tdd-red`): test MUST FAIL before implementation — activated when gap analysis detects a reproducible defect.
|
|
260
|
+
**Green Gate** (inside `/owflow:dev-implement`): the same test MUST PASS after implementation — activated when the red gate was executed.
|