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.
Files changed (195) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +448 -283
  3. package/dist/agents/bottleneck-analyzer.md +332 -333
  4. package/dist/agents/code-quality-pragmatist.md +353 -354
  5. package/dist/agents/code-reviewer.md +238 -239
  6. package/dist/agents/codebase-analysis-reporter.md +245 -246
  7. package/dist/agents/docs-operator.md +22 -23
  8. package/dist/agents/e2e-test-verifier.md +447 -448
  9. package/dist/agents/gap-analyzer.md +501 -502
  10. package/dist/agents/implementation-completeness-checker.md +219 -220
  11. package/dist/agents/implementation-planner.md +308 -309
  12. package/dist/agents/information-gatherer.md +690 -691
  13. package/dist/agents/production-readiness-checker.md +278 -279
  14. package/dist/agents/project-analyzer.md +403 -403
  15. package/dist/agents/reality-assessor.md +365 -366
  16. package/dist/agents/research-planner.md +449 -450
  17. package/dist/agents/research-synthesizer.md +402 -403
  18. package/dist/agents/solution-brainstormer.md +256 -257
  19. package/dist/agents/solution-designer.md +371 -372
  20. package/dist/agents/spec-auditor.md +297 -298
  21. package/dist/agents/specification-creator.md +333 -334
  22. package/dist/agents/task-classifier.md +449 -450
  23. package/dist/agents/task-group-implementer.md +283 -284
  24. package/dist/agents/test-suite-runner.md +194 -195
  25. package/dist/agents/user-docs-generator.md +508 -509
  26. package/dist/commands/reviews-code.md +90 -90
  27. package/dist/commands/reviews-pragmatic.md +99 -99
  28. package/dist/commands/reviews-production-readiness.md +113 -113
  29. package/dist/commands/reviews-reality-check.md +110 -110
  30. package/dist/commands/reviews-spec-audit.md +114 -114
  31. package/dist/commands/work.md +280 -280
  32. package/dist/configuration/agents-config.d.ts +2 -0
  33. package/dist/configuration/agents-config.js +8 -44
  34. package/dist/configuration/commands-config.d.ts +23 -0
  35. package/dist/configuration/commands-config.js +17 -17
  36. package/dist/configuration/skills-config.d.ts +2 -0
  37. package/dist/configuration/skills-config.js +3 -3
  38. package/dist/hooks/hooks-diagnostics.d.ts +3 -0
  39. package/dist/hooks/hooks-diagnostics.js +21 -0
  40. package/dist/hooks/hooks-persistence.d.ts +17 -0
  41. package/dist/hooks/hooks-persistence.js +207 -0
  42. package/dist/hooks/hooks-registry.d.ts +6 -0
  43. package/dist/hooks/hooks-registry.js +104 -0
  44. package/dist/hooks/hooks-wrapper.d.ts +25 -0
  45. package/dist/hooks/hooks-wrapper.js +318 -0
  46. package/dist/hooks/internal/before-tool.d.ts +6 -0
  47. package/dist/hooks/internal/before-tool.js +13 -0
  48. package/dist/hooks/internal/session-compaction.d.ts +9 -0
  49. package/dist/hooks/{session-compaction.js → internal/session-compaction.js} +9 -7
  50. package/dist/hooks/runtime/circuit-breaker.d.ts +23 -0
  51. package/dist/hooks/runtime/circuit-breaker.js +39 -0
  52. package/dist/hooks/runtime/failure-policy.d.ts +15 -0
  53. package/dist/hooks/runtime/failure-policy.js +49 -0
  54. package/dist/hooks/runtime/process-executor.d.ts +33 -0
  55. package/dist/hooks/runtime/process-executor.js +147 -0
  56. package/dist/hooks/runtime/status-recorder.d.ts +27 -0
  57. package/dist/hooks/runtime/status-recorder.js +111 -0
  58. package/dist/index.d.ts +7 -0
  59. package/dist/index.js +111 -40
  60. package/dist/skills/agents-md-generator/SKILL.md +223 -223
  61. package/dist/skills/codebase-analyzer/SKILL.md +162 -162
  62. package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -63
  63. package/dist/skills/codebase-analyzer/references/combined.md +31 -31
  64. package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -63
  65. package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -51
  66. package/dist/skills/codebase-analyzer/references/migration-target.md +23 -23
  67. package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -22
  68. package/dist/skills/dev-analyze/SKILL.md +115 -115
  69. package/dist/skills/dev-bugfix/SKILL.md +452 -452
  70. package/dist/skills/dev-finalize/SKILL.md +118 -118
  71. package/dist/skills/dev-implement/SKILL.md +167 -167
  72. package/dist/skills/dev-plan/SKILL.md +147 -147
  73. package/dist/skills/dev-spec/SKILL.md +182 -182
  74. package/dist/skills/dev-tdd-red/SKILL.md +94 -94
  75. package/dist/skills/dev-verify/SKILL.md +153 -153
  76. package/dist/skills/development/SKILL.md +260 -260
  77. package/dist/skills/diagrams-mermaid/SKILL.md +183 -159
  78. package/dist/skills/diagrams-mermaid/references/reference.md +220 -148
  79. package/dist/skills/docs-manager/SKILL.md +379 -379
  80. package/dist/skills/docs-manager/docs/INDEX.md +199 -199
  81. package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -25
  82. package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -22
  83. package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -25
  84. package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -22
  85. package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -25
  86. package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -28
  87. package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -16
  88. package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -28
  89. package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -25
  90. package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -10
  91. package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -31
  92. package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -22
  93. package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -22
  94. package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -28
  95. package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -25
  96. package/dist/skills/docs-manager/references/agents-md-template.md +29 -29
  97. package/dist/skills/docs-manager/references/index-md-template.md +73 -73
  98. package/dist/skills/flow-init/SKILL.md +234 -234
  99. package/dist/skills/flow-init/references/architecture-template.md +45 -45
  100. package/dist/skills/flow-init/references/roadmap-templates.md +93 -93
  101. package/dist/skills/flow-init/references/tech-stack-template.md +70 -70
  102. package/dist/skills/flow-init/references/vision-templates.md +75 -75
  103. package/dist/skills/goal-development/SKILL.md +96 -96
  104. package/dist/skills/goal-migration/SKILL.md +114 -114
  105. package/dist/skills/goal-performance/SKILL.md +126 -126
  106. package/dist/skills/goal-research/SKILL.md +118 -118
  107. package/dist/skills/html-renderer/SKILL.md +173 -173
  108. package/dist/skills/html-renderer/references/index.html +318 -318
  109. package/dist/skills/html-renderer/references/styles.css +388 -388
  110. package/dist/skills/html-renderer/references/tokens.json +104 -104
  111. package/dist/skills/implementation-plan-executor/SKILL.md +378 -378
  112. package/dist/skills/implementation-verifier/SKILL.md +307 -307
  113. package/dist/skills/migration/SKILL.md +268 -268
  114. package/dist/skills/migration-analyze/SKILL.md +126 -126
  115. package/dist/skills/migration-finalize/SKILL.md +161 -161
  116. package/dist/skills/migration-fix/SKILL.md +155 -155
  117. package/dist/skills/migration-implement/SKILL.md +131 -131
  118. package/dist/skills/migration-plan/SKILL.md +131 -131
  119. package/dist/skills/migration-spec/SKILL.md +135 -135
  120. package/dist/skills/migration-spec/references/migration-strategies.md +430 -430
  121. package/dist/skills/migration-target/SKILL.md +134 -134
  122. package/dist/skills/migration-target/references/migration-types.md +489 -489
  123. package/dist/skills/migration-verify/SKILL.md +184 -184
  124. package/dist/skills/orchestrator-framework/SKILL.md +65 -65
  125. package/dist/skills/orchestrator-framework/references/command-namespacing.md +7 -7
  126. package/dist/skills/orchestrator-framework/references/confirm-or-revise-exception.md +20 -20
  127. package/dist/skills/orchestrator-framework/references/delegation-rules.md +54 -54
  128. package/dist/skills/orchestrator-framework/references/dispatcher-handoff.md +27 -27
  129. package/dist/skills/orchestrator-framework/references/fix-loop-contract.md +65 -65
  130. package/dist/skills/orchestrator-framework/references/gate-contract.md +122 -122
  131. package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +51 -51
  132. package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +235 -235
  133. package/dist/skills/performance/SKILL.md +267 -267
  134. package/dist/skills/performance-analyze/SKILL.md +129 -129
  135. package/dist/skills/performance-analyze/references/performance-optimization-guide.md +271 -271
  136. package/dist/skills/performance-finalize/SKILL.md +117 -117
  137. package/dist/skills/performance-implement/SKILL.md +114 -114
  138. package/dist/skills/performance-plan/SKILL.md +112 -112
  139. package/dist/skills/performance-spec/SKILL.md +145 -145
  140. package/dist/skills/performance-verify/SKILL.md +164 -164
  141. package/dist/skills/research/SKILL.md +249 -249
  142. package/dist/skills/research-brainstorm/SKILL.md +120 -120
  143. package/dist/skills/research-brainstorm/references/brainstorming-techniques.md +84 -84
  144. package/dist/skills/research-converge/SKILL.md +130 -130
  145. package/dist/skills/research-design/SKILL.md +146 -146
  146. package/dist/skills/research-design/references/design-techniques.md +40 -40
  147. package/dist/skills/research-finalize/SKILL.md +125 -125
  148. package/dist/skills/research-fork/SKILL.md +190 -190
  149. package/dist/skills/research-gather/SKILL.md +133 -133
  150. package/dist/skills/research-plan/SKILL.md +141 -141
  151. package/dist/skills/research-plan/references/research-methodologies.md +710 -710
  152. package/dist/skills/research-quick/SKILL.md +139 -139
  153. package/dist/skills/research-synthesize/SKILL.md +127 -127
  154. package/dist/skills/rule-reviewer/SKILL.md +334 -334
  155. package/dist/skills/standards-discover/SKILL.md +260 -260
  156. package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -76
  157. package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -68
  158. package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -67
  159. package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -65
  160. package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -75
  161. package/dist/skills/standards-update/SKILL.md +207 -207
  162. package/dist/templates/orchestrator-state-base.yml +17 -17
  163. package/dist/templates/orchestrator-state-development.yml +95 -95
  164. package/dist/templates/orchestrator-state-migration.yml +95 -95
  165. package/dist/templates/orchestrator-state-performance.yml +64 -64
  166. package/dist/templates/orchestrator-state-research.yml +67 -67
  167. package/dist/tools/fork_task.d.ts +17 -0
  168. package/dist/tools/fork_task.js +21 -11
  169. package/dist/tools/verify_template.d.ts +11 -0
  170. package/dist/tools/verify_template.js +32 -17
  171. package/dist/tui/hooks-dialogs.d.ts +20 -0
  172. package/dist/tui/hooks-dialogs.js +181 -0
  173. package/dist/tui/hooks-presenter.d.ts +15 -0
  174. package/dist/tui/hooks-presenter.js +70 -0
  175. package/dist/tui/hooks-sidebar.d.ts +10 -0
  176. package/dist/tui/hooks-sidebar.js +104 -0
  177. package/dist/tui/primitives.d.ts +21 -0
  178. package/dist/tui/primitives.js +47 -0
  179. package/dist/tui.d.ts +12 -0
  180. package/dist/tui.js +129 -0
  181. package/dist/types/hook-types.d.ts +125 -0
  182. package/dist/types/hook-types.js +76 -0
  183. package/dist/types/opencode-types.d.ts +13 -0
  184. package/dist/utils/file-util.d.ts +2 -0
  185. package/dist/utils/file-util.js +6 -6
  186. package/dist/utils/fork-task.d.ts +27 -0
  187. package/dist/utils/fork-task.js +18 -23
  188. package/dist/utils/plugin-info.d.ts +3 -0
  189. package/dist/utils/plugin-info.js +8 -10
  190. package/dist/utils/workflow-paths.d.ts +17 -0
  191. package/dist/utils/workflow-paths.js +18 -0
  192. package/dist/utils/yaml-structure.d.ts +7 -0
  193. package/dist/utils/yaml-structure.js +7 -11
  194. package/package.json +68 -48
  195. package/dist/hooks/before-tool.js +0 -19
@@ -1,117 +1,117 @@
1
- ---
2
- name: owflow:performance-finalize
3
- description: Performance — terminal step. Inventories optimization results, presents the workflow results box, records task-completed only after the user accepts it, and provides commit guidance. No handoff.
4
- argument-hint: "[task-path-or-identifier]"
5
- user-invocable: true
6
- ---
7
-
8
- # Performance Finalize — Completion & Commit Guidance (task-completed)
9
-
10
- Terminal step of the performance workflow. Summarizes the bottlenecks found, the optimizations applied, and the verification outcome; confirms correctness with the user; records `task-completed` only after the user accepts the results box (state is marked complete only after the gate response); and owns the commit guidance. No new analysis — finalization is inline-legal. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
-
12
- Related steps: all performance subskills (`/owflow:performance-analyze` → `/owflow:performance-spec` → `/owflow:performance-plan` → `/owflow:performance-implement` → `/owflow:performance-verify`). This is the terminal skill: its Exit-Gate acceptance is where the goal-performance wrapper's loop ends.
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/performance/` (e.g., `2026-10-02-api-latency`); resolve to its path.
20
- - **Description** — anything else (free text) is treated as a new performance task description: ask via `question` whether to start a fresh standard task at this step (mid-pipeline bootstrap) or route through `/owflow:performance <description>`; on decline, print the blocked block and STOP.
21
- - 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):
22
-
23
- 1. Steps that must be completed first (in order), each with its command:
24
- - Codebase & bottleneck analysis (`codebase-analysed`, `bottlenecks-identified`) → `/owflow:performance-analyze <task-path>`
25
- - Requirements, specification & conditional audit (`spec-written`, `spec-audited`) → `/owflow:performance-spec <task-path>`
26
- - Implementation planning (`plan-created`) → `/owflow:performance-plan <task-path>`
27
- - Implementation (`implementation-done`) → `/owflow:performance-implement <task-path>`
28
- - Verification & issue resolution (`options-chosen`, `verification-done`) → `/owflow:performance-verify <task-path>`
29
- 2. List available performance-task identifiers (directories under `.owflow/tasks/performance/`) to resume from, if any.
30
- 3. Hint: `Run /owflow:performance <description> to start a task from scratch, or pass a task path/identifier to resume.`
31
-
32
- ### Prerequisites
33
-
34
- | Required for this skill | Where verified | Produced by |
35
- | ----------------------- | --------------------------------------------------------------------------- | ---------------------------------------- |
36
- | State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:performance <desc>` |
37
- | Verification done | `verification-done` in `completed_phases` + `verification/implementation-verification.md` exists | `/owflow:performance-verify <task-path>` |
38
-
39
- 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 `task-completed`): `question` — create a fresh standard performance task starting at this step, or decline → print `No performance task found at <path>. Run /owflow:performance <description> to start a task from scratch.` and STOP.
40
- 2. **Skip/resume**: if `task.status` is `completed`, report the existing finalization (the results box from the Finalization step below) and STOP.
41
- 3. **Prerequisite check (presence and content)**: `verification-done` in `completed_phases` AND `verification/implementation-verification.md` exists. If missing → print the blocked block, then STOP:
42
- - Steps that must be completed first: verification (`verification-done`).
43
- - `Run /owflow:performance-verify <task-path> first` (or the command for the earliest missing earlier step).
44
- - If no task exists yet: `Run /owflow:performance <description> to start a task from scratch.`
45
-
46
- ## Execute
47
-
48
- **Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md) — finalization is inline-legal (creating the summary, updating metadata, and presenting results are direct steps; no agents involved).
49
-
50
- ### Finalization (`task-completed`, inline)
51
-
52
- 1. **Inventory results** (state-only; no new files): bottlenecks from `performance_context.bottleneck_priorities` and `performance_context.phase_summaries.bottleneck_analysis`; optimizations from `performance_context.phase_summaries.implementation` and `implementation/work-log.md`; verification outcome from `verification_context.last_status` and `verification/implementation-verification.md`.
53
- 2. **Present the results box** (the workflow-level box — single box, not two):
54
-
55
- ```markdown
56
- ## ✅ PERFORMANCE WORKFLOW COMPLETE — <task name>
57
-
58
- **Bottlenecks found** — [P0/P1/P2/P3 counts]
59
- **Optimizations applied** — [count + key ones]
60
- **Verification** — [final verdict]
61
- **Estimated improvement** — [range from the analysis]
62
-
63
- **Artifacts**
64
-
65
- - `analysis/performance-analysis.md`
66
- - `implementation/work-log.md`
67
- - `verification/implementation-verification.md`
68
- ```
69
-
70
- 3. **Do NOT write `task-completed` yet** — the Exit Gate below owns the write, and it happens only after the user answers the results-acceptance question (Accept, or explicit proceed-with-issues). State is marked complete only after the gate response; writing it here would make the Adjust option a dead end (the completed task short-circuits on re-entry).
71
- 4. **Prepare (do not print yet) the commit guidance** (owned by this skill): a conventional commit message template referencing the task name, and the artifact set that belongs in the commit. It is printed on Accept, together with the closing guidance.
72
-
73
- ## State Update Convention (per step)
74
-
75
- Apply after EVERY step above:
76
-
77
- 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`task-completed`) plus that step's fields. `task-completed` is the one slug written **only after the user answers the Exit-Gate acceptance question (Accept, or explicit proceed-with-issues)** — never before the gate. Never batch multiple steps into one end-of-skill write.
78
- 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
79
- 3. **Failures** — if finalization fails, do NOT append `task-completed` to `completed_phases`; instead append it to `orchestrator.failed_phases` and increment `auto_fix_attempts["task-completed"]`.
80
- 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-performance.yml`. Fix any reported issue immediately before proceeding.
81
- 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.
82
-
83
- ## Recovery
84
-
85
- | Step | Max Attempts | Strategy |
86
- | ------------------------- | ------------ | ------------ |
87
- | Completion (`task-completed`) | 0 | Summary only |
88
-
89
- ## Exit Gate
90
-
91
- 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-performance 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).
92
-
93
- ### Results box
94
-
95
- The results box from the Finalization step above IS the workflow-level results box — present it here as-is (single box, not two).
96
-
97
- ### Results-acceptance question
98
-
99
- Use `question` — "Are these results correct?" with options:
100
-
101
- - **Accept** — record `task-completed` (state write below), then print the closing guidance: the commit message template, the artifact set, and the next steps.
102
- - **Adjust** — re-run the affected earlier step (e.g., `/owflow:performance-implement <task-path>` for additional optimizations, or `/owflow:performance-verify <task-path>` for another verification round), then re-present the results box.
103
- - **Discuss** — walk through bottleneck findings, optimization rationale, and measurement caveats in more depth; then re-ask.
104
- - **Stop here** — print the resume command (`/owflow:performance-finalize <task-path>`) and end.
105
-
106
- **On Accept only**, perform the state write: append `task-completed` to `completed_phases` and set `task.status: completed`; bump `orchestrator.updated`; do NOT write a finalize slot under `performance_context.phase_summaries` (the template has no such slot — finalization is state-only). On failure: append `task-completed` to `failed_phases`, increment `auto_fix_attempts["task-completed"]`. Then re-read state + run `verify_template`. On **Adjust / Discuss / Stop here**, perform NO state write — the workflow stays resumable.
107
-
108
- ### Next steps (after Accept)
109
-
110
- The workflow is finished; no further owflow step is required. All follow-ups are `optional` (post-completion work, none advance phases):
111
-
112
- - Run the application and verify the improvements manually; consider profiling with runtime tools to measure actual impact; monitor production metrics after deployment.
113
- - Address remaining P2/P3 bottlenecks if needed.
114
- - `/owflow:standards-update "<lesson learned>"` — `optional` — captures optimization patterns as project standards; does not advance phases.
115
- - Commit the changes using the provided message template; open a PR. (Manual steps outside owflow.)
116
-
117
- Then STOP.
1
+ ---
2
+ name: owflow:performance-finalize
3
+ description: Performance — terminal step. Inventories optimization results, presents the workflow results box, records task-completed only after the user accepts it, and provides commit guidance. No handoff.
4
+ argument-hint: "[task-path-or-identifier]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Performance Finalize — Completion & Commit Guidance (task-completed)
9
+
10
+ Terminal step of the performance workflow. Summarizes the bottlenecks found, the optimizations applied, and the verification outcome; confirms correctness with the user; records `task-completed` only after the user accepts the results box (state is marked complete only after the gate response); and owns the commit guidance. No new analysis — finalization is inline-legal. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
+
12
+ Related steps: all performance subskills (`/owflow:performance-analyze` → `/owflow:performance-spec` → `/owflow:performance-plan` → `/owflow:performance-implement` → `/owflow:performance-verify`). This is the terminal skill: its Exit-Gate acceptance is where the goal-performance wrapper's loop ends.
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/performance/` (e.g., `2026-10-02-api-latency`); resolve to its path.
20
+ - **Description** — anything else (free text) is treated as a new performance task description: ask via `question` whether to start a fresh standard task at this step (mid-pipeline bootstrap) or route through `/owflow:performance <description>`; on decline, print the blocked block and STOP.
21
+ - 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):
22
+
23
+ 1. Steps that must be completed first (in order), each with its command:
24
+ - Codebase & bottleneck analysis (`codebase-analysed`, `bottlenecks-identified`) → `/owflow:performance-analyze <task-path>`
25
+ - Requirements, specification & conditional audit (`spec-written`, `spec-audited`) → `/owflow:performance-spec <task-path>`
26
+ - Implementation planning (`plan-created`) → `/owflow:performance-plan <task-path>`
27
+ - Implementation (`implementation-done`) → `/owflow:performance-implement <task-path>`
28
+ - Verification & issue resolution (`options-chosen`, `verification-done`) → `/owflow:performance-verify <task-path>`
29
+ 2. List available performance-task identifiers (directories under `.owflow/tasks/performance/`) to resume from, if any.
30
+ 3. Hint: `Run /owflow:performance <description> to start a task from scratch, or pass a task path/identifier to resume.`
31
+
32
+ ### Prerequisites
33
+
34
+ | Required for this skill | Where verified | Produced by |
35
+ | ----------------------- | --------------------------------------------------------------------------- | ---------------------------------------- |
36
+ | State file exists | `<task-path>/orchestrator-state.yml` | `/owflow:performance <desc>` |
37
+ | Verification done | `verification-done` in `completed_phases` + `verification/implementation-verification.md` exists | `/owflow:performance-verify <task-path>` |
38
+
39
+ 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 `task-completed`): `question` — create a fresh standard performance task starting at this step, or decline → print `No performance task found at <path>. Run /owflow:performance <description> to start a task from scratch.` and STOP.
40
+ 2. **Skip/resume**: if `task.status` is `completed`, report the existing finalization (the results box from the Finalization step below) and STOP.
41
+ 3. **Prerequisite check (presence and content)**: `verification-done` in `completed_phases` AND `verification/implementation-verification.md` exists. If missing → print the blocked block, then STOP:
42
+ - Steps that must be completed first: verification (`verification-done`).
43
+ - `Run /owflow:performance-verify <task-path> first` (or the command for the earliest missing earlier step).
44
+ - If no task exists yet: `Run /owflow:performance <description> to start a task from scratch.`
45
+
46
+ ## Execute
47
+
48
+ **Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md) — finalization is inline-legal (creating the summary, updating metadata, and presenting results are direct steps; no agents involved).
49
+
50
+ ### Finalization (`task-completed`, inline)
51
+
52
+ 1. **Inventory results** (state-only; no new files): bottlenecks from `performance_context.bottleneck_priorities` and `performance_context.phase_summaries.bottleneck_analysis`; optimizations from `performance_context.phase_summaries.implementation` and `implementation/work-log.md`; verification outcome from `verification_context.last_status` and `verification/implementation-verification.md`.
53
+ 2. **Present the results box** (the workflow-level box — single box, not two):
54
+
55
+ ```markdown
56
+ ## ✅ PERFORMANCE WORKFLOW COMPLETE — <task name>
57
+
58
+ **Bottlenecks found** — [P0/P1/P2/P3 counts]
59
+ **Optimizations applied** — [count + key ones]
60
+ **Verification** — [final verdict]
61
+ **Estimated improvement** — [range from the analysis]
62
+
63
+ **Artifacts**
64
+
65
+ - `analysis/performance-analysis.md`
66
+ - `implementation/work-log.md`
67
+ - `verification/implementation-verification.md`
68
+ ```
69
+
70
+ 3. **Do NOT write `task-completed` yet** — the Exit Gate below owns the write, and it happens only after the user answers the results-acceptance question (Accept, or explicit proceed-with-issues). State is marked complete only after the gate response; writing it here would make the Adjust option a dead end (the completed task short-circuits on re-entry).
71
+ 4. **Prepare (do not print yet) the commit guidance** (owned by this skill): a conventional commit message template referencing the task name, and the artifact set that belongs in the commit. It is printed on Accept, together with the closing guidance.
72
+
73
+ ## State Update Convention (per step)
74
+
75
+ Apply after EVERY step above:
76
+
77
+ 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`task-completed`) plus that step's fields. `task-completed` is the one slug written **only after the user answers the Exit-Gate acceptance question (Accept, or explicit proceed-with-issues)** — never before the gate. Never batch multiple steps into one end-of-skill write.
78
+ 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
79
+ 3. **Failures** — if finalization fails, do NOT append `task-completed` to `completed_phases`; instead append it to `orchestrator.failed_phases` and increment `auto_fix_attempts["task-completed"]`.
80
+ 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-performance.yml`. Fix any reported issue immediately before proceeding.
81
+ 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.
82
+
83
+ ## Recovery
84
+
85
+ | Step | Max Attempts | Strategy |
86
+ | ------------------------- | ------------ | ------------ |
87
+ | Completion (`task-completed`) | 0 | Summary only |
88
+
89
+ ## Exit Gate
90
+
91
+ 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-performance 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).
92
+
93
+ ### Results box
94
+
95
+ The results box from the Finalization step above IS the workflow-level results box — present it here as-is (single box, not two).
96
+
97
+ ### Results-acceptance question
98
+
99
+ Use `question` — "Are these results correct?" with options:
100
+
101
+ - **Accept** — record `task-completed` (state write below), then print the closing guidance: the commit message template, the artifact set, and the next steps.
102
+ - **Adjust** — re-run the affected earlier step (e.g., `/owflow:performance-implement <task-path>` for additional optimizations, or `/owflow:performance-verify <task-path>` for another verification round), then re-present the results box.
103
+ - **Discuss** — walk through bottleneck findings, optimization rationale, and measurement caveats in more depth; then re-ask.
104
+ - **Stop here** — print the resume command (`/owflow:performance-finalize <task-path>`) and end.
105
+
106
+ **On Accept only**, perform the state write: append `task-completed` to `completed_phases` and set `task.status: completed`; bump `orchestrator.updated`; do NOT write a finalize slot under `performance_context.phase_summaries` (the template has no such slot — finalization is state-only). On failure: append `task-completed` to `failed_phases`, increment `auto_fix_attempts["task-completed"]`. Then re-read state + run `verify_template`. On **Adjust / Discuss / Stop here**, perform NO state write — the workflow stays resumable.
107
+
108
+ ### Next steps (after Accept)
109
+
110
+ The workflow is finished; no further owflow step is required. All follow-ups are `optional` (post-completion work, none advance phases):
111
+
112
+ - Run the application and verify the improvements manually; consider profiling with runtime tools to measure actual impact; monitor production metrics after deployment.
113
+ - Address remaining P2/P3 bottlenecks if needed.
114
+ - `/owflow:standards-update "<lesson learned>"` — `optional` — captures optimization patterns as project standards; does not advance phases.
115
+ - Commit the changes using the provided message template; open a PR. (Manual steps outside owflow.)
116
+
117
+ Then STOP.
@@ -1,114 +1,114 @@
1
- ---
2
- name: owflow:performance-implement
3
- description: Performance — executes the approved implementation plan via the implementation-plan-executor skill, then records implementation-done. Continues with performance-verify.
4
- argument-hint: "[task-path-or-identifier]"
5
- user-invocable: true
6
- ---
7
-
8
- # Performance Implement — Implementation (implementation-done)
9
-
10
- Work step of the performance workflow. Executes the optimization plan via the `implementation-plan-executor` skill, then records the implementation outcome in state. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
-
12
- ## Entry Gate
13
-
14
- Resolve the argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). The argument may be:
15
-
16
- - **Path** (absolute or project-relative) to the task directory — use as-is.
17
- - **Identifier** — exact directory name inside `.owflow/tasks/performance/` (e.g., `2026-10-02-api-latency`); resolve to its path.
18
- - **Description** — anything else (free text) is treated as a new performance task description: ask via `question` whether to start a fresh standard task at this step (mid-pipeline bootstrap) or route through `/owflow:performance <description>`; on decline, print the blocked block and STOP.
19
- - 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):
20
-
21
- 1. Steps that must be completed first (in order), each with its command:
22
- - Codebase & bottleneck analysis (`codebase-analysed`, `bottlenecks-identified`) → `/owflow:performance-analyze <task-path>`
23
- - Requirements, specification & conditional audit (`spec-written`, `spec-audited`) → `/owflow:performance-spec <task-path>`
24
- - Implementation planning (`plan-created`) → `/owflow:performance-plan <task-path>`
25
- 2. List available performance-task identifiers (directories under `.owflow/tasks/performance/`) to resume from, if any.
26
- 3. Hint: `Run /owflow:performance <description> 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:performance <desc>` |
33
- | Spec approved | `implementation/spec.md` exists | `/owflow:performance-spec <task-path>` |
34
- | Plan approved | `implementation/implementation-plan.md` exists | `/owflow:performance-plan <task-path>` |
35
-
36
- 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 `implementation-done`): `question` — create a fresh standard performance task starting at this step, or decline → print `No performance task found at <path>. Run /owflow:performance <description> to start a task from scratch.` and STOP.
37
- 2. **Skip/resume**: if `implementation-done` is in `completed_phases` and `implementation/work-log.md` exists, backfill `performance_context.phase_summaries.implementation` from the work-log when it is still null, report the existing results, and route to the Exit Gate. If the work-log is missing → drop `implementation-done` and re-run the implementation step.
38
- 3. **Prerequisite check (presence and content)**: `implementation/spec.md` AND `implementation/implementation-plan.md` exist. If missing → print the blocked block, then STOP:
39
- - Steps that must be completed first: specification (`spec-written`) → implementation planning (`plan-created`).
40
- - `Run /owflow:performance-spec and /owflow:performance-plan <task-path> first` (or `/owflow:performance-analyze <task-path>` for the missing earlier step).
41
- - If no task exists yet: `Run /owflow:performance <description> to start a task from scratch.`
42
-
43
- ## Execute
44
-
45
- **Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md).
46
-
47
- ### Implementation (`implementation-done`, delegated)
48
-
49
- **Artifacts**: implemented optimizations, `implementation/work-log.md`
50
-
51
- > **ANTI-PATTERN — never implement directly. "Simple enough to code inline" is NOT a reason to skip delegation.**
52
- >
53
- > - ❌ "Let me implement this directly..." — STOP. Delegate to `implementation-plan-executor`.
54
- > - ❌ "This is simple enough to code inline..." — STOP. Simplicity is NOT a reason to skip delegation.
55
-
56
- 1. **INVOKE NOW** (Skill tool — never the Task tool; this skill spawns its own subagents): Skill tool - `implementation-plan-executor`. Pass: task_path, task_description, `performance_context.task_characteristics`, `performance_context.bottleneck_priorities`, and relevant `performance_context.phase_summaries` (specification, bottleneck_analysis, planning). The skill manages its own subagents, incremental tests, plan checkboxes, and `implementation/work-log.md`. Its terminal **full test-suite run** is what makes the template default `skip_test_suite: true` causally safe — do not swap this engine.
57
- 2. **SELF-CHECK**: Did you just invoke the Skill tool with `implementation-plan-executor`? Or did you start writing code yourself? If the latter, STOP immediately and invoke the Skill tool instead.
58
- 3. **Append this skill's own slug** (replaces the monolith's re-acquire / POST-IMPLEMENTATION block): after the skill returns, re-read `orchestrator-state.yml` to confirm you are the orchestrator, then append `implementation-done` to `completed_phases` and extract a 1-2 sentence summary into `performance_context.phase_summaries.implementation` from `implementation/work-log.md` (task groups completed, files changed, test results, known issues).
59
- 4. **State write**: bump `orchestrator.updated`. On failure: append `implementation-done` to `failed_phases`, increment `auto_fix_attempts["implementation-done"]`; partial progress stays documented in `implementation/work-log.md`. Then re-read state + run `verify_template`.
60
-
61
- ## State Update Convention (per step)
62
-
63
- Apply after EVERY step above:
64
-
65
- 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`implementation-done`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
66
- 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
67
- 3. **Failures** — if the implementation 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>"]`.
68
- 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-performance.yml`. Fix any reported issue immediately before proceeding.
69
- 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.
70
-
71
- ## Recovery
72
-
73
- | Step | Max Attempts | Strategy |
74
- | -------------------------------- | ------------ | -------------------------------------------------------------------- |
75
- | Implementation (`implementation-done`) | 5 | Fix syntax, imports, tests; return to the executor for the failing group |
76
-
77
- ## Exit Gate
78
-
79
- Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
80
-
81
- ### Results box
82
-
83
- ```markdown
84
- ## ✅ PERFORMANCE IMPLEMENT COMPLETE — <task name>
85
-
86
- **Task groups** — [completed / total]
87
- **Files changed** — [count + key files, 1-3 lines]
88
- **Tests** — [incremental + terminal full-suite results from the executor]
89
- **Known issues** — [deferred items / "none"]
90
-
91
- **Artifacts**
92
-
93
- - implemented optimizations
94
- - `implementation/work-log.md`
95
- ```
96
-
97
- ### Results-acceptance question
98
-
99
- Use `question` — "Are these results correct?" with options:
100
-
101
- - **Accept** — implementation matches the plan; continue.
102
- - **Adjust** — re-work the affected task groups (fix code, re-run their tests), update state and work-log, re-present the results box.
103
- - **Discuss** — walk through implementation details (decisions made, files changed, deferred items) in more depth; then re-ask.
104
- - **Stop here** — print the resume command (`/owflow:performance-implement <task-path>`) and end.
105
-
106
- ### Next steps (after Accept)
107
-
108
- - `→ /owflow:performance-verify <task-path>` — `required` before finalization: picks the additional verification checks and runs the verification pipeline. Remaining after: finalize.
109
-
110
- **Other options**:
111
-
112
- - `/owflow:goal-performance <task-path>` — `optional` shortcut: runs all remaining steps in one loop (verify → finalize)
113
-
114
- Then STOP.
1
+ ---
2
+ name: owflow:performance-implement
3
+ description: Performance — executes the approved implementation plan via the implementation-plan-executor skill, then records implementation-done. Continues with performance-verify.
4
+ argument-hint: "[task-path-or-identifier]"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Performance Implement — Implementation (implementation-done)
9
+
10
+ Work step of the performance workflow. Executes the optimization plan via the `implementation-plan-executor` skill, then records the implementation outcome in state. State lives in `orchestrator-state.yml` — this skill reads it on entry and writes results on exit.
11
+
12
+ ## Entry Gate
13
+
14
+ Resolve the argument BEFORE anything else (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). The argument may be:
15
+
16
+ - **Path** (absolute or project-relative) to the task directory — use as-is.
17
+ - **Identifier** — exact directory name inside `.owflow/tasks/performance/` (e.g., `2026-10-02-api-latency`); resolve to its path.
18
+ - **Description** — anything else (free text) is treated as a new performance task description: ask via `question` whether to start a fresh standard task at this step (mid-pipeline bootstrap) or route through `/owflow:performance <description>`; on decline, print the blocked block and STOP.
19
+ - 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):
20
+
21
+ 1. Steps that must be completed first (in order), each with its command:
22
+ - Codebase & bottleneck analysis (`codebase-analysed`, `bottlenecks-identified`) → `/owflow:performance-analyze <task-path>`
23
+ - Requirements, specification & conditional audit (`spec-written`, `spec-audited`) → `/owflow:performance-spec <task-path>`
24
+ - Implementation planning (`plan-created`) → `/owflow:performance-plan <task-path>`
25
+ 2. List available performance-task identifiers (directories under `.owflow/tasks/performance/`) to resume from, if any.
26
+ 3. Hint: `Run /owflow:performance <description> 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:performance <desc>` |
33
+ | Spec approved | `implementation/spec.md` exists | `/owflow:performance-spec <task-path>` |
34
+ | Plan approved | `implementation/implementation-plan.md` exists | `/owflow:performance-plan <task-path>` |
35
+
36
+ 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 `implementation-done`): `question` — create a fresh standard performance task starting at this step, or decline → print `No performance task found at <path>. Run /owflow:performance <description> to start a task from scratch.` and STOP.
37
+ 2. **Skip/resume**: if `implementation-done` is in `completed_phases` and `implementation/work-log.md` exists, backfill `performance_context.phase_summaries.implementation` from the work-log when it is still null, report the existing results, and route to the Exit Gate. If the work-log is missing → drop `implementation-done` and re-run the implementation step.
38
+ 3. **Prerequisite check (presence and content)**: `implementation/spec.md` AND `implementation/implementation-plan.md` exist. If missing → print the blocked block, then STOP:
39
+ - Steps that must be completed first: specification (`spec-written`) → implementation planning (`plan-created`).
40
+ - `Run /owflow:performance-spec and /owflow:performance-plan <task-path> first` (or `/owflow:performance-analyze <task-path>` for the missing earlier step).
41
+ - If no task exists yet: `Run /owflow:performance <description> to start a task from scratch.`
42
+
43
+ ## Execute
44
+
45
+ **Read first**: the [Delegation Rules](../orchestrator-framework/references/delegation-rules.md).
46
+
47
+ ### Implementation (`implementation-done`, delegated)
48
+
49
+ **Artifacts**: implemented optimizations, `implementation/work-log.md`
50
+
51
+ > **ANTI-PATTERN — never implement directly. "Simple enough to code inline" is NOT a reason to skip delegation.**
52
+ >
53
+ > - ❌ "Let me implement this directly..." — STOP. Delegate to `implementation-plan-executor`.
54
+ > - ❌ "This is simple enough to code inline..." — STOP. Simplicity is NOT a reason to skip delegation.
55
+
56
+ 1. **INVOKE NOW** (Skill tool — never the Task tool; this skill spawns its own subagents): Skill tool - `implementation-plan-executor`. Pass: task_path, task_description, `performance_context.task_characteristics`, `performance_context.bottleneck_priorities`, and relevant `performance_context.phase_summaries` (specification, bottleneck_analysis, planning). The skill manages its own subagents, incremental tests, plan checkboxes, and `implementation/work-log.md`. Its terminal **full test-suite run** is what makes the template default `skip_test_suite: true` causally safe — do not swap this engine.
57
+ 2. **SELF-CHECK**: Did you just invoke the Skill tool with `implementation-plan-executor`? Or did you start writing code yourself? If the latter, STOP immediately and invoke the Skill tool instead.
58
+ 3. **Append this skill's own slug** (replaces the monolith's re-acquire / POST-IMPLEMENTATION block): after the skill returns, re-read `orchestrator-state.yml` to confirm you are the orchestrator, then append `implementation-done` to `completed_phases` and extract a 1-2 sentence summary into `performance_context.phase_summaries.implementation` from `implementation/work-log.md` (task groups completed, files changed, test results, known issues).
59
+ 4. **State write**: bump `orchestrator.updated`. On failure: append `implementation-done` to `failed_phases`, increment `auto_fix_attempts["implementation-done"]`; partial progress stays documented in `implementation/work-log.md`. Then re-read state + run `verify_template`.
60
+
61
+ ## State Update Convention (per step)
62
+
63
+ Apply after EVERY step above:
64
+
65
+ 1. **Write immediately** — update `orchestrator-state.yml` as soon as the step completes, appending ONLY the step slug actually performed (`implementation-done`) plus that step's fields. Never batch multiple steps into one end-of-skill write.
66
+ 2. **Timestamp** — set `orchestrator.updated` to the current UTC timestamp on every write.
67
+ 3. **Failures** — if the implementation 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>"]`.
68
+ 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-performance.yml`. Fix any reported issue immediately before proceeding.
69
+ 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.
70
+
71
+ ## Recovery
72
+
73
+ | Step | Max Attempts | Strategy |
74
+ | -------------------------------- | ------------ | -------------------------------------------------------------------- |
75
+ | Implementation (`implementation-done`) | 5 | Fix syntax, imports, tests; return to the executor for the failing group |
76
+
77
+ ## Exit Gate
78
+
79
+ Present results, get user confirmation, then hand off (see [Gate Contract](../orchestrator-framework/references/gate-contract.md)). Never auto-invoke the next skill.
80
+
81
+ ### Results box
82
+
83
+ ```markdown
84
+ ## ✅ PERFORMANCE IMPLEMENT COMPLETE — <task name>
85
+
86
+ **Task groups** — [completed / total]
87
+ **Files changed** — [count + key files, 1-3 lines]
88
+ **Tests** — [incremental + terminal full-suite results from the executor]
89
+ **Known issues** — [deferred items / "none"]
90
+
91
+ **Artifacts**
92
+
93
+ - implemented optimizations
94
+ - `implementation/work-log.md`
95
+ ```
96
+
97
+ ### Results-acceptance question
98
+
99
+ Use `question` — "Are these results correct?" with options:
100
+
101
+ - **Accept** — implementation matches the plan; continue.
102
+ - **Adjust** — re-work the affected task groups (fix code, re-run their tests), update state and work-log, re-present the results box.
103
+ - **Discuss** — walk through implementation details (decisions made, files changed, deferred items) in more depth; then re-ask.
104
+ - **Stop here** — print the resume command (`/owflow:performance-implement <task-path>`) and end.
105
+
106
+ ### Next steps (after Accept)
107
+
108
+ - `→ /owflow:performance-verify <task-path>` — `required` before finalization: picks the additional verification checks and runs the verification pipeline. Remaining after: finalize.
109
+
110
+ **Other options**:
111
+
112
+ - `/owflow:goal-performance <task-path>` — `optional` shortcut: runs all remaining steps in one loop (verify → finalize)
113
+
114
+ Then STOP.