assets/skills/spike/SKILL.md
Spike/Research workflow for exploring unknowns before committing to implementation. Use when researching, prototyping, doing proof of concept, or when user says "spike", "research", "prototype", "poc", "explore", "investigate".
npx skillsauth add phuthuycoding/moicle spikeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Time-boxed exploration workflow for investigating unknowns, validating assumptions, and de-risking decisions before committing to full implementation.
Before starting any spike, you MUST read the appropriate architecture reference:
~/.claude/architecture/
├── clean-architecture.md # Core principles for all projects
├── flutter-mobile.md # Flutter + Riverpod
├── react-frontend.md # React + Vite + TypeScript
├── go-backend.md # Go + Gin
├── laravel-backend.md # Laravel + PHP
├── remix-fullstack.md # Remix fullstack
└── monorepo.md # Monorepo structure
.claude/architecture/ # Project overrides
Understand the project structure and patterns before exploring alternatives.
| Phase | Agent | Purpose |
|-------|-------|---------|
| DEFINE | @clean-architect | Define research questions based on architecture |
| RESEARCH | @api-designer | API/integration research |
| RESEARCH | @db-designer | Data model research |
| RESEARCH | @security-audit | Security implications |
| PROTOTYPE | @react-frontend-dev, @go-backend-dev, @laravel-backend-dev, @flutter-mobile-dev, @remix-fullstack-dev | Stack-specific POC |
| EVALUATE | @clean-architect | Architecture impact assessment |
| EVALUATE | @docs-writer | Document findings |
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 1. DEFINE│──▶│2. RESEARCH──▶│3. PROTOTYPE──▶│4. EVALUATE│
└──────────┘ └──────────┘ └──────────┘ └──────────┘
│ │
│ Timebox Expired? │
└──────────────────────────────────────────────┘
End & Document
Goal: Define the question/problem to research and set timebox
Clarify what's unknown:
Identify project stack and read architecture doc
Define research question:
Good: "Can we integrate Auth0 with our React app without breaking Clean Architecture?"
Bad: "Research authentication"
Set timebox based on spike type:
Define success criteria:
Spike is successful when we know:
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
## Spike: [Name]
### Type
[Technical/Design/Functional]
### Stack & Architecture
- Stack: [Flutter/React/Go/Laravel/Remix]
- Architecture Doc: [path to architecture file]
### Research Question
[Clear, specific question]
### Why This Spike
[Why we need this research before implementing]
### Timebox
- Duration: [X hours/days]
- Start: [timestamp]
- End: [timestamp]
### Success Criteria
We will know enough when:
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
### Out of Scope
[What we're NOT exploring]
Goal: Gather information and explore options
Read relevant architecture docs for context
Research approaches:
Evaluate against architecture:
Document findings in real-time:
## Research Log
### [Timestamp] - Option 1: [Name]
**Source**: [link/person]
**Pros**:
- Pro 1
- Pro 2
**Cons**:
- Con 1
- Con 2
**Architecture Fit**: [Good/Moderate/Poor]
- [Notes on how it fits our architecture]
### [Timestamp] - Option 2: [Name]
...
Track time spent vs timebox
## Research Findings
### Options Explored
1. **Option 1**: [brief description]
- Architecture fit: [assessment]
- Complexity: [Low/Medium/High]
- Risk: [Low/Medium/High]
2. **Option 2**: [brief description]
- Architecture fit: [assessment]
- Complexity: [Low/Medium/High]
- Risk: [Low/Medium/High]
### Architecture Impact
**Affected Layers**: [list from architecture doc]
**Pattern Changes**: [any changes to current patterns]
**Dependencies**: [new dependencies needed]
### Initial Recommendation
[Which option looks most promising and why]
Goal: Build quick proof of concept to validate approach
Read architecture doc for the affected areas
Set prototype scope:
## Prototype Scope
**Proving**: [the one thing we're validating]
**NOT proving**: [everything else]
**Time**: [X hours from total timebox]
Build minimal POC:
// PROTOTYPE - NOT PRODUCTION CODE
// Spike: [spike name]
Test the critical path only:
Document observations:
## Prototype Observations
### What Worked
- [observation 1]
- [observation 2]
### What Didn't Work
- [issue 1]
- [issue 2]
### Surprises
- [unexpected finding 1]
- [unexpected finding 2]
### Blockers Found
- [blocker 1]
- [blocker 2]
## Prototype Results
### Implementation
- Branch/Location: [path]
- Time Spent: [X hours]
- Status: [Working/Partially Working/Not Working]
### Key Learnings
1. [learning 1]
2. [learning 2]
3. [learning 3]
### Architecture Compliance
- Fits patterns: [Yes/No/Partially]
- Issues found: [list]
- Workarounds needed: [list]
### Effort Estimate (if proceeding)
- [Rough T-shirt size: XS/S/M/L/XL]
- [Based on: what you learned]
Goal: Assess results and make recommendation
Review findings against architecture doc
Assess each option:
## Option Assessment
### Option 1: [Name]
**Architecture Fit**: ⭐⭐⭐⭐⭐ (5/5)
- [why it fits/doesn't fit]
**Complexity**: ⭐⭐⭐ (3/5)
- [complexity assessment]
**Risk**: ⭐⭐ (2/5 - lower is better)
- [risk assessment]
**Effort**: [T-shirt size]
- [effort justification]
**Prototype Result**: [Successful/Partial/Failed]
Make recommendation:
## Recommendation
### Choice: [Option X]
### Reasoning
1. [reason 1]
2. [reason 2]
3. [reason 3]
### Trade-offs Accepted
- [trade-off 1]
- [trade-off 2]
### Risks & Mitigations
- Risk: [risk 1]
Mitigation: [how to mitigate]
- Risk: [risk 2]
Mitigation: [how to mitigate]
### Implementation Plan (High-Level)
1. [phase 1]
2. [phase 2]
3. [phase 3]
### Next Steps
- [ ] Next step 1
- [ ] Next step 2
- [ ] Next step 3
Create decision record:
# ADR: [Decision Title]
Date: [date]
Status: Proposed
## Context
[What led to this spike]
## Decision
[What we decided]
## Consequences
- Positive: [list]
- Negative: [list]
- Neutral: [list]
## Alternatives Considered
- Option A: [brief + why rejected]
- Option B: [brief + why rejected]
## Spike Summary: [Name]
**Duration**: [actual time spent] / [timebox]
**Date**: [start] - [end]
**Stack**: [stack]
**Researcher**: [name/team]
### Question Answered
[Original research question]
### Answer
[Clear answer based on findings]
### Recommendation
[Clear recommendation with reasoning]
### Supporting Evidence
- Research: [key findings]
- Prototype: [what we built and learned]
- Architecture: [how it fits]
### Confidence Level
[High/Medium/Low] - [why]
### Next Actions
1. [ ] Action 1
2. [ ] Action 2
3. [ ] Action 3
### Artifacts
- Research notes: [link]
- Prototype code: [link/path]
- Decision record: [link]
| Stack | Doc |
|-------|-----|
| All | clean-architecture.md |
| Flutter | flutter-mobile.md |
| React | react-frontend.md |
| Go | go-backend.md |
| Laravel | laravel-backend.md |
| Remix | remix-fullstack.md |
| Monorepo | monorepo.md |
| Type | Purpose | Example | |------|---------|---------| | Technical | Validate technical feasibility | Can we use WebSockets with our architecture? | | Design | Explore design options | What's the best state management for this feature? | | Functional | Understand requirements | How should offline sync work? |
| Complexity | Timebox | Output | |------------|---------|--------| | Quick | 2-4 hours | Research + decision | | Medium | 1-2 days | Research + small POC + decision | | Deep | 3-5 days | Research + full POC + ADR | | Max | 1 week | Stop and reassess |
Spike is successful when:
After spike:
# Archive prototype
git branch -D spike/[name] # Delete branch
# OR move to /experiments directory
mkdir -p experiments/spike-[name]
mv [prototype] experiments/spike-[name]/
# Update README
echo "## Spike: [name]" >> experiments/README.md
echo "Result: [recommendation]" >> experiments/README.md
echo "Date: [date]" >> experiments/README.md
# Spike: [Name]
## Question
[Clear question]
## Research (2 hours)
- [ ] Option 1 research
- [ ] Option 2 research
- [ ] Documentation review
## Decision (30 min)
- Recommendation: [choice]
- Reasoning: [why]
## Next Steps
- [ ] Next action
# Spike: [Name]
## Define (Day 1)
- Question: [clear question]
- Success criteria: [list]
- Timebox: [X days]
## Research (Day 1-2)
- Options explored: [list]
- Architecture impact: [assessment]
## Prototype (Day 2-3)
- What: [what we're building]
- Result: [what we learned]
## Evaluate (Day 4-5)
- Recommendation: [choice]
- ADR: [link]
- Next steps: [list]
development
Test-Driven Development workflow. Use when doing TDD, writing tests first, or when user says "tdd", "test first", "test driven", "red green refactor".
development
Thorough pull request review workflow with architecture compliance checks. Use when reviewing pull requests, checking code changes, or when user says "review pr", "check pr", "review code", "pr review", "review pull request".
development
Review local branch changes for architecture compliance, conventions, and code quality before pushing/PR. Stack-aware — detects the project stack and applies the matching rules. Use when user says "review changes", "review branch", "check branch", "check changes", "review my code", "review before pr".
testing
DDD architecture compliance review with automated checks and review loop. Use when user says "architect-review", "architecture review", "review architecture", "check architecture", "review ddd", "ddd review".