owflow 0.6.0 → 0.7.0
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/LICENSE +21 -21
- package/README.md +448 -283
- package/dist/agents/bottleneck-analyzer.md +332 -333
- package/dist/agents/code-quality-pragmatist.md +353 -354
- package/dist/agents/code-reviewer.md +238 -239
- package/dist/agents/codebase-analysis-reporter.md +245 -246
- package/dist/agents/docs-operator.md +22 -23
- package/dist/agents/e2e-test-verifier.md +447 -448
- package/dist/agents/gap-analyzer.md +501 -502
- package/dist/agents/implementation-completeness-checker.md +219 -220
- package/dist/agents/implementation-planner.md +308 -309
- package/dist/agents/information-gatherer.md +690 -691
- package/dist/agents/production-readiness-checker.md +278 -279
- package/dist/agents/project-analyzer.md +403 -403
- package/dist/agents/reality-assessor.md +365 -366
- package/dist/agents/research-planner.md +449 -450
- package/dist/agents/research-synthesizer.md +402 -403
- package/dist/agents/solution-brainstormer.md +256 -257
- package/dist/agents/solution-designer.md +371 -372
- package/dist/agents/spec-auditor.md +297 -298
- package/dist/agents/specification-creator.md +333 -334
- package/dist/agents/task-classifier.md +449 -450
- package/dist/agents/task-group-implementer.md +283 -284
- package/dist/agents/test-suite-runner.md +194 -195
- package/dist/agents/user-docs-generator.md +508 -509
- package/dist/commands/reviews-code.md +90 -90
- package/dist/commands/reviews-pragmatic.md +99 -99
- package/dist/commands/reviews-production-readiness.md +113 -113
- package/dist/commands/reviews-reality-check.md +110 -110
- package/dist/commands/reviews-spec-audit.md +114 -114
- package/dist/commands/work.md +280 -280
- package/dist/configuration/agents-config.d.ts +2 -0
- package/dist/configuration/agents-config.js +8 -44
- package/dist/configuration/commands-config.d.ts +23 -0
- package/dist/configuration/commands-config.js +17 -17
- package/dist/configuration/skills-config.d.ts +2 -0
- package/dist/configuration/skills-config.js +3 -3
- package/dist/hooks/hooks-diagnostics.d.ts +3 -0
- package/dist/hooks/hooks-diagnostics.js +21 -0
- package/dist/hooks/hooks-persistence.d.ts +17 -0
- package/dist/hooks/hooks-persistence.js +207 -0
- package/dist/hooks/hooks-registry.d.ts +6 -0
- package/dist/hooks/hooks-registry.js +104 -0
- package/dist/hooks/hooks-wrapper.d.ts +25 -0
- package/dist/hooks/hooks-wrapper.js +318 -0
- package/dist/hooks/internal/before-tool.d.ts +6 -0
- package/dist/hooks/internal/before-tool.js +13 -0
- package/dist/hooks/internal/session-compaction.d.ts +9 -0
- package/dist/hooks/{session-compaction.js → internal/session-compaction.js} +9 -7
- package/dist/hooks/runtime/circuit-breaker.d.ts +23 -0
- package/dist/hooks/runtime/circuit-breaker.js +39 -0
- package/dist/hooks/runtime/failure-policy.d.ts +15 -0
- package/dist/hooks/runtime/failure-policy.js +49 -0
- package/dist/hooks/runtime/process-executor.d.ts +33 -0
- package/dist/hooks/runtime/process-executor.js +147 -0
- package/dist/hooks/runtime/status-recorder.d.ts +27 -0
- package/dist/hooks/runtime/status-recorder.js +111 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +111 -40
- package/dist/skills/agents-md-generator/SKILL.md +223 -223
- package/dist/skills/codebase-analyzer/SKILL.md +162 -162
- package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -63
- package/dist/skills/codebase-analyzer/references/combined.md +31 -31
- package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -63
- package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -51
- package/dist/skills/codebase-analyzer/references/migration-target.md +23 -23
- package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -22
- package/dist/skills/dev-analyze/SKILL.md +115 -115
- package/dist/skills/dev-bugfix/SKILL.md +452 -452
- package/dist/skills/dev-finalize/SKILL.md +118 -118
- package/dist/skills/dev-implement/SKILL.md +167 -167
- package/dist/skills/dev-plan/SKILL.md +147 -147
- package/dist/skills/dev-spec/SKILL.md +182 -182
- package/dist/skills/dev-tdd-red/SKILL.md +94 -94
- package/dist/skills/dev-verify/SKILL.md +153 -153
- package/dist/skills/development/SKILL.md +260 -260
- package/dist/skills/diagrams-mermaid/SKILL.md +183 -159
- package/dist/skills/diagrams-mermaid/references/reference.md +220 -148
- package/dist/skills/docs-manager/SKILL.md +379 -379
- package/dist/skills/docs-manager/docs/INDEX.md +199 -199
- package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -25
- package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -22
- package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -25
- package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -22
- package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -25
- package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -28
- package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -16
- package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -28
- package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -25
- package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -10
- package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -31
- package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -22
- package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -22
- package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -28
- package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -25
- package/dist/skills/docs-manager/references/agents-md-template.md +29 -29
- package/dist/skills/docs-manager/references/index-md-template.md +73 -73
- package/dist/skills/flow-init/SKILL.md +234 -234
- package/dist/skills/flow-init/references/architecture-template.md +45 -45
- package/dist/skills/flow-init/references/roadmap-templates.md +93 -93
- package/dist/skills/flow-init/references/tech-stack-template.md +70 -70
- package/dist/skills/flow-init/references/vision-templates.md +75 -75
- package/dist/skills/goal-development/SKILL.md +96 -96
- package/dist/skills/goal-migration/SKILL.md +114 -114
- package/dist/skills/goal-performance/SKILL.md +126 -126
- package/dist/skills/goal-research/SKILL.md +118 -118
- package/dist/skills/html-renderer/SKILL.md +173 -173
- package/dist/skills/html-renderer/references/index.html +318 -318
- package/dist/skills/html-renderer/references/styles.css +388 -388
- package/dist/skills/html-renderer/references/tokens.json +104 -104
- package/dist/skills/implementation-plan-executor/SKILL.md +378 -378
- package/dist/skills/implementation-verifier/SKILL.md +307 -307
- package/dist/skills/migration/SKILL.md +268 -268
- package/dist/skills/migration-analyze/SKILL.md +126 -126
- package/dist/skills/migration-finalize/SKILL.md +161 -161
- package/dist/skills/migration-fix/SKILL.md +155 -155
- package/dist/skills/migration-implement/SKILL.md +131 -131
- package/dist/skills/migration-plan/SKILL.md +131 -131
- package/dist/skills/migration-spec/SKILL.md +135 -135
- package/dist/skills/migration-spec/references/migration-strategies.md +430 -430
- package/dist/skills/migration-target/SKILL.md +134 -134
- package/dist/skills/migration-target/references/migration-types.md +489 -489
- package/dist/skills/migration-verify/SKILL.md +184 -184
- package/dist/skills/orchestrator-framework/SKILL.md +65 -65
- package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -7
- package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -20
- package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -54
- package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -27
- package/dist/skills/orchestrator-framework/references/fix-loop-contract.md +65 -65
- package/dist/skills/orchestrator-framework/references/gate-contract.md +122 -122
- package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +51 -51
- package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +235 -235
- package/dist/skills/performance/SKILL.md +267 -267
- package/dist/skills/performance-analyze/SKILL.md +129 -129
- package/dist/skills/performance-analyze/references/performance-optimization-guide.md +271 -271
- package/dist/skills/performance-finalize/SKILL.md +117 -117
- package/dist/skills/performance-implement/SKILL.md +114 -114
- package/dist/skills/performance-plan/SKILL.md +112 -112
- package/dist/skills/performance-spec/SKILL.md +145 -145
- package/dist/skills/performance-verify/SKILL.md +164 -164
- package/dist/skills/research/SKILL.md +249 -249
- package/dist/skills/research-brainstorm/SKILL.md +120 -120
- package/dist/skills/research-brainstorm/references/brainstorming-techniques.md +84 -84
- package/dist/skills/research-converge/SKILL.md +130 -130
- package/dist/skills/research-design/SKILL.md +146 -146
- package/dist/skills/research-design/references/design-techniques.md +40 -40
- package/dist/skills/research-finalize/SKILL.md +125 -125
- package/dist/skills/research-fork/SKILL.md +190 -190
- package/dist/skills/research-gather/SKILL.md +133 -133
- package/dist/skills/research-plan/SKILL.md +141 -141
- package/dist/skills/research-plan/references/research-methodologies.md +710 -710
- package/dist/skills/research-quick/SKILL.md +139 -139
- package/dist/skills/research-synthesize/SKILL.md +127 -127
- package/dist/skills/rule-reviewer/SKILL.md +334 -334
- package/dist/skills/standards-discover/SKILL.md +260 -260
- package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -76
- package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -68
- package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -67
- package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -65
- package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -75
- package/dist/skills/standards-update/SKILL.md +207 -207
- package/dist/templates/orchestrator-state-base.yml +17 -17
- package/dist/templates/orchestrator-state-development.yml +95 -95
- package/dist/templates/orchestrator-state-migration.yml +95 -95
- package/dist/templates/orchestrator-state-performance.yml +64 -64
- package/dist/templates/orchestrator-state-research.yml +67 -67
- package/dist/tools/fork_task.d.ts +17 -0
- package/dist/tools/fork_task.js +21 -11
- package/dist/tools/verify_template.d.ts +11 -0
- package/dist/tools/verify_template.js +32 -17
- package/dist/tui/hooks-dialogs.d.ts +20 -0
- package/dist/tui/hooks-dialogs.js +181 -0
- package/dist/tui/hooks-presenter.d.ts +15 -0
- package/dist/tui/hooks-presenter.js +70 -0
- package/dist/tui/hooks-sidebar.d.ts +10 -0
- package/dist/tui/hooks-sidebar.js +104 -0
- package/dist/tui/primitives.d.ts +21 -0
- package/dist/tui/primitives.js +47 -0
- package/dist/tui.d.ts +12 -0
- package/dist/tui.js +129 -0
- package/dist/types/hook-types.d.ts +125 -0
- package/dist/types/hook-types.js +76 -0
- package/dist/types/opencode-types.d.ts +13 -0
- package/dist/utils/file-util.d.ts +2 -0
- package/dist/utils/file-util.js +6 -6
- package/dist/utils/fork-task.d.ts +27 -0
- package/dist/utils/fork-task.js +18 -23
- package/dist/utils/plugin-info.d.ts +3 -0
- package/dist/utils/plugin-info.js +8 -10
- package/dist/utils/workflow-paths.d.ts +17 -0
- package/dist/utils/workflow-paths.js +18 -0
- package/dist/utils/yaml-structure.d.ts +7 -0
- package/dist/utils/yaml-structure.js +7 -11
- package/package.json +68 -48
- package/dist/hooks/before-tool.js +0 -19
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# Design Techniques
|
|
2
|
-
|
|
3
|
-
These techniques guide High-Level Design in the research-design skill. They provide patterns for capturing and documenting design decisions in a durable, traceable format.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
### Decision Documentation Patterns
|
|
8
|
-
|
|
9
|
-
**Purpose**: Capture design decisions in a durable, traceable format.
|
|
10
|
-
|
|
11
|
-
**Why Document Decisions**:
|
|
12
|
-
- Future developers ask "why was this done this way?"
|
|
13
|
-
- Prevents re-litigating settled questions
|
|
14
|
-
- Preserves context that would otherwise be lost
|
|
15
|
-
- Enables informed changes when assumptions change
|
|
16
|
-
|
|
17
|
-
**MADR Format Overview** (Markdown Any Decision Record):
|
|
18
|
-
- Lightweight, readable, version-control friendly
|
|
19
|
-
- Sections: Status, Context, Decision Drivers, Considered Options, Decision Outcome, Consequences
|
|
20
|
-
- Each decision is self-contained and independently understandable
|
|
21
|
-
|
|
22
|
-
**When to Create an ADR**:
|
|
23
|
-
- Decision affects system structure or component boundaries
|
|
24
|
-
- Multiple viable alternatives existed (trade-offs involved)
|
|
25
|
-
- Decision is hard to reverse later
|
|
26
|
-
- Decision might be questioned by future developers
|
|
27
|
-
|
|
28
|
-
**Lightweight vs Heavyweight**:
|
|
29
|
-
- Lightweight (1 ADR, 10-20 lines): Simple designs with 1-2 key decisions
|
|
30
|
-
- Standard (2-5 ADRs, 20-40 lines each): Most designs
|
|
31
|
-
- Heavyweight (5+ ADRs): Complex systems with many interacting decisions
|
|
32
|
-
|
|
33
|
-
**Decision Linking**:
|
|
34
|
-
- Reference solution-exploration.md for alternatives already analyzed
|
|
35
|
-
- Link from high-level-design.md decision table to individual ADR entries
|
|
36
|
-
- ADRs from research inform (but don't replace) project-level ADRs in development
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
This reference provides patterns and frameworks for the design phase. Actual implementation adapts these concepts to specific research contexts.
|
|
1
|
+
# Design Techniques
|
|
2
|
+
|
|
3
|
+
These techniques guide High-Level Design in the research-design skill. They provide patterns for capturing and documenting design decisions in a durable, traceable format.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### Decision Documentation Patterns
|
|
8
|
+
|
|
9
|
+
**Purpose**: Capture design decisions in a durable, traceable format.
|
|
10
|
+
|
|
11
|
+
**Why Document Decisions**:
|
|
12
|
+
- Future developers ask "why was this done this way?"
|
|
13
|
+
- Prevents re-litigating settled questions
|
|
14
|
+
- Preserves context that would otherwise be lost
|
|
15
|
+
- Enables informed changes when assumptions change
|
|
16
|
+
|
|
17
|
+
**MADR Format Overview** (Markdown Any Decision Record):
|
|
18
|
+
- Lightweight, readable, version-control friendly
|
|
19
|
+
- Sections: Status, Context, Decision Drivers, Considered Options, Decision Outcome, Consequences
|
|
20
|
+
- Each decision is self-contained and independently understandable
|
|
21
|
+
|
|
22
|
+
**When to Create an ADR**:
|
|
23
|
+
- Decision affects system structure or component boundaries
|
|
24
|
+
- Multiple viable alternatives existed (trade-offs involved)
|
|
25
|
+
- Decision is hard to reverse later
|
|
26
|
+
- Decision might be questioned by future developers
|
|
27
|
+
|
|
28
|
+
**Lightweight vs Heavyweight**:
|
|
29
|
+
- Lightweight (1 ADR, 10-20 lines): Simple designs with 1-2 key decisions
|
|
30
|
+
- Standard (2-5 ADRs, 20-40 lines each): Most designs
|
|
31
|
+
- Heavyweight (5+ ADRs): Complex systems with many interacting decisions
|
|
32
|
+
|
|
33
|
+
**Decision Linking**:
|
|
34
|
+
- Reference solution-exploration.md for alternatives already analyzed
|
|
35
|
+
- Link from high-level-design.md decision table to individual ADR entries
|
|
36
|
+
- ADRs from research inform (but don't replace) project-level ADRs in development
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
This reference provides patterns and frameworks for the design phase. Actual implementation adapts these concepts to specific research contexts.
|
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: owflow:research-finalize
|
|
3
|
-
description: Research skill — terminal step. Inventories all research outputs (research report always; brainstorm/design artifacts conditionally), presents the workflow results box, and gets user confirmation that the research is correct. Marks the task research-completed — the Exit-Gate acceptance here is where the goal-research wrapper's loop ends.
|
|
4
|
-
argument-hint: "[task-path-or-identifier]"
|
|
5
|
-
user-invocable: true
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Research Finalize — Completion & Handoff (research-completed)
|
|
9
|
-
|
|
10
|
-
Terminal step of the research workflow. Presents research results, confirms correctness with the user, and hands off to development (or ends the workflow). No new files — summarizes existing outputs. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
|
|
11
|
-
|
|
12
|
-
Related phases: all research subskills (`/owflow:research-plan` → `/owflow:research-gather` → `/owflow:research-synthesize` → the optional chain as chosen by the user). This is the terminal skill: its Exit-Gate acceptance is where the goal-research wrapper's loop ends, and where assisted mode suggests development.
|
|
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
|
-
- Synthesis & research report (`synthesis-complete`) → `/owflow:research-synthesize <task-path>`
|
|
25
|
-
2. List available research-task identifiers (directories under `.owflow/tasks/research/`) to resume from, if any.
|
|
26
|
-
3. Hint: `Run /owflow:research <question> to start a task from scratch, or pass a task path/identifier to resume.`
|
|
27
|
-
|
|
28
|
-
### Prerequisites
|
|
29
|
-
|
|
30
|
-
| Required for this skill | Where verified | Produced by |
|
|
31
|
-
| ----------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
32
|
-
| State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:research <question>` or `/owflow:research-quick` |
|
|
33
|
-
| Foundation complete | `synthesis-complete` in `completed_phases` + `outputs/research-report.md` exists | `/owflow:research-synthesize <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 `research-completed`): `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. **Prerequisite check**: `synthesis-complete` must be in `completed_phases` and `outputs/research-report.md` must exist. The optional chain is settled by the user's own choices — invoking `research-brainstorm`/`research-design` is the decision to run them; skipping straight here settles the chain as skipped. If the foundation is missing → print the blocked block for the earliest missing step, then STOP:
|
|
37
|
-
- `Run /owflow:research-plan <task-path> first` (or the command for the earliest missing earlier step: `/owflow:research-gather` or `/owflow:research-synthesize`).
|
|
38
|
-
- If no task exists yet: `Run /owflow:research <question> to start a task from scratch.`
|
|
39
|
-
3. **Skip/resume**: if `task.status` is `completed`, report the existing finalization (results box from the inventory below) and STOP (dev-finalize terminal pattern).
|
|
40
|
-
4. **Always runs**: this skill always runs — every path (no optional steps / design-only / full brainstorm chain) reaches completion here. The optional phases only affect the inventory and the "Phases run" line.
|
|
41
|
-
|
|
42
|
-
## Input / Output Artifacts
|
|
43
|
-
|
|
44
|
-
| Artifact | Normal mode (full lane) | Quick mode (`research-quick`) |
|
|
45
|
-
| ---------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
46
|
-
| Consumed: `outputs/research-report.md` (always) + conditional design/brainstorm artifacts | inventoried per `research_outputs.*` in state | identical — a quick-pass task brings the same standard artifacts |
|
|
47
|
-
| Produced: none (state-only) | no new files — finalization is an inventory | same — after a quick pass this skill completes the task the same way |
|
|
48
|
-
| State write | `research-completed`; `task.status: completed` | same slug and field |
|
|
49
|
-
|
|
50
|
-
## Execute (direct — inline-legal finalization)
|
|
51
|
-
|
|
52
|
-
**Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md) — finalization is inline-legal ("finalization" is a simple, direct step; no agents involved).
|
|
53
|
-
|
|
54
|
-
### Inventory outputs
|
|
55
|
-
|
|
56
|
-
1. **Inventory all generated outputs**: `outputs/research-report.md` (always), plus conditional: `outputs/solution-exploration.md`, `outputs/high-level-design.md`, `outputs/decision-log.md` — each conditional artifact is listed only when its `research_outputs` field is set in state (and the file exists).
|
|
57
|
-
2. **Results box**:
|
|
58
|
-
|
|
59
|
-
```markdown
|
|
60
|
-
## ✅ RESEARCH COMPLETE — <research question>
|
|
61
|
-
|
|
62
|
-
**Type** — [research type]
|
|
63
|
-
**Confidence** — [confidence level]
|
|
64
|
-
**Phases run** — [executed slug list, e.g. brief-written → plan-created → findings-gathered → synthesis-complete → alternatives-generated → approaches-chosen → design-generated]
|
|
65
|
-
**Key findings** — [2-3 one-line highlights]
|
|
66
|
-
**Decisions** — [count of ADRs, if design ran]
|
|
67
|
-
|
|
68
|
-
**Artifacts**
|
|
69
|
-
|
|
70
|
-
- `outputs/research-report.md`
|
|
71
|
-
- `outputs/solution-exploration.md` [conditional]
|
|
72
|
-
- `outputs/high-level-design.md` [conditional]
|
|
73
|
-
- `outputs/decision-log.md` [conditional]
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Close (`research-completed`)
|
|
77
|
-
|
|
78
|
-
1. **State write**: append `research-completed` to `completed_phases` and set `task.status: completed` — ONLY after the results box is presented; do NOT write a `phase_summaries.finalize` slot (the template has no finalize slot — finalization is state-only, and the inventory lives in `research_outputs.*`); bump `orchestrator.updated`. On failure: append `research-completed` to `failed_phases`, increment `auto_fix_attempts["research-completed"]`. Then re-read state + run `verify_template` (see State Update Convention).
|
|
79
|
-
|
|
80
|
-
## State Update Convention (per step)
|
|
81
|
-
|
|
82
|
-
Apply after EVERY step above:
|
|
83
|
-
|
|
84
|
-
1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`research-completed`) plus that step's fields. Never batch multiple steps into one end-of-skill write. **No `phase_summaries.finalize` write** — the template has no such slot (finalization is state-only; the inventory lives in `research_outputs.*`).
|
|
85
|
-
2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
|
|
86
|
-
3. **Failures** — if finalization fails, do NOT append `research-completed` to `completed_phases`; instead append it to `orchestrator.failed_phases` and increment `auto_fix_attempts["research-completed"]`.
|
|
87
|
-
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.
|
|
88
|
-
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.
|
|
89
|
-
|
|
90
|
-
## Recovery
|
|
91
|
-
|
|
92
|
-
| Step | Max Attempts | Strategy |
|
|
93
|
-
| --------------------------------- | ------------ | -------------- |
|
|
94
|
-
| Completion (`research-completed`) | 0 | Summary only |
|
|
95
|
-
|
|
96
|
-
## Exit Gate
|
|
97
|
-
|
|
98
|
-
Present results, get user confirmation, then close the workflow (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill. **This acceptance is where the goal-research wrapper's loop ends** (Accept = the wrapper proceeds to its own wrapper Exit Gate; any other option ends the loop with the standard handoff block). In assisted mode, Accept prints the next steps below.
|
|
99
|
-
|
|
100
|
-
### Results box
|
|
101
|
-
|
|
102
|
-
The results box from the Inventory outputs step above IS the workflow-level results box — present it here as-is (single box, not two).
|
|
103
|
-
|
|
104
|
-
### Results-acceptance question
|
|
105
|
-
|
|
106
|
-
Use `question` — "Are these results correct?" with options:
|
|
107
|
-
|
|
108
|
-
- **Accept** — research is complete; print next steps (below).
|
|
109
|
-
- **Adjust** — re-run the affected phase (re-gather → `/owflow:research-gather <task-path>`, re-brainstorm → `/owflow:research-brainstorm <task-path>`, re-design → `/owflow:research-design <task-path>`) with the user's corrections, then re-present the results box.
|
|
110
|
-
- **Discuss** — walk through specific findings or decisions in more depth; then re-ask.
|
|
111
|
-
- **Fork** — branch instead of re-running here: `/owflow:research-fork <task-path>` copies this task to a new one diverging at a chosen completed step (source untouched); pass a description to skip the intent question.
|
|
112
|
-
- **Stop here** — print the resume command (`/owflow:research-finalize <task-path>`) and end.
|
|
113
|
-
|
|
114
|
-
### Next steps (after Accept)
|
|
115
|
-
|
|
116
|
-
If design artifacts exist (research report + design → development handoff), suggest starting development in a fresh session:
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
To start development based on this research, clear context first or start a new session, then run:
|
|
120
|
-
→ /owflow:development <task-path>
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
Without design artifacts, the research report remains the deliverable — feed it into `/owflow:development <task-path>` the same way when development is ready, or reference it manually.
|
|
124
|
-
|
|
125
|
-
Then STOP.
|
|
1
|
+
---
|
|
2
|
+
name: owflow:research-finalize
|
|
3
|
+
description: Research skill — terminal step. Inventories all research outputs (research report always; brainstorm/design artifacts conditionally), presents the workflow results box, and gets user confirmation that the research is correct. Marks the task research-completed — the Exit-Gate acceptance here is where the goal-research wrapper's loop ends.
|
|
4
|
+
argument-hint: "[task-path-or-identifier]"
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Research Finalize — Completion & Handoff (research-completed)
|
|
9
|
+
|
|
10
|
+
Terminal step of the research workflow. Presents research results, confirms correctness with the user, and hands off to development (or ends the workflow). No new files — summarizes existing outputs. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
|
|
11
|
+
|
|
12
|
+
Related phases: all research subskills (`/owflow:research-plan` → `/owflow:research-gather` → `/owflow:research-synthesize` → the optional chain as chosen by the user). This is the terminal skill: its Exit-Gate acceptance is where the goal-research wrapper's loop ends, and where assisted mode suggests development.
|
|
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
|
+
- Synthesis & research report (`synthesis-complete`) → `/owflow:research-synthesize <task-path>`
|
|
25
|
+
2. List available research-task identifiers (directories under `.owflow/tasks/research/`) to resume from, if any.
|
|
26
|
+
3. Hint: `Run /owflow:research <question> to start a task from scratch, or pass a task path/identifier to resume.`
|
|
27
|
+
|
|
28
|
+
### Prerequisites
|
|
29
|
+
|
|
30
|
+
| Required for this skill | Where verified | Produced by |
|
|
31
|
+
| ----------------------- | -------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
32
|
+
| State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:research <question>` or `/owflow:research-quick` |
|
|
33
|
+
| Foundation complete | `synthesis-complete` in `completed_phases` + `outputs/research-report.md` exists | `/owflow:research-synthesize <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 `research-completed`): `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. **Prerequisite check**: `synthesis-complete` must be in `completed_phases` and `outputs/research-report.md` must exist. The optional chain is settled by the user's own choices — invoking `research-brainstorm`/`research-design` is the decision to run them; skipping straight here settles the chain as skipped. If the foundation is missing → print the blocked block for the earliest missing step, then STOP:
|
|
37
|
+
- `Run /owflow:research-plan <task-path> first` (or the command for the earliest missing earlier step: `/owflow:research-gather` or `/owflow:research-synthesize`).
|
|
38
|
+
- If no task exists yet: `Run /owflow:research <question> to start a task from scratch.`
|
|
39
|
+
3. **Skip/resume**: if `task.status` is `completed`, report the existing finalization (results box from the inventory below) and STOP (dev-finalize terminal pattern).
|
|
40
|
+
4. **Always runs**: this skill always runs — every path (no optional steps / design-only / full brainstorm chain) reaches completion here. The optional phases only affect the inventory and the "Phases run" line.
|
|
41
|
+
|
|
42
|
+
## Input / Output Artifacts
|
|
43
|
+
|
|
44
|
+
| Artifact | Normal mode (full lane) | Quick mode (`research-quick`) |
|
|
45
|
+
| ---------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
46
|
+
| Consumed: `outputs/research-report.md` (always) + conditional design/brainstorm artifacts | inventoried per `research_outputs.*` in state | identical — a quick-pass task brings the same standard artifacts |
|
|
47
|
+
| Produced: none (state-only) | no new files — finalization is an inventory | same — after a quick pass this skill completes the task the same way |
|
|
48
|
+
| State write | `research-completed`; `task.status: completed` | same slug and field |
|
|
49
|
+
|
|
50
|
+
## Execute (direct — inline-legal finalization)
|
|
51
|
+
|
|
52
|
+
**Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md) — finalization is inline-legal ("finalization" is a simple, direct step; no agents involved).
|
|
53
|
+
|
|
54
|
+
### Inventory outputs
|
|
55
|
+
|
|
56
|
+
1. **Inventory all generated outputs**: `outputs/research-report.md` (always), plus conditional: `outputs/solution-exploration.md`, `outputs/high-level-design.md`, `outputs/decision-log.md` — each conditional artifact is listed only when its `research_outputs` field is set in state (and the file exists).
|
|
57
|
+
2. **Results box**:
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## ✅ RESEARCH COMPLETE — <research question>
|
|
61
|
+
|
|
62
|
+
**Type** — [research type]
|
|
63
|
+
**Confidence** — [confidence level]
|
|
64
|
+
**Phases run** — [executed slug list, e.g. brief-written → plan-created → findings-gathered → synthesis-complete → alternatives-generated → approaches-chosen → design-generated]
|
|
65
|
+
**Key findings** — [2-3 one-line highlights]
|
|
66
|
+
**Decisions** — [count of ADRs, if design ran]
|
|
67
|
+
|
|
68
|
+
**Artifacts**
|
|
69
|
+
|
|
70
|
+
- `outputs/research-report.md`
|
|
71
|
+
- `outputs/solution-exploration.md` [conditional]
|
|
72
|
+
- `outputs/high-level-design.md` [conditional]
|
|
73
|
+
- `outputs/decision-log.md` [conditional]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Close (`research-completed`)
|
|
77
|
+
|
|
78
|
+
1. **State write**: append `research-completed` to `completed_phases` and set `task.status: completed` — ONLY after the results box is presented; do NOT write a `phase_summaries.finalize` slot (the template has no finalize slot — finalization is state-only, and the inventory lives in `research_outputs.*`); bump `orchestrator.updated`. On failure: append `research-completed` to `failed_phases`, increment `auto_fix_attempts["research-completed"]`. Then re-read state + run `verify_template` (see State Update Convention).
|
|
79
|
+
|
|
80
|
+
## State Update Convention (per step)
|
|
81
|
+
|
|
82
|
+
Apply after EVERY step above:
|
|
83
|
+
|
|
84
|
+
1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`research-completed`) plus that step's fields. Never batch multiple steps into one end-of-skill write. **No `phase_summaries.finalize` write** — the template has no such slot (finalization is state-only; the inventory lives in `research_outputs.*`).
|
|
85
|
+
2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
|
|
86
|
+
3. **Failures** — if finalization fails, do NOT append `research-completed` to `completed_phases`; instead append it to `orchestrator.failed_phases` and increment `auto_fix_attempts["research-completed"]`.
|
|
87
|
+
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.
|
|
88
|
+
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.
|
|
89
|
+
|
|
90
|
+
## Recovery
|
|
91
|
+
|
|
92
|
+
| Step | Max Attempts | Strategy |
|
|
93
|
+
| --------------------------------- | ------------ | -------------- |
|
|
94
|
+
| Completion (`research-completed`) | 0 | Summary only |
|
|
95
|
+
|
|
96
|
+
## Exit Gate
|
|
97
|
+
|
|
98
|
+
Present results, get user confirmation, then close the workflow (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill. **This acceptance is where the goal-research wrapper's loop ends** (Accept = the wrapper proceeds to its own wrapper Exit Gate; any other option ends the loop with the standard handoff block). In assisted mode, Accept prints the next steps below.
|
|
99
|
+
|
|
100
|
+
### Results box
|
|
101
|
+
|
|
102
|
+
The results box from the Inventory outputs step above IS the workflow-level results box — present it here as-is (single box, not two).
|
|
103
|
+
|
|
104
|
+
### Results-acceptance question
|
|
105
|
+
|
|
106
|
+
Use `question` — "Are these results correct?" with options:
|
|
107
|
+
|
|
108
|
+
- **Accept** — research is complete; print next steps (below).
|
|
109
|
+
- **Adjust** — re-run the affected phase (re-gather → `/owflow:research-gather <task-path>`, re-brainstorm → `/owflow:research-brainstorm <task-path>`, re-design → `/owflow:research-design <task-path>`) with the user's corrections, then re-present the results box.
|
|
110
|
+
- **Discuss** — walk through specific findings or decisions in more depth; then re-ask.
|
|
111
|
+
- **Fork** — branch instead of re-running here: `/owflow:research-fork <task-path>` copies this task to a new one diverging at a chosen completed step (source untouched); pass a description to skip the intent question.
|
|
112
|
+
- **Stop here** — print the resume command (`/owflow:research-finalize <task-path>`) and end.
|
|
113
|
+
|
|
114
|
+
### Next steps (after Accept)
|
|
115
|
+
|
|
116
|
+
If design artifacts exist (research report + design → development handoff), suggest starting development in a fresh session:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
To start development based on this research, clear context first or start a new session, then run:
|
|
120
|
+
→ /owflow:development <task-path>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Without design artifacts, the research report remains the deliverable — feed it into `/owflow:development <task-path>` the same way when development is ready, or reference it manually.
|
|
124
|
+
|
|
125
|
+
Then STOP.
|