opencode-goopspec 0.1.0 → 0.1.2

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": "opencode-goopspec",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A spec-driven development plugin for OpenCode with user-guided planning, wave execution, and verification",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -64,10 +64,10 @@
64
64
  },
65
65
  "repository": {
66
66
  "type": "git",
67
- "url": "https://github.com/james/opencode-goopspec.git"
67
+ "url": "https://github.com/hffmnnj/opencode-goopspec.git"
68
68
  },
69
69
  "bugs": {
70
- "url": "https://github.com/james/opencode-goopspec/issues"
70
+ "url": "https://github.com/hffmnnj/opencode-goopspec/issues"
71
71
  },
72
- "homepage": "https://github.com/james/opencode-goopspec#readme"
72
+ "homepage": "https://github.com/hffmnnj/opencode-goopspec#readme"
73
73
  }
@@ -2,6 +2,41 @@
2
2
 
3
3
  GoopSpec supports multiple patterns for spawning and coordinating specialized agents. Choose the right pattern based on task characteristics.
4
4
 
5
+ ## The Dispatch Tool (CRITICAL)
6
+
7
+ **ALWAYS use the native `task` tool to dispatch agents.**
8
+
9
+ ```typescript
10
+ // Correct: Use task tool directly
11
+ task({
12
+ subagent_type: "goop-executor", // Agent to spawn
13
+ description: "Implement auth", // 3-5 word summary
14
+ prompt: `[Detailed task...]` // Full context and instructions
15
+ })
16
+ ```
17
+
18
+ ### Do NOT Use
19
+
20
+ | Tool | Why Not |
21
+ |------|---------|
22
+ | `delegate` | Different system (async delegation), not GoopSpec |
23
+ | `goop_delegate` alone | Only composes prompts, doesn't execute |
24
+
25
+ ### Optional: goop_delegate for Prompt Composition
26
+
27
+ If you need help composing a rich prompt with skills/references injected:
28
+
29
+ ```typescript
30
+ // Step 1: Compose prompt (optional)
31
+ goop_delegate({ agent: "goop-executor", prompt: "..." })
32
+ // Returns: <goop_delegation> with composedPrompt
33
+
34
+ // Step 2: Execute with task (REQUIRED)
35
+ task({ subagent_type: "goop-executor", prompt: composedPrompt })
36
+ ```
37
+
38
+ **Most cases: Just use `task` directly.**
39
+
5
40
  ## Dispatch Modes
6
41
 
7
42
  ### Sequential Dispatch
@@ -0,0 +1,386 @@
1
+ # Agent Response Format
2
+
3
+ All GoopSpec subagents MUST return structured responses to the orchestrator. This enables clean handoffs, progress tracking, and next-step clarity.
4
+
5
+ ## Core Principle
6
+
7
+ ```
8
+ ╔════════════════════════════════════════════════════════════════╗
9
+ ║ EVERY RESPONSE MUST ANSWER THREE QUESTIONS: ║
10
+ ║ 1. What did I do? ║
11
+ ║ 2. What is the current state? ║
12
+ ║ 3. What should happen next? ║
13
+ ╚════════════════════════════════════════════════════════════════╝
14
+ ```
15
+
16
+ ## Response Structure
17
+
18
+ Every subagent response follows this structure:
19
+
20
+ ```markdown
21
+ ## [STATUS INDICATOR]
22
+
23
+ **Agent:** [agent-name]
24
+ **Task:** [task description from prompt]
25
+ **Duration:** [~X minutes]
26
+
27
+ ### Summary
28
+ [1-3 sentences on what was accomplished]
29
+
30
+ ### Work Completed
31
+
32
+ | Item | Details |
33
+ |------|---------|
34
+ | [Action 1] | [Specifics] |
35
+ | [Action 2] | [Specifics] |
36
+
37
+ ### Files Modified
38
+ - `path/to/file.ts` - [what changed]
39
+ - `path/to/other.ts` - [what changed]
40
+
41
+ ### Commits (if applicable)
42
+ - `abc123` - feat(scope): description
43
+
44
+ ### Decisions Made
45
+ - **[Decision]**: [Reasoning]
46
+
47
+ ### Memory Persisted
48
+ - Saved: "[memory title]"
49
+ - Concepts: [tags]
50
+
51
+ ### Current State
52
+ - Phase: [from state.json]
53
+ - Spec locked: [yes/no]
54
+ - Wave: [N of M] (if executing)
55
+
56
+ ---
57
+
58
+ ## NEXT STEPS
59
+
60
+ [Clear guidance for orchestrator]
61
+ ```
62
+
63
+ ## Status Indicators
64
+
65
+ Use these exact headers:
66
+
67
+ | Status | Header | When |
68
+ |--------|--------|------|
69
+ | Complete | `## TASK COMPLETE` | Work finished successfully |
70
+ | Partial | `## TASK PARTIAL` | Some progress, more needed |
71
+ | Blocked | `## TASK BLOCKED` | Cannot proceed, need help |
72
+ | Failed | `## TASK FAILED` | Cannot complete task |
73
+ | Checkpoint | `## CHECKPOINT REACHED` | Need user decision/verification |
74
+
75
+ ## Next Steps Format
76
+
77
+ The "NEXT STEPS" section is MANDATORY. Use this format:
78
+
79
+ ### For Orchestrator (Most Common)
80
+
81
+ ```markdown
82
+ ## NEXT STEPS
83
+
84
+ **For Orchestrator:**
85
+ 1. [Immediate next action]
86
+ 2. [Follow-up action if applicable]
87
+
88
+ **Suggested delegation:**
89
+ - Agent: `goop-[agent]`
90
+ - Task: "[specific task description]"
91
+ ```
92
+
93
+ ### When User Action Needed
94
+
95
+ ```markdown
96
+ ## NEXT STEPS
97
+
98
+ **User action required:**
99
+ - [What user needs to do]
100
+
101
+ **After user completes:**
102
+ - Run: `/goop-[command]`
103
+ - Or: Orchestrator continues with [task]
104
+ ```
105
+
106
+ ### When Work Is Complete
107
+
108
+ ```markdown
109
+ ## NEXT STEPS
110
+
111
+ **Wave [N] complete.** Ready to proceed.
112
+
113
+ **Options:**
114
+ 1. Continue to Wave [N+1]: [brief description]
115
+ 2. Run verification: `bun test`
116
+ 3. Review changes before proceeding
117
+
118
+ **Recommended:** [specific recommendation]
119
+ ```
120
+
121
+ ## Agent-Specific Formats
122
+
123
+ ### goop-executor
124
+
125
+ ```markdown
126
+ ## TASK COMPLETE
127
+
128
+ **Agent:** goop-executor
129
+ **Task:** [task from BLUEPRINT.md]
130
+ **Duration:** ~X minutes
131
+
132
+ ### Summary
133
+ Implemented [feature] following existing patterns. All tests pass.
134
+
135
+ ### Work Completed
136
+
137
+ | Task | Status | Commit |
138
+ |------|--------|--------|
139
+ | [Task 1] | Done | `abc123` |
140
+ | [Task 2] | Done | `def456` |
141
+
142
+ ### Files Modified
143
+ - `src/feature/index.ts` - Added main implementation
144
+ - `src/feature/index.test.ts` - Added unit tests
145
+
146
+ ### Commits
147
+ - `abc123` - feat(feature): add main implementation
148
+ - `def456` - test(feature): add unit tests
149
+
150
+ ### Verification
151
+ - [x] `bun test` - All 42 tests pass
152
+ - [x] `bun run typecheck` - No errors
153
+ - [x] Manual verification - Works as expected
154
+
155
+ ### Decisions Made
156
+ - **Used X over Y**: Consistent with existing patterns in `src/other/`
157
+
158
+ ### Memory Persisted
159
+ - Saved: "Implemented [feature] using [pattern]"
160
+ - Concepts: [feature, pattern, typescript]
161
+
162
+ ### Current State
163
+ - Phase: execute
164
+ - Wave: 2 of 3
165
+ - Tasks remaining: 4
166
+
167
+ ---
168
+
169
+ ## NEXT STEPS
170
+
171
+ **For Orchestrator:**
172
+ Wave 2 Task 1 complete. Continue with Task 2.
173
+
174
+ **Next task:**
175
+ - Task 2.2: [name from BLUEPRINT.md]
176
+ - Agent: `goop-executor`
177
+ - Files: `src/next/file.ts`
178
+ ```
179
+
180
+ ### goop-researcher
181
+
182
+ ```markdown
183
+ ## TASK COMPLETE
184
+
185
+ **Agent:** goop-researcher
186
+ **Task:** Research [topic]
187
+ **Duration:** ~X minutes
188
+ **Sources:** N analyzed
189
+
190
+ ### Summary
191
+ Researched [topic]. Found [key insight]. Recommend [approach].
192
+
193
+ ### Key Findings
194
+
195
+ | Category | Finding | Confidence |
196
+ |----------|---------|------------|
197
+ | [Area 1] | [Finding] | High |
198
+ | [Area 2] | [Finding] | Medium |
199
+
200
+ ### Recommendations
201
+ 1. **Use [X]** - [rationale]
202
+ 2. **Avoid [Y]** - [rationale]
203
+ 3. **Consider [Z]** - [when applicable]
204
+
205
+ ### Files Created
206
+ - `.goopspec/RESEARCH.md` - Full research findings
207
+
208
+ ### Memory Persisted
209
+ - Saved: "Research: [topic]"
210
+ - Facts: ["fact 1", "fact 2"]
211
+ - Concepts: [topic, technology, domain]
212
+
213
+ ---
214
+
215
+ ## NEXT STEPS
216
+
217
+ **Research complete.** Ready to inform planning.
218
+
219
+ **For Orchestrator:**
220
+ 1. Review RESEARCH.md with user
221
+ 2. Proceed to `/goop-specify` to lock specification
222
+ 3. Or request additional research on [gap area]
223
+ ```
224
+
225
+ ### goop-verifier
226
+
227
+ ```markdown
228
+ ## VERIFICATION COMPLETE
229
+
230
+ **Agent:** goop-verifier
231
+ **Scope:** [what was verified]
232
+ **Result:** [PASSED | GAPS FOUND | SECURITY ISSUE]
233
+
234
+ ### Verification Summary
235
+
236
+ | Requirement | Status | Evidence |
237
+ |-------------|--------|----------|
238
+ | [Must-have 1] | PASS | [proof] |
239
+ | [Must-have 2] | FAIL | [gap detail] |
240
+
241
+ ### Security Audit
242
+ - [x] No hardcoded secrets
243
+ - [x] Input validation present
244
+ - [ ] **ISSUE:** [security concern]
245
+
246
+ ### Gaps Found (if any)
247
+
248
+ **Gap 1: [Title]**
249
+ - Expected: [from SPEC.md]
250
+ - Actual: [what code does]
251
+ - Fix: [specific remediation]
252
+
253
+ ### Memory Persisted
254
+ - Saved: "Verification: [scope]"
255
+ - Concepts: [verification, security, quality]
256
+
257
+ ---
258
+
259
+ ## NEXT STEPS
260
+
261
+ **[If PASSED]:**
262
+ Ready for acceptance. Run `/goop-accept`.
263
+
264
+ **[If GAPS FOUND]:**
265
+ 1. Fix gaps before proceeding
266
+ 2. Delegate to `goop-executor` with specific fixes
267
+ 3. Re-verify after fixes
268
+
269
+ **[If SECURITY ISSUE]:**
270
+ STOP. Address security issues before any further work.
271
+ - Issue: [description]
272
+ - Severity: [Critical/High/Medium]
273
+ - Action: [remediation]
274
+ ```
275
+
276
+ ### goop-explorer
277
+
278
+ ```markdown
279
+ ## EXPLORATION COMPLETE
280
+
281
+ **Agent:** goop-explorer
282
+ **Scope:** [what was mapped]
283
+ **Duration:** ~X minutes
284
+
285
+ ### Codebase Summary
286
+ - **Stack:** [language, framework, runtime]
287
+ - **Structure:** [architecture pattern]
288
+ - **Size:** N files, M directories
289
+
290
+ ### Key Discoveries
291
+
292
+ | Area | Finding |
293
+ |------|---------|
294
+ | Entry points | [files] |
295
+ | Patterns | [patterns found] |
296
+ | Conventions | [naming, style] |
297
+ | Concerns | [issues noted] |
298
+
299
+ ### Directory Map
300
+ ```
301
+ project/
302
+ ├── src/ # [description]
303
+ ├── tests/ # [description]
304
+ └── config/ # [description]
305
+ ```
306
+
307
+ ### Memory Persisted
308
+ - Saved: "Codebase map: [project]"
309
+ - Concepts: [stack, patterns, structure]
310
+
311
+ ---
312
+
313
+ ## NEXT STEPS
314
+
315
+ **Exploration complete.** Codebase mapped.
316
+
317
+ **For Orchestrator:**
318
+ 1. Use findings to inform BLUEPRINT.md
319
+ 2. Note conventions for executor guidance
320
+ 3. Address concerns: [list if any]
321
+ ```
322
+
323
+ ## Checkpoint Format
324
+
325
+ When a checkpoint is needed (user decision, verification, or manual action):
326
+
327
+ ```markdown
328
+ ## CHECKPOINT REACHED
329
+
330
+ **Agent:** [agent-name]
331
+ **Type:** [decision | verify | action]
332
+ **Task:** [current task]
333
+ **Progress:** [N/M tasks complete]
334
+
335
+ ### Completed So Far
336
+
337
+ | Task | Status | Details |
338
+ |------|--------|---------|
339
+ | [Task 1] | Done | [summary] |
340
+ | [Task 2] | Done | [summary] |
341
+
342
+ ### Current Task
343
+ **Task [N]:** [name]
344
+ **Status:** Awaiting [decision/verification/action]
345
+
346
+ ### Checkpoint Details
347
+
348
+ **[For decision checkpoints]:**
349
+ | Option | Pros | Cons |
350
+ |--------|------|------|
351
+ | A: [option] | [benefits] | [tradeoffs] |
352
+ | B: [option] | [benefits] | [tradeoffs] |
353
+
354
+ **[For verification checkpoints]:**
355
+ - URL to check: [url]
356
+ - What to verify: [criteria]
357
+ - Expected behavior: [description]
358
+
359
+ **[For action checkpoints]:**
360
+ - What you need to do: [action]
361
+ - I'll verify by: [check]
362
+
363
+ ---
364
+
365
+ ## AWAITING
366
+
367
+ **[For decision]:** Select option A or B
368
+ **[For verification]:** Type "approved" or describe issues
369
+ **[For action]:** Type "done" when complete
370
+ ```
371
+
372
+ ## Anti-Patterns
373
+
374
+ **NEVER return:**
375
+ - "Done" (no context)
376
+ - "It works now" (no verification)
377
+ - Responses without NEXT STEPS
378
+ - Unstructured text walls
379
+ - Missing status indicators
380
+
381
+ **ALWAYS include:**
382
+ - Clear status header
383
+ - Summary of work
384
+ - Files touched
385
+ - Memory persistence
386
+ - NEXT STEPS section
@@ -94,22 +94,69 @@ Don't pass:
94
94
  - Unrelated file contents
95
95
  - Completed task details
96
96
 
97
- ## Using task Tool
97
+ ## The Dispatch Tool (CRITICAL)
98
+
99
+ **ALWAYS use the native `task` tool to dispatch agents.**
98
100
 
99
101
  ```typescript
100
102
  task({
101
- subagent_type: "general",
103
+ subagent_type: "goop-executor", // Use goop-[agent-name]
102
104
  description: "Implement authentication",
103
105
  prompt: `
104
106
  ## TASK
105
107
  Implement user authentication
106
108
 
107
109
  ## CONTEXT
108
- - SPEC: .goopspec/phases/phase-1/SPEC.md
110
+ - SPEC: .goopspec/SPEC.md
111
+ - BLUEPRINT: .goopspec/BLUEPRINT.md
112
+
113
+ ## REQUIREMENTS
114
+ [Specific requirements from SPEC.md]
115
+
116
+ ## VERIFICATION
117
+ [How to confirm task completion]
109
118
  `
110
119
  })
111
120
  ```
112
121
 
122
+ ### Available subagent_types
123
+
124
+ | subagent_type | Use For |
125
+ |---------------|---------|
126
+ | `goop-executor` | Code implementation, features, fixes |
127
+ | `goop-explorer` | Fast codebase mapping, pattern detection |
128
+ | `goop-researcher` | Deep domain research, technology evaluation |
129
+ | `goop-planner` | Architecture design, blueprint creation |
130
+ | `goop-verifier` | Verification against spec, security audit |
131
+ | `goop-debugger` | Bug investigation, scientific debugging |
132
+ | `goop-tester` | Test writing, coverage analysis |
133
+ | `goop-designer` | UI/UX design, component architecture |
134
+ | `goop-writer` | Documentation, technical writing |
135
+ | `goop-librarian` | Code/docs search, information retrieval |
136
+ | `general` | Fallback for any task |
137
+
138
+ ### Do NOT Use These Tools for Delegation
139
+
140
+ | Tool | Why NOT |
141
+ |------|---------|
142
+ | `delegate` | Different system (async delegation), NOT GoopSpec agents |
143
+ | `goop_delegate` alone | Only composes prompts, doesn't execute - must follow with `task` |
144
+
145
+ ### Optional: goop_delegate for Rich Prompts
146
+
147
+ Use `goop_delegate` only when you need skills/references auto-injected:
148
+
149
+ ```typescript
150
+ // Step 1: Compose prompt with goop_delegate (optional)
151
+ const result = goop_delegate({ agent: "goop-executor", prompt: "..." })
152
+ // Returns: <goop_delegation> JSON with composedPrompt
153
+
154
+ // Step 2: Execute with task (REQUIRED)
155
+ task({ subagent_type: "goop-executor", prompt: composedPrompt })
156
+ ```
157
+
158
+ **For most cases: Just use `task` directly.**
159
+
113
160
  ## Error Handling
114
161
 
115
162
  If delegated task fails: