owflow 0.4.2 → 0.4.3

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 (59) hide show
  1. package/README.md +2 -2
  2. package/dist/agents/information-gatherer.md +691 -691
  3. package/dist/agents/research-planner.md +450 -450
  4. package/dist/agents/research-synthesizer.md +403 -403
  5. package/dist/agents/solution-brainstormer.md +257 -257
  6. package/dist/agents/solution-designer.md +372 -372
  7. package/dist/commands/work.md +6 -6
  8. package/dist/configuration/commands-config.js +57 -0
  9. package/dist/skills/diagrams-mermaid/SKILL.md +1 -0
  10. package/dist/skills/flow-init/SKILL.md +1 -1
  11. package/dist/skills/goal-research/SKILL.md +118 -118
  12. package/dist/skills/html-renderer/SKILL.md +1 -0
  13. package/dist/skills/migration/SKILL.md +1 -0
  14. package/dist/skills/orchestrator-framework/references/command-namespacing.md +1 -1
  15. package/dist/skills/orchestrator-framework/references/gate-contract.md +112 -112
  16. package/dist/skills/performance/SKILL.md +1 -0
  17. package/dist/skills/research/SKILL.md +249 -249
  18. package/dist/skills/research-brainstorm/SKILL.md +120 -120
  19. package/dist/skills/research-converge/SKILL.md +130 -130
  20. package/dist/skills/research-design/SKILL.md +146 -146
  21. package/dist/skills/research-finalize/SKILL.md +125 -125
  22. package/dist/skills/research-fork/SKILL.md +190 -190
  23. package/dist/skills/research-gather/SKILL.md +133 -133
  24. package/dist/skills/research-plan/SKILL.md +141 -141
  25. package/dist/skills/research-quick/SKILL.md +139 -139
  26. package/dist/skills/research-synthesize/SKILL.md +127 -127
  27. package/dist/skills/rule-reviewer/SKILL.md +1 -1
  28. package/dist/skills/standards-discover/SKILL.md +1 -0
  29. package/package.json +1 -1
  30. package/dist/commands/agents-md-generator.md +0 -36
  31. package/dist/commands/dev-analyze.md +0 -33
  32. package/dist/commands/dev-bugfix.md +0 -37
  33. package/dist/commands/dev-finalize.md +0 -33
  34. package/dist/commands/dev-implement.md +0 -34
  35. package/dist/commands/dev-plan.md +0 -37
  36. package/dist/commands/dev-spec.md +0 -37
  37. package/dist/commands/dev-tdd-red.md +0 -33
  38. package/dist/commands/dev-verify.md +0 -33
  39. package/dist/commands/development.md +0 -36
  40. package/dist/commands/diagrams-mermaid.md +0 -36
  41. package/dist/commands/flow-init.md +0 -36
  42. package/dist/commands/goal-development.md +0 -32
  43. package/dist/commands/goal-research.md +0 -33
  44. package/dist/commands/html-renderer.md +0 -36
  45. package/dist/commands/migration.md +0 -36
  46. package/dist/commands/performance.md +0 -36
  47. package/dist/commands/research-brainstorm.md +0 -33
  48. package/dist/commands/research-converge.md +0 -33
  49. package/dist/commands/research-design.md +0 -33
  50. package/dist/commands/research-finalize.md +0 -33
  51. package/dist/commands/research-fork.md +0 -40
  52. package/dist/commands/research-gather.md +0 -33
  53. package/dist/commands/research-plan.md +0 -37
  54. package/dist/commands/research-quick.md +0 -37
  55. package/dist/commands/research-synthesize.md +0 -33
  56. package/dist/commands/research.md +0 -55
  57. package/dist/commands/rule-reviewer.md +0 -38
  58. package/dist/commands/standards-discover.md +0 -36
  59. package/dist/commands/standards-update.md +0 -36
@@ -1,139 +1,139 @@
1
- ---
2
- name: owflow:research-quick
3
- description: Research skill — the quick lane. Bootstraps a standard research task and fuses brief, plan + sources, gather, and synthesis into one condensed pass — the only place where the planner delegation, the gatherer fan, and the synthesizer delegation are condensable. Produces the same standard artifacts and state as the full lane; continuable by any research subskill at full fidelity.
4
- argument-hint: "[task-path-or-identifier | \"description\"]"
5
- user-invocable: true
6
- ---
7
-
8
- # Research Quick — Condensed Brief → Synthesis (brief-written … synthesis-complete)
9
-
10
- Quick lane of the research workflow. Bootstraps a standard research task (state file, docs discovery) and then fuses brief, plan + sources, gather, and synthesis into one condensed pass. It does NOT introduce a second state format: the task gets a standard `orchestrator-state.yml` from `orchestrator-state-research.yml` with standard artifacts on the exact paths the full lane uses, so every other research subskill can pick it up afterwards and resume at full fidelity (gather re-fans only missing categories; later subskills treat existing artifacts as pre-existing). State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
-
12
- Related phases: `/owflow:research-plan` (the full-lane owner of the brief and plan steps this lane condenses), `/owflow:research-gather` + `/owflow:research-synthesize` (the full-lane owners of the condensed gather and synthesis steps).
13
-
14
- ## Entry Gate
15
-
16
- Resolve the argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). The argument may be:
17
-
18
- - **Path** (absolute or project-relative) to the task directory — use as-is.
19
- - **Identifier** — exact directory name inside `.owflow/tasks/research/` (e.g., `2026-09-26-my-research`); resolve to its path.
20
- - **Research question** — anything else (free text, e.g. `"evaluate caching strategies for our API"`) is treated as a new research question for quick bootstrap.
21
-
22
- Route by argument kind:
23
-
24
- | Situation | Route |
25
- | ------------------------------------------------------------- | ---------------------------------------------------------------------------- |
26
- | Task path/identifier, quick lane not yet complete | Quick pass for the missing pieces (below) |
27
- | Task path/identifier, `synthesis-complete` present | Quick lane already ran — report existing results and route to the Exit Gate |
28
- | Research question (or no argument after prompt) | Quick bootstrap (create task + fused brief → synthesis) |
29
- | Missing argument | Prompt for input (path, identifier, or research question), then re-route |
30
-
31
- If the path does **not exist** or matches **no identifier** → print the blocked block, then STOP (never guess or auto-pick a task):
32
-
33
- 1. Steps that must be completed first (in order), each with its command:
34
- - State initialization (`task.*`) → `/owflow:research <question>`
35
- 2. List available research-task identifiers (directories under `.owflow/tasks/research/`) to resume from, if any.
36
- 3. Hint: `Run /owflow:research <question> to start a task from scratch, or pass a task path/identifier to resume.`
37
-
38
- ### Prerequisites
39
-
40
- | Required for this skill | Where verified | Produced by |
41
- | ------------------------------------- | ---------------------------------------------------- | ------------------------------------------------- |
42
- | State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:research <question>` (dispatcher init) or the quick bootstrap below |
43
- | Research question resolved (resume) | `research_context.research_question` non-null in state | quick bootstrap (`brief-written`) |
44
-
45
- 1. **Read `orchestrator-state.yml`** from the task path. If missing → quick bootstrap (below). On decline → print the blocked block and STOP.
46
- 2. **Content check (resume)**: `research_context.research_question` must be non-null. If null (state exists, question never recorded), prompt via `question` — "What is your research question?" — and let the condensed brief record it in state.
47
- 3. **Skip/resume — artifacts before state**: adopt existing artifacts instead of re-running (`planning/research-brief.md` → `brief-written`; `planning/research-plan.md` AND `planning/sources.md` → `plan-created`; findings files → `findings-gathered`; `analysis/synthesis.md` + `outputs/research-report.md` → `synthesis-complete`), then condense ONLY the quick-pass pieces that are still missing. All pieces present → report the existing results and route to the Exit Gate.
48
-
49
- ## Input / Output Artifacts
50
-
51
- | Artifact | Normal mode (full lane, for comparison) | Quick mode (this skill's condensed pass) |
52
- | ---------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------- |
53
- | Consumed: argument | task path/identifier (subskills never bootstrap) | task path/identifier OR a research question (bootstrap + fuse in one pass) |
54
- | Produced: `planning/research-brief.md` | inline (`research-plan` brief step) | inline — condensed brief, identical path |
55
- | Produced: `planning/research-plan.md`, `planning/sources.md` | delegated to `research-planner` | written directly inline (the ONLY exception to the planner anti-pattern) |
56
- | Produced: `analysis/findings/*.md` | `information-gatherer` fan (cap 8, one agent per category) | inline with zero agents (≤2 categories) or capped fan at 3 agents |
57
- | Produced: `analysis/synthesis.md`, `outputs/research-report.md` | delegated to `research-synthesizer` | ALWAYS inline (the ONLY exception to the synthesizer anti-pattern) |
58
- | State write | `brief-written`, `plan-created`, `findings-gathered`, `synthesis-complete` (owned by `research-plan`/`research-gather`/`research-synthesize`) | same slugs and fields per step, `entry_point: "research-quick"`, condensation noted in `phase_summaries.gather` / `phase_summaries.synthesize` |
59
-
60
- ## Quick bootstrap (no state file, question argument)
61
-
62
- 1. **Create Task Directory**: `.owflow/tasks/research/YYYY-MM-DD-task-name/` (3–5 kebab-case words from the question).
63
- 2. **Initialize State**: create `orchestrator-state.yml` from the research template with `task.title` / `task.description` from the question, `task.status: in_progress`, and `orchestrator.entry_point: "research-quick"`.
64
- - **CRITICAL**: use the `verify_template` tool immediately after creation to check YAML validity against `orchestrator-state-research.yml`.
65
- 3. **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 — and store them in `research_context.project_doc_paths` (identical to the full lane's brief step).
66
- 4. If `.owflow/docs/` does not exist, proceed without project documentation and note the graceful-fallback hint in the completion message: `"No AI SDLC documentation found. Consider running /owflow:flow-init to initialize project documentation and coding standards."`
67
-
68
- ## Fused condensed pass
69
-
70
- **MANDATORY order — brief before plan, plan before gather, gather before synthesis:**
71
-
72
- 1. **Condensed brief** — run the full lane's brief step inline (parse question, classify type, determine scope, success criteria, write `planning/research-brief.md`, docs discovery when not already done). Append `brief-written` on completion and set `research_context.research_type`, `research_question`, `scope`, and `project_doc_paths` — the same fields the full-lane brief step writes.
73
- 2. **Condensed plan + sources — written directly, NO delegation**: read the research-plan skill's `references/research-methodologies.md` using the Read tool (methodology selection still applies), then write `planning/research-plan.md` and `planning/sources.md` as separate artifacts on the exact full-lane paths. **Quick acceptance check: the plan MUST keep a `## Gathering Strategy` section (categories + count)** — this pass uses that count to choose inline gather vs a capped fan; `research-gather` parses the same section and falls back to 4 default categories only when it is absent. **This REPLACES the `research-planner` delegation (the quick lane is the ONLY exception to the plan anti-pattern)**, and it pins the gathering categories: ≤2 categories → the gather step below stays inline with zero agents; more → fan capped at 3. Append `plan-created` on completion and set `research_context.methodology`, `sources`, and `phase_summaries.plan` — the same fields the full-lane plan step writes.
74
- 3. **Condensed gather** — when the plan's Gathering Strategy (heading matched by the words "Gathering Strategy", numeric prefix tolerated) has ≤2 categories, write the per-category finding files into `analysis/findings/` directly, zero agents (**the quick lane is the ONLY exception to the always-fan rule**); with 3+ categories, launch the fan capped at 3 `information-gatherer` agents in ONE message (same mechanics as `/owflow:research-gather`). Append `findings-gathered` on completion; set `research_context.gathering_strategy` and `research_outputs.findings_directory`; note the condensation in `phase_summaries.gather`.
75
- 4. **Condensed synthesis — ALWAYS inline**: write `analysis/synthesis.md` (pattern analysis, cross-references, documented gaps and uncertainties) and `outputs/research-report.md` (comprehensive report answering the research question, confidence per finding) directly (**the quick lane is the ONLY exception to the `research-synthesizer` delegation**); set `research_context.confidence_level`, `research_outputs.synthesis`, and `research_outputs.research_report`. Append `synthesis-complete` on completion — condensation noted in `phase_summaries.synthesize`.
76
-
77
- Slugs are appended individually on each step's completion — never batched (see State Update Convention). Then continue with the **Exit Gate** below.
78
-
79
- ## State Update Convention (per step)
80
-
81
- Apply after EVERY step above:
82
-
83
- 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`brief-written`, `plan-created`, `findings-gathered`, `synthesis-complete`) plus that step's fields. Never batch multiple steps into one end-of-skill write — each slug lands on its own step's completion, with the same state fields the full-lane owner writes (`methodology`/`sources`, `gathering_strategy`, `research_outputs.findings_directory`/`synthesis`/`research_report`) and condensation noted in `phase_summaries.gather` / `phase_summaries.synthesize`.
84
- 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
85
- 3. **Failures** — if the step fails or its retries are abandoned, do NOT append to `completed_phases`; instead append the step's slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["<slug>"]`.
86
- 4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-research.yml`. Fix any reported issue immediately before proceeding.
87
- 5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run to confirm the full state matches everything performed in this session.
88
-
89
- ## Recovery
90
-
91
- | Step | Max Attempts | Strategy |
92
- | ----------------------------- | ------------ | ----------------------------------------------------- |
93
- | Brief (`brief-written`) | 1 | Prompt user for clarification if question unclear |
94
- | Plan (`plan-created`) | 2 | Expand search patterns, use fallback mixed methodology |
95
- | Gather (`findings-gathered`) | 1 | Re-run the failed category only (inline or capped fan) |
96
- | Synthesis (`synthesis-complete`) | 1 | Re-write from existing findings and report inputs |
97
-
98
- ## Exit Gate
99
-
100
- Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
101
-
102
- ### Results box
103
-
104
- ```markdown
105
- ## ✅ RESEARCH QUICK COMPLETE — <research question>
106
-
107
- **Type** — [research type]
108
- **Methodology** — [methodology summary from state]
109
- **Gathering categories** — [N categories in the plan's Gathering Strategy]
110
- **Pass** — brief → plan → gather → synthesis fused inline
111
-
112
- **Artifacts**
113
-
114
- - `planning/research-brief.md`
115
- - `planning/research-plan.md` (keeps the parsable `## Gathering Strategy` section)
116
- - `planning/sources.md`
117
- - `analysis/findings/*.md`
118
- - `analysis/synthesis.md`
119
- - `outputs/research-report.md`
120
- ```
121
-
122
- ### Results-acceptance question
123
-
124
- Use `question` — "Are these results correct?" with options:
125
-
126
- - **Accept** — the condensed-pass artifacts are good; continue.
127
- - **Adjust** — re-run only the affected quick-pass piece (brief, plan, gather, or synthesis) with the user's corrections, update state and artifacts, re-present the results box.
128
- - **Discuss** — walk through a specific part (research type, methodology, findings, report) in more depth; then re-ask.
129
- - **Stop here** — print the resume command (`/owflow:research-quick <task-path>`) and end.
130
-
131
- ### Next steps (after Accept)
132
-
133
- The task is a regular research task — the optional chain is the user's choice from here:
134
-
135
- - `→ /owflow:research-brainstorm <task-path>` — brainstorm solution alternatives (→ converge → design, when wanted).
136
- - `→ /owflow:research-design <task-path>` — design-only branch, seeded from the research report.
137
- - `→ /owflow:research-finalize <task-path>` — no optional chain: inventories the outputs and completes the task.
138
-
139
- Then STOP.
1
+ ---
2
+ name: owflow:research-quick
3
+ description: Research skill — the quick lane. Bootstraps a standard research task and fuses brief, plan + sources, gather, and synthesis into one condensed pass — the only place where the planner delegation, the gatherer fan, and the synthesizer delegation are condensable. Produces the same standard artifacts and state as the full lane; continuable by any research subskill at full fidelity.
4
+ argument-hint: "[task-path-or-identifier | \"description\"]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Research Quick — Condensed Brief → Synthesis (brief-written … synthesis-complete)
9
+
10
+ Quick lane of the research workflow. Bootstraps a standard research task (state file, docs discovery) and then fuses brief, plan + sources, gather, and synthesis into one condensed pass. It does NOT introduce a second state format: the task gets a standard `orchestrator-state.yml` from `orchestrator-state-research.yml` with standard artifacts on the exact paths the full lane uses, so every other research subskill can pick it up afterwards and resume at full fidelity (gather re-fans only missing categories; later subskills treat existing artifacts as pre-existing). State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
+
12
+ Related phases: `/owflow:research-plan` (the full-lane owner of the brief and plan steps this lane condenses), `/owflow:research-gather` + `/owflow:research-synthesize` (the full-lane owners of the condensed gather and synthesis steps).
13
+
14
+ ## Entry Gate
15
+
16
+ Resolve the argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). The argument may be:
17
+
18
+ - **Path** (absolute or project-relative) to the task directory — use as-is.
19
+ - **Identifier** — exact directory name inside `.owflow/tasks/research/` (e.g., `2026-09-26-my-research`); resolve to its path.
20
+ - **Research question** — anything else (free text, e.g. `"evaluate caching strategies for our API"`) is treated as a new research question for quick bootstrap.
21
+
22
+ Route by argument kind:
23
+
24
+ | Situation | Route |
25
+ | ------------------------------------------------------------- | ---------------------------------------------------------------------------- |
26
+ | Task path/identifier, quick lane not yet complete | Quick pass for the missing pieces (below) |
27
+ | Task path/identifier, `synthesis-complete` present | Quick lane already ran — report existing results and route to the Exit Gate |
28
+ | Research question (or no argument after prompt) | Quick bootstrap (create task + fused brief → synthesis) |
29
+ | Missing argument | Prompt for input (path, identifier, or research question), then re-route |
30
+
31
+ If the path does **not exist** or matches **no identifier** → print the blocked block, then STOP (never guess or auto-pick a task):
32
+
33
+ 1. Steps that must be completed first (in order), each with its command:
34
+ - State initialization (`task.*`) → `/owflow:research <question>`
35
+ 2. List available research-task identifiers (directories under `.owflow/tasks/research/`) to resume from, if any.
36
+ 3. Hint: `Run /owflow:research <question> to start a task from scratch, or pass a task path/identifier to resume.`
37
+
38
+ ### Prerequisites
39
+
40
+ | Required for this skill | Where verified | Produced by |
41
+ | ------------------------------------- | ---------------------------------------------------- | ------------------------------------------------- |
42
+ | State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:research <question>` (dispatcher init) or the quick bootstrap below |
43
+ | Research question resolved (resume) | `research_context.research_question` non-null in state | quick bootstrap (`brief-written`) |
44
+
45
+ 1. **Read `orchestrator-state.yml`** from the task path. If missing → quick bootstrap (below). On decline → print the blocked block and STOP.
46
+ 2. **Content check (resume)**: `research_context.research_question` must be non-null. If null (state exists, question never recorded), prompt via `question` — "What is your research question?" — and let the condensed brief record it in state.
47
+ 3. **Skip/resume — artifacts before state**: adopt existing artifacts instead of re-running (`planning/research-brief.md` → `brief-written`; `planning/research-plan.md` AND `planning/sources.md` → `plan-created`; findings files → `findings-gathered`; `analysis/synthesis.md` + `outputs/research-report.md` → `synthesis-complete`), then condense ONLY the quick-pass pieces that are still missing. All pieces present → report the existing results and route to the Exit Gate.
48
+
49
+ ## Input / Output Artifacts
50
+
51
+ | Artifact | Normal mode (full lane, for comparison) | Quick mode (this skill's condensed pass) |
52
+ | ---------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------- |
53
+ | Consumed: argument | task path/identifier (subskills never bootstrap) | task path/identifier OR a research question (bootstrap + fuse in one pass) |
54
+ | Produced: `planning/research-brief.md` | inline (`research-plan` brief step) | inline — condensed brief, identical path |
55
+ | Produced: `planning/research-plan.md`, `planning/sources.md` | delegated to `research-planner` | written directly inline (the ONLY exception to the planner anti-pattern) |
56
+ | Produced: `analysis/findings/*.md` | `information-gatherer` fan (cap 8, one agent per category) | inline with zero agents (≤2 categories) or capped fan at 3 agents |
57
+ | Produced: `analysis/synthesis.md`, `outputs/research-report.md` | delegated to `research-synthesizer` | ALWAYS inline (the ONLY exception to the synthesizer anti-pattern) |
58
+ | State write | `brief-written`, `plan-created`, `findings-gathered`, `synthesis-complete` (owned by `research-plan`/`research-gather`/`research-synthesize`) | same slugs and fields per step, `entry_point: "research-quick"`, condensation noted in `phase_summaries.gather` / `phase_summaries.synthesize` |
59
+
60
+ ## Quick bootstrap (no state file, question argument)
61
+
62
+ 1. **Create Task Directory**: `.owflow/tasks/research/YYYY-MM-DD-task-name/` (3–5 kebab-case words from the question).
63
+ 2. **Initialize State**: create `orchestrator-state.yml` from the research template with `task.title` / `task.description` from the question, `task.status: in_progress`, and `orchestrator.entry_point: "research-quick"`.
64
+ - **CRITICAL**: use the `verify_template` tool immediately after creation to check YAML validity against `orchestrator-state-research.yml`.
65
+ 3. **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 — and store them in `research_context.project_doc_paths` (identical to the full lane's brief step).
66
+ 4. If `.owflow/docs/` does not exist, proceed without project documentation and note the graceful-fallback hint in the completion message: `"No AI SDLC documentation found. Consider running /owflow:flow-init to initialize project documentation and coding standards."`
67
+
68
+ ## Fused condensed pass
69
+
70
+ **MANDATORY order — brief before plan, plan before gather, gather before synthesis:**
71
+
72
+ 1. **Condensed brief** — run the full lane's brief step inline (parse question, classify type, determine scope, success criteria, write `planning/research-brief.md`, docs discovery when not already done). Append `brief-written` on completion and set `research_context.research_type`, `research_question`, `scope`, and `project_doc_paths` — the same fields the full-lane brief step writes.
73
+ 2. **Condensed plan + sources — written directly, NO delegation**: read the research-plan skill's `references/research-methodologies.md` using the Read tool (methodology selection still applies), then write `planning/research-plan.md` and `planning/sources.md` as separate artifacts on the exact full-lane paths. **Quick acceptance check: the plan MUST keep a `## Gathering Strategy` section (categories + count)** — this pass uses that count to choose inline gather vs a capped fan; `research-gather` parses the same section and falls back to 4 default categories only when it is absent. **This REPLACES the `research-planner` delegation (the quick lane is the ONLY exception to the plan anti-pattern)**, and it pins the gathering categories: ≤2 categories → the gather step below stays inline with zero agents; more → fan capped at 3. Append `plan-created` on completion and set `research_context.methodology`, `sources`, and `phase_summaries.plan` — the same fields the full-lane plan step writes.
74
+ 3. **Condensed gather** — when the plan's Gathering Strategy (heading matched by the words "Gathering Strategy", numeric prefix tolerated) has ≤2 categories, write the per-category finding files into `analysis/findings/` directly, zero agents (**the quick lane is the ONLY exception to the always-fan rule**); with 3+ categories, launch the fan capped at 3 `information-gatherer` agents in ONE message (same mechanics as `/owflow:research-gather`). Append `findings-gathered` on completion; set `research_context.gathering_strategy` and `research_outputs.findings_directory`; note the condensation in `phase_summaries.gather`.
75
+ 4. **Condensed synthesis — ALWAYS inline**: write `analysis/synthesis.md` (pattern analysis, cross-references, documented gaps and uncertainties) and `outputs/research-report.md` (comprehensive report answering the research question, confidence per finding) directly (**the quick lane is the ONLY exception to the `research-synthesizer` delegation**); set `research_context.confidence_level`, `research_outputs.synthesis`, and `research_outputs.research_report`. Append `synthesis-complete` on completion — condensation noted in `phase_summaries.synthesize`.
76
+
77
+ Slugs are appended individually on each step's completion — never batched (see State Update Convention). Then continue with the **Exit Gate** below.
78
+
79
+ ## State Update Convention (per step)
80
+
81
+ Apply after EVERY step above:
82
+
83
+ 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`brief-written`, `plan-created`, `findings-gathered`, `synthesis-complete`) plus that step's fields. Never batch multiple steps into one end-of-skill write — each slug lands on its own step's completion, with the same state fields the full-lane owner writes (`methodology`/`sources`, `gathering_strategy`, `research_outputs.findings_directory`/`synthesis`/`research_report`) and condensation noted in `phase_summaries.gather` / `phase_summaries.synthesize`.
84
+ 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
85
+ 3. **Failures** — if the step fails or its retries are abandoned, do NOT append to `completed_phases`; instead append the step's slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["<slug>"]`.
86
+ 4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-research.yml`. Fix any reported issue immediately before proceeding.
87
+ 5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run to confirm the full state matches everything performed in this session.
88
+
89
+ ## Recovery
90
+
91
+ | Step | Max Attempts | Strategy |
92
+ | ----------------------------- | ------------ | ----------------------------------------------------- |
93
+ | Brief (`brief-written`) | 1 | Prompt user for clarification if question unclear |
94
+ | Plan (`plan-created`) | 2 | Expand search patterns, use fallback mixed methodology |
95
+ | Gather (`findings-gathered`) | 1 | Re-run the failed category only (inline or capped fan) |
96
+ | Synthesis (`synthesis-complete`) | 1 | Re-write from existing findings and report inputs |
97
+
98
+ ## Exit Gate
99
+
100
+ Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
101
+
102
+ ### Results box
103
+
104
+ ```markdown
105
+ ## ✅ RESEARCH QUICK COMPLETE — <research question>
106
+
107
+ **Type** — [research type]
108
+ **Methodology** — [methodology summary from state]
109
+ **Gathering categories** — [N categories in the plan's Gathering Strategy]
110
+ **Pass** — brief → plan → gather → synthesis fused inline
111
+
112
+ **Artifacts**
113
+
114
+ - `planning/research-brief.md`
115
+ - `planning/research-plan.md` (keeps the parsable `## Gathering Strategy` section)
116
+ - `planning/sources.md`
117
+ - `analysis/findings/*.md`
118
+ - `analysis/synthesis.md`
119
+ - `outputs/research-report.md`
120
+ ```
121
+
122
+ ### Results-acceptance question
123
+
124
+ Use `question` — "Are these results correct?" with options:
125
+
126
+ - **Accept** — the condensed-pass artifacts are good; continue.
127
+ - **Adjust** — re-run only the affected quick-pass piece (brief, plan, gather, or synthesis) with the user's corrections, update state and artifacts, re-present the results box.
128
+ - **Discuss** — walk through a specific part (research type, methodology, findings, report) in more depth; then re-ask.
129
+ - **Stop here** — print the resume command (`/owflow:research-quick <task-path>`) and end.
130
+
131
+ ### Next steps (after Accept)
132
+
133
+ The task is a regular research task — the optional chain is the user's choice from here:
134
+
135
+ - `→ /owflow:research-brainstorm <task-path>` — brainstorm solution alternatives (→ converge → design, when wanted).
136
+ - `→ /owflow:research-design <task-path>` — design-only branch, seeded from the research report.
137
+ - `→ /owflow:research-finalize <task-path>` — no optional chain: inventories the outputs and completes the task.
138
+
139
+ Then STOP.
@@ -1,127 +1,127 @@
1
- ---
2
- name: owflow:research-synthesize
3
- description: Research skill — delegates synthesis and evidence-based reporting to the research-synthesizer agent, producing the synthesis document and the comprehensive research report with per-finding confidence. Closes the research foundation (synthesis-complete) at the boundary with the optional chain (user choice).
4
- argument-hint: "[task-path-or-identifier]"
5
- user-invocable: true
6
- ---
7
-
8
- # Research Synthesize — Synthesis & Research Report (synthesis-complete)
9
-
10
- Work phase of the research workflow. Delegates pattern synthesis and evidence-based reporting to the research-synthesizer agent (`analysis/synthesis.md` + `outputs/research-report.md`). This is the research-foundation boundary: the Exit Gate is the pause between the foundation and the optional-phase decision. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
-
12
- Related phases: `/owflow:research-gather` (produces the merged findings); the optional chain (`research-brainstorm` / `research-design`) and `/owflow:research-finalize` follow, per the user's choice.
13
-
14
- ## Entry Gate
15
-
16
- Resolve the `task-path-or-identifier` argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)):
17
-
18
- - **Path** (absolute or project-relative) to the task directory — use as-is.
19
- - **Identifier** — exact directory name inside `.owflow/tasks/research/` (e.g., `2026-09-26-my-research`); resolve to its path.
20
- - If the argument is **missing**, the path does **not exist**, or matches **no identifier** → print the blocked block, then STOP (never guess or auto-pick a task):
21
- 1. Steps that must be completed first (in order), each with its command:
22
- - Research brief & plan (`brief-written`, `plan-created`) → `/owflow:research-plan <task-path>`
23
- - Parallel findings fan (`findings-gathered`) → `/owflow:research-gather <task-path>`
24
- 2. List available research-task identifiers (directories under `.owflow/tasks/research/`) to resume from, if any.
25
- 3. Hint: `Run /owflow:research <question> to start a task from scratch, or pass a task path/identifier to resume.`
26
-
27
- ### Prerequisites
28
-
29
- | Required for this skill | Where verified | Produced by |
30
- | ------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------ |
31
- | State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:research <question>` or `/owflow:research-quick` |
32
- | Findings exist | `findings-gathered` in `completed_phases` + `analysis/findings/` has per-category files | `/owflow:research-gather <task-path>` (or the quick lane's condensed gather) |
33
- | Research question recorded | `research_context.research_question` non-null in state | `/owflow:research-plan <task-path>` |
34
-
35
- 1. **Read `orchestrator-state.yml`** from the task path. If missing → mid-pipeline bootstrap ([Missing-state Bootstrap](../orchestrator-framework/references/gate-contract.md), starting slug `synthesis-complete`): `question` — create a fresh standard research task starting at this step, or decline → print `No research task found at <path>. Run /owflow:research <question> to start a task from scratch.` and STOP.
36
- 2. **Content check — findings present**: the per-category files under `analysis/findings/` must exist (artifacts before state — drop the `findings-gathered` entry and route back to `/owflow:research-gather <task-path>` when they do not).
37
- 3. **Skip/resume**: if `analysis/synthesis.md` AND `outputs/research-report.md` both exist, adopt them — append `synthesis-complete` if it is missing, backfill `research_outputs.synthesis` and `research_outputs.research_report` when those fields are still null, report the existing summaries, and route to the Exit Gate. Either file missing → re-run below (drop a stale `synthesis-complete` entry first).
38
-
39
- ## Input / Output Artifacts
40
-
41
- | Artifact | Normal mode (full lane) | Quick mode (`research-quick`) |
42
- | ---------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
43
- | Consumed: `analysis/findings/*.md` | all per-category files (the gather contract) | same — quick-lane findings feed the inline synthesis |
44
- | Consumed: `research-synthesizer` agent (Task tool) | 1 delegated call | n/a — synthesis is ALWAYS inline in the quick lane (the ONLY exception to this delegation) |
45
- | Produced: `analysis/synthesis.md` | delegated (patterns, cross-references, gaps) | written directly inline |
46
- | Produced: `outputs/research-report.md` | delegated (report + per-finding confidence) | written directly inline |
47
- | State write | `synthesis-complete`; `confidence_level`, `phase_summaries.synthesize`, `research_outputs.synthesis` + `.research_report` | same slug and fields, condensation-noted |
48
-
49
- ## Execute (delegated synthesis)
50
-
51
- **Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md).
52
-
53
- > **ANTI-PATTERN — never write synthesis.md or research-report.md yourself. "The findings are few" is NOT a reason to skip delegation. (The quick lane is the ONLY exception — research-quick synthesizes inline and skips this section.)**
54
-
55
- 1. **INVOKE NOW**: Task tool - `research-synthesizer` subagent (never the Skill tool — this is an agent). Pass (Pattern 7 — accumulated context): task_path, findings_directory_path, research_question, research_type, methodology (from state).
56
-
57
- **Synthesizer produces**:
58
-
59
- - Pattern analysis and cross-references → `analysis/synthesis.md`
60
- - Comprehensive research report answering research question → `outputs/research-report.md`
61
- - Confidence levels for each finding
62
- - Documented gaps and uncertainties
63
-
64
- > **SELF-CHECK on both artifacts**: after the Task tool returns, verify `analysis/synthesis.md` AND `outputs/research-report.md` exist (synthesis documents gaps; report carries confidence per finding). If missing: **STOP. Re-invoke the research-synthesizer with corrected context.** If the second attempt also fails, use `question` to report the failure and ask whether to retry (after targeted re-gathering if the gaps require it) or stop. There is no continue-without-synthesis path — every later step reads these artifacts. On stop, record the failure per the State Update Convention and print the resume command.
65
-
66
- ### Post-synthesis decision re-cap (direct, condensable)
67
-
68
- The synthesizer's key outcomes are surfaced to the user here before the Exit Gate (decisions from subagents must go to the user — never silently skipped): overall `confidence_level`, top patterns, documented gaps. Extract a 1-2 sentence summary into `phase_summaries.synthesize`.
69
-
70
- ### Close (`synthesis-complete`)
71
-
72
- 1. **State write**: append `synthesis-complete` to `completed_phases`; update `research_context.confidence_level`, `phase_summaries.synthesize`; set `research_outputs.synthesis` and `research_outputs.research_report`; bump `orchestrator.updated`. On failure: append `synthesis-complete` to `failed_phases`, increment `auto_fix_attempts["synthesis-complete"]`. Then re-read state + run `verify_template` (see State Update Convention).
73
-
74
- ## State Update Convention (per step)
75
-
76
- Apply after EVERY step above:
77
-
78
- 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`synthesis-complete`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
79
- 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
80
- 3. **Failures** — if the step fails or its retries are abandoned, do NOT append to `completed_phases`; instead append the step's slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["synthesis-complete"]`.
81
- 4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-research.yml`. Fix any reported issue immediately before proceeding.
82
- 5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run to confirm the full state matches everything performed in this session.
83
-
84
- ## Recovery
85
-
86
- | Step | Max Attempts | Strategy |
87
- | --------------------------------- | ------------ | ------------------------------------- |
88
- | Synthesize (`synthesis-complete`) | 2 | Request targeted re-gathering for gaps |
89
-
90
- ## Exit Gate
91
-
92
- Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
93
-
94
- ### Results box
95
-
96
- ```markdown
97
- ## ✅ RESEARCH SYNTHESIZE COMPLETE — <research question>
98
-
99
- **Type** — [research type]
100
- **Confidence** — [confidence level from state]
101
- **Key patterns** — [2-3 one-line pattern highlights from synthesis]
102
- **Gaps** — [documented gaps and uncertainties, 1 line]
103
-
104
- **Artifacts**
105
-
106
- - `analysis/synthesis.md`
107
- - `outputs/research-report.md`
108
- ```
109
-
110
- ### Results-acceptance question
111
-
112
- Use `question` — "Are these results correct?" with options:
113
-
114
- - **Accept** — synthesis and report are good; continue.
115
- - **Adjust** — re-run the affected part with the user's corrections (targeted re-gathering for gaps, then re-synthesize), update state and artifacts, re-present the results box.
116
- - **Discuss** — walk through specific findings or confidence levels in more depth; then re-ask.
117
- - **Stop here** — print the resume command (`/owflow:research-synthesize <task-path>`) and end.
118
-
119
- ### Next steps (after Accept)
120
-
121
- Research foundation complete (initialized, planned, gathered, synthesized). Continue to optional-phase evaluation?
122
-
123
- - `→ /owflow:research-brainstorm <task-path>` — when the user wants solution alternatives brainstormed. Remaining after: converge → design (when wanted) → finalize.
124
- - `→ /owflow:research-design <task-path>` — design-only branch (no brainstorming), seeded from the research report. Remaining after: finalize.
125
- - `→ /owflow:research-finalize <task-path>` — when neither is wanted: inventories the outputs and completes the task. If the foundation alone was the goal, this is the route — the task stays resumable.
126
-
127
- Then STOP.
1
+ ---
2
+ name: owflow:research-synthesize
3
+ description: Research skill — delegates synthesis and evidence-based reporting to the research-synthesizer agent, producing the synthesis document and the comprehensive research report with per-finding confidence. Closes the research foundation (synthesis-complete) at the boundary with the optional chain (user choice).
4
+ argument-hint: "[task-path-or-identifier]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Research Synthesize — Synthesis & Research Report (synthesis-complete)
9
+
10
+ Work phase of the research workflow. Delegates pattern synthesis and evidence-based reporting to the research-synthesizer agent (`analysis/synthesis.md` + `outputs/research-report.md`). This is the research-foundation boundary: the Exit Gate is the pause between the foundation and the optional-phase decision. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
+
12
+ Related phases: `/owflow:research-gather` (produces the merged findings); the optional chain (`research-brainstorm` / `research-design`) and `/owflow:research-finalize` follow, per the user's choice.
13
+
14
+ ## Entry Gate
15
+
16
+ Resolve the `task-path-or-identifier` argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)):
17
+
18
+ - **Path** (absolute or project-relative) to the task directory — use as-is.
19
+ - **Identifier** — exact directory name inside `.owflow/tasks/research/` (e.g., `2026-09-26-my-research`); resolve to its path.
20
+ - If the argument is **missing**, the path does **not exist**, or matches **no identifier** → print the blocked block, then STOP (never guess or auto-pick a task):
21
+ 1. Steps that must be completed first (in order), each with its command:
22
+ - Research brief & plan (`brief-written`, `plan-created`) → `/owflow:research-plan <task-path>`
23
+ - Parallel findings fan (`findings-gathered`) → `/owflow:research-gather <task-path>`
24
+ 2. List available research-task identifiers (directories under `.owflow/tasks/research/`) to resume from, if any.
25
+ 3. Hint: `Run /owflow:research <question> to start a task from scratch, or pass a task path/identifier to resume.`
26
+
27
+ ### Prerequisites
28
+
29
+ | Required for this skill | Where verified | Produced by |
30
+ | ------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------ |
31
+ | State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:research <question>` or `/owflow:research-quick` |
32
+ | Findings exist | `findings-gathered` in `completed_phases` + `analysis/findings/` has per-category files | `/owflow:research-gather <task-path>` (or the quick lane's condensed gather) |
33
+ | Research question recorded | `research_context.research_question` non-null in state | `/owflow:research-plan <task-path>` |
34
+
35
+ 1. **Read `orchestrator-state.yml`** from the task path. If missing → mid-pipeline bootstrap ([Missing-state Bootstrap](../orchestrator-framework/references/gate-contract.md), starting slug `synthesis-complete`): `question` — create a fresh standard research task starting at this step, or decline → print `No research task found at <path>. Run /owflow:research <question> to start a task from scratch.` and STOP.
36
+ 2. **Content check — findings present**: the per-category files under `analysis/findings/` must exist (artifacts before state — drop the `findings-gathered` entry and route back to `/owflow:research-gather <task-path>` when they do not).
37
+ 3. **Skip/resume**: if `analysis/synthesis.md` AND `outputs/research-report.md` both exist, adopt them — append `synthesis-complete` if it is missing, backfill `research_outputs.synthesis` and `research_outputs.research_report` when those fields are still null, report the existing summaries, and route to the Exit Gate. Either file missing → re-run below (drop a stale `synthesis-complete` entry first).
38
+
39
+ ## Input / Output Artifacts
40
+
41
+ | Artifact | Normal mode (full lane) | Quick mode (`research-quick`) |
42
+ | ---------------------------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
43
+ | Consumed: `analysis/findings/*.md` | all per-category files (the gather contract) | same — quick-lane findings feed the inline synthesis |
44
+ | Consumed: `research-synthesizer` agent (Task tool) | 1 delegated call | n/a — synthesis is ALWAYS inline in the quick lane (the ONLY exception to this delegation) |
45
+ | Produced: `analysis/synthesis.md` | delegated (patterns, cross-references, gaps) | written directly inline |
46
+ | Produced: `outputs/research-report.md` | delegated (report + per-finding confidence) | written directly inline |
47
+ | State write | `synthesis-complete`; `confidence_level`, `phase_summaries.synthesize`, `research_outputs.synthesis` + `.research_report` | same slug and fields, condensation-noted |
48
+
49
+ ## Execute (delegated synthesis)
50
+
51
+ **Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md).
52
+
53
+ > **ANTI-PATTERN — never write synthesis.md or research-report.md yourself. "The findings are few" is NOT a reason to skip delegation. (The quick lane is the ONLY exception — research-quick synthesizes inline and skips this section.)**
54
+
55
+ 1. **INVOKE NOW**: Task tool - `research-synthesizer` subagent (never the Skill tool — this is an agent). Pass (Pattern 7 — accumulated context): task_path, findings_directory_path, research_question, research_type, methodology (from state).
56
+
57
+ **Synthesizer produces**:
58
+
59
+ - Pattern analysis and cross-references → `analysis/synthesis.md`
60
+ - Comprehensive research report answering research question → `outputs/research-report.md`
61
+ - Confidence levels for each finding
62
+ - Documented gaps and uncertainties
63
+
64
+ > **SELF-CHECK on both artifacts**: after the Task tool returns, verify `analysis/synthesis.md` AND `outputs/research-report.md` exist (synthesis documents gaps; report carries confidence per finding). If missing: **STOP. Re-invoke the research-synthesizer with corrected context.** If the second attempt also fails, use `question` to report the failure and ask whether to retry (after targeted re-gathering if the gaps require it) or stop. There is no continue-without-synthesis path — every later step reads these artifacts. On stop, record the failure per the State Update Convention and print the resume command.
65
+
66
+ ### Post-synthesis decision re-cap (direct, condensable)
67
+
68
+ The synthesizer's key outcomes are surfaced to the user here before the Exit Gate (decisions from subagents must go to the user — never silently skipped): overall `confidence_level`, top patterns, documented gaps. Extract a 1-2 sentence summary into `phase_summaries.synthesize`.
69
+
70
+ ### Close (`synthesis-complete`)
71
+
72
+ 1. **State write**: append `synthesis-complete` to `completed_phases`; update `research_context.confidence_level`, `phase_summaries.synthesize`; set `research_outputs.synthesis` and `research_outputs.research_report`; bump `orchestrator.updated`. On failure: append `synthesis-complete` to `failed_phases`, increment `auto_fix_attempts["synthesis-complete"]`. Then re-read state + run `verify_template` (see State Update Convention).
73
+
74
+ ## State Update Convention (per step)
75
+
76
+ Apply after EVERY step above:
77
+
78
+ 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`synthesis-complete`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
79
+ 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
80
+ 3. **Failures** — if the step fails or its retries are abandoned, do NOT append to `completed_phases`; instead append the step's slug to `orchestrator.failed_phases` and increment `auto_fix_attempts["synthesis-complete"]`.
81
+ 4. **Validate** — after every write, re-read the file to confirm values, then run the `verify_template` tool with `filePath: <task-path>/orchestrator-state.yml`, `templateName: orchestrator-state-research.yml`. Fix any reported issue immediately before proceeding.
82
+ 5. **Final check** — before the Exit Gate, one consolidated re-read + `verify_template` run to confirm the full state matches everything performed in this session.
83
+
84
+ ## Recovery
85
+
86
+ | Step | Max Attempts | Strategy |
87
+ | --------------------------------- | ------------ | ------------------------------------- |
88
+ | Synthesize (`synthesis-complete`) | 2 | Request targeted re-gathering for gaps |
89
+
90
+ ## Exit Gate
91
+
92
+ Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
93
+
94
+ ### Results box
95
+
96
+ ```markdown
97
+ ## ✅ RESEARCH SYNTHESIZE COMPLETE — <research question>
98
+
99
+ **Type** — [research type]
100
+ **Confidence** — [confidence level from state]
101
+ **Key patterns** — [2-3 one-line pattern highlights from synthesis]
102
+ **Gaps** — [documented gaps and uncertainties, 1 line]
103
+
104
+ **Artifacts**
105
+
106
+ - `analysis/synthesis.md`
107
+ - `outputs/research-report.md`
108
+ ```
109
+
110
+ ### Results-acceptance question
111
+
112
+ Use `question` — "Are these results correct?" with options:
113
+
114
+ - **Accept** — synthesis and report are good; continue.
115
+ - **Adjust** — re-run the affected part with the user's corrections (targeted re-gathering for gaps, then re-synthesize), update state and artifacts, re-present the results box.
116
+ - **Discuss** — walk through specific findings or confidence levels in more depth; then re-ask.
117
+ - **Stop here** — print the resume command (`/owflow:research-synthesize <task-path>`) and end.
118
+
119
+ ### Next steps (after Accept)
120
+
121
+ Research foundation complete (initialized, planned, gathered, synthesized). Continue to optional-phase evaluation?
122
+
123
+ - `→ /owflow:research-brainstorm <task-path>` — when the user wants solution alternatives brainstormed. Remaining after: converge → design (when wanted) → finalize.
124
+ - `→ /owflow:research-design <task-path>` — design-only branch (no brainstorming), seeded from the research report. Remaining after: finalize.
125
+ - `→ /owflow:research-finalize <task-path>` — when neither is wanted: inventories the outputs and completes the task. If the foundation alone was the goal, this is the route — the task stays resumable.
126
+
127
+ Then STOP.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: owflow:rule-reviewer
3
- description: Score an AI rules file on 5 axes and return concrete actionable fixes
3
+ description: "Score a rule-for-AI markdown file (CLAUDE.md, AGENTS.md, or any rules file) on 5 axes and return concrete actionable fixes"
4
4
  argument-hint: "[path/to/rules.md]"
5
5
  user-invocable: true
6
6
  ---
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: owflow:standards-discover
3
3
  description: Discover coding standards from project configuration files, code patterns, documentation, and external sources (PRs, CI/CD)
4
+ argument-hint: "[task description]"
4
5
  user-invocable: true
5
6
  ---
6
7
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owflow",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "description": "Spec-driven development AI workflow for OpenCode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",