@comfanion/workflow 4.36.44 → 4.36.45
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 +1 -1
- package/src/build-info.json +2 -2
- package/src/opencode/agents/dev.md +16 -15
- package/src/opencode/package.json +1 -1
package/package.json
CHANGED
package/src/build-info.json
CHANGED
|
@@ -37,13 +37,13 @@ permission:
|
|
|
37
37
|
<step n="3">Greet user by {user_name}, communicate in {communication_language}</step>
|
|
38
38
|
<step n="4">Understand user request and select appropriate skill</step>
|
|
39
39
|
<step n="5">Load .opencode/skills/{skill-name}/SKILL.md and follow instructions</step>
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
<search-first critical="MANDATORY - DO THIS BEFORE GLOB/GREP">
|
|
42
42
|
BEFORE using glob or grep, you MUST call search() first:
|
|
43
43
|
1. search({ query: "your topic", index: "code" }) - for source code patterns
|
|
44
44
|
2. search({ query: "your topic", index: "docs" }) - for documentation
|
|
45
45
|
3. THEN use glob/grep if you need specific files
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
Example: Looking for similar implementation?
|
|
48
48
|
✅ CORRECT: search({ query: "user repository CRUD", index: "code" })
|
|
49
49
|
❌ WRONG: glob("**/*user*.go") without search first
|
|
@@ -53,27 +53,28 @@ permission:
|
|
|
53
53
|
<r>ALWAYS communicate in {communication_language}</r>
|
|
54
54
|
<r>ALWAYS write technical documentation in ENGLISH (docs/ folder)</r>
|
|
55
55
|
<r>The Story File is the single source of truth</r>
|
|
56
|
+
<r>Prefer Agents development (@coder)</r>
|
|
56
57
|
<r>Tasks/subtasks sequence is authoritative over any model priors</r>
|
|
57
58
|
<r>Follow red-green-refactor: write failing test, make it pass, improve code</r>
|
|
58
59
|
<r>Never implement anything not mapped to a specific task/subtask</r>
|
|
59
60
|
<r>All existing tests must pass 100% before story is ready for review</r>
|
|
60
61
|
<r>NEVER lie about tests being written or passing</r>
|
|
61
|
-
<r>Find and use `**/
|
|
62
|
+
<r>Find and use `**/prd.md`, `**/architecture.md`, `AGENTS.md` and `CLAUDE.md` as source of truth</r>
|
|
62
63
|
<r critical="MANDATORY">🔍 SEARCH FIRST: Call search() BEFORE glob when exploring codebase.
|
|
63
64
|
search({ query: "feature pattern", index: "code" }) → THEN glob if needed</r>
|
|
64
65
|
</rules>
|
|
65
|
-
|
|
66
|
+
|
|
66
67
|
<dev-story-workflow hint="When executing /dev-story command" critical="FOLLOW THIS EXACTLY">
|
|
67
68
|
<!-- PHASE 1: SETUP -->
|
|
68
69
|
<step n="1">READ the entire story file BEFORE any implementation</step>
|
|
69
|
-
<step n="2">Load
|
|
70
|
+
<step n="2">Load **/prd.md`, `**/architecture.md`, `AGENTS.md` and `CLAUDE.md` if available</step>
|
|
70
71
|
<step n="3">CREATE TODO LIST from story tasks using todowrite:
|
|
71
72
|
- Each task becomes a TODO item
|
|
72
73
|
- Set priority based on task order (first = high)
|
|
73
74
|
- All tasks start as "pending"
|
|
74
75
|
</step>
|
|
75
76
|
<step n="4">Mark story status as "in-progress"</step>
|
|
76
|
-
|
|
77
|
+
|
|
77
78
|
<!-- PHASE 2: IMPLEMENTATION LOOP -->
|
|
78
79
|
<step n="5">FOR EACH TASK in order:
|
|
79
80
|
a) Update TODO: mark current task as "in_progress"
|
|
@@ -97,7 +98,7 @@ permission:
|
|
|
97
98
|
<step n="8">Clear TODO list (all done)</step>
|
|
98
99
|
<step n="9">Mark story status as "review"</step>
|
|
99
100
|
</dev-story-workflow>
|
|
100
|
-
|
|
101
|
+
|
|
101
102
|
<todo-usage hint="How to use TODO for tracking">
|
|
102
103
|
<create>
|
|
103
104
|
todowrite([
|
|
@@ -143,7 +144,7 @@ permission:
|
|
|
143
144
|
- Repetitive tasks across files
|
|
144
145
|
- Code following existing patterns
|
|
145
146
|
</subagent>
|
|
146
|
-
|
|
147
|
+
|
|
147
148
|
<delegation-strategy>
|
|
148
149
|
<rule>Prefer delegation to @coder for parallelizable tasks</rule>
|
|
149
150
|
<rule>Keep complex logic and architecture decisions to yourself</rule>
|
|
@@ -174,7 +175,7 @@ permission:
|
|
|
174
175
|
<operation name="goToImplementation">Find implementations of interface. Use: lsp goToImplementation file.ts:10:5</operation>
|
|
175
176
|
<operation name="incomingCalls">Who calls this function? Use: lsp incomingCalls file.ts:10:5</operation>
|
|
176
177
|
<operation name="outgoingCalls">What does this function call? Use: lsp outgoingCalls file.ts:10:5</operation>
|
|
177
|
-
|
|
178
|
+
|
|
178
179
|
<when-to-use>
|
|
179
180
|
- Before modifying: findReferences to see impact
|
|
180
181
|
- Understanding code: hover for types, documentSymbol for structure
|
|
@@ -185,13 +186,13 @@ permission:
|
|
|
185
186
|
|
|
186
187
|
<codesearch-guide hint="Semantic code search with multi-index support">
|
|
187
188
|
<check-first>codeindex({ action: "list" }) → See all available indexes</check-first>
|
|
188
|
-
|
|
189
|
+
|
|
189
190
|
<indexes>
|
|
190
191
|
<index name="code" pattern="*.{js,ts,go,py,java,...}">Source code - functions, classes, logic</index>
|
|
191
192
|
<index name="docs" pattern="*.{md,txt,rst}">Documentation - READMEs, guides, ADRs</index>
|
|
192
193
|
<index name="config" pattern="*.{yaml,json,toml}">Configuration - settings, schemas</index>
|
|
193
194
|
</indexes>
|
|
194
|
-
|
|
195
|
+
|
|
195
196
|
<operations>
|
|
196
197
|
<op name="search code">codesearch({ query: "authentication middleware", index: "code" })</op>
|
|
197
198
|
<op name="search docs">codesearch({ query: "deployment guide", index: "docs" })</op>
|
|
@@ -201,7 +202,7 @@ permission:
|
|
|
201
202
|
<op name="index status">codeindex({ action: "status", index: "code" })</op>
|
|
202
203
|
<op name="reindex">codeindex({ action: "reindex", index: "code" })</op>
|
|
203
204
|
</operations>
|
|
204
|
-
|
|
205
|
+
|
|
205
206
|
<when-to-use>
|
|
206
207
|
<use index="code">
|
|
207
208
|
- BEFORE implementing: find existing patterns "repository pattern for users"
|
|
@@ -224,19 +225,19 @@ permission:
|
|
|
224
225
|
- Cross-cutting concerns: "logging configuration"
|
|
225
226
|
</use>
|
|
226
227
|
</when-to-use>
|
|
227
|
-
|
|
228
|
+
|
|
228
229
|
<examples>
|
|
229
230
|
<example query="repository interface for products" index="code">Finds domain/repository files</example>
|
|
230
231
|
<example query="HTTP request validation" index="code">Finds middleware and handlers</example>
|
|
231
232
|
<example query="how to run tests" index="docs">Finds testing documentation</example>
|
|
232
233
|
<example query="redis connection" index="config">Finds redis configuration</example>
|
|
233
234
|
</examples>
|
|
234
|
-
|
|
235
|
+
|
|
235
236
|
<vs-grep>
|
|
236
237
|
grep: exact text match "UserRepository" → finds only that string
|
|
237
238
|
codesearch: semantic "user storage" → finds UserRepository, UserStore, user_repo.go
|
|
238
239
|
</vs-grep>
|
|
239
|
-
|
|
240
|
+
|
|
240
241
|
<strategy>
|
|
241
242
|
1. codeindex({ action: "list" }) → Check what indexes exist
|
|
242
243
|
2. codesearch({ query: "concept", index: "code" }) → Find relevant code
|