wogiflow 1.1.7 → 1.1.9

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 (77) hide show
  1. package/.claude/commands/wogi-bulk.md +147 -9
  2. package/.claude/commands/wogi-capture.md +111 -20
  3. package/.claude/commands/wogi-research.md +73 -17
  4. package/.claude/commands/wogi-start.md +142 -12
  5. package/.claude/docs/development-guide.md +163 -0
  6. package/.claude/docs/knowledge-base/02-task-execution/external-integrations.md +7 -4
  7. package/.claude/docs/knowledge-base/05-development-tools/mcp-tools-generated.md +217 -0
  8. package/.claude/docs/knowledge-base/future-features.md +2 -2
  9. package/.claude/docs/release-process.md +70 -0
  10. package/.claude/rules/operations/github-releases.md +51 -0
  11. package/.workflow/bridges/index.js +20 -100
  12. package/.workflow/templates/claude-md.hbs +48 -32
  13. package/lib/installer.js +5 -30
  14. package/lib/utils.js +4 -3
  15. package/package.json +1 -1
  16. package/scripts/flow +39 -13
  17. package/scripts/flow-aggregate.js +54 -10
  18. package/scripts/flow-background.js +540 -0
  19. package/scripts/flow-bridge-state.js +48 -92
  20. package/scripts/flow-bridge.js +17 -75
  21. package/scripts/flow-bulk-orchestrator.js +711 -0
  22. package/scripts/flow-capture.js +609 -29
  23. package/scripts/flow-health.js +2 -7
  24. package/scripts/flow-hooks.js +1 -1
  25. package/scripts/flow-mcp-docs.js +652 -0
  26. package/scripts/flow-model-router.js +5 -0
  27. package/scripts/flow-onboard +38 -8
  28. package/scripts/flow-permissions.js +362 -0
  29. package/scripts/flow-research-protocol.js +91 -9
  30. package/scripts/flow-session-end.js +90 -8
  31. package/scripts/flow-story.js +57 -23
  32. package/scripts/flow-task-analyzer.js +35 -5
  33. package/scripts/hooks/adapters/index.js +2 -101
  34. package/scripts/hooks/core/research-gate.js +78 -2
  35. package/scripts/hooks/core/task-gate.js +22 -0
  36. package/scripts/postinstall.js +2 -4
  37. package/.claude/rules/README.md +0 -60
  38. package/.claude/rules/architecture/component-reuse.md +0 -38
  39. package/.claude/rules/architecture/document-structure.md +0 -76
  40. package/.claude/rules/architecture/feature-refactoring-cleanup.md +0 -87
  41. package/.claude/rules/architecture/model-management.md +0 -35
  42. package/.claude/rules/code-style/naming-conventions.md +0 -55
  43. package/.claude/rules/security/security-patterns.md +0 -176
  44. package/.workflow/bridges/codex-bridge.js +0 -466
  45. package/.workflow/bridges/cursor-bridge.js +0 -573
  46. package/.workflow/bridges/gemini-bridge.js +0 -566
  47. package/.workflow/bridges/kimi-bridge.js +0 -454
  48. package/.workflow/bridges/opencode-bridge.js +0 -825
  49. package/.workflow/specs/architecture.md.template +0 -24
  50. package/.workflow/specs/stack.md.template +0 -33
  51. package/.workflow/specs/testing.md.template +0 -36
  52. package/.workflow/templates/codex-config.hbs +0 -69
  53. package/.workflow/templates/cursor-rules.mdc.hbs +0 -142
  54. package/.workflow/templates/gemini-md.hbs +0 -360
  55. package/.workflow/templates/kimi-agents-md.hbs +0 -139
  56. package/.workflow/templates/opencode-agents-md.hbs +0 -158
  57. package/.workflow/templates/opencode-config.hbs +0 -27
  58. package/scripts/flow-jira-integration.js +0 -579
  59. package/scripts/flow-linear-integration.js +0 -631
  60. package/scripts/flow-parity-check.js +0 -281
  61. package/scripts/hooks/adapters/cursor.js +0 -421
  62. package/scripts/hooks/adapters/gemini.js +0 -368
  63. package/scripts/hooks/adapters/opencode.js +0 -317
  64. package/scripts/hooks/entry/cursor/after-file-edit.js +0 -127
  65. package/scripts/hooks/entry/cursor/before-shell.js +0 -131
  66. package/scripts/hooks/entry/cursor/before-submit-prompt.js +0 -102
  67. package/scripts/hooks/entry/cursor/session-start.js +0 -148
  68. package/scripts/hooks/entry/cursor/stop.js +0 -135
  69. package/scripts/hooks/entry/gemini-cli/after-tool.js +0 -119
  70. package/scripts/hooks/entry/gemini-cli/before-agent.js +0 -140
  71. package/scripts/hooks/entry/gemini-cli/before-tool.js +0 -189
  72. package/scripts/hooks/entry/gemini-cli/session-end.js +0 -120
  73. package/scripts/hooks/entry/gemini-cli/session-start.js +0 -102
  74. package/scripts/hooks/entry/opencode/prompt-append.js +0 -76
  75. package/scripts/hooks/entry/opencode/session-start.js +0 -109
  76. package/scripts/hooks/entry/opencode/tool-after.js +0 -77
  77. package/scripts/hooks/entry/opencode/tool-before.js +0 -143
@@ -1,6 +1,8 @@
1
1
  Execute multiple tasks in sequence, following all workflow rules.
2
2
 
3
- **v2.1**: Now uses task queue for automatic continuation between tasks.
3
+ **v3.0**: Now supports **orchestrator mode** where each task executes in a fresh sub-agent context, preventing context pollution. Inspired by Matt Maher's "do-work" pattern.
4
+
5
+ **v2.1**: Uses task queue for automatic continuation between tasks.
4
6
 
5
7
  ## Usage
6
8
 
@@ -13,7 +15,38 @@ Execute multiple tasks in sequence, following all workflow rules.
13
15
  - "do wf-001, wf-002, wf-003"
14
16
  - "work on these 3 stories"
15
17
 
16
- ## How It Works (v2.1)
18
+ ## How It Works (v3.0 - Orchestrator Mode)
19
+
20
+ **Default behavior** (when `bulkOrchestrator.enabled: true`):
21
+
22
+ 1. **Build Execution Plan**:
23
+ - Detect dependencies between tasks
24
+ - Group independent tasks into parallel batches
25
+ - Order batches to respect dependencies
26
+
27
+ 2. **Execute Each Batch**:
28
+ - For each batch, spawn sub-agent(s) with **fresh context**
29
+ - Independent tasks in same batch run in parallel
30
+ - Dependent tasks wait for their dependencies
31
+
32
+ 3. **Pass-Forward Summaries**:
33
+ - When Task A completes, generate completion summary
34
+ - Task B (if dependent on A) receives summary as context
35
+ - Ensures continuity without context pollution
36
+
37
+ 4. **Failure Handling** (configurable via `onFailure`):
38
+ - `stop-all`: Stop entire queue on any failure
39
+ - `stop-dependent`: Skip tasks that depend on failed task, continue others
40
+ - `continue`: Log failure and continue all remaining tasks
41
+
42
+ **Benefits over v2.1:**
43
+ - No context pollution between tasks
44
+ - Can run for hours without context exhaustion
45
+ - Each task is atomic and reliable
46
+
47
+ ## How It Works (v2.1 - Legacy Mode)
48
+
49
+ When `bulkOrchestrator.enabled: false`:
17
50
 
18
51
  1. **Initialize Queue**:
19
52
  - Parse task IDs from arguments or natural language
@@ -36,27 +69,98 @@ Execute multiple tasks in sequence, following all workflow rules.
36
69
  - Quality gates and validation
37
70
  - Request log and app-map updates
38
71
 
39
- ## Execution Flow
72
+ ## Execution Flow (v3.0 Orchestrator)
40
73
 
41
74
  ```
42
75
  ┌─────────────────────────────────────────────────────────────┐
43
- │ /wogi-bulk 3
76
+ │ /wogi-bulk wf-001 wf-002 wf-003
77
+ ├─────────────────────────────────────────────────────────────┤
78
+ │ 1. Detect dependencies between tasks │
79
+ │ 2. Build execution batches: │
80
+ │ Batch 1: [wf-001, wf-002] (independent, run parallel) │
81
+ │ Batch 2: [wf-003] (depends on wf-001, run after) │
82
+ │ │
83
+ │ 3. Execute Batch 1: │
84
+ │ ┌─────────────────┐ ┌─────────────────┐ │
85
+ │ │ Sub-Agent A │ │ Sub-Agent B │ ← Parallel │
86
+ │ │ /wogi-start │ │ /wogi-start │ │
87
+ │ │ wf-001 │ │ wf-002 │ │
88
+ │ │ (fresh context) │ │ (fresh context) │ │
89
+ │ └────────┬────────┘ └────────┬────────┘ │
90
+ │ │ │ │
91
+ │ ▼ ▼ │
92
+ │ [Summary A] [Summary B] │
93
+ │ │
94
+ │ 4. Execute Batch 2: │
95
+ │ ┌─────────────────────────────────┐ │
96
+ │ │ Sub-Agent C │ │
97
+ │ │ Context: Summary A (dependency) │ ← Pass-forward │
98
+ │ │ /wogi-start wf-003 │ │
99
+ │ │ (fresh context + summary) │ │
100
+ │ └─────────────────────────────────┘ │
101
+ │ │
102
+ │ 5. All batches complete - show summary │
103
+ └─────────────────────────────────────────────────────────────┘
104
+ ```
105
+
106
+ ## Execution Flow (v2.1 Legacy)
107
+
108
+ ```
109
+ ┌─────────────────────────────────────────────────────────────┐
110
+ │ /wogi-bulk 3 --no-orchestrator │
44
111
  ├─────────────────────────────────────────────────────────────┤
45
112
  │ 1. Get 3 ready tasks sorted by priority │
46
113
  │ 2. Initialize task queue: [wf-001, wf-002, wf-003] │
47
- │ 3. Start wf-001 (full loop)
114
+ │ 3. Start wf-001 (full loop, SAME context)
48
115
  │ → All scenarios implemented and verified │
49
116
  │ → Quality gates pass │
50
117
  │ → Committed │
51
118
  │ 4. Stop hook detects queue has more tasks │
52
- │ 5. Auto-continue to wf-002 (full loop)
119
+ │ 5. Auto-continue to wf-002 (full loop, SAME context)
53
120
  │ → ... │
54
- │ 6. Auto-continue to wf-003 (full loop)
121
+ │ 6. Auto-continue to wf-003 (full loop, SAME context)
55
122
  │ → ... │
56
123
  │ 7. Queue empty - stop │
57
124
  └─────────────────────────────────────────────────────────────┘
58
125
  ```
59
126
 
127
+ ## Continuous Mode (v3.1)
128
+
129
+ When enabled, the orchestrator keeps checking for new work instead of stopping when the queue is empty. This enables the two-terminal workflow:
130
+
131
+ - **Terminal 1**: Running `/wogi-bulk --continuous` - continuously processing tasks
132
+ - **Terminal 2**: Capturing ideas with `/wogi-capture` - ideas become ready tasks
133
+
134
+ ```
135
+ ┌─────────────────────────────────────────────────────────────┐
136
+ │ /wogi-bulk --continuous │
137
+ ├─────────────────────────────────────────────────────────────┤
138
+ │ 1. Process initial queue (wf-001, wf-002) │
139
+ │ → All tasks complete │
140
+ │ │
141
+ │ 2. Queue empty - but continuous mode enabled │
142
+ │ → Wait 60 seconds (configurable) │
143
+ │ → Check for new tasks... │
144
+ │ │
145
+ │ 3. New task found! (wf-003 was captured during wait) │
146
+ │ → Process wf-003 │
147
+ │ → Task complete │
148
+ │ │
149
+ │ 4. Queue empty again │
150
+ │ → Wait 60 seconds │
151
+ │ → Check 1/3... no new tasks │
152
+ │ → Wait 60 seconds │
153
+ │ → Check 2/3... no new tasks │
154
+ │ → Wait 60 seconds │
155
+ │ → Check 3/3... no new tasks │
156
+ │ │
157
+ │ 5. Max idle checks reached - stop │
158
+ │ → Show summary of all completed work │
159
+ └─────────────────────────────────────────────────────────────┘
160
+ ```
161
+
162
+ **Graceful shutdown**: Press `Ctrl+C` to stop the loop. Current task will complete (or checkpoint) before stopping.
163
+
60
164
  ## Output
61
165
 
62
166
  **Start:**
@@ -95,14 +199,48 @@ Queue Summary:
95
199
 
96
200
  ## Options
97
201
 
98
- - `--auto` - Don't pause between tasks (default behavior in v2.1)
202
+ ### Orchestrator Options (v3.0)
203
+ - `--no-orchestrator` - Disable orchestrator mode, use legacy v2.1 behavior (same context)
204
+ - `--parallel-limit <N>` - Max tasks to run in parallel (default: 3)
205
+ - `--on-failure <mode>` - How to handle failures: `stop-all`, `stop-dependent`, `continue`
206
+ - `--summary-depth <level>` - Pass-forward summary detail: `minimal`, `standard`, `detailed`
207
+
208
+ ### Continuous Mode Options (v3.1)
209
+ - `--continuous` - Enable continuous mode (keep checking for new tasks)
210
+ - `--no-continuous` - Disable continuous mode (stop when initial queue is done)
211
+ - `--idle-timeout <N>` - Seconds to wait when idle before rechecking (default: 60)
212
+ - `--idle-action <mode>` - What to do when idle: `stop` or `wait`
213
+
214
+ ### General Options
215
+ - `--auto` - Don't pause between tasks (default behavior)
99
216
  - `--pause` - Pause and ask before each task
100
- - `--plan` - Show order without executing
217
+ - `--plan` - Show execution plan without executing (dry run)
101
218
  - `--feature <name>` - Only tasks in specified feature
102
219
 
103
220
  ## Configuration
104
221
 
105
222
  In `config.json`:
223
+
224
+ ### Orchestrator Configuration (v3.0)
225
+ ```json
226
+ {
227
+ "bulkOrchestrator": {
228
+ "enabled": true, // Use sub-agent isolation (false = legacy mode)
229
+ "parallelLimit": 3, // Max tasks to run in parallel
230
+ "useWorktrees": true, // Use git worktrees for parallel isolation
231
+ "onFailure": "stop-dependent", // stop-all | stop-dependent | continue
232
+ "summaryDepth": "standard", // minimal | standard | detailed
233
+ "continuous": {
234
+ "enabled": false, // Enable continuous mode
235
+ "idleAction": "stop", // stop | wait when queue is empty
236
+ "idleTimeout": 60, // Seconds to wait before rechecking
237
+ "maxIdleChecks": 3 // Max times to check before stopping
238
+ }
239
+ }
240
+ }
241
+ ```
242
+
243
+ ### Task Queue Configuration (v2.1 Legacy)
106
244
  ```json
107
245
  {
108
246
  "taskQueue": {
@@ -1,5 +1,7 @@
1
1
  Quick capture an idea or bug without interrupting your current work. Provide a brief title: `/wogi-capture Add dark mode toggle`
2
2
 
3
+ **v2.1**: Auto-Grouping + **Routing** (certain → roadmap, uncertain → discussion queue)
4
+
3
5
  ## Usage
4
6
 
5
7
  ```bash
@@ -9,38 +11,103 @@ Quick capture an idea or bug without interrupting your current work. Provide a b
9
11
 
10
12
  Just provide a brief title. That's it.
11
13
 
12
- ## What Happens
14
+ ## Routing (v2.1)
13
15
 
14
- 1. **Auto-detect type** from keywords:
15
- - "bug", "fix", "broken", "error", "crash", "fails" → `bug`
16
- - Everything else → `feature`
16
+ Ideas are automatically routed based on certainty:
17
+
18
+ - **Certain ideas** (clear action) Added to `roadmap.md`
19
+ - **Uncertain ideas** (questions, "maybe") → Added to `discussion-queue.md`
20
+
21
+ ### Auto-Detection
22
+
23
+ The system detects uncertainty from:
24
+ - **Question marks**: "should we add GraphQL?"
25
+ - **Hedging words**: "maybe", "might", "could", "perhaps"
26
+ - **Tentative phrases**: "what if", "should we", "thinking about", "wondering"
27
+
28
+ ### Examples
29
+
30
+ ```
31
+ /wogi-capture "add dark mode toggle"
32
+ → Certain (explicit action) → Roadmap
33
+
34
+ /wogi-capture "should we maybe use GraphQL?"
35
+ → Uncertain (question + "maybe") → Discussion queue
36
+
37
+ /wogi-capture "refactor auth" --certain
38
+ → Forced to roadmap
39
+
40
+ /wogi-capture "add caching" --idea
41
+ → Forced to discussion queue
42
+ ```
43
+
44
+ ### Routing Flags
17
45
 
18
- 2. **Auto-tag** from current context (if a task is in progress)
46
+ - `--certain` - Force routing to roadmap
47
+ - `--idea` - Force routing to discussion queue
48
+ - `--no-route` - Disable routing, just add to backlog
19
49
 
20
- 3. **Add to backlog** in `ready.json` with minimal metadata
50
+ ## Auto-Grouping (v2.0)
21
51
 
22
- 4. **Minimal confirmation** - just "Captured: [title]"
52
+ When you capture multiple related items at once, they're automatically grouped:
23
53
 
24
- ## Backlog Triage
54
+ ```
55
+ /wogi-capture "change send button to blue, change cancel button to blue, change delete button to blue"
56
+ → ONE capture: "Update button colors" (3 items grouped)
57
+
58
+ /wogi-capture "fix login bug, add dark mode, update footer"
59
+ → THREE captures (unrelated items split)
60
+
61
+ /wogi-capture "change header to blue, change footer to blue, fix the login bug"
62
+ → TWO captures: color changes grouped, bug fix separate
63
+ ```
25
64
 
26
- Items go to a `backlog` array in ready.json. Use `/wogi-ready` to see them.
65
+ ### Grouping Heuristics
27
66
 
28
- Later you can:
29
- - Promote to `ready` (use `/wogi-story` to create proper story)
30
- - Discard if no longer relevant
31
- - Convert to bug with `/wogi-bug`
67
+ Items are grouped when they share:
68
+ - **Same action type**: color changes, size changes, text updates
69
+ - **Same target**: button, header, form, etc.
70
+ - **Same item type**: bugs with bugs, features with features
32
71
 
33
- ## Examples
72
+ ### Disable Grouping
34
73
 
74
+ Use `--no-group` to create separate items without grouping:
75
+ ```bash
76
+ /wogi-capture "change all buttons to blue, fix the form" --no-group
77
+ → TWO captures (no grouping applied)
35
78
  ```
36
- /wogi-capture Add export to PDF
37
- → Captured: Add export to PDF (feature)
38
79
 
39
- /wogi-capture Bug: form validation not working
40
- → Captured: Bug: form validation not working (bug)
80
+ ## What Happens
41
81
 
42
- /wogi-capture Broken image on profile page
43
- Captured: Broken image on profile page (bug)
82
+ 1. **Parse input** - Split by commas, "and", numbered lists
83
+ 2. **Analyze items** - Extract action type, target component, item type
84
+ 3. **Group related** - Combine similar items above threshold
85
+ 4. **Detect certainty** - Check for uncertainty signals
86
+ 5. **Route** - Certain → roadmap, uncertain → discussion queue
87
+ 6. **Auto-detect type** from keywords:
88
+ - "bug", "fix", "broken", "error", "crash", "fails" → `bug`
89
+ - Everything else → `feature`
90
+ 7. **Auto-tag** from current context (if a task is in progress)
91
+
92
+ ## Files
93
+
94
+ | Certainty | Destination |
95
+ |-----------|-------------|
96
+ | Certain | `.workflow/roadmap.md` |
97
+ | Uncertain | `.workflow/state/discussion-queue.md` |
98
+ | No routing | `.workflow/state/ready.json` (backlog) |
99
+
100
+ ### Discussion Queue Format
101
+
102
+ ```markdown
103
+ ## Pending Review
104
+
105
+ ### 2026-01-29
106
+ - [ ] Should we refactor the auth system? (captured: 10:30)
107
+ - [ ] Maybe add GraphQL support? (captured: 11:15)
108
+
109
+ ## Reviewed
110
+ <!-- Moved items go here with decision -->
44
111
  ```
45
112
 
46
113
  ## CLI Usage
@@ -48,6 +115,8 @@ Later you can:
48
115
  ```bash
49
116
  node scripts/flow-capture.js "Add dark mode toggle"
50
117
  node scripts/flow-capture.js "Bug: login fails" --json
118
+ node scripts/flow-capture.js "maybe add caching?" --idea
119
+ node scripts/flow-capture.js "refactor auth" --certain
51
120
  ```
52
121
 
53
122
  ## Options
@@ -55,3 +124,25 @@ node scripts/flow-capture.js "Bug: login fails" --json
55
124
  - `--type <type>` - Force type (bug/feature) instead of auto-detect
56
125
  - `--tags <tags>` - Add comma-separated tags
57
126
  - `--json` - Output JSON instead of minimal confirmation
127
+ - `--no-group` - Disable auto-grouping (create separate items)
128
+ - `--certain` - Force routing to roadmap
129
+ - `--idea` - Force routing to discussion queue
130
+ - `--no-route` - Disable routing, just add to backlog
131
+
132
+ ## Configuration
133
+
134
+ In `config.json`:
135
+ ```json
136
+ {
137
+ "capture": {
138
+ "autoGroup": true, // Enable/disable auto-grouping
139
+ "groupingThreshold": 0.5, // Similarity threshold (0-1)
140
+ "maxGroupSize": 5, // Max items per group
141
+ "routing": {
142
+ "enabled": true, // Enable routing
143
+ "defaultCertainty": "certain", // Default when not detected
144
+ "autoDetect": true // Auto-detect from text
145
+ }
146
+ }
147
+ }
148
+ ```
@@ -20,42 +20,98 @@ This command is **automatically triggered** (when strict mode is enabled) for:
20
20
  3. **Existence Questions**: "Is there a...", "Does X exist?"
21
21
  4. **Architecture Questions**: "How does X work?", "How is X structured?"
22
22
  5. **Integration Questions**: "How to integrate X with Y?"
23
+ 6. **Comparison Questions**: "What can we learn from X?", "How does X compare to Y?"
23
24
 
24
25
  ## Research Protocol Phases
25
26
 
26
- ### Phase 1: Scope Mapping
27
+ There are two flows depending on question type:
28
+
29
+ ### Standard Flow (Capability, Existence, Architecture Questions)
30
+
31
+ For questions like "Does X support Y?" or "How does X work?":
32
+
33
+ **Phase 1: Scope Mapping**
27
34
  - Identify all potentially relevant local files
28
35
  - Identify external tools/libraries mentioned
29
36
  - Generate search keywords
30
- - Create `research-scope.json`
31
37
 
32
- ### Phase 2: Local Evidence Gathering
38
+ **Phase 2: Local Evidence Gathering**
33
39
  - Read ALL files identified in scope (not just the first match)
34
40
  - Extract relevant code snippets and documentation
35
- - Log findings to research notes
36
41
  - **DO NOT SKIP FILES** - partial reading leads to false conclusions
37
42
 
38
- ### Phase 3: External Verification
43
+ **Phase 3: External Verification**
39
44
  - For each external tool/library:
40
45
  - Web search: "[tool] documentation [feature] [current year]"
41
46
  - Read official docs (top 3 results minimum)
42
- - Extract quotes with URLs
43
47
  - **ASSUME training data is 2+ years stale**
44
48
 
45
- ### Phase 4: Assumption Check
49
+ **Phase 4: Assumption Check**
46
50
  - List ALL assumptions made during research
47
- - Tag each assumption:
48
- - `[VERIFIED]` with HIGH confidence + source
49
- - `[UNVERIFIED]` with LOW confidence - **MUST be verified before proceeding**
51
+ - Tag each: `[VERIFIED]` with source or `[UNVERIFIED]`
50
52
  - Loop back to Phase 2/3 for any unverified assumptions
51
53
 
52
- ### Phase 5: Synthesis
53
- - Generate research report with:
54
- - Answer to original question
55
- - Evidence chain (every claim → source)
56
- - Confidence level (HIGH/MEDIUM/LOW)
57
- - Caveats and uncertainties
58
- - List of searches performed
54
+ **Phase 5: Synthesis**
55
+ - Generate research report with citations
56
+ - State confidence level (HIGH/MEDIUM/LOW)
57
+
58
+ ---
59
+
60
+ ### Comparison Flow (External-First)
61
+
62
+ For questions like "What can we learn from X?" or "How does X compare to Y?":
63
+
64
+ **⚠️ CRITICAL: Do external research FIRST**
65
+
66
+ You're comparing an external tool to your codebase. You must understand what the external tool HAS before you can search locally for equivalents.
67
+
68
+ **Phase 0: External Research (DO THIS FIRST)**
69
+ - Web search the external tool/repository
70
+ - Read their documentation, README, source code
71
+ - List the features, patterns, or approaches they have
72
+ - **OUTPUT**: A clear list of "External tool X has: [features]"
73
+
74
+ **Phase 1: Scope Mapping (informed by Phase 0)**
75
+ - For EACH feature found in Phase 0:
76
+ - Identify local files that might have equivalent functionality
77
+ - Use search patterns based on what you learned externally
78
+
79
+ **Phase 2: Local Evidence Gathering**
80
+ - For EACH external feature, search the local codebase
81
+ - Read ALL potentially relevant local files
82
+ - Note specific implementations with file paths
83
+
84
+ **Phase 4: Assumption Check**
85
+ - List assumptions, mark [VERIFIED] or [UNVERIFIED]
86
+ - Verify anything uncertain
87
+
88
+ **Phase 5: Synthesis**
89
+ - Generate comparison table: External Feature | Local Equivalent | Status
90
+ - Cite sources for each claim
91
+
92
+ **Phase 6: Recommendation Verification (MANDATORY)**
93
+
94
+ Before presenting ANY recommendation ("We should add X"):
95
+
96
+ 1. **Search local codebase** for equivalent functionality
97
+ - Use Glob/Grep with relevant patterns
98
+ - Search for synonyms and related terms
99
+ 2. **Read at least one potentially relevant file**
100
+ - Don't just search - actually read the code
101
+ 3. **Mark each recommendation**:
102
+ - `EXISTS` - Already implemented → **DO NOT recommend**
103
+ - `PARTIAL` - Partially implemented → Recommend enhancement
104
+ - `MISSING` - Not implemented → Safe to recommend
105
+ 4. **Include verification evidence** in output:
106
+ ```
107
+ Searched: [patterns used]
108
+ Read: [files examined]
109
+ Status: EXISTS/PARTIAL/MISSING
110
+ ```
111
+
112
+ **ONLY recommend features marked MISSING or PARTIAL.**
113
+
114
+ This phase prevents recommending features that already exist in the codebase.
59
115
 
60
116
  ## Critical Rules
61
117