Skip to content

Commit 94d3fcd

Browse files
authored
chore(skills): consolidate spike output into single issue (#131)
The create-spike skill was splitting findings between the issue body and a follow-up comment. This made spike results harder to read and review. Merge the technical investigation section into the issue body template and remove the comment-posting step entirely. Co-authored-by: John Myers <johntmyers@users.noreply.github.com>
1 parent 1d599c2 commit 94d3fcd

1 file changed

Lines changed: 45 additions & 84 deletions

File tree

.agents/skills/create-spike/SKILL.md

Lines changed: 45 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,6 @@ A **spike** is an exploratory investigation. The user has a vague idea — a fea
1414
- The `gh` CLI must be authenticated (`gh auth status`)
1515
- You must be in a git repository with a GitHub remote
1616

17-
## Agent Comment Marker
18-
19-
All comments posted by this skill **must** begin with the following marker line:
20-
21-
```
22-
> **🔬 spike-agent**
23-
```
24-
25-
This marker distinguishes spike investigation comments from other skills (e.g., `🏗️ build-from-issue-agent`, `🔒 security-review-agent`) and from human comments.
26-
2717
## Workflow Overview
2818

2919
```
@@ -39,9 +29,7 @@ User describes a problem
3929
4030
├─ Step 4: Create a GitHub issue with structured findings
4131
42-
├─ Step 5: Post investigation detail comment with spike-agent marker
43-
44-
└─ Step 6: Report to user with issue URL and next steps
32+
└─ Step 5: Report to user with issue URL and next steps
4533
```
4634

4735
## Step 1: Gather the Problem Statement
@@ -115,10 +103,7 @@ Include in the prompt to the reviewer:
115103

116104
### What to do with the results
117105

118-
The reviewer will return a detailed analysis. You'll use this to populate both the issue body (Step 4) and the investigation detail comment (Step 5). Split the content as follows:
119-
120-
- **Issue body**: concise, stakeholder-readable summary
121-
- **Spike comment**: full technical details with code references, for implementers
106+
The reviewer will return a detailed analysis. You'll use this to populate the issue body (Step 4). The issue should contain both the stakeholder-readable summary and the full technical investigation — everything in one place.
122107

123108
## Step 3: Determine Labels
124109

@@ -137,7 +122,7 @@ Based on the investigation results, select appropriate labels:
137122

138123
## Step 4: Create the GitHub Issue
139124

140-
Create the issue with a structured body. The title should follow conventional commit format.
125+
Create the issue with a structured body containing both the stakeholder-readable summary and the full technical investigation. The title should follow conventional commit format.
141126

142127
```bash
143128
gh issue create \
@@ -150,7 +135,7 @@ gh issue create \
150135
151136
## Technical Context
152137
153-
<What the investigation found about the current architecture in the affected area. Keep it concise — the deep dive is in the spike comment below. 3-5 sentences covering how things work today and why a change is needed.>
138+
<What the investigation found about the current architecture in the affected area. How things work today and why a change is needed.>
154139
155140
## Affected Components
156141
@@ -159,49 +144,6 @@ gh issue create \
159144
| <component> | `<file1>`, `<file2>` | <what this component does in the context of this change> |
160145
| ... | ... | ... |
161146
162-
## Proposed Approach
163-
164-
<High-level strategy — NOT a full implementation plan. That's `build-from-issue`'s job. Describe the direction, not the steps. 3-6 sentences.>
165-
166-
## Scope Assessment
167-
168-
- **Complexity:** <Low / Medium / High>
169-
- **Confidence:** <High — clear path / Medium — some unknowns / Low — needs discussion>
170-
- **Estimated files to change:** <count>
171-
- **Issue type:** `<feat|fix|refactor|chore|perf|docs>`
172-
173-
## Risks & Open Questions
174-
175-
- <risk or unknown that needs human judgment>
176-
- <design decision that could go either way>
177-
- ...
178-
179-
## Test Considerations
180-
181-
- <what testing strategy makes sense for this change>
182-
- <which test levels are needed: unit, integration, e2e>
183-
- <any test infrastructure that may need to be added>
184-
185-
---
186-
*Created by spike investigation. Use `build-from-issue` to plan and implement.*
187-
EOF
188-
)"
189-
```
190-
191-
**Display the issue URL** so it's easily clickable:
192-
193-
```
194-
Created issue [#<number>](https://github.com/OWNER/REPO/issues/<number>)
195-
```
196-
197-
## Step 5: Post Investigation Detail Comment
198-
199-
Post a comment on the newly created issue containing the full technical investigation. This comment is more detailed than the issue body — it's reference material for whoever implements the issue (likely `build-from-issue`).
200-
201-
```bash
202-
gh issue comment <id> --body "$(cat <<'EOF'
203-
> **🔬 spike-agent**
204-
205147
## Technical Investigation
206148
207149
### Architecture Overview
@@ -232,50 +174,72 @@ gh issue comment <id> --body "$(cat <<'EOF'
232174
233175
<Existing patterns in the codebase that the implementation should be consistent with. Reference specific examples.>
234176
235-
### Test Coverage Notes
177+
## Proposed Approach
178+
179+
<High-level strategy — NOT a full implementation plan. That's `build-from-issue`'s job. Describe the direction, not the steps. 3-6 sentences.>
180+
181+
## Scope Assessment
236182
237-
<What tests exist for the affected area today. What test patterns should be followed. Any test infrastructure gaps.>
183+
- **Complexity:** <Low / Medium / High>
184+
- **Confidence:** <High — clear path / Medium — some unknowns / Low — needs discussion>
185+
- **Estimated files to change:** <count>
186+
- **Issue type:** `<feat|fix|refactor|chore|perf|docs>`
187+
188+
## Risks & Open Questions
189+
190+
- <risk or unknown that needs human judgment>
191+
- <design decision that could go either way>
192+
- ...
193+
194+
## Test Considerations
195+
196+
- <what testing strategy makes sense for this change>
197+
- <which test levels are needed: unit, integration, e2e>
198+
- <any test infrastructure that may need to be added>
199+
- <what tests exist for the affected area today, what patterns should be followed, any test infrastructure gaps>
238200
239201
---
240-
*This investigation provides context for implementation. Next step: review the issue, refine if needed, then use `build-from-issue` to create a plan and implement.*
202+
*Created by spike investigation. Use `build-from-issue` to plan and implement.*
241203
EOF
242204
)"
243205
```
244206

245-
### Why the split?
207+
**Do NOT post a follow-up comment on the issue.** All findings must be contained in the issue body itself.
246208

247-
- **Issue body** = concise, stakeholder-readable. Product managers, tech leads, and other engineers can scan it.
248-
- **Spike comment** = deep technical context. When `build-from-issue` runs, its `principal-engineer-reviewer` reads issue comments — this gives it a head start so it doesn't have to redo the investigation.
209+
**Display the issue URL** so it's easily clickable:
210+
211+
```
212+
Created issue [#<number>](https://github.com/OWNER/REPO/issues/<number>)
213+
```
249214

250-
## Step 6: Report to User
215+
## Step 5: Report to User
251216

252-
After creating the issue and posting the investigation comment, report:
217+
After creating the issue, report:
253218

254219
1. The issue URL (as a clickable markdown link)
255220
2. A 2-3 sentence summary of what was found
256221
3. Key risks or decisions that need human attention
257222
4. Next steps:
258223

259-
> Review the issue and the spike investigation comment. Refine the proposed approach if needed, then use `build-from-issue` on the issue to create an implementation plan and build it.
224+
> Review the issue. Refine the proposed approach if needed, then use `build-from-issue` on the issue to create an implementation plan and build it.
260225
261226
## Design Principles
262227

263-
1. **The issue body is for stakeholders; the spike comment is for implementers.** Keep the issue body concise and the comment detailed.
228+
1. **Everything goes in the issue body.** Do NOT post follow-up comments. The issue body should contain both the stakeholder-readable summary and the full technical investigation, all in one place.
264229

265230
2. **Do NOT create an implementation plan.** The spike identifies the problem space and proposes a direction. The implementation plan is `build-from-issue`'s responsibility, created after human review of the spike.
266231

267232
3. **One round of clarification max.** Don't turn this into an interrogation. If the user provides enough to identify the area of the codebase, start investigating.
268233

269-
4. **The spike comment should save `build-from-issue` work.** When `build-from-issue` runs, it reads issue comments as input context. The spike comment should contain enough detail that its `principal-engineer-reviewer` can build on the investigation rather than starting from scratch.
234+
4. **The issue should save `build-from-issue` work.** When `build-from-issue` runs, it reads the issue body as input context. The technical investigation section should contain enough detail that its `principal-engineer-reviewer` can build on the investigation rather than starting from scratch.
270235

271-
5. **Cross-reference `build-from-issue`.** Mention it as the natural next step in the issue body footer and the spike comment footer.
236+
5. **Cross-reference `build-from-issue`.** Mention it as the natural next step in the issue body footer.
272237

273238
## Useful Commands Reference
274239

275240
| Command | Description |
276241
| --- | --- |
277242
| `gh issue create --title "..." --body "..." --label "..."` | Create a new issue |
278-
| `gh issue comment <id> --body "..."` | Post a comment on an issue |
279243
| `gh label list --limit 100` | List available labels in the repo |
280244
| `gh issue edit <id> --add-label "..."` | Add labels to an issue |
281245
| `gh issue view <id> --json number,title,body,state,labels` | Fetch issue metadata |
@@ -296,9 +260,8 @@ User says: "Allow sandbox egress to private IP space via networking policy"
296260
- Identifies exact insertion points: policy field addition, SSRF check bypass path, OPA rule extension
297261
- Assesses: Medium complexity, High confidence, ~6 files
298262
3. Fetch labels — select `feat`, `sandbox`, `proxy`, `policy`, `review-ready`
299-
4. Create issue: `feat: allow sandbox egress to private IP space via networking policy`
300-
5. Post spike comment with full investigation: code references, architecture context, alternative approaches (allowlist vs. blanket bypass vs. per-policy toggle)
301-
6. Report: "Created issue #59. The investigation found that private IP blocking is enforced at the SSRF check layer in the proxy. The proposed approach adds a policy-level override. Review the issue and use `build-from-issue` when ready."
263+
4. Create issue: `feat: allow sandbox egress to private IP space via networking policy` — body includes both the summary and full investigation (code references, architecture context, alternative approaches)
264+
5. Report: "Created issue #59. The investigation found that private IP blocking is enforced at the SSRF check layer in the proxy. The proposed approach adds a policy-level override. Review the issue and use `build-from-issue` when ready."
302265

303266
### Bug investigation spike
304267

@@ -313,9 +276,8 @@ User says: "The proxy retry logic seems too aggressive — I'm seeing cascading
313276
- Identifies that retries happen without backoff jitter, causing thundering herd
314277
- Assesses: Low complexity, High confidence, ~2 files
315278
3. Fetch labels — select `fix`, `proxy`, `review-ready`
316-
4. Create issue: `fix: proxy retry logic causes cascading failures under load`
317-
5. Post spike comment with retry code references, current behavior trace, and comparison to standard backoff patterns
318-
6. Report: "Created issue #74. The proxy retries without jitter or circuit breaking, which amplifies failures under load. Straightforward fix. Review and use `build-from-issue` when ready."
279+
4. Create issue: `fix: proxy retry logic causes cascading failures under load` — body includes both the summary and full investigation (retry code references, current behavior trace, comparison to standard backoff patterns)
280+
5. Report: "Created issue #74. The proxy retries without jitter or circuit breaking, which amplifies failures under load. Straightforward fix. Review and use `build-from-issue` when ready."
319281

320282
### Performance/refactoring spike
321283

@@ -330,6 +292,5 @@ User says: "Policy evaluation is getting slow — can we cache compiled OPA poli
330292
- Identifies that policies are recompiled on every evaluation
331293
- Assesses: Medium complexity, Medium confidence (cache invalidation is a design decision), ~4 files
332294
3. Fetch labels — select `perf`, `policy`, `review-ready`
333-
4. Create issue: `perf: cache compiled OPA policies to reduce evaluation latency`
334-
5. Post spike comment with compilation hot path, current per-request overhead, cache invalidation strategies considered (TTL vs. content-hash vs. explicit reload), and trade-offs
335-
6. Report: "Created issue #81. Policies are recompiled per-request with no caching. The main design decision is the cache invalidation strategy — flagged as an open question. Review and use `build-from-issue` when ready."
295+
4. Create issue: `perf: cache compiled OPA policies to reduce evaluation latency` — body includes both the summary and full investigation (compilation hot path, per-request overhead, cache invalidation strategies with trade-offs)
296+
5. Report: "Created issue #81. Policies are recompiled per-request with no caching. The main design decision is the cache invalidation strategy — flagged as an open question. Review and use `build-from-issue` when ready."

0 commit comments

Comments
 (0)