owflow 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +8 -1
  2. package/dist/agents/bottleneck-analyzer.md +329 -0
  3. package/dist/agents/code-quality-pragmatist.md +354 -0
  4. package/dist/agents/code-reviewer.md +239 -0
  5. package/dist/agents/codebase-analysis-reporter.md +246 -0
  6. package/dist/agents/docs-operator.md +23 -0
  7. package/dist/agents/e2e-test-verifier.md +448 -0
  8. package/dist/agents/gap-analyzer.md +502 -0
  9. package/dist/agents/implementation-completeness-checker.md +220 -0
  10. package/dist/agents/implementation-planner.md +309 -0
  11. package/dist/agents/information-gatherer.md +691 -0
  12. package/dist/agents/production-readiness-checker.md +279 -0
  13. package/dist/agents/project-analyzer.md +404 -0
  14. package/dist/agents/reality-assessor.md +366 -0
  15. package/dist/agents/research-planner.md +447 -0
  16. package/dist/agents/research-synthesizer.md +401 -0
  17. package/dist/agents/solution-brainstormer.md +257 -0
  18. package/dist/agents/solution-designer.md +372 -0
  19. package/dist/agents/spec-auditor.md +298 -0
  20. package/dist/agents/specification-creator.md +334 -0
  21. package/dist/agents/task-classifier.md +462 -0
  22. package/dist/agents/task-group-implementer.md +284 -0
  23. package/dist/agents/test-suite-runner.md +195 -0
  24. package/dist/agents/ui-mockup-generator.md +369 -0
  25. package/dist/agents/user-docs-generator.md +509 -0
  26. package/dist/commands/development.md +37 -0
  27. package/dist/commands/flow-init.md +37 -0
  28. package/dist/commands/migration.md +37 -0
  29. package/dist/commands/performance.md +37 -0
  30. package/dist/commands/product-design.md +37 -0
  31. package/dist/commands/quick-bugfix.md +37 -0
  32. package/dist/commands/quick-dev.md +140 -0
  33. package/dist/commands/quick-plan.md +132 -0
  34. package/dist/commands/research.md +37 -0
  35. package/dist/commands/reviews-code.md +90 -0
  36. package/dist/commands/reviews-pragmatic.md +99 -0
  37. package/dist/commands/reviews-production-readiness.md +113 -0
  38. package/dist/commands/reviews-reality-check.md +110 -0
  39. package/dist/commands/reviews-spec-audit.md +114 -0
  40. package/dist/commands/standards-discover.md +37 -0
  41. package/dist/commands/standards-update.md +37 -0
  42. package/dist/commands/work.md +284 -0
  43. package/dist/index.js +3 -2
  44. package/dist/skills/codebase-analyzer/SKILL.md +162 -0
  45. package/dist/skills/codebase-analyzer/references/code-analysis.md +63 -0
  46. package/dist/skills/codebase-analyzer/references/combined.md +31 -0
  47. package/dist/skills/codebase-analyzer/references/context-discovery.md +63 -0
  48. package/dist/skills/codebase-analyzer/references/file-discovery.md +51 -0
  49. package/dist/skills/codebase-analyzer/references/migration-target.md +23 -0
  50. package/dist/skills/codebase-analyzer/references/pattern-mining.md +22 -0
  51. package/dist/skills/development/SKILL.md +669 -0
  52. package/dist/skills/docs-manager/SKILL.md +379 -0
  53. package/dist/skills/docs-manager/docs/INDEX.md +199 -0
  54. package/dist/skills/docs-manager/docs/standards/backend/api.md +25 -0
  55. package/dist/skills/docs-manager/docs/standards/backend/migrations.md +22 -0
  56. package/dist/skills/docs-manager/docs/standards/backend/models.md +25 -0
  57. package/dist/skills/docs-manager/docs/standards/backend/queries.md +22 -0
  58. package/dist/skills/docs-manager/docs/standards/frontend/accessibility.md +25 -0
  59. package/dist/skills/docs-manager/docs/standards/frontend/components.md +28 -0
  60. package/dist/skills/docs-manager/docs/standards/frontend/css.md +16 -0
  61. package/dist/skills/docs-manager/docs/standards/frontend/responsive.md +28 -0
  62. package/dist/skills/docs-manager/docs/standards/global/coding-style.md +25 -0
  63. package/dist/skills/docs-manager/docs/standards/global/commenting.md +10 -0
  64. package/dist/skills/docs-manager/docs/standards/global/conventions.md +31 -0
  65. package/dist/skills/docs-manager/docs/standards/global/error-handling.md +22 -0
  66. package/dist/skills/docs-manager/docs/standards/global/minimal-implementation.md +22 -0
  67. package/dist/skills/docs-manager/docs/standards/global/validation.md +28 -0
  68. package/dist/skills/docs-manager/docs/standards/testing/test-writing.md +25 -0
  69. package/dist/skills/docs-manager/references/claude-md-template.md +29 -0
  70. package/dist/skills/docs-manager/references/index-md-template.md +73 -0
  71. package/dist/skills/flow-init/SKILL.md +198 -0
  72. package/dist/skills/flow-init/references/architecture-template.md +45 -0
  73. package/dist/skills/flow-init/references/roadmap-templates.md +93 -0
  74. package/dist/skills/flow-init/references/tech-stack-template.md +70 -0
  75. package/dist/skills/flow-init/references/vision-templates.md +75 -0
  76. package/dist/skills/implementation-plan-executor/SKILL.md +378 -0
  77. package/dist/skills/implementation-verifier/SKILL.md +307 -0
  78. package/dist/skills/migration/SKILL.md +380 -0
  79. package/dist/skills/migration/references/migration-strategies.md +397 -0
  80. package/dist/skills/migration/references/migration-types.md +437 -0
  81. package/dist/skills/orchestrator-framework/SKILL.md +65 -0
  82. package/dist/skills/orchestrator-framework/references/orchestrator-creation-checklist.md +47 -0
  83. package/dist/skills/orchestrator-framework/references/orchestrator-patterns.md +329 -0
  84. package/dist/skills/performance/SKILL.md +418 -0
  85. package/dist/skills/performance/references/performance-optimization-guide.md +365 -0
  86. package/dist/skills/product-design/SKILL.md +843 -0
  87. package/dist/skills/product-design/references/characteristic-detection.md +92 -0
  88. package/dist/skills/product-design/references/interaction-patterns.md +206 -0
  89. package/dist/skills/product-design/references/visual-companion.md +190 -0
  90. package/dist/skills/product-design/server/index.ts +359 -0
  91. package/dist/skills/product-design/server/template.html +256 -0
  92. package/dist/skills/quick-bugfix/SKILL.md +241 -0
  93. package/dist/skills/research/SKILL.md +493 -0
  94. package/dist/skills/research/references/brainstorming-techniques.md +84 -0
  95. package/dist/skills/research/references/design-techniques.md +40 -0
  96. package/dist/skills/research/references/research-methodologies.md +710 -0
  97. package/dist/skills/standards-discover/SKILL.md +236 -0
  98. package/dist/skills/standards-discover/references/aggregation-strategy.md +76 -0
  99. package/dist/skills/standards-discover/references/code-pattern-prompt.md +68 -0
  100. package/dist/skills/standards-discover/references/config-analyzer-prompt.md +67 -0
  101. package/dist/skills/standards-discover/references/docs-extractor-prompt.md +65 -0
  102. package/dist/skills/standards-discover/references/external-analyzer-prompt.md +75 -0
  103. package/dist/skills/standards-update/SKILL.md +159 -0
  104. package/package.json +44 -43
@@ -0,0 +1,329 @@
1
+ # Orchestrator Patterns
2
+
3
+ Shared execution rules, schemas, and patterns for all workflow orchestrators.
4
+
5
+ ---
6
+
7
+ ## 1. Delegation Rules
8
+
9
+ **Always use Skill/Task tools to delegate. Never execute delegated work inline.**
10
+
11
+ When a phase requires delegation:
12
+
13
+ 1. Use the **Skill tool** for **skills** — loads SKILL.md instructions into the main agent's context; the main agent executes the skill's instructions and continues with the orchestrator workflow afterward
14
+ 2. Use the **Task tool** for **subagents/agents** — spawns an isolated subprocess that returns results when complete
15
+ 3. Wait for completion before continuing
16
+
17
+ **Skills and agents are NOT interchangeable.** Skills always use Skill tool; agents always use Task tool. Never invoke a skill via Task tool (`subagent_type`) — it will fail with "Agent type not found."
18
+
19
+ **Why skills MUST use Skill tool**: Skills like `codebase-analyzer`, `implementation-plan-executor`, and `implementation-verifier` spawn their own subagents (Explore agents, reporters, planners). Subagents cannot spawn other subagents — so these skills must run in the main agent context via Skill tool.
20
+
21
+ **Companion agent pattern** (e.g., `docs-operator`): Only works for skills that do NOT spawn subagents (like `docs-manager` which only does file operations). A companion agent preloads the skill via the `skills` frontmatter field and is invoked via Task tool. This pattern fails for any skill that needs to spawn subagents.
22
+
23
+ ### Anti-Patterns
24
+
25
+ | Anti-Pattern | Why It's Wrong | Correct Approach |
26
+ | --------------------------------------- | ------------------------------------------- | ----------------------------------------------------- |
27
+ | "I'll analyze the codebase..." | Bypasses codebase-analyzer skill | Use `Skill` tool with `codebase-analyzer` |
28
+ | "Let me create the specification..." | Bypasses specification-creator | Use `Task` tool with `specification-creator` subagent |
29
+ | "Looking at the gaps between..." | Bypasses gap-analyzer subagent | Use `Task` tool with `gap-analyzer` |
30
+ | "I'll implement this by..." | Bypasses implementation-plan-executor skill | Use `Skill` tool with `implementation-plan-executor` |
31
+ | Reading a SKILL.md then doing the work | Skill files are instructions FOR skills | Use Skill tool to invoke |
32
+ | Spawning Explore agents in orchestrator | Codebase-analyzer manages its own agents | Invoke skill, let IT spawn agents |
33
+
34
+ ### When Inline Execution is Acceptable
35
+
36
+ These do NOT require delegation:
37
+
38
+ 1. **Clarifying questions phases** — question is direct
39
+ 2. **State updates** — Reading/writing orchestrator-state.yml
40
+ 3. **Phase announcements** — Outputting status messages
41
+ 4. **Simple decisions** — Enabling/disabling optional phases
42
+ 5. **Finalization** — Creating summary, updating metadata
43
+
44
+ For all analysis, planning, implementation, and verification phases: **ALWAYS DELEGATE**.
45
+
46
+ **Never acceptable inline** (regardless of perceived task simplicity):
47
+
48
+ - Specification creation → always delegate to `specification-creator` subagent
49
+ - Implementation planning → always delegate to `implementation-planner` subagent
50
+ - Gap analysis → always delegate to `gap-analyzer` subagent
51
+ - Codebase analysis → always delegate to `codebase-analyzer` skill
52
+ - Code review → always delegate to `code-reviewer` subagent
53
+ - Test execution → always delegate to `test-suite-runner` subagent
54
+ - Implementation completeness → always delegate to `implementation-completeness-checker` subagent
55
+
56
+ "The task is simple" is NOT a valid reason to skip delegation.
57
+
58
+ ---
59
+
60
+ ## 2. Phase Gate Behavior
61
+
62
+ **`→ Pause` means STOP and USE question.** This is NOT optional. You MUST invoke the `question` tool and WAIT for user response. Proceeding without it is a protocol violation.
63
+
64
+ All orchestrators pause at `→ Pause` transitions for user review and prompt for optional phases.
65
+
66
+ **State ordering rule**: Phase state MUST NOT be updated to 'completed' (via orchestrator-state.yml or TaskUpdate) until AFTER the user responds to the exit gate. Correct sequence: finish phase work → call question → receive user response → update state to completed.
67
+
68
+ ### Phase Entry Checks
69
+
70
+ Every phase that follows a `→ Pause` gate includes an entry check at its TOP:
71
+
72
+ ```
73
+ > **Phase gate**: Confirm Phase N completion before executing.
74
+ ```
75
+
76
+ This catches missed gates: if the previous phase's `→ Pause` was skipped (e.g., the model output a summary and moved on), the entry check forces the gate to fire before the next phase executes. If the gate already fired, continue normally.
77
+
78
+ ### AUTO-CONTINUE Rules
79
+
80
+ When a phase ends with `→ **AUTO-CONTINUE**`:
81
+
82
+ - You MAY output a brief phase summary (1-2 lines)
83
+ - Do NOT end your turn
84
+ - Do NOT use question
85
+ - Do NOT wait for user input
86
+ - After any summary, proceed immediately to the next phase
87
+
88
+ **Common mistake**: Outputting a summary and then stopping/ending the turn. The summary is fine — stopping is not.
89
+
90
+ ### Anti-Patterns
91
+
92
+ | Anti-Pattern | Why It's Wrong |
93
+ | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
94
+ | Proceeding without question at phase gates | User loses control, can't review or stop |
95
+ | Saying "I'll pause here" without tool call | Words are not pauses. Tool invocation required. |
96
+ | Auto-accepting subagent decisions without asking | User must consent to scope/approach decisions |
97
+ | Outputting a summary after phase work, then ending turn before reaching `→ Pause` | Gate is skipped; user loses control at the most critical review point. The gate must be the FIRST action after phase work completes — no summaries, no output before it. |
98
+ | Marking phase as completed (state/TaskUpdate) before the exit gate executes | State corruption — downstream phases see false "completed" status. Gate → user response → state update. Never reverse this order. |
99
+
100
+ ---
101
+
102
+ ## 3. Context Passing & Decisions
103
+
104
+ ### Context Passing
105
+
106
+ All subagent prompts must include context from prior phases:
107
+
108
+ ```
109
+ prompt: |
110
+ [Task instructions]
111
+ Task path: [path]
112
+
113
+ ## CONTEXT FROM PRIOR PHASES
114
+ [Key state fields from orchestrator-state.yml]
115
+ [Summaries of completed phases from phase_summaries]
116
+
117
+ ## RESEARCH CONTEXT (if research_reference exists)
118
+ Research question: [research_reference.research_question]
119
+ Summary: [phase_summaries.research.summary]
120
+
121
+ ## ARTIFACTS TO READ
122
+ [List relevant files for full details]
123
+ ```
124
+
125
+ **Why**: Subagents run in isolated context. Without summaries, they must re-parse entire files and miss prior decisions.
126
+
127
+ ### Context Extraction
128
+
129
+ After each phase, extract key findings into `[domain]_context.phase_summaries`:
130
+
131
+ 1. Parse subagent output for key fields
132
+ 2. Create 1-2 sentence summary
133
+ 3. Update state: `[domain]_context.phase_summaries.[phase_name]`
134
+
135
+ This enables context passing to downstream phases and supports resume.
136
+
137
+ **Critical**: Some subagent outputs contain structured fields that control downstream phase logic (e.g., `task_characteristics` from gap-analyzer gates Phase 4 and Phase 10 defaults). These MUST be extracted and written to state immediately — not just summarized. Re-read state after writing to verify the values were stored correctly.
138
+
139
+ ### Decision Enforcement
140
+
141
+ When a subagent returns `decisions_needed` items, the orchestrator MUST present them to the user via question. Decisions are never silently skipped.
142
+
143
+ **Anti-Patterns** (NEVER do this):
144
+
145
+ | Anti-Pattern | Why It's Wrong |
146
+ | ----------------------------------------------- | ---------------------------------------------------- |
147
+ | "I'll accept the recommended defaults" | User loses control over critical scope decisions |
148
+ | Logging decisions without asking | Documentation is not consent |
149
+ | "The recommendations are clear, no need to ask" | Clarity is not consent. User may disagree. |
150
+ | Skipping decisions because task seems simple | Simple tasks can have non-obvious scope implications |
151
+
152
+ **Decision Gate Pattern**:
153
+
154
+ 1. **Parse**: Extract all critical and important decisions from subagent output
155
+ 2. **Present**: Use `question` for each critical decision; batch important decisions into multi-select
156
+ 3. **SELF-CHECK**: "Did I present ALL decisions from `decisions_needed`? If not, STOP."
157
+
158
+ ---
159
+
160
+ ## 4. State Schema
161
+
162
+ All orchestrators use `orchestrator-state.yml` at `.owflow/tasks/[type]/YYYY-MM-DD-task-name/orchestrator-state.yml`.
163
+
164
+ ### Common Fields
165
+
166
+ ```yaml
167
+ orchestrator:
168
+ # Phase tracking
169
+ started_phase: [phase-name]
170
+ completed_phases: []
171
+ failed_phases: []
172
+
173
+ # Auto-fix tracking (per phase)
174
+ auto_fix_attempts:
175
+ phase-1: 0
176
+ phase-2: 0
177
+
178
+ # Optional phase flags
179
+ options:
180
+ e2e_enabled: true | false | null
181
+ user_docs_enabled: true | false | null
182
+ code_review_enabled: true | false | null
183
+
184
+ # Timestamps
185
+ created: [ISO 8601 timestamp]
186
+ updated: [ISO 8601 timestamp]
187
+ task_path: .owflow/tasks/[type]/YYYY-MM-DD-task-name
188
+
189
+ # Task tracking IDs (maps phase names to TaskCreate IDs)
190
+ task_ids:
191
+ phase-1: null
192
+ phase-2: null
193
+
194
+ # Task metadata
195
+ task:
196
+ title: [human-readable task title]
197
+ description: [full task description]
198
+ status: pending | in_progress | completed | failed | blocked
199
+ tags: []
200
+ priority: null # high | medium | low
201
+ ```
202
+
203
+ ### Extension Pattern
204
+
205
+ Orchestrators add domain-specific fields using `[domain]_context`:
206
+
207
+ | Domain | Context Field | Example Fields |
208
+ | ----------- | --------------------- | -------------------------------------------------- |
209
+ | Development | `task_context` | risk_level, ui_heavy, architecture_decision |
210
+ | Performance | `performance_context` | baseline_p95, target_p95, optimizations_completed |
211
+ | Migration | `migration_context` | migration_type, steps_completed |
212
+ | Research | `research_context` | research_type, research_question, confidence_level |
213
+
214
+ See each orchestrator's SKILL.md "Domain Context" section for full schema.
215
+
216
+ ### Shared: research_reference
217
+
218
+ When development starts from completed research (`--research` flag):
219
+
220
+ ```yaml
221
+ task_context:
222
+ research_reference:
223
+ path: null
224
+ research_question: null
225
+ research_type: null # technical | requirements | literature | mixed
226
+ confidence_level: null # high | medium | low
227
+
228
+ phase_summaries:
229
+ research:
230
+ summary: null
231
+ key_findings: []
232
+ recommended_approach: null
233
+ decisions_made: []
234
+ ```
235
+
236
+ Research context flows to ALL phases via context passing. Artifacts are also copied to `analysis/research-context/`.
237
+
238
+ ### Shared: verification_context
239
+
240
+ All orchestrators with verification phases use:
241
+
242
+ ```yaml
243
+ verification_context:
244
+ last_status: passed | passed_with_issues | failed | null
245
+ issues_found: []
246
+ fixes_applied: []
247
+ decisions_made: []
248
+ reverify_count: 0 # max 3
249
+ ```
250
+
251
+ ---
252
+
253
+ ## 5. Initialization & Resume
254
+
255
+ ### Initialization Steps
256
+
257
+ 1. **Parse arguments**: Extract description, type, entry point (`--from`), optional flags
258
+ 2. **Determine starting phase**: New task starts Phase 1; resume reads state for first incomplete phase
259
+ 3. **Create task directory**: Standard structure with analysis/, implementation/, verification/, documentation/ _(skip on resume)_
260
+ 4. **Create state file**: `orchestrator-state.yml` _(skip on resume)_
261
+ 5. **Create task items**: `TaskCreate` for all phases, then `TaskUpdate addBlockedBy` for dependencies. On resume, also restore completed phase statuses.
262
+ 6. **Output summary**: Show task info, phases, starting message
263
+
264
+ ### Task Name Generation
265
+
266
+ 1. Extract 3-5 key words from description
267
+ 2. Convert to lowercase kebab-case
268
+ 3. Prepend current date: `YYYY-MM-DD`
269
+
270
+ Examples: "Fix login timeout bug" → `2025-12-17-fix-login-timeout`
271
+
272
+ ### Task Restoration on Resume
273
+
274
+ Task system IDs are ephemeral to a session. On resume:
275
+
276
+ 1. Create all phase tasks (same `TaskCreate` loop, all start pending)
277
+ 2. Set dependencies (same `TaskUpdate addBlockedBy`)
278
+ 3. Mark completed phases (`TaskUpdate` to `completed` with `metadata: {restored: true}`)
279
+ 4. Update state with new task IDs
280
+
281
+ ### Resume Logic
282
+
283
+ 1. **Read state file** — Load `orchestrator-state.yml`
284
+ 2. **Validate artifacts** — Check expected files for `completed_phases`. If missing, remove from list.
285
+ 3. **Find resume point** — First phase not in `completed_phases`
286
+ 4. **Check prerequisites** — Verify required artifacts exist
287
+ 5. **Restore task items** — Re-create phase tasks and mark completed ones
288
+
289
+ | Starting From | Required Prerequisites |
290
+ | -------------- | -------------------------------- |
291
+ | Gap Analysis | `analysis/codebase-analysis.md` |
292
+ | Specification | `analysis/gap-analysis.md` |
293
+ | Planning | `implementation/spec.md` |
294
+ | Implementation | spec.md + implementation-plan.md |
295
+ | Verification | Implementation complete |
296
+
297
+ If prerequisites missing, use question: "Start from Phase 1", "Specify different phase", or "Exit".
298
+
299
+ ---
300
+
301
+ ## 6. Issue Resolution
302
+
303
+ **Don't just report issues — resolve them.** Use after verification phases that return structured issues.
304
+
305
+ ### Fix-Then-Reverify Loop
306
+
307
+ 1. Read verification results (structured issues)
308
+ 2. For each issue: trivial/auto-fixable → fix silently, log action; non-trivial → question
309
+ 3. If fixes applied → set `skip_test_suite: false` (code changed) → re-run verification
310
+ 4. Loop until: passes OR user proceeds with known issues OR max iterations (3)
311
+
312
+ ### Fixability Assessment
313
+
314
+ | Likely Fixable | Likely Not Fixable |
315
+ | ------------------- | -------------------------- |
316
+ | Lint errors | Architecture decisions |
317
+ | Formatting issues | Design trade-offs |
318
+ | Missing imports | Test logic errors |
319
+ | Obvious typos | Unclear requirements |
320
+ | Simple config fixes | Performance tuning choices |
321
+
322
+ ### Exit Conditions
323
+
324
+ | Condition | Action |
325
+ | ---------------------------------------- | -------------------------------------------------- |
326
+ | Verification passes | Proceed to next phase |
327
+ | User chooses "Proceed with known issues" | Proceed with warning logged |
328
+ | Max iterations (3) reached | Ask user how to proceed |
329
+ | Critical issues remain unresolved | **MUST NOT proceed** — require user approval first |