owflow 0.3.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -0
- package/dist/agents/information-gatherer.md +691 -691
- package/dist/agents/research-planner.md +450 -447
- package/dist/agents/research-synthesizer.md +403 -401
- package/dist/agents/solution-brainstormer.md +257 -257
- package/dist/agents/solution-designer.md +372 -372
- package/dist/commands/goal-research.md +33 -0
- package/dist/commands/research-brainstorm.md +33 -0
- package/dist/commands/research-converge.md +33 -0
- package/dist/commands/research-design.md +33 -0
- package/dist/commands/research-finalize.md +33 -0
- package/dist/commands/research-fork.md +40 -0
- package/dist/commands/research-gather.md +33 -0
- package/dist/commands/research-plan.md +37 -0
- package/dist/commands/research-quick.md +37 -0
- package/dist/commands/research-synthesize.md +33 -0
- package/dist/commands/research.md +55 -36
- package/dist/commands/work.md +3 -3
- package/dist/configuration/skills-config.js +1 -1
- package/dist/index.js +5 -2
- package/dist/skills/goal-research/SKILL.md +118 -0
- package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +8 -1
- package/dist/skills/orchestrator-framework/references/gate-contract.md +112 -104
- package/dist/skills/research/SKILL.md +249 -495
- package/dist/skills/research-brainstorm/SKILL.md +120 -0
- package/dist/skills/{research → research-brainstorm}/references/brainstorming-techniques.md +1 -1
- package/dist/skills/research-converge/SKILL.md +130 -0
- package/dist/skills/research-design/SKILL.md +146 -0
- package/dist/skills/{research → research-design}/references/design-techniques.md +1 -1
- package/dist/skills/research-finalize/SKILL.md +125 -0
- package/dist/skills/research-fork/SKILL.md +190 -0
- package/dist/skills/research-gather/SKILL.md +133 -0
- package/dist/skills/research-plan/SKILL.md +141 -0
- package/dist/skills/research-quick/SKILL.md +139 -0
- package/dist/skills/research-synthesize/SKILL.md +127 -0
- package/dist/templates/orchestrator-state-research.yml +19 -13
- package/dist/tools/fork_task.js +36 -0
- package/dist/tools/verify_template.js +10 -31
- package/dist/utils/file-util.js +1 -1
- package/dist/utils/fork-task.js +74 -0
- package/dist/utils/plugin-info.js +20 -0
- package/dist/utils/yaml-structure.js +32 -0
- package/package.json +1 -1
- package/dist/constants.js +0 -4
- /package/dist/skills/{research → research-plan}/references/research-methodologies.md +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:goal-research skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "goal-research"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose the orchestrated loop by using /owflow:goal-research.
|
|
21
|
+
Invoke the skill now and let it sequence all research subskills with gates between them.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## About This Workflow
|
|
26
|
+
|
|
27
|
+
Autonomous mode for research tasks: initializes (or resumes) the task, then invokes every required
|
|
28
|
+
research subskill in sequence (plan → gather → synthesize → optional chain as chosen at the gate → finalize),
|
|
29
|
+
pausing at question gates. Shares orchestrator state with assisted mode — tasks can mix both
|
|
30
|
+
modes freely (assisted mode is `/owflow:research`).
|
|
31
|
+
|
|
32
|
+
See `skills/goal-research/SKILL.md` for the loop rules and
|
|
33
|
+
`skills/research/SKILL.md` for the dispatcher alternative.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-brainstorm
|
|
3
|
+
description: Research skill — optional step. Brainstorms solution alternatives from multiple perspectives and records them for the later convergence step. Invoking this step means you chose to brainstorm.
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-brainstorm skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-brainstorm"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-brainstorm.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Part of the research workflow. See `skills/research-brainstorm/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-converge
|
|
3
|
+
description: Research skill — optional step after brainstorming. Walks through every decision area one at a time — all alternatives with full detail, one question per area — and records the chosen approach for each.
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-converge skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-converge"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-converge.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Part of the research workflow. See `skills/research-converge/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-design
|
|
3
|
+
description: Research skill — optional step. Asks for your design preferences, creates the high-level architecture design together with its decision log, and refines the diagrams. Invoking this step means you chose to design.
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-design skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-design"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-design.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Part of the research workflow. See `skills/research-design/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-finalize
|
|
3
|
+
description: Research skill — terminal step. Inventories all research outputs (the research report always, brainstorm and design artifacts when they exist), presents the workflow results, and gets your confirmation that the research is correct. Marks the task complete.
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-finalize skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-finalize"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-finalize.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Terminal step of the research workflow. Inventory of outputs, results box, confirmation; then assisted mode suggests development handoff. See `skills/research-finalize/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-fork
|
|
3
|
+
description: 'Utility command for the research workflow — fork an existing research task into a new one that diverges at a chosen completed step (the copied state is trimmed so the fork continues from that step onwards; the source stays untouched). Pass just the task path: the skill reads the source, then asks intent, fork point, and name with suggestions derived from that research.'
|
|
4
|
+
argument-hint: "<task-path-or-identifier> [\"<what this fork should explore>\"] [--from=<slug>] [--name=\"...\"]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-fork skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-fork"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-fork.
|
|
21
|
+
Invoke the skill now and let it copy the task, update orchestrator state,
|
|
22
|
+
and present the fork summary.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Utility skill of the research workflow — NOT a pipeline step. Copies a research task directory wholesale into a new task that diverges from the previous run at a chosen fork point (`--from=<slug>`); the copied state is trimmed to continue from the fork point onwards. See `skills/research-fork/SKILL.md` for complete documentation.
|
|
29
|
+
|
|
30
|
+
Usage:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research-fork <task-path>` — bare path; the skill asks the remaining questions
|
|
33
|
+
- `/owflow:research-fork <task-path> "explore the cost angle"` — the quoted text answers the intent question
|
|
34
|
+
- `--from=<step-slug>` / `--name="<short name>"` — skip the matching question entirely
|
|
35
|
+
|
|
36
|
+
Related entry points:
|
|
37
|
+
|
|
38
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
39
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
40
|
+
- After forking: `/owflow:research <fork-path>` resumes the fork at the first step after the fork point.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-gather
|
|
3
|
+
description: Research skill — reads the plan's Gathering Strategy and launches the parallel information-gatherer agent fan in ONE message, then merges per-category findings. Ends the gathering step of the research workflow (findings-gathered) and continues with research-synthesize.
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-gather skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-gather"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-gather.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Part of the research workflow. See `skills/research-gather/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-plan
|
|
3
|
+
description: Research skill — creates the research brief, delegates methodology selection and planning to the research-planner agent, and writes the research plan with a parsable Gathering Strategy. First work phase of the research workflow; continues with research-gather.
|
|
4
|
+
argument-hint: "[task-path-or-identifier | \"description\"]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-plan skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-plan"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-plan.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Part of the research workflow. See `skills/research-plan/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
34
|
+
|
|
35
|
+
Quick lane:
|
|
36
|
+
|
|
37
|
+
- `/owflow:research-quick "<description>"` — condensed research task: bootstraps a standard research task and then fuses brief, plan, gather, and synthesis into one pass — continuable with any research subskill
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-quick skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-quick"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-quick.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Part of the research workflow. See `skills/research-quick/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
34
|
+
|
|
35
|
+
Quick lane:
|
|
36
|
+
|
|
37
|
+
- `/owflow:research-quick "<description>"` — condensed research task: bootstraps a standard research task and then fuses brief, plan, gather, and synthesis into one pass — continuable with any research subskill
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research-synthesize skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research-synthesize"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow step by using /owflow:research-synthesize.
|
|
21
|
+
Invoke the skill now and let it execute the step, update orchestrator state,
|
|
22
|
+
and present results with next-step suggestions.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## About This Workflow
|
|
27
|
+
|
|
28
|
+
Part of the research workflow. See `skills/research-synthesize/SKILL.md` for complete step documentation.
|
|
29
|
+
|
|
30
|
+
Entry points:
|
|
31
|
+
|
|
32
|
+
- `/owflow:research <description | task-path>` — start or resume a research task (assisted mode)
|
|
33
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
@@ -1,36 +1,55 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: owflow:research
|
|
3
|
-
description:
|
|
4
|
-
argument-hint: [task description]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
CRITICAL INSTRUCTION: You MUST invoke the owflow:research skill immediately as your FIRST action.
|
|
8
|
-
|
|
9
|
-
Use the Skill tool with these exact parameters:
|
|
10
|
-
name: "research"
|
|
11
|
-
prompt: "$ARGUMENTS"
|
|
12
|
-
|
|
13
|
-
DO NOT:
|
|
14
|
-
|
|
15
|
-
- Analyze the task before invoking the skill
|
|
16
|
-
- Decide the task is "straightforward" and skip the skill
|
|
17
|
-
- Substitute your own approach or workflow
|
|
18
|
-
- Execute any part of the workflow yourself
|
|
19
|
-
|
|
20
|
-
WHY: The user explicitly chose this workflow by using /owflow:research.
|
|
21
|
-
Invoke the skill now and let it
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## About This Workflow
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research
|
|
3
|
+
description: Research workflow dispatcher. Initializes/resumes research tasks, derives the next step from state, and hands off to the matching /owflow:research-* subskill. Handles comprehensive research and analysis — technical, requirements, literature, and mixed research types with adaptive methodology, multi-source gathering, pattern synthesis, and evidence-based artifact outputs (findings documentation). Supports standalone research tasks and embedded research phases feeding development workflows.
|
|
4
|
+
argument-hint: "[task description | task-path] [--from=<slug>] [--type=<type>]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CRITICAL INSTRUCTION: You MUST invoke the owflow:research skill immediately as your FIRST action.
|
|
8
|
+
|
|
9
|
+
Use the Skill tool with these exact parameters:
|
|
10
|
+
name: "research"
|
|
11
|
+
prompt: "$ARGUMENTS"
|
|
12
|
+
|
|
13
|
+
DO NOT:
|
|
14
|
+
|
|
15
|
+
- Analyze the task before invoking the skill
|
|
16
|
+
- Decide the task is "straightforward" and skip the skill
|
|
17
|
+
- Substitute your own approach or workflow
|
|
18
|
+
- Execute any part of the workflow yourself
|
|
19
|
+
|
|
20
|
+
WHY: The user explicitly chose this workflow by using /owflow:research.
|
|
21
|
+
Invoke the skill now and let it dispatch the matching research step.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## About This Workflow
|
|
26
|
+
|
|
27
|
+
Research workflow **dispatcher** (assisted mode). The skill handles:
|
|
28
|
+
|
|
29
|
+
- Task initialization/resume and state management (`orchestrator-state.yml`)
|
|
30
|
+
- Research context intake and `--type` flag handling
|
|
31
|
+
- Deriving the next pending step from state (descriptive slugs, NOT phase numbers)
|
|
32
|
+
- Handing off to the matching `/owflow:research-*` subskill, then stopping
|
|
33
|
+
|
|
34
|
+
Run `/owflow:goal-research` instead for autonomous mode (all subskills in one session with gates).
|
|
35
|
+
|
|
36
|
+
Quick lane: starts only via `/owflow:research-quick "<description>"` — a condensed research task that fuses brief, plan, gather, and synthesis into one pass, continuable by any research subskill.
|
|
37
|
+
|
|
38
|
+
Forking: `/owflow:research-fork <task-path> ["<what this fork should explore>"] [--from=<slug>]` copies a research task to a new task diverging at a chosen completed step (directory copied verbatim, `completed_phases` trimmed) — original task untouched. A bare task path is enough: the skill asks for the intent, fork point, and name with suggestions taken from that research.
|
|
39
|
+
|
|
40
|
+
Entry points:
|
|
41
|
+
|
|
42
|
+
- `/owflow:research <description>` — start or resume a research task (assisted mode)
|
|
43
|
+
- `/owflow:goal-research <description>` — run all steps in one loop (orchestrated mode)
|
|
44
|
+
|
|
45
|
+
Steps (each works on the shared task directory):
|
|
46
|
+
|
|
47
|
+
- `/owflow:research-plan <description | task-path>` — brief, methodology & plan
|
|
48
|
+
- `/owflow:research-gather <task-path>` — parallel findings fan
|
|
49
|
+
- `/owflow:research-synthesize <task-path>` — synthesis & research report
|
|
50
|
+
- `/owflow:research-brainstorm <task-path>` — solution alternatives (optional, user's choice)
|
|
51
|
+
- `/owflow:research-converge <task-path>` — per-area decisions (after brainstorming)
|
|
52
|
+
- `/owflow:research-design <task-path>` — high-level design (optional, user's choice)
|
|
53
|
+
- `/owflow:research-finalize <task-path>` — completion & handoff
|
|
54
|
+
|
|
55
|
+
See `skills/research/SKILL.md` for the routing table and `skills/research-*/SKILL.md` for step documentation.
|
package/dist/commands/work.md
CHANGED
|
@@ -146,7 +146,7 @@ Use Skill tool:
|
|
|
146
146
|
Examples:
|
|
147
147
|
|
|
148
148
|
- Resume development: `skill: "owflow:development"` with `args: "--resume .owflow/tasks/development/2025-10-23-fix"`
|
|
149
|
-
- Restart from step: `skill: "owflow:development"` with `args: "--resume .owflow/tasks/development/2025-10-26-auth --from=verification-done"` (dev tasks use descriptive step slugs in `completed_phases`;
|
|
149
|
+
- Restart from step: `skill: "owflow:development"` with `args: "--resume .owflow/tasks/development/2025-10-26-auth --from=verification-done"` (dev tasks use descriptive step slugs in `completed_phases`; performance and migration are the remaining `phase-N` holdouts — research uses the descriptive slugs in `templates/orchestrator-state-research.yml`)
|
|
150
150
|
- Fresh attempts: `skill: "owflow:migration"` with `args: "--resume .owflow/tasks/migrations/2025-10-20-redux --reset-attempts"`
|
|
151
151
|
|
|
152
152
|
### Step 3: Classify & Route New Task
|
|
@@ -235,10 +235,10 @@ Display:
|
|
|
235
235
|
|
|
236
236
|
| Workflow Type | Skill | Args |
|
|
237
237
|
| ------------- | ------------- | --------------------------------------------------- |
|
|
238
|
-
| development | `development` | `--resume [path] [--from
|
|
238
|
+
| development | `development` | `--resume [path] [--from=<slug>] [--reset-attempts]` |
|
|
239
239
|
| performance | `performance` | `--resume [path] [--from=PHASE]` |
|
|
240
240
|
| migration | `migration` | `--resume [path] [--from=PHASE]` |
|
|
241
|
-
| research | `research` | `--resume [path] [--from
|
|
241
|
+
| research | `research` | `--resume [path] [--from=<slug>]` |
|
|
242
242
|
|
|
243
243
|
---
|
|
244
244
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
|
-
import { PLUGIN_ROOT } from "../
|
|
2
|
+
import { PLUGIN_ROOT } from "../utils/plugin-info.js";
|
|
3
3
|
export const configureSkills = (config) => {
|
|
4
4
|
config.skills = config.skills || {};
|
|
5
5
|
config.skills.paths = config.skills.paths || [];
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import fs from "node:fs";
|
|
7
|
+
import { PLUGIN_VERSION } from "./utils/plugin-info.js";
|
|
7
8
|
import { verify_template } from "./tools/verify_template.js";
|
|
9
|
+
import { fork_task } from "./tools/fork_task.js";
|
|
8
10
|
import { rereadOrchestratorState } from "./hooks/session-compaction.js";
|
|
9
11
|
import { guardAgainstDestructiveActions } from "./hooks/before-tool.js";
|
|
10
12
|
import { configureSkills } from "./configuration/skills-config.js";
|
|
@@ -16,13 +18,14 @@ const OwflowPlugin = async ({ $, directory }) => {
|
|
|
16
18
|
return {
|
|
17
19
|
tool: {
|
|
18
20
|
verify_template,
|
|
21
|
+
fork_task,
|
|
19
22
|
},
|
|
20
23
|
/**
|
|
21
24
|
* Register owflow's skills, commands, and agents so OpenCode discovers
|
|
22
25
|
* them without requiring manual config file edits.
|
|
23
26
|
*/
|
|
24
27
|
config: async (config) => {
|
|
25
|
-
console.log(
|
|
28
|
+
console.log(`[owflow] Starting plugin installation (v${PLUGIN_VERSION})...`);
|
|
26
29
|
let typedConfig = config;
|
|
27
30
|
// Get small_model config for alias resolution
|
|
28
31
|
// Try from config parameter first, fallback to reading opencode.json
|
|
@@ -45,7 +48,7 @@ const OwflowPlugin = async ({ $, directory }) => {
|
|
|
45
48
|
configureCommands(typedConfig);
|
|
46
49
|
configureAgents(typedConfig, smallModel);
|
|
47
50
|
config = typedConfig;
|
|
48
|
-
console.log(
|
|
51
|
+
console.log(`[owflow] Plugin installation completed successfully (v${PLUGIN_VERSION}).`);
|
|
49
52
|
},
|
|
50
53
|
"experimental.session.compacting": async (input, output) => {
|
|
51
54
|
await rereadOrchestratorState(directory, output);
|
|
@@ -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).
|