create-technical-spike
github/awesome-copilot
Generate structured, time-boxed spike documents to research and resolve critical technical decisions before coding starts.
What is create-technical-spike?
This skill generates standardized, time-boxed technical spike documents to research and resolve critical technical decisions before development begins. It provides a markdown template with structured sections (objective, research questions, investigation plan, findings, recommendation) plus naming conventions and a phased research strategy.
- Generates a markdown spike document with standardized YAML frontmatter and content sections
- Applies a consistent file naming convention ([category]-[short-description]-spike.md) and categorization scheme
- Provides a template for summary, research questions, investigation plan, success criteria, findings, and decision/recommendation
- Outlines a 3-phase research strategy: information gathering, validation/testing, and decision/documentation
- Tracks spike status over time via a status history table and lifecycle states (Not Started, In Progress, Complete)
How to install create-technical-spike
npx skills add https://github.com/github/awesome-copilot --skill create-technical-spikeHow to use create-technical-spike
- 1.Invoke the skill and specify spike title, category, priority, timebox, owner, and folder path (defaults to docs/spikes)
- 2.The skill creates a markdown file named [category]-[short-description]-spike.md with frontmatter and the full spike template
- 3.Fill in the Summary, Research Question(s), and Investigation Plan sections to scope the spike
- 4.Conduct research using available tools (search, fetch/githubRepo, codebase analysis, prototypes/runTasks) per the phased research strategy
- 5.Document findings, prototype/testing notes, and external resources in the Research Findings section
- 6.Record the final Recommendation, Rationale, Implementation Notes, and Follow-up Actions
- 7.Update the Status History table and frontmatter status/dates as the spike progresses from Not Started to Complete
Use cases
- Evaluating a third-party API's capabilities and rate limits before committing to an integration
- Deciding between architectural approaches (e.g., state management or error handling strategy) before building
- Testing performance/latency assumptions (e.g., audio processing, extension host limits) via a prototype
- Investigating platform or infrastructure constraints before choosing a deployment approach
- Researching security/compliance requirements for an authentication or authorization design
- Software engineers facing blocking technical unknowns before implementation
- Tech leads/architects needing to document and track architectural decisions
- AI coding agents tasked with researching technical feasibility before writing code
- Teams wanting consistent, evidence-based documentation of technical research
create-technical-spike FAQ
In a configurable folder (default docs/spikes), with one file per spike named using the pattern [category]-[short-description]-spike.md.
A YAML frontmatter (title, category, status, priority, timebox, owner, tags) plus sections for summary, research questions, investigation plan, technical context, findings, decision/recommendation, and status history.
It provides a structured template and research strategy; an AI agent or developer still performs the searches, prototypes, and writes findings into the document.
API Integration, Architecture & Design, Performance & Scalability, Platform & Infrastructure, Security & Compliance, and User Experience.
Full instructions (SKILL.md)
Source of truth, from github/awesome-copilot.
name: create-technical-spike description: 'Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.'
Create Technical Spike Document
Create time-boxed technical spike documents for researching critical questions that must be answered before development can proceed. Each spike focuses on a specific technical decision with clear deliverables and timelines.
Document Structure
Create individual files in ${input:FolderPath|docs/spikes} directory. Name each file using the pattern: [category]-[short-description]-spike.md (e.g., api-copilot-integration-spike.md, performance-realtime-audio-spike.md).
---
title: "${input:SpikeTitle}"
category: "${input:Category|Technical}"
status: "🔴 Not Started"
priority: "${input:Priority|High}"
timebox: "${input:Timebox|1 week}"
created: [YYYY-MM-DD]
updated: [YYYY-MM-DD]
owner: "${input:Owner}"
tags: ["technical-spike", "${input:Category|technical}", "research"]
---
# ${input:SpikeTitle}
## Summary
**Spike Objective:** [Clear, specific question or decision that needs resolution]
**Why This Matters:** [Impact on development/architecture decisions]
**Timebox:** [How much time allocated to this spike]
**Decision Deadline:** [When this must be resolved to avoid blocking development]
## Research Question(s)
**Primary Question:** [Main technical question that needs answering]
**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:** [List system components affected by this decision]
**Dependencies:** [What other spikes or decisions depend on resolving this]
**Constraints:** [Known limitations or requirements that affect the solution]
## Research Findings
### Investigation Results
[Document research findings, test results, and evidence gathered]
### Prototype/Testing Notes
[Results from any prototypes, spikes, or technical experiments]
### External Resources
- [Link to relevant documentation]
- [Link to API references]
- [Link to community discussions]
- [Link to examples/tutorials]
## Decision
### Recommendation
[Clear recommendation based on research findings]
### Rationale
[Why this approach was chosen over alternatives]
### Implementation Notes
[Key considerations for implementation]
### 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]_
Categories for Technical Spikes
API Integration
- Third-party API capabilities and limitations
- Integration patterns and authentication
- Rate limits and performance characteristics
Architecture & Design
- System architecture decisions
- Design pattern applicability
- Component interaction models
Performance & Scalability
- Performance requirements and constraints
- Scalability bottlenecks and solutions
- Resource utilization patterns
Platform & Infrastructure
- Platform capabilities and limitations
- Infrastructure requirements
- Deployment and hosting considerations
Security & Compliance
- Security requirements and implementations
- Compliance constraints
- Authentication and authorization approaches
User Experience
- User interaction patterns
- Accessibility requirements
- Interface design decisions
File Naming Conventions
Use descriptive, kebab-case names that indicate the category and specific unknown:
API/Integration Examples:
api-copilot-chat-integration-spike.mdapi-azure-speech-realtime-spike.mdapi-vscode-extension-capabilities-spike.md
Performance Examples:
performance-audio-processing-latency-spike.mdperformance-extension-host-limitations-spike.mdperformance-webrtc-reliability-spike.md
Architecture Examples:
architecture-voice-pipeline-design-spike.mdarchitecture-state-management-spike.mdarchitecture-error-handling-strategy-spike.md
Best Practices for AI Agents
-
One Question Per Spike: Each document focuses on a single technical decision or research question
-
Time-Boxed Research: Define specific time limits and deliverables for each spike
-
Evidence-Based Decisions: Require concrete evidence (tests, prototypes, documentation) before marking as complete
-
Clear Recommendations: Document specific recommendations and rationale for implementation
-
Dependency Tracking: Identify how spikes relate to each other and impact project decisions
-
Outcome-Focused: Every spike must result in an actionable decision or recommendation
Research Strategy
Phase 1: Information Gathering
- Search existing documentation using search/fetch tools
- Analyze codebase for existing patterns and constraints
- Research external resources (APIs, libraries, examples)
Phase 2: Validation & Testing
- Create focused prototypes to test specific hypotheses
- Run targeted experiments to validate assumptions
- Document test results with supporting evidence
Phase 3: Decision & Documentation
- Synthesize findings into clear recommendations
- Document implementation guidance for development team
- Create follow-up tasks for implementation
Tools Usage
- search/searchResults: Research existing solutions and documentation
- fetch/githubRepo: Analyze external APIs, libraries, and examples
- codebase: Understand existing system constraints and patterns
- runTasks: Execute prototypes and validation tests
- editFiles: Update research progress and findings
- vscodeAPI: Test VS Code extension capabilities and limitations
Focus on time-boxed research that resolves critical technical decisions and unblocks development progress.
Related skills
More from github/awesome-copilot and the wider catalog.
git-commit
Execute semantic git commits with conventional message analysis and intelligent staging.
excalidraw-diagram-generator
Generate Excalidraw diagrams from natural language descriptions.
documentation-writer
Create structured technical documentation using the Diátaxis framework for tutorials, how-to guides, references, and explanations.
gh-cli
GitHub CLI comprehensive reference for repositories, issues, PRs, Actions, projects, releases, and all GitHub operations from the command line.
prd
Generate comprehensive Product Requirements Documents with executive summaries, user stories, technical specs, and risk analysis.
refactor
Surgical code refactoring to improve maintainability without changing behavior.