Create time-boxed technical spike documents that answer critical implementation questions before development proceeds. Use this skill when the user asks to create a technical spike, research an API or architecture decision, document a proof of concept, evaluate performance or security options, or unblock development with an evidence-based recommendation.
Create a focused technical spike markdown file that frames one unresolved decision, defines time-boxed research, captures evidence, and ends with an actionable recommendation.
When to invoke
"Create a technical spike document."
"Write a spike for this API integration decision."
"Plan research before we implement this architecture."
"Document a proof of concept for this risky feature."
"Create a time-boxed investigation for performance or security options."
Inputs
Use $ARGUMENTS for spike title, category, owner, timebox, priority, output folder, and any known context. If the folder is not supplied, default to docs/spikes. If values are missing, use placeholders in the document and call them out in the result.
File and frontmatter rules
Create one file per spike in docs/spikes or the user-supplied folder. Name it with kebab-case: [category]-[short-description]-spike.md, for example api-copilot-integration-spike.md, performance-realtime-audio-spike.md, or architecture-state-management-spike.md.
Use this frontmatter shape, preserving user-provided values when available:
If migrating an older template, map ${input:FolderPath|docs/spikes} and FolderPath to $ARGUMENTS plus the docs/spikes default. Do not expose legacy VS Code tool labels as active CLI tools: search/searchResults, search/fetch, and fetch/githubRepo describe research intent only. Use development/architecture when describing why the spike matters to implementation decisions.
Output template
---
title: "<SpikeTitle>"
category: "<Category|Technical>"
status: "Not Started"
priority: "<Priority|High>"
timebox: "<Timebox|1 week>"
created: <YYYY-MM-DD>
updated: <YYYY-MM-DD>
owner: "<Owner>"
tags: ["technical-spike", "<category|technical>", "research"]
---
# <SpikeTitle>
## Summary
**Spike Objective:** <clear, specific question or decision that needs resolution>
**Why This Matters:** <impact on development or architecture decisions>
**Timebox:** <allocated time>
**Decision Deadline:** <deadline to avoid blocking development>
## Research Question(s)
**Primary Question:** <main technical question>
**Secondary Questions:**
- <related question 1>
- <related question 2>
- <related question 3>
## Investigation Plan
### Research Tasks
- [ ] <specific research task 1>
- [ ] <specific research task 2>
- [ ] <specific research task 3>
- [ ] Create proof of concept/prototype
- [ ] Document findings and recommendations
### Success Criteria
**This spike is complete when:**
- [ ] <specific criteria 1>
- [ ] <specific criteria 2>
- [ ] Clear recommendation documented
- [ ] Proof of concept completed (if applicable)
## Technical Context
**Related Components:** <components affected>
**Dependencies:** <other spikes or decisions that depend on this>
**Constraints:** <known limitations or requirements>
## Research Findings
### Investigation Results
<research findings, test results, and evidence gathered>
### Prototype/Testing Notes
<prototype, spike, or technical experiment results>
### External Resources
- <relevant documentation>
- <API references>
- <community discussions>
- <examples/tutorials>
## Decision
### Recommendation
<clear recommendation based on findings>
### Rationale
<why this approach was chosen over alternatives>
### Implementation Notes
<key implementation considerations>
### Follow-up Actions
- [ ] <action item 1>
- [ ] <action item 2>
- [ ] Update architecture documents
- [ ] Create implementation tasks
## Status History
| Date | Status | Notes |
| --- | --- | --- |
| <Date> | Not Started | Spike created and scoped |
| <Date> | In Progress | Research commenced |
| <Date> | Complete | <Resolution summary> |
---
_Last updated: <Date> by <Name>_
Quality gate
$ARGUMENTS was consumed for title, category, owner, timebox, priority, and folder when provided.
The file path uses docs/spikes or the requested folder and the name matches [category]-[short-description]-spike.md.
The spike has exactly one primary question.
The frontmatter includes title, category, status, priority, timebox, created, updated, owner, and tags.
Investigation tasks include research, prototype or validation when applicable, findings, and recommendation.
Success criteria make the time-boxed outcome objectively checkable.
The document includes Technical Context, Research Findings, Decision, Follow-up Actions, and Status History.
1---2name: create-technical-spike-43description: Create time-boxed technical spike documents that answer critical implementation questions before development proceeds. Use this skill when the user asks to create a technical spike, research an API or architecture decision, document a proof of concept, evaluate performance or security options, or unblock development with an evidence-based recommendation.4---56<!-- Generated from harness/github-copilot/plugins/project-planning/skills/create-technical-spike/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Create technical spike910Create a focused technical spike markdown file that frames one unresolved decision, defines time-boxed research, captures evidence, and ends with an actionable recommendation.1112## When to invoke1314- "Create a technical spike document."15- "Write a spike for this API integration decision."16- "Plan research before we implement this architecture."17- "Document a proof of concept for this risky feature."18- "Create a time-boxed investigation for performance or security options."1920## Inputs2122Use `$ARGUMENTS` for spike title, category, owner, timebox, priority, output folder, and any known context. If the folder is not supplied, default to `docs/spikes`. If values are missing, use placeholders in the document and call them out in the result.2324## File and frontmatter rules2526Create one file per spike in `docs/spikes` or the user-supplied folder. Name it with kebab-case: `[category]-[short-description]-spike.md`, for example `api-copilot-integration-spike.md`, `performance-realtime-audio-spike.md`, or `architecture-state-management-spike.md`.2728Use this frontmatter shape, preserving user-provided values when available:2930```yaml31---32title: "<SpikeTitle>"33category: "<Category|Technical>"34status: "Not Started"35priority: "<Priority|High>"36timebox: "<Timebox|1 week>"37created: <YYYY-MM-DD>38updated: <YYYY-MM-DD>39owner: "<Owner>"40tags: ["technical-spike", "<category|technical>", "research"]41---42```4344## Spike categories4546| Category | Use for |47| --- | --- |48| API Integration | Third-party API capabilities, limitations, authentication, rate limits, and integration patterns. |49| Architecture & Design | System architecture decisions, design pattern applicability, and component interaction models. |50| Performance & Scalability | Latency, throughput, bottlenecks, resource utilization, and scalability options. |51| Platform & Infrastructure | Platform capabilities, infrastructure requirements, deployment, and hosting constraints. |52| Security & Compliance | Authentication, authorization, compliance constraints, security requirements, and implementations. |53| User Experience | Interaction patterns, accessibility requirements, and interface design decisions. |5455## Research strategy56571. Gather information from existing documentation, external resources, APIs, libraries, examples, and the codebase's existing patterns and constraints.582. Validate assumptions with focused prototypes, proof of concept work, or targeted experiments when evidence is needed.593. Synthesize findings into a recommendation, rationale, implementation notes, and follow-up tasks.6061## Spike quality rules6263| Rule | Requirement |64| --- | --- |65| One Question Per Spike | Each document focuses on a single technical decision or research question. |66| Time-Boxed Research | Define specific time limits, deliverables, and decision deadline. |67| Evidence-Based Decisions | Require concrete evidence from tests, prototypes, documentation, or analysis. |68| Clear Recommendations | Document a specific recommendation and rationale. |69| Dependency Tracking | Identify related components, dependencies, other spikes, and blocked decisions. |70| Outcome-Focused | End with an actionable decision or recommendation. |7172## File naming examples7374| Category | Examples |75| --- | --- |76| API/Integration | `api-copilot-chat-integration-spike.md`, `api-azure-speech-realtime-spike.md`, `api-vscode-extension-capabilities-spike.md` |77| Performance | `performance-audio-processing-latency-spike.md`, `performance-extension-host-limitations-spike.md`, `performance-webrtc-reliability-spike.md` |78| Architecture | `architecture-voice-pipeline-design-spike.md`, `architecture-state-management-spike.md`, `architecture-error-handling-strategy-spike.md` |7980## Legacy input and tool vocabulary8182If migrating an older template, map `${input:FolderPath|docs/spikes}` and `FolderPath` to `$ARGUMENTS` plus the `docs/spikes` default. Do not expose legacy VS Code tool labels as active CLI tools: `search/searchResults`, `search/fetch`, and `fetch/githubRepo` describe research intent only. Use `development/architecture` when describing why the spike matters to implementation decisions.8384## Output template8586```markdown87---88title: "<SpikeTitle>"89category: "<Category|Technical>"90status: "Not Started"91priority: "<Priority|High>"92timebox: "<Timebox|1 week>"93created: <YYYY-MM-DD>94updated: <YYYY-MM-DD>95owner: "<Owner>"96tags: ["technical-spike", "<category|technical>", "research"]97---9899# <SpikeTitle>100101## Summary102103**Spike Objective:** <clear, specific question or decision that needs resolution>104105**Why This Matters:** <impact on development or architecture decisions>106107**Timebox:** <allocated time>108109**Decision Deadline:** <deadline to avoid blocking development>110111## Research Question(s)112113**Primary Question:** <main technical question>114115**Secondary Questions:**116117- <related question 1>118- <related question 2>119- <related question 3>120121## Investigation Plan122123### Research Tasks124125- [ ] <specific research task 1>126- [ ] <specific research task 2>127- [ ] <specific research task 3>128- [ ] Create proof of concept/prototype129- [ ] Document findings and recommendations130131### Success Criteria132133**This spike is complete when:**134135- [ ] <specific criteria 1>136- [ ] <specific criteria 2>137- [ ] Clear recommendation documented138- [ ] Proof of concept completed (if applicable)139140## Technical Context141142**Related Components:** <components affected>143144**Dependencies:** <other spikes or decisions that depend on this>145146**Constraints:** <known limitations or requirements>147148## Research Findings149150### Investigation Results151152<research findings, test results, and evidence gathered>153154### Prototype/Testing Notes155156<prototype, spike, or technical experiment results>157158### External Resources159160- <relevant documentation>161- <API references>162- <community discussions>163- <examples/tutorials>164165## Decision166167### Recommendation168169<clear recommendation based on findings>170171### Rationale172173<why this approach was chosen over alternatives>174175### Implementation Notes176177<key implementation considerations>178179### Follow-up Actions180181- [ ] <action item 1>182- [ ] <action item 2>183- [ ] Update architecture documents184- [ ] Create implementation tasks185186## Status History187188| Date | Status | Notes |189| --- | --- | --- |190| <Date> | Not Started | Spike created and scoped |191| <Date> | In Progress | Research commenced |192| <Date> | Complete | <Resolution summary> |193194---195196_Last updated: <Date> by <Name>_197```198199## Quality gate200201- [ ] `$ARGUMENTS` was consumed for title, category, owner, timebox, priority, and folder when provided.202- [ ] The file path uses `docs/spikes` or the requested folder and the name matches `[category]-[short-description]-spike.md`.203- [ ] The spike has exactly one primary question.204- [ ] The frontmatter includes title, category, status, priority, timebox, created, updated, owner, and tags.205- [ ] Investigation tasks include research, prototype or validation when applicable, findings, and recommendation.206- [ ] Success criteria make the time-boxed outcome objectively checkable.207- [ ] The document includes Technical Context, Research Findings, Decision, Follow-up Actions, and Status History.
Run npx skillmds@latest add paulasilvatech/create-technical-spike-4 in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Create time-boxed technical spike documents that answer critical implementation questions before development proceeds. Use this skill when the user asks to create a technical spike, research an API or architecture decision, document a proof of concept, evaluate performance or security options, or unblock development with an evidence-based recommendation. It is listed under Security on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
paulasilvatech (@paulasilvatech) published this skill. Their other Agent Skills are listed on their SkillMD profile.