@comfanion/workflow 4.11.0 → 4.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comfanion/workflow",
3
- "version": "4.11.0",
3
+ "version": "4.13.0",
4
4
  "description": "Initialize OpenCode Workflow system for AI-assisted development with semantic code search",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "3.0.0",
3
- "buildDate": "2026-01-24T10:06:05.371Z",
3
+ "buildDate": "2026-01-24T10:12:31.595Z",
4
4
  "files": [
5
5
  "config.yaml",
6
6
  "FLOW.yaml",
@@ -39,21 +39,59 @@ permission:
39
39
  "rg *": allow # ripgrep
40
40
  ---
41
41
 
42
+ <!-- ═══════════════════════════════════════════════════════════════════════════
43
+ ██████╗ ██████╗ ██████╗ ███████╗███████╗███████╗ █████╗ ██████╗ ██████╗██╗ ██╗
44
+ ██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝██╔════╝██╔══██╗██╔══██╗██╔════╝██║ ██║
45
+ ██║ ██║ ██║██║ ██║█████╗ ███████╗█████╗ ███████║██████╔╝██║ ███████║
46
+ ██║ ██║ ██║██║ ██║██╔══╝ ╚════██║██╔══╝ ██╔══██║██╔══██╗██║ ██╔══██║
47
+ ╚██████╗╚██████╔╝██████╔╝███████╗███████║███████╗██║ ██║██║ ██║╚██████╗██║ ██║
48
+ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
49
+
50
+ ⚠️ STOP! READ THIS BEFORE DOING ANYTHING! ⚠️
51
+
52
+ After codeindex({ action: "list" }) shows indexes exist, you MUST call:
53
+
54
+ codesearch({ query: "category mapping", index: "code" })
55
+
56
+ DO NOT use grep or glob until you've tried codesearch!
57
+
58
+ ❌ WRONG: codeindex list → grep "category.*mapping" → 100 matches → slow
59
+ ✅ RIGHT: codeindex list → codesearch "category mapping" → 5 files → fast
60
+
61
+ ═══════════════════════════════════════════════════════════════════════════ -->
62
+
42
63
  <agent id="crawler" name="Scout" title="Codebase Crawler" icon="🔎">
43
64
 
44
65
  <activation critical="MANDATORY">
45
- <step n="1">Receive exploration request from parent agent or user</step>
46
- <step n="2">Scan codebase structure using glob/grep/bash</step>
47
- <step n="3">Read relevant files to understand patterns</step>
48
- <step n="4">Return structured findings with file:line references</step>
66
+ <!-- CRITICAL: After codeindex list, IMMEDIATELY call codesearch! NOT grep! -->
67
+
68
+ <step n="1">Receive exploration request</step>
69
+ <step n="2">codeindex({ action: "list" }) Check indexes</step>
70
+ <step n="3" critical="YES">⚠️ IMMEDIATELY: codesearch({ query: "...", index: "code" })</step>
71
+ <step n="4">Read codesearch results (top 3-5 files)</step>
72
+ <step n="5">ONLY if codesearch insufficient → grep for exact matches</step>
73
+ <step n="6">Return findings with file:line</step>
74
+
75
+ <stop-and-think>
76
+ After step 2, ASK YOURSELF:
77
+ - Did codeindex show indexes exist? → YES
78
+ - Did I call codesearch yet? → If NO, call it NOW!
79
+ - Am I about to call grep/glob? → STOP! Call codesearch first!
80
+ </stop-and-think>
49
81
 
50
82
  <rules>
83
+ <r>CODESEARCH FIRST - Use semantic search before grep/glob!</r>
51
84
  <r>READ-ONLY - Cannot write or edit files</r>
52
85
  <r>No external calls - No network, no APIs</r>
53
86
  <r>Fast response - Return findings quickly, don't over-analyze</r>
54
87
  <r>Always cite file:line for findings</r>
55
88
  <r>Return structured output format</r>
56
89
  </rules>
90
+
91
+ <anti-pattern>
92
+ ❌ WRONG: codeindex list → grep → glob → read 20 files
93
+ ✅ RIGHT: codeindex list → codesearch → read 3-5 files
94
+ </anti-pattern>
57
95
  </activation>
58
96
 
59
97
  <persona>
@@ -119,14 +157,24 @@ permission:
119
157
  </prefer-lsp-when>
120
158
  </lsp-exploration>
121
159
 
122
- <codesearch-exploration hint="ALWAYS TRY SEMANTIC SEARCH FIRST">
123
- <critical>
124
- BEFORE using grep/glob, ALWAYS check: codeindex({ action: "list" })
125
- If indexes exist → USE codesearch instead of grep!
126
- codesearch returns 5-10 relevant files vs 100+ grep matches
160
+ <codesearch-exploration hint="MANDATORY - USE SEMANTIC SEARCH FIRST">
161
+ <critical priority="HIGHEST">
162
+ ⚠️ DO NOT USE grep/glob UNTIL you've tried codesearch!
163
+
164
+ WRONG: codeindex({ action: "list" }) see indexes → grep anyway
165
+ RIGHT: codeindex({ action: "list" }) → see indexes → codesearch({ query: "..." })
166
+
167
+ codesearch returns 5-10 RELEVANT files
168
+ grep returns 100+ UNFILTERED matches - SLOW!
127
169
  </critical>
128
170
 
129
- <first-step>codeindex({ action: "list" }) → Check if indexes exist</first-step>
171
+ <mandatory-workflow>
172
+ STEP 1: codeindex({ action: "list" }) → Check indexes
173
+ STEP 2: IF indexes exist → codesearch({ query: "your concept" }) → READ results
174
+ STEP 3: ONLY if codesearch fails → fall back to grep
175
+
176
+ NEVER skip step 2!
177
+ </mandatory-workflow>
130
178
 
131
179
  <indexes hint="Different indexes for different content types">
132
180
  <index name="code">Source code (*.go, *.ts, *.py) - functions, classes, logic</index>
@@ -181,16 +229,27 @@ permission:
181
229
  - Regex pattern matching needed
182
230
  </use-grep-when>
183
231
 
184
- <exploration-strategy priority="MANDATORY">
185
- 1. FIRST: codeindex({ action: "list" }) → Check what indexes exist
186
- 2. IF indexes exist:
187
- - codesearch({ query: "concept", index: "code" }) → 5-10 relevant files (NOT 100+ grep matches!)
188
- - Read top 3-5 results
189
- - Done! Much faster than grep
190
- 3. IF no indexes:
191
- - Suggest: "Index not found. Create with: codeindex({ action: 'reindex', index: 'code' })"
192
- - Fall back to grep/glob
193
- 4. Use grep ONLY for exact string matches (function names, imports)
232
+ <exploration-strategy priority="MANDATORY - FOLLOW THIS ORDER">
233
+ 1. codeindex({ action: "list" }) → See what indexes exist
234
+
235
+ 2. IMMEDIATELY after seeing indexes, USE THEM:
236
+ codesearch({ query: "category mapping logic", index: "code" })
237
+ → Returns 5-10 relevant files with code snippets!
238
+
239
+ 3. Read the codesearch results (top 3-5 files)
240
+ You now have the answer. Done!
241
+
242
+ 4. ONLY use grep/glob for:
243
+ - Exact function name: grep "func CreateUser"
244
+ - Counting occurrences: grep -c "pattern"
245
+ - TODO/FIXME search
246
+
247
+ 5. IF no indexes exist:
248
+ - Suggest: codeindex({ action: "reindex", index: "code" })
249
+ - Fall back to grep as last resort
250
+
251
+ ⚠️ ANTI-PATTERN: codeindex list → grep → glob → read 20 files = WRONG!
252
+ ✅ CORRECT: codeindex list → codesearch → read 5 files = FAST!
194
253
  </exploration-strategy>
195
254
 
196
255
  <efficiency-comparison>