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.
Files changed (111) hide show
  1. package/README.md +83 -28
  2. package/dist/agents/code-reviewer.md +1 -1
  3. package/dist/agents/information-gatherer.md +691 -691
  4. package/dist/agents/production-readiness-checker.md +1 -1
  5. package/dist/agents/project-analyzer.md +0 -1
  6. package/dist/agents/research-planner.md +450 -447
  7. package/dist/agents/research-synthesizer.md +403 -401
  8. package/dist/agents/solution-brainstormer.md +257 -257
  9. package/dist/agents/solution-designer.md +372 -372
  10. package/dist/agents/task-classifier.md +3 -3
  11. package/dist/commands/agents-md-generator.md +36 -0
  12. package/dist/commands/dev-analyze.md +33 -0
  13. package/dist/commands/dev-bugfix.md +37 -0
  14. package/dist/commands/dev-finalize.md +33 -0
  15. package/dist/commands/dev-implement.md +34 -0
  16. package/dist/commands/dev-plan.md +37 -0
  17. package/dist/commands/dev-spec.md +37 -0
  18. package/dist/commands/dev-tdd-red.md +33 -0
  19. package/dist/commands/dev-verify.md +33 -0
  20. package/dist/commands/development.md +11 -12
  21. package/dist/commands/diagrams-mermaid.md +3 -4
  22. package/dist/commands/flow-init.md +3 -4
  23. package/dist/commands/goal-development.md +32 -0
  24. package/dist/commands/goal-research.md +33 -0
  25. package/dist/commands/html-renderer.md +3 -4
  26. package/dist/commands/migration.md +3 -4
  27. package/dist/commands/performance.md +3 -4
  28. package/dist/commands/research-brainstorm.md +33 -0
  29. package/dist/commands/research-converge.md +33 -0
  30. package/dist/commands/research-design.md +33 -0
  31. package/dist/commands/research-finalize.md +33 -0
  32. package/dist/commands/research-fork.md +40 -0
  33. package/dist/commands/research-gather.md +33 -0
  34. package/dist/commands/research-plan.md +37 -0
  35. package/dist/commands/research-quick.md +37 -0
  36. package/dist/commands/research-synthesize.md +33 -0
  37. package/dist/commands/research.md +55 -37
  38. package/dist/commands/reviews-code.md +4 -4
  39. package/dist/commands/reviews-pragmatic.md +4 -4
  40. package/dist/commands/reviews-production-readiness.md +4 -4
  41. package/dist/commands/reviews-reality-check.md +4 -4
  42. package/dist/commands/reviews-spec-audit.md +4 -4
  43. package/dist/commands/rule-reviewer.md +38 -0
  44. package/dist/commands/standards-discover.md +3 -4
  45. package/dist/commands/standards-update.md +3 -4
  46. package/dist/commands/work.md +21 -21
  47. package/dist/configuration/skills-config.js +1 -1
  48. package/dist/index.js +5 -2
  49. package/dist/skills/agents-md-generator/SKILL.md +223 -0
  50. package/dist/skills/codebase-analyzer/SKILL.md +1 -1
  51. package/dist/skills/dev-analyze/SKILL.md +115 -0
  52. package/dist/skills/dev-bugfix/SKILL.md +452 -0
  53. package/dist/skills/dev-finalize/SKILL.md +118 -0
  54. package/dist/skills/dev-implement/SKILL.md +167 -0
  55. package/dist/skills/dev-plan/SKILL.md +147 -0
  56. package/dist/skills/dev-spec/SKILL.md +182 -0
  57. package/dist/skills/dev-tdd-red/SKILL.md +94 -0
  58. package/dist/skills/dev-verify/SKILL.md +160 -0
  59. package/dist/skills/development/SKILL.md +130 -522
  60. package/dist/skills/diagrams-mermaid/SKILL.md +3 -1
  61. package/dist/skills/docs-manager/SKILL.md +4 -4
  62. package/dist/skills/docs-manager/references/agents-md-template.md +1 -1
  63. package/dist/skills/flow-init/SKILL.md +34 -13
  64. package/dist/skills/goal-development/SKILL.md +96 -0
  65. package/dist/skills/goal-research/SKILL.md +118 -0
  66. package/dist/skills/html-renderer/SKILL.md +14 -1
  67. package/dist/skills/implementation-plan-executor/SKILL.md +1 -1
  68. package/dist/skills/implementation-verifier/SKILL.md +1 -1
  69. package/dist/skills/migration/SKILL.md +63 -18
  70. package/dist/skills/orchestrator-framework/SKILL.md +1 -1
  71. package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -0
  72. package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -0
  73. package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -0
  74. package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -0
  75. package/dist/skills/orchestrator-framework/references/gate-contract.md +112 -0
  76. package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +3 -0
  77. package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +8 -50
  78. package/dist/skills/performance/SKILL.md +52 -18
  79. package/dist/skills/research/SKILL.md +249 -462
  80. package/dist/skills/research-brainstorm/SKILL.md +120 -0
  81. package/dist/skills/{research → research-brainstorm}/references/brainstorming-techniques.md +1 -1
  82. package/dist/skills/research-converge/SKILL.md +130 -0
  83. package/dist/skills/research-design/SKILL.md +146 -0
  84. package/dist/skills/{research → research-design}/references/design-techniques.md +1 -1
  85. package/dist/skills/research-finalize/SKILL.md +125 -0
  86. package/dist/skills/research-fork/SKILL.md +190 -0
  87. package/dist/skills/research-gather/SKILL.md +133 -0
  88. package/dist/skills/research-plan/SKILL.md +141 -0
  89. package/dist/skills/research-quick/SKILL.md +139 -0
  90. package/dist/skills/research-synthesize/SKILL.md +127 -0
  91. package/dist/skills/rule-reviewer/SKILL.md +334 -0
  92. package/dist/skills/standards-discover/SKILL.md +37 -14
  93. package/dist/skills/standards-update/SKILL.md +58 -10
  94. package/dist/templates/orchestrator-state-development.yml +14 -13
  95. package/dist/templates/orchestrator-state-research.yml +19 -13
  96. package/dist/tools/fork_task.js +36 -0
  97. package/dist/tools/verify_template.js +10 -31
  98. package/dist/utils/file-util.js +14 -8
  99. package/dist/utils/fork-task.js +74 -0
  100. package/dist/utils/plugin-info.js +20 -0
  101. package/dist/utils/yaml-structure.js +32 -0
  102. package/package.json +1 -1
  103. package/dist/commands/quick-bugfix.md +0 -37
  104. package/dist/commands/quick-dev.md +0 -182
  105. package/dist/commands/quick-plan.md +0 -167
  106. package/dist/constants.js +0 -4
  107. package/dist/skills/quick-bugfix/SKILL.md +0 -311
  108. package/dist/templates/quick-bugfix-task.yml +0 -10
  109. package/dist/templates/quick-dev-task.yml +0 -10
  110. package/dist/templates/quick-plan-task.yml +0 -11
  111. /package/dist/skills/{research → research-plan}/references/research-methodologies.md +0 -0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: diagrams-mermaid
2
+ name: owflow:diagrams-mermaid
3
3
  description: Creates Mermaid diagrams for planning flows, component communication, and architecture views with adaptive detail selection (including C4 levels). This skill should be used when the user asks for a workflow, interaction, or architecture visualization from provided task context.
4
4
  user-invocable: true
5
5
  ---
@@ -8,6 +8,8 @@ user-invocable: true
8
8
 
9
9
  Generate Mermaid diagrams from task context. Focus on visual structure and communication flow, not domain invention.
10
10
 
11
+ Gates follow the shared contract in [Gate Contract](../orchestrator-framework/references/gate-contract.md) — the "Output Contract" below IS this skill's Exit Gate, and Step 1 (Extract Context) IS the Entry Gate: when required inputs are missing, ask targeted clarification questions (never invent them) before drawing.
12
+
11
13
  ## 🚨 Core Rules
12
14
 
13
15
  1. **Read `references/reference.md`** (located in the `references/` subdirectory of this skill) before generating any diagram.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: docs-manager
2
+ name: owflow:docs-manager
3
3
  description: Internal engine for managing project documentation and technical standards in .owflow/docs/. Handles file operations, INDEX.md generation, and AGENTS.md integration. Invoked by flow-init, standards-update, and standards-discover skills.
4
4
  user-invocable: false
5
5
  ---
@@ -117,8 +117,8 @@ Use this when a project doesn't have `.owflow/docs/` or needs documentation for
117
117
 
118
118
  _Not initialized for this project. If you need frontend standards, you can:_
119
119
 
120
- - _Add them manually using the docs-manager skill_
121
- - _Run `/standards-discover --scope=frontend` to auto-discover_
120
+ - _Add them manually using the owflow:docs-manager skill_
121
+ - _Run `/owflow:standards-discover --scope=frontend` to auto-discover_
122
122
  ```
123
123
 
124
124
  6. **MANDATORY - Update AGENTS.md:**
@@ -144,7 +144,7 @@ Use this when a project doesn't have `.owflow/docs/` or needs documentation for
144
144
  **Note on Skipped Standards**: If standard categories are skipped during initialization, teams can add them later using:
145
145
 
146
146
  - "Add Documentation File" operation to add specific standards
147
- - `/standards-discover` command to auto-discover standards from codebase
147
+ - `/owflow:standards-discover` command to auto-discover standards from codebase
148
148
 
149
149
  ---
150
150
 
@@ -21,7 +21,7 @@ When you notice recurring patterns, fixes, or conventions during implementation
21
21
  - The same type of fix is needed across multiple files
22
22
  - A new library/pattern is adopted that should be documented
23
23
 
24
- When this happens, briefly suggest the standard to the user. If approved, invoke `/standards-update` with the identified pattern.
24
+ When this happens, briefly suggest the standard to the user. If approved, invoke `/owflow:standards-update` with the identified pattern.
25
25
 
26
26
  ## owflow Workflows
27
27
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: flow-init
2
+ name: owflow:flow-init
3
3
  description: Initialize AI SDLC framework with intelligent project analysis and documentation generation
4
4
  argument-hint: [--standards-from=PATH]
5
5
  user-invocable: true
@@ -9,8 +9,14 @@ user-invocable: true
9
9
 
10
10
  Initialize `.owflow/docs/` with intelligent project analysis and meaningful documentation generation based on actual codebase inspection.
11
11
 
12
+ Gates follow the shared contract in [Gate Contract](../orchestrator-framework/references/gate-contract.md).
13
+
12
14
  **NOTE**: This skill invokes other skills and subagents at specific phases. Use the **Task tool with `docs-operator` subagent** (subagent_type: `docs-operator`) for all docs-manager operations, and **Task tool** for project-analyzer. Use the **Skill tool** only for standards-discover (Phase 8, last phase). The Task tool returns control to this skill after completion; the Skill tool does not.
13
15
 
16
+ ## Entry Gate
17
+
18
+ PHASE 1 (Pre-flight Checks) below IS the entry gate of this skill. It validates the `--standards-from=PATH` argument (resolve it; abort with an informative message if the referenced project lacks `.owflow/docs/standards/`) and detects the pre-existing state of `.owflow/` — routing to backup, update, or cancel accordingly. Complete it before any other phase.
19
+
14
20
  ## Phase Configuration
15
21
 
16
22
  | Phase | Subject | activeForm |
@@ -163,7 +169,7 @@ Write each file to `.owflow/docs/project/`.
163
169
 
164
170
  ---
165
171
 
166
- ## PHASE 7: Validate
172
+ ## PHASE 7: Validate → Exit Gate
167
173
 
168
174
  **Step 1**: Invoke `docs-operator` subagent via Task tool (subagent_type: `docs-operator`) with prompt:
169
175
 
@@ -179,17 +185,32 @@ Wait for docs-operator to complete, then immediately continue with Step 2.
179
185
  - Verify selected standards directories exist
180
186
  - Verify AGENTS.md integration
181
187
 
182
- **Step 3**: Display comprehensive summary:
183
-
184
- - Project analysis results (type, language, framework, architecture)
185
- - Structure created (tree with check marks for created items)
186
- - Documentation status (which docs generated, which standards initialized)
187
- - Key findings (strengths, opportunities)
188
- - Next steps:
189
- 1. Review generated documentation
190
- 2. Customize for your team
191
- 3. Start development with `/work`
192
- 4. Keep documentation current
188
+ **Step 3: Results box** — present the summary as:
189
+
190
+ ```markdown
191
+ ## ✅ FLOW INIT COMPLETE — <project name>
192
+
193
+ **Project type** — [type, language, framework, architecture]
194
+ **Structure** — [tree with check marks for created items]
195
+ **Docs** — [which docs generated, which standards initialized]
196
+ **Standards** — [discovered count, applied]
197
+ **Key findings** — [strengths, opportunities]
198
+
199
+ **Created** — `.owflow/docs/INDEX.md`
200
+ ```
201
+
202
+ **Step 4: Results-acceptance question** — use `question` — "Are these results correct?" with options:
203
+
204
+ - **Accept** — initialization is complete; print next steps below.
205
+ - **Adjust** — regenerate the affected artifact (analysis, doc, standards) with the user's corrections, then re-present the results box.
206
+ - **Discuss** — walk through the generated structure and findings in more depth; then re-ask.
207
+ - **Stop here** — end; everything is already written to `.owflow/docs/`.
208
+
209
+ **Next steps (after Accept)**:
210
+
211
+ 1. Review and customize the generated documentation and standards for your team
212
+ 2. Start development with `/owflow:development "<task description>"` (or project work)
213
+ 3. Keep documentation current via `/owflow:standards-update "<convention>"`
193
214
 
194
215
  ---
195
216
 
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: owflow:goal-development
3
+ description: Full orchestrated development wrapper — runs ALL development phases in one session by invoking every dev-* subskill in sequence with question gates between them. Equivalent to the classic unified orchestrator.
4
+ argument-hint: "[task description | task-path] [--from=<step-slug>] [--research=PATH] [--e2e] [--user-docs]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Orchestrated Development Wrapper
9
+
10
+ Autonomous mode for development tasks. Initializes (or resumes) the task, then invokes every required `dev-*` subskill back-to-back via the Skill tool, pausing at gates between subskills. Shares `orchestrator-state.yml` with assisted mode (`/owflow:development`) — tasks can mix both modes freely.
11
+
12
+ Gates follow the shared contract in [Gate Contract](../orchestrator-framework/references/gate-contract.md) — orchestrated mode exception: each subskill's own Exit Gate acceptance question IS the loop gate (Accept = continue to the next subskill).
13
+
14
+ ## Entry Gate
15
+
16
+ Identical to the dispatcher — complete ALL of its entry-gate steps first:
17
+
18
+ 1. Read the [Dispatcher & Handoff Pattern](../orchestrator-framework/references/dispatcher-handoff.md) and the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md).
19
+ 2. Detect prior work context: research folder path or `--research=<path>` flag (same detection and state setup as the development dispatcher — see `../development/SKILL.md` Entry Gate). Dev-bugfix tasks (`.owflow/tasks/development/` entries with `entry_point: "dev-bugfix"`) need no special handling — they are standard development tasks; route from the first missing slug.
20
+ 3. Initialize (new task) or resume (task path): create task directory + `orchestrator-state.yml` with `verify_template` validation, discover `.owflow/docs/INDEX.md` project docs, write command flags to `options.*`. On resume, find the first step slug NOT in `completed_phases` (validate artifacts; `--from=<step-slug>` overrides).
21
+ 4. Create ONE task item via `TaskCreate` per subskill in the upcoming loop (subject: `"<step names>: <subskill>"`, e.g. `"Analysis: dev-analyze"`); update statuses as the loop progresses.
22
+
23
+ **Output**:
24
+
25
+ ```
26
+ 🚀 Orchestrated Development
27
+
28
+ Task: [description]
29
+ Directory: [task-path]
30
+ Loop: dev-analyze → [dev-tdd-red] → dev-spec → dev-plan → dev-implement → dev-verify → dev-finalize
31
+ ```
32
+
33
+ ---
34
+
35
+ ## The Loop
36
+
37
+ For each subskill in sequence (skipping conditionals below), execute:
38
+
39
+ 1. **Announce**: 1-line phase banner.
40
+ 2. **Invoke**: Skill tool with `name: "<subskill>"` and `prompt: "<task-path> [flags relevant to that subskill]"`. The subskill owns its Entry Gate, delegation, and state updates.
41
+ 3. **Verify handback**: after the skill returns, re-read `orchestrator-state.yml` — confirm the expected step slugs were appended to `completed_phases` (per the Sequence and Conditionals table). If a subskill stopped early (entry check failed), STOP the loop and relay its routing message to the user.
42
+ 4. **Gate (subskill's Exit Gate is the loop gate)**: each subskill presents its results box and fires its own results-acceptance `question` before its handoff hint (Orchestrated-mode exception, [Gate Contract](../orchestrator-framework/references/gate-contract.md)). [Rule 5 of the Dispatcher & Handoff Pattern](../orchestrator-framework/references/dispatcher-handoff.md) — "subskills only SUGGEST the next command" — is superseded for Accept: when the user answers **Accept** to the subskill's Exit Gate question pointing at the next subskill in this loop, treat that as "continue to the next subskill" and invoke it. Any other answer (Adjust / Discuss / Stop / other options picked) ends the loop the same way a rejected gate would.
43
+ - **Exception**: no separate gate between `dev-analyze` and `dev-tdd-red` when the red gate activates — these two run back-to-back (mirrors the AUTO-CONTINUE of the classic orchestrator). A gate still applies between analysis and spec.
44
+
45
+ ### Sequence and Conditionals
46
+
47
+ | Order | Subskill | Run when (from state) |
48
+ | ----- | ------------- | -------------------------------------------------------- |
49
+ | 1 | dev-analyze | Always |
50
+ | 2 | dev-tdd-red | `task_characteristics.has_reproducible_defect: true` |
51
+ | 3 | dev-spec | Analysis complete (`gap-analysed` in `completed_phases`) |
52
+ | 4 | dev-plan | `implementation/spec.md` exists |
53
+ | 5 | dev-implement | Spec + plan exist |
54
+ | 6 | dev-verify | `implementation-done` completed |
55
+ | 7 | dev-finalize | `verification-done` completed; honors `e2e_enabled`/`user_docs_enabled` internally |
56
+
57
+ **Interruptible**: at any gate the user may answer "stop" — print the standard handoff block (next command + `/owflow:development <task-path>` resume hint) and end the session. The task resumes later in either mode.
58
+
59
+ ---
60
+
61
+ ## Exit Gate
62
+
63
+ When dev-finalize completes (`task.status: completed`):
64
+
65
+ 1. Mark the final task item completed via `TaskUpdate`.
66
+ 2. Present the workflow results box:
67
+
68
+ ```markdown
69
+ ## ✅ DEVELOPMENT WORKFLOW COMPLETE — <task name>
70
+
71
+ **Steps** — [executed step slugs]
72
+ **Verification** — [final verification outcome]
73
+ **Artifacts** — [task directory artifact summary]
74
+ **Commit message** — [template]
75
+ ```
76
+
77
+ 3. Use `question` — "Are these results correct?" with options: **Accept** (print follow-up suggestions: `/owflow:reviews-pragmatic <task-path>`, `/owflow:standards-update "<lesson>"`, commit/PR, then end) / **Adjust** (re-open the relevant `/owflow:dev-*` skill) / **Discuss** (walk through the summary) / **Stop here** (print the resume command and end).
78
+
79
+ Then end. No further owflow phase commands are required.
80
+
81
+ ---
82
+
83
+ ## Loop Rules
84
+
85
+ - **Delegate, never inline**: the wrapper only sequences — all phase work happens inside subskills. If you catch yourself implementing/analyzing outside a subskill, STOP and invoke the subskill instead.
86
+ - **State is the truth**: gates and routing read `orchestrator-state.yml`, not memory. Re-read after every subskill returns.
87
+ - **Same state schema as assisted mode**: `completed_phases` step slugs (`codebase-analysed` … `task-completed`) are identical; resume works across modes.
88
+
89
+ ## Command Integration
90
+
91
+ Invoked via:
92
+
93
+ - `/owflow:goal-development [description] [--e2e] [--user-docs] [--research=PATH]` (new)
94
+ - `/owflow:goal-development [task-path] [--from=<step-slug>]` (resume)
95
+
96
+ Alternative: `/owflow:development` — same task in assisted mode (one subskill per invocation, fresh context each phase).
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: owflow:goal-research
3
+ description: Full orchestrated research wrapper — runs ALL research steps in one session by invoking every research-* subskill in sequence with question gates between them (equivalent to the classic unified orchestrator for research). Use /owflow:research for the same lifecycle in assisted mode — tasks can mix both modes freely.
4
+ argument-hint: "[task description | task-path] [--from=<slug>] [--type=<type>]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Orchestrated Research Wrapper
9
+
10
+ Autonomous mode for research tasks. Initializes (or resumes) the task, then invokes every required `research-*` subskill back-to-back via the Skill tool, pausing at gates between subskills. Shares `orchestrator-state.yml` with assisted mode (`/owflow:research`) — tasks can mix both modes freely.
11
+
12
+ Gates follow the shared contract in [Gate Contract](../orchestrator-framework/references/gate-contract.md) — orchestrated mode exception: each subskill's own Exit Gate acceptance question IS the loop gate (Accept = continue to the next subskill).
13
+
14
+ ## Input / Output Artifacts
15
+
16
+ | Artifact | Normal mode (this wrapper) | Quick mode (`research-quick`) |
17
+ | ----------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
18
+ | Consumed: argument (question / path)| research question (new task) or task path/identifier (resume) | n/a — this wrapper never starts a quick run; a completed quick pass just skips rows 2-3 |
19
+ | Consumed/produced: all task artifacts| owned entirely by the invoked subskills (none here — delegate, never inline) | same — the subskills run at full fidelity after a quick pass |
20
+ | State write | `orchestrator.task_ids` (task items) + `orchestrator.updated` only | none additional — state was already written by the quick pass |
21
+
22
+ ## Entry Gate
23
+
24
+ Identical to the research dispatcher — complete ALL of its entry-gate steps first (see `../research/SKILL.md` Entry Gate):
25
+
26
+ 1. Read the framework reference files NOW, exactly as the research dispatcher's Step 1: the [Dispatcher & Handoff Pattern](../orchestrator-framework/references/dispatcher-handoff.md), the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md), and the [Orchestrator Patterns](../orchestrator-framework/references/orchestrator-patterns.md).
27
+ 2. Resolve the argument the same way the research dispatcher does: task path or identifier (a directory, or a directory name under `.owflow/tasks/research/`) → **resume mode** (read `orchestrator-state.yml`, validate expected artifacts for `completed_phases`; find the first step slug NOT in `completed_phases`, with `--from=<slug>` overriding); a research question (free text) → new task; nothing provided → ask via `question` — "What is your research question?" — then WAIT. Missing state file → print `No research task found at <path>. Run /owflow:research <question> to start from scratch.` and STOP.
28
+ 3. Initialize (new task) exactly as the dispatcher: create `.owflow/tasks/research/YYYY-MM-DD-task-name/` + `orchestrator-state.yml` from the research template — `task.title` / `task.description` from the question, `task.status: in_progress`, `orchestrator.task_path`, `orchestrator.entry_point: "research"`. **CRITICAL**: use the `verify_template` tool immediately after creation to check YAML validity against `orchestrator-state-research.yml`. No project-docs discovery at this layer — the `research-plan` brief step owns it.
29
+ 4. Command flags: `--type=TYPE` → `research_context.research_type`. Subskills read it from there. This wrapper never forwards quick runs. The optional brainstorm/design chain has no flags — the chain decision is asked at the gate after synthesis (row 4 below) or made by manually invoking the optional subskills.
30
+ 5. Create ONE task item via `TaskCreate` per subskill in the upcoming loop (subject: `"<step name>: <subskill>"`, e.g. `"Brief + plan: research-plan"`), then set the execution order with `TaskUpdate addBlockedBy` (plan → gather → synthesize → optional chain (gate question) → finalize). On resume, refresh the already-evidenced items instead of re-creating them. Update statuses as the loop progresses.
31
+
32
+ **Output**:
33
+
34
+ ```
35
+ 🚀 Orchestrated Research
36
+
37
+ Task: [research question]
38
+ Directory: [task-path]
39
+ Loop: research-plan → research-gather → research-synthesize → [research-brainstorm] → [research-converge] → [research-design] → research-finalize (chain asked at the gate)
40
+ ```
41
+
42
+ ---
43
+
44
+ ## The Loop
45
+
46
+ For each subskill in sequence, execute — skipping any row whose condition is not met (a row whose slug is already in `completed_phases` counts as done):
47
+
48
+ 1. **Announce**: 1-line step banner.
49
+ 2. **Invoke**: Skill tool with `name: "<subskill>"` and `prompt: "<task-path> [flags relevant to that subskill]"`. The subskill owns its Entry Gate, delegation, and state updates.
50
+ 3. **Verify handback**: after the skill returns, re-read `orchestrator-state.yml` — confirm the expected step slugs were appended to `completed_phases` (per the Sequence and Conditionals table). A user-chosen skip of `research-brainstorm` or `research-design` appends no slug — the gate answer itself settles the decision, and the loop continues to the next selected row (or to finalize). Do not treat a skipped optional subskill as an early stop. If a subskill stopped early (entry check failed), STOP the loop and relay its routing message to the user.
51
+ 4. **Gate (subskill's Exit Gate is the loop gate)**: each subskill presents its results box and fires its own results-acceptance `question` before its handoff hint (Orchestrated-mode exception, [Gate Contract](../orchestrator-framework/references/gate-contract.md)). [Rule 5 of the Dispatcher & Handoff Pattern](../orchestrator-framework/references/dispatcher-handoff.md) — "subskills only SUGGEST the next command" — is superseded for Accept: when the user answers **Accept** to the subskill's Exit Gate question pointing at the next subskill in this loop, treat that as "continue to the next subskill" and invoke it. Any other answer (Adjust / Discuss / Stop / other options picked) ends the loop the same way a rejected gate would.
52
+ - **Exception**: the per-area convergence `question`s `research-converge` fires (one area, one question) are part of that subskill's own decision flow — they are NOT the loop gate and are NEVER auto-accepted or answered by this wrapper. There is exactly ONE gate definition per subskill hop; the wrapper adds NO second consecutive `question`.
53
+ - **Condensed lane**: this wrapper never starts a quick run. A task already started with `/owflow:research-quick` enters the loop with `brief-written` … `synthesis-complete` already recorded, so those rows are skipped like any other completed slug. An interrupted quick pass (those slugs missing) is not finished condensed here — the user runs `/owflow:research-quick <task-path>` for that.
54
+
55
+ ### Sequence and Conditionals
56
+
57
+ | Order | Subskill | Run when (from state) |
58
+ | ----- | ------------------ | ------------------------------------------------------------------------------------------------------------------- |
59
+ | 1 | research-plan | Always (new task or partial foundation) |
60
+ | 2 | research-gather | `plan-created` completed (parses `## Gathering Strategy`, or falls back to 4 default categories; existing findings count as done) |
61
+ | 3 | research-synthesize| `findings-gathered` completed |
62
+ | 4 | chain decision | `synthesis-complete` completed — the wrapper asks via `question`: brainstorm → converge → design, design-only, or straight to finalize |
63
+ | 5 | research-brainstorm| User chose brainstorming at the gate (invoking/sequencing the skill IS the decision) |
64
+ | 6 | research-converge | `alternatives-generated` completed (brainstorm ran) |
65
+ | 7 | research-design | User chose design — after `approaches-chosen`, or the design-only branch (seeded from the research report) |
66
+ | 8 | research-finalize | Foundation complete + optional chain settled (every step the user chose to run is recorded) |
67
+
68
+ A completed quick pass already recorded `brief-written` … `synthesis-complete`, so rows 2-3 are skipped as already done and the loop continues at row 4 (the chain decision). This wrapper never starts a quick run.
69
+
70
+ The optional chain is the user's choice — asked at the gate (row 4) or made by manually invoking the optional subskills. There is no enablement flag in state:
71
+
72
+ - Brainstorm chosen → `research-brainstorm` → `research-converge` → design (if chosen) → finalize.
73
+ - Design-only chosen → skip the brainstorm + converge rows → `research-design` → finalize.
74
+ - Neither chosen → all conditional rows are skipped → `research-finalize`.
75
+
76
+ `research-completed` already in `completed_phases` → the task is TERMINAL: skip the Loop and present the wrapper Exit Gate.
77
+
78
+ **Interruptible**: at any gate the user may answer "stop" — print the standard handoff block (next command + `/owflow:research <task-path>` resume hint) and end the session. The task resumes later in either mode.
79
+
80
+ ---
81
+
82
+ ## Exit Gate
83
+
84
+ When research-finalize completes (`task.status: completed`):
85
+
86
+ 1. Mark the final task item completed via `TaskUpdate`.
87
+ 2. Present the workflow results box:
88
+
89
+ ```markdown
90
+ ## ✅ RESEARCH WORKFLOW COMPLETE — <research question>
91
+
92
+ **Steps** — [executed step slugs, e.g. brief-written → plan-created → findings-gathered → synthesis-complete → alternatives-generated → approaches-chosen → design-generated → research-completed]
93
+ **Confidence** — [research_context.confidence_level]
94
+ **Decisions** — [count of ADRs in the decision log, if design ran]
95
+ **Artifacts** — [artifact inventory: outputs/research-report.md always; outputs/solution-exploration.md / outputs/high-level-design.md / outputs/decision-log.md conditionally]
96
+ ```
97
+
98
+ 3. Use `question` — "Are these results correct?" with options: **Accept** (print follow-up suggestions: clear context, then `/owflow:development <task-path>` to build on this research, `/owflow:standards-update "<lesson>"` if a standard surfaced, then end) / **Adjust** (re-open the relevant `/owflow:research-*` skill with the corrections) / **Discuss** (walk through the research summary) / **Stop here** (print the resume command `/owflow:research <task-path>` and end).
99
+
100
+ Then end. No further owflow phase commands are required.
101
+
102
+ ---
103
+
104
+ ## Loop Rules
105
+
106
+ - **Delegate, never inline**: the wrapper only sequences — all step work happens inside subskills. If you catch yourself researching/authoring outside a subskill, STOP and invoke the subskill instead.
107
+ - **State is the truth**: gates and routing read `orchestrator-state.yml`, not memory. Re-read after every subskill returns.
108
+ - **Same state schema as assisted mode**: `completed_phases` step slugs (`brief-written` … `research-completed`) are identical; resume works across modes.
109
+ - **Wrapper writes almost nothing**: step slugs, summaries, and outputs belong to the subskills — this wrapper writes ONLY `orchestrator.task_ids` (task items) and `orchestrator.updated` (timestamps).
110
+
111
+ ## Command Integration
112
+
113
+ Invoked via:
114
+
115
+ - `/owflow:goal-research [question] [--type=TYPE]` (new)
116
+ - `/owflow:goal-research [task-path] [--from=<slug>]` (resume)
117
+
118
+ Alternative: `/owflow:research` — same task in assisted mode (one subskill per invocation, fresh context each step).
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: html-renderer
2
+ name: owflow:html-renderer
3
3
  description: Render a markdown plan, idea, RFC, or design note into a self-contained, share-ready HTML file using the warm editorial visual system bundled under `references/`. Use this skill whenever the user asks to "render", "convert", "turn into HTML", "make a nice HTML version", "share this as a page", or "make this look good" for a markdown file containing a plan, proposal, idea, brief, RFC, design note, or pitch — even if they don't explicitly say "HTML". The output is a single .html file with all CSS inlined, written next to the source .md, that visually matches the reference layout in `references/index.html` and uses tokens from `references/tokens.json`.
4
4
  disable-model-invocation: true
5
5
  user-invocable: true
@@ -9,6 +9,8 @@ user-invocable: true
9
9
 
10
10
  Turn a markdown plan/idea/RFC into a single self-contained HTML page that follows the warm editorial design system bundled in this skill.
11
11
 
12
+ Gates follow the shared contract in [Gate Contract](../orchestrator-framework/references/gate-contract.md) — "Inputs and outputs" below IS the Entry Gate; Workflow step 7 (Verify) plus the Exit Gate block at the close.
13
+
12
14
  ## When to use
13
15
 
14
16
  The user gives you a markdown file (or pastes markdown) describing a plan, idea, proposal, RFC, design note, or brief, and wants a clean HTML representation they can share. Output is *always* a portable single-file `.html` with the stylesheet inlined — no external assets, no JS.
@@ -43,6 +45,17 @@ Reuse existing classes and tokens before inventing anything. If the user asks fo
43
45
  - `<body>` containing `<main class="hr-page">` wrapping the sectioned content.
44
46
  6. **Write** the file as `<basename>.html` next to the source.
45
47
  7. **Verify**: re-open the output and confirm every `class="hr-..."` you emitted exists in the inlined CSS.
48
+ 8. **Exit Gate**: present the results box, then confirm (Exit Gate contract, [Gate Contract](../orchestrator-framework/references/gate-contract.md)):
49
+
50
+ ```markdown
51
+ ## ✅ HTML RENDER COMPLETE
52
+
53
+ **Source** — `<source.md>`
54
+ **Output** — `<basename>.html` (single file, self-contained)
55
+ **Sections** — [count] · **Diagrams** — [count, if any]
56
+ ```
57
+
58
+ Use `question` — "Is the rendering correct?" with options: **Accept** (open the file in a browser and stop) / **Adjust** (user names layout/section issues; fix and re-present) / **Discuss** (explain a mapping or class choice) / **Stop here**. Note: visual correctness can only be confirmed by the user in a browser — offer to open it via the user's preferred `open`/`xdg-open` command.
46
59
 
47
60
  ## Markdown → HTML mapping
48
61
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: implementation-plan-executor
2
+ name: owflow:implementation-plan-executor
3
3
  description: Execute implementation plans by delegating each task group to task-group-implementer subagent. Main agent coordinates prepares context, invokes subagent, processes output, marks checkboxes, updates work-log. Uses lazy standards loading from INDEX.md with keyword-triggered discovery.
4
4
  user-invocable: false
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: implementation-verifier
2
+ name: owflow:implementation-verifier
3
3
  description: Verify completed implementations for quality assurance. Delegates all verification work to specialized subagents - completeness checking, test execution, code review, pragmatic review, production readiness, and reality assessment. Compiles results into comprehensive verification report. Read-only verification - reports issues but does not fix them. Use after implementation is complete and before code review/commit.
4
4
  user-invocable: false
5
5
  ---
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: migration
2
+ name: owflow:migration
3
3
  description: Orchestrates the complete migration workflow from current state analysis through implementation to compatibility verification. Handles technology migrations, platform changes, and architecture pattern transitions with adaptive risk assessment, incremental execution, and rollback planning. Use when migrating technologies, platforms, or architecture patterns.
4
4
  user-invocable: true
5
5
  ---
@@ -8,23 +8,35 @@ user-invocable: true
8
8
 
9
9
  Systematic migration workflow from current state analysis to verified migration with rollback capabilities.
10
10
 
11
- ## Initialization
11
+ Gates follow the shared contract in [Gate Contract](../orchestrator-framework/references/gate-contract.md).
12
+
13
+ ## Entry Gate
12
14
 
13
15
  **BEFORE executing any phase, you MUST complete these steps:**
14
16
 
15
- ### Step 1: Load Framework Patterns
17
+ ### Argument resolution
18
+
19
+ - **Migration description provided** → use it as the task description.
20
+ - **Task path / identifier** (directory under `.owflow/tasks/migrations/`) → resume mode: read `orchestrator-state.yml`, find the first incomplete phase (`--from=PHASE` overrides), validate existing artifacts, then continue from there.
21
+ - **Nothing provided** → ask via `question`: "What technology, platform, or architecture should be migrated, and to what?" — capture source and target state before proceeding.
22
+
23
+ ### Prerequisites
16
24
 
17
- **Read the framework reference file NOW using the Read tool:**
25
+ | Required for this skill | Where verified | Produced by |
26
+ | ----------------------- | ----------------------------------------------------- | -------------------------- |
27
+ | State file exists | `<task-path>/orchestrator-state.yml` (resume mode) | prior `/owflow:migration` run |
18
28
 
19
- 1. `../orchestrator-framework/references/orchestrator-patterns.md` - Delegation rules, interactive mode, state schema, initialization, context passing, issue resolution
29
+ On resume, if the state file is missing → print: `No migration task found at <path>. Run /owflow:migration <description> to start from scratch.` and STOP. Validate expected artifacts for completed phases (remove entries with missing artifacts).
20
30
 
21
- ### Step 2: Initialize Workflow
31
+ ### Execution steps
22
32
 
23
- 1. **Create Task Items**: Use `TaskCreate` for all phases (see Phase Configuration), then set dependencies with `TaskUpdate addBlockedBy`
24
- 2. **Create Task Directory**: `.owflow/tasks/migrations/YYYY-MM-DD-task-name/`
25
- 3. **Initialize State**: Create `orchestrator-state.yml` with migration context
26
- - **CRITICAL**: Use the `verify_template` tool immediately after creation to check YAML validity against `orchestrator-state-migration.yml`.
27
- 4. **Discover project documentation**: Read `.owflow/docs/INDEX.md` (if exists), extract ALL file paths from the "Project Documentation" section — includes predefined docs AND any user-added project docs. Store as `project_context.project_doc_paths` in state.
33
+ 1. **Load framework patterns** — Read `../orchestrator-framework/references/orchestrator-patterns.md` NOW: delegation rules, interactive mode, state schema, initialization, context passing, issue resolution.
34
+ 2. **Initialize workflow:**
35
+ 1. **Create Task Items**: Use `TaskCreate` for all phases (see Phase Configuration), then set dependencies with `TaskUpdate addBlockedBy`
36
+ 2. **Create Task Directory**: `.owflow/tasks/migrations/YYYY-MM-DD-task-name/`
37
+ 3. **Initialize State**: Create `orchestrator-state.yml` with migration context
38
+ - **CRITICAL**: Use the `verify_template` tool immediately after creation to check YAML validity against `orchestrator-state-migration.yml`.
39
+ 4. **Discover project documentation**: Read `.owflow/docs/INDEX.md` (if exists), extract ALL file paths from the "Project Documentation" section — includes predefined docs AND any user-added project docs. Store as `project_context.project_doc_paths` in state.
28
40
 
29
41
  **Output**:
30
42
 
@@ -282,14 +294,14 @@ question - Display executive summary: total issues found, issues fixed, issues r
282
294
 
283
295
  ---
284
296
 
285
- ### Phase 8: Documentation (Optional)
297
+ ### Phase 8: Documentation → Exit Gate (Optional)
286
298
 
287
299
  > **Phase gate**: Requires `question` confirmation from the preceding phase before executing.
288
300
 
289
- **Purpose**: Create migration guide for end users
290
- **Execute**: Task tool - `user-docs-generator` subagent
291
- **Output**: `documentation/migration-guide.md`
292
- **State**: Set documentation complete
301
+ **Purpose**: Create migration guide (optional) and run the Exit Gate
302
+ **Execute**: Task tool - `user-docs-generator` subagent (conditional) + Direct (Exit Gate)
303
+ **Output**: `documentation/migration-guide.md` (conditional)
304
+ **State**: Set documentation complete, then `task.status: completed`
293
305
 
294
306
  **Skip if**: `options.docs_enabled = false`
295
307
 
@@ -301,6 +313,39 @@ question - Display executive summary: total issues found, issues fixed, issues r
301
313
  - Rollback procedures
302
314
  - Troubleshooting common issues
303
315
 
316
+ **Results box** (present regardless of whether docs ran):
317
+
318
+ ```markdown
319
+ ## ✅ MIGRATION COMPLETE — <task name>
320
+
321
+ **Migration type** — [code / data / architecture]
322
+ **Strategy** — [incremental / big-bang / dual-run / phased]
323
+ **Verification** — [final verdict]
324
+ **Rollback plan** — [path / status]
325
+ **Migration guide** — [path] / not generated
326
+
327
+ **Artifacts**
328
+ - `analysis/current-state-analysis.md`
329
+ - `analysis/target-state-plan.md`
330
+ - `analysis/rollback-plan.md`
331
+ - `implementation/work-log.md`
332
+ - `verification/implementation-verification.md`
333
+ - `documentation/migration-guide.md` [conditional]
334
+ ```
335
+
336
+ **Results-acceptance question** — use `question` — "Are these results correct?" with options:
337
+
338
+ - **Accept** — migration is complete; print next steps below.
339
+ - **Adjust** — re-run the affected phase (fixes, re-verification, docs) with the user's corrections, then re-present the results box.
340
+ - **Discuss** — walk through specific results (verification verdicts, rollback readiness, guide contents) in more depth; then re-ask.
341
+ - **Stop here** — print the resume command (`/owflow:migration <task-path>`) and end.
342
+
343
+ **Next steps (after Accept)**:
344
+
345
+ - `/owflow:reviews-pragmatic <task-path>` — post-migration over-engineering check
346
+ - `/owflow:standards-update "<lesson learned>"` — capture migration learnings as standards
347
+ - Commit the changes and open a PR using the migration guide's procedures
348
+
304
349
  → End of workflow
305
350
 
306
351
  ---
@@ -355,7 +400,7 @@ Refer to the template [src/templates/orchestrator-state-migration.yml](../../tem
355
400
 
356
401
  Invoked via:
357
402
 
358
- - `/migration [description] [--type=TYPE]` (new)
359
- - `/migration [task-path] [--from=PHASE]` (resume)
403
+ - `/owflow:migration [description] [--type=TYPE]` (new)
404
+ - `/owflow:migration [task-path] [--from=PHASE]` (resume)
360
405
 
361
406
  Task directory: `.owflow/tasks/migrations/YYYY-MM-DD-task-name/`
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: orchestrator-framework
2
+ name: owflow:orchestrator-framework
3
3
  description: Shared orchestration patterns for all workflow orchestrators. NOT an executable skill - provides reference documentation for phase execution, state management, interactive mode, and initialization. All orchestrators reference these patterns.
4
4
  user-invocable: false
5
5
  ---
@@ -0,0 +1,7 @@
1
+ # Command Namespacing
2
+
3
+ How commands and skills are named and referenced. Extracted from `orchestrator-patterns.md` (Section 8) so skills can link to it directly.
4
+
5
+ - Slash commands registered from `src/commands/*.md` use `name: owflow:<command>` in frontmatter; users invoke `/owflow:<command>`.
6
+ - **Skill `name:` fields are prefixed too.** Skill-tool invocations (`skill: "owflow:development"`, `skills:` frontmatter preloads, work.md routing) always reference `owflow:`-prefixed skill names.
7
+ - Handoff messages, docs, and cross-references always display the prefixed slash command — never the bare skill name — in user-facing text.
@@ -0,0 +1,20 @@
1
+ # Confirm-or-Revise Exception
2
+
3
+ Extension of the [Gate Contract](gate-contract.md) for utility skills with explicit no-follow-up contracts — currently `agents-md-generator` and `rule-reviewer`.
4
+
5
+ ## Rule
6
+
7
+ The standard Exit Gate's results-acceptance question offers four options (Accept / Adjust / Discuss / Stop). Utility skills whose whole purpose is to produce a single artifact and stop **narrow this to confirm-or-revise only**:
8
+
9
+ - **Confirm** — the artifact is good; end the skill.
10
+ - **Revise** — user specifies what to change; re-work only the affected parts of the artifact, then re-present it and re-ask.
11
+
12
+ ## What stays prohibited
13
+
14
+ - No follow-up suggestions, "next steps" hints, or "Other options" blocks after Confirm.
15
+ - No auto-chaining into other skills or workflows.
16
+ - Follow-up work happens only if the user explicitly asks for it.
17
+
18
+ ## Why
19
+
20
+ Utility skills end their contract with the artifact itself — there is no pipeline to continue — so offering pipeline-style next steps would imply a workflow that does not exist.
@@ -0,0 +1,54 @@
1
+ # Delegation Rules
2
+
3
+ Shared rules for how orchestrators and subskills delegate work. Extracted from `orchestrator-patterns.md` (Section 1) so skills can link to it directly.
4
+
5
+ ---
6
+
7
+ **Always use Skill/Task tools to delegate. Never execute delegated work inline.**
8
+
9
+ When a phase requires delegation:
10
+
11
+ 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
12
+ 2. Use the **Task tool** for **subagents/agents** — spawns an isolated subprocess that returns results when complete
13
+ 3. Wait for completion before continuing
14
+
15
+ **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."
16
+
17
+ **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.
18
+
19
+ **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.
20
+
21
+ ## Anti-Patterns
22
+
23
+ | Anti-Pattern | Why It's Wrong | Correct Approach |
24
+ | --------------------------------------- | ------------------------------------------- | ----------------------------------------------------- |
25
+ | "I'll analyze the codebase..." | Bypasses codebase-analyzer skill | Use `Skill` tool with `codebase-analyzer` |
26
+ | "Let me create the specification..." | Bypasses specification-creator | Use `Task` tool with `specification-creator` subagent |
27
+ | "Looking at the gaps between..." | Bypasses gap-analyzer subagent | Use `Task` tool with `gap-analyzer` |
28
+ | "I'll implement this by..." | Bypasses implementation-plan-executor skill | Use `Skill` tool with `implementation-plan-executor` |
29
+ | Reading a SKILL.md then doing the work | Skill files are instructions FOR skills | Use Skill tool to invoke |
30
+ | Spawning Explore agents in orchestrator | Codebase-analyzer manages its own agents | Invoke skill, let IT spawn agents |
31
+
32
+ ## When Inline Execution is Acceptable
33
+
34
+ These do NOT require delegation:
35
+
36
+ 1. **Clarifying questions phases** — question is direct
37
+ 2. **State updates** — Reading/writing orchestrator-state.yml
38
+ 3. **Phase announcements** — Outputting status messages
39
+ 4. **Simple decisions** — Enabling/disabling optional phases
40
+ 5. **Finalization** — Creating summary, updating metadata
41
+
42
+ For all analysis, planning, implementation, and verification phases: **ALWAYS DELEGATE**.
43
+
44
+ **Never acceptable inline** (regardless of perceived task simplicity):
45
+
46
+ - Specification creation → always delegate to `specification-creator` subagent
47
+ - Implementation planning → always delegate to `implementation-planner` subagent
48
+ - Gap analysis → always delegate to `gap-analyzer` subagent
49
+ - Codebase analysis → always delegate to `codebase-analyzer` skill
50
+ - Code review → always delegate to `code-reviewer` subagent
51
+ - Test execution → always delegate to `test-suite-runner` subagent
52
+ - Implementation completeness → always delegate to `implementation-completeness-checker` subagent
53
+
54
+ "The task is simple" is NOT a valid reason to skip delegation.