---
title: "Technical experiment planner"
type: "skill"
url: "https://useaiblocks.com/skills/technical-spike-planner"
updated: "2026-10-28"
first_published: "2026-10-25"
job: "Research a topic properly"
tested: true
licence: "MIT"
source: "https://github.com/github/awesome-copilot/tree/613efc8c21d9b3ce642dff361d17006cd9967e28/skills/create-technical-spike"
instructions: "https://useaiblocks.com/skills/technical-spike-planner/SKILL.md"
---

# Technical experiment planner

> Bring a hard technical question and a time limit. Get a short experiment, stop rule and next step.

Share the technical question, time limit and decision at stake. It plans a short experiment with steps, evidence to collect, a stop rule and a next step.

Free skill for the job "Research a topic properly" · Level: intermediate · Thinking: medium · Tested · Updated 2026-10-28

## Links

- Page: https://useaiblocks.com/skills/technical-spike-planner
- Instructions (SKILL.md): https://useaiblocks.com/skills/technical-spike-planner/SKILL.md
- All files (zip): https://useaiblocks.com/skills/technical-spike-planner.zip
- JSON version: https://useaiblocks.com/skills/technical-spike-planner.json
- In your AI: connect https://useaiblocks.com/mcp and ask "Use AI Blocks to get technical-spike-planner"

## What it does

Bring one technical unknown and a time limit. Get a study plan with proof needed to choose a path.

## What you give it

- The blocking decision, affected code, constraints and deadline.
- A named owner and realistic research or prototype time budget.

## What you get

- A focused spike document with tasks, dependencies and completion criteria.
- A findings/decision record that separates planned experiments from actual results.

## Example: what goes in and what comes out

### What goes in

- The one technical question that blocks your work
- The code or system parts it affects
- Your time limit and decision deadline
- The name of the owner
- Known limits or requirements (optional)

### Before you start

- An AI that can create files if you want the spike saved as a file. Otherwise copy the text from the chat.
- Code tools like search, fetch and run tasks are only needed if you want your AI to research and test for you.

### What comes out

- **Summary**: The spike goal, why it matters, the time limit and the date a decision is needed.
- **Research Question(s)**: The main question and up to a few smaller questions that support it.
- **Investigation Plan**: A checklist of research tasks and the signs that show the spike is finished.
- **Technical Context**: The parts of the system affected, what depends on this, and known limits.
- **Research Findings**: Space for results, prototype notes and links to the sources you used.
- **Decision**: The recommendation, why it won over other options, notes for building it and follow-up actions.
- **Status History**: A dated table that tracks the spike from not started to complete.

## Use it when

- You want to plan a time-boxed technical spike.

## Skip it when

- A question a quick read of the code or an existing decision record can answer: read those first, no spike needed.
- A choice that spans several teams: hold a full design review with the people affected.
- Work that is already decided and only needs building: write normal implementation tasks instead.

## How to use it

1. Open your AI chat, or your AI coding assistant if you want it to search code and run tests.
2. Paste the skill text, then add your blocking question, the code it touches, your time limit, the owner and the deadline.
3. Ask your AI to write the spike document. Check that it has one question only.
4. Run the research tasks yourself, or let your AI do them if it can run code. Fill in the findings.
5. Write the decision, then turn the follow-up actions into implementation tasks.

## What to do next

- [Research project runner](https://useaiblocks.com/skills/research-project-runner): Research project runner

## Sources and credits

- From github: https://github.com/github/awesome-copilot/tree/613efc8c21d9b3ce642dff361d17006cd9967e28/skills/create-technical-spike, shared under the MIT licence (original name: create-technical-spike).
- [create-technical-spike skill](https://github.com/github/awesome-copilot/tree/613efc8c21d9b3ce642dff361d17006cd9967e28/skills/create-technical-spike), github: Original instructions and supporting files, with attribution and the MIT licence. Display copy describes the task.

## Instructions (SKILL.md)

## 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.

<!-- needs: written by tools/add-needs.mjs for AI Blocks; not part of the original skill. Edit that tool, not this section. -->
### Before you start
Use the material below to do this job. If facts or tool access are missing, explain what you can finish and what must wait.

**What you need** (use your own material or the linked skill):
- **Your question** (yours): the decision or problem, and what a good outcome looks like.
- **A codebase** (yours): a project's code, in a folder or repo the AI can open.

How to start:
1. **Look first.** Use what they've already attached, pasted or put in their about-me note. In a coding assistant with file access, look in the project too for these by name.
2. **Check what's missing.** Look for your question, a codebase. They can attach files, paste the details, or share a file path your assistant can read. Ask only for missing facts that change the result. If they ask you to start with what they have, complete the parts you can and mark the gaps.
3. **Do the job.** Follow the skill below with the facts and tools you have. Mark each gap with `MISSING:` where it belongs and never invent a fact to fill it.
<!-- /needs -->

### 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`).

```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.md`
- `api-azure-speech-realtime-spike.md`
- `api-vscode-extension-capabilities-spike.md`

**Performance Examples:**

- `performance-audio-processing-latency-spike.md`
- `performance-extension-host-limitations-spike.md`
- `performance-webrtc-reliability-spike.md`

**Architecture Examples:**

- `architecture-voice-pipeline-design-spike.md`
- `architecture-state-management-spike.md`
- `architecture-error-handling-strategy-spike.md`

### Best Practices for AI Agents

1. **One Question Per Spike:** Each document focuses on a single technical decision or research question

2. **Time-Boxed Research:** Define specific time limits and deliverables for each spike

3. **Evidence-Based Decisions:** Require concrete evidence (tests, prototypes, documentation) before marking as complete

4. **Clear Recommendations:** Document specific recommendations and rationale for implementation

5. **Dependency Tracking:** Identify how spikes relate to each other and impact project decisions

6. **Outcome-Focused:** Every spike must result in an actionable decision or recommendation

### Research Strategy

#### Phase 1: Information Gathering

1. **Search existing documentation** using search/fetch tools
2. **Analyze codebase** for existing patterns and constraints
3. **Research external resources** (APIs, libraries, examples)

#### Phase 2: Validation & Testing

1. **Create focused prototypes** to test specific hypotheses
2. **Run targeted experiments** to validate assumptions
3. **Document test results** with supporting evidence

#### Phase 3: Decision & Documentation

1. **Synthesize findings** into clear recommendations
2. **Document implementation guidance** for development team
3. **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.

<!-- next: written by tools/add-needs.mjs for AI Blocks; not part of the original skill. Edit that tool, not this section. -->
### After this
When you've handed it back, suggest what they could do next in one short question. It's a suggestion: if they're done, that's fine. Offer these, and say they can type their own:
- The [Research project runner](https://useaiblocks.com/skills/research-project-runner). It takes the document.
If they pick one and that skill is added here, carry straight on with what you just made. If not, give the link and say what to bring.
<!-- /next -->
