nwave-ai/nw-spike-methodology
Teaches agents how to run a timeboxed spike - throwaway code that validates one assumption before DESIGN
npx skills add https://github.com/nWave-ai/nWave --skill nw-spike-methodology
Throwaway code that validates exactly one assumption. Max 1 hour. Binary outcome: works or doesn't work. Code is deleted after validation; only findings persist.
| Not This | Why |
|----------|-----|
| Prototype | Prototypes evolve into production code. Spikes are deleted. |
| MVP | MVPs ship to users. Spikes never leave the developer's machine. |
| Walking Skeleton | Skeletons wire end-to-end architecture. Spikes test one mechanism. |
| POC | POCs demonstrate feasibility to stakeholders. Spikes answer a developer question. |
Every spike answers exactly these:
/tmp/spike_{feature_id}/ or a scratch directory. Never in src/.time.perf_counter() for timing, not time.time().#!/usr/bin/env python3
"""SPIKE: {feature} -- {one-line question being validated}
Throwaway code. Not production. Will be deleted after validation.
"""
import time
# 1. Setup (minimal, no frameworks)
# ...
# 2. Core mechanism attempt
start = time.perf_counter()
# ... the thing you're testing ...
elapsed = time.perf_counter() - start
# 3. Print findings
print(f"Mechanism: {'WORKS' if success else 'FAILS'}")
print(f"Timing: {elapsed*1000:.1f}ms (budget: {budget}ms)")
print(f"Edge cases: {edge_cases}")
Output goes to docs/feature/{feature-id}/spike/findings.md:
# Spike Findings -- {feature-id}
## Verdict: WORKS / DOESN'T WORK
## Question tested
{the one assumption being validated}
## Core mechanism
- Tested: {what was tested}
- Result: {what happened}
## Timing
- {operation}: {time}ms
- Total: {time}ms (budget: {budget}ms) -- PASS / FAIL
## Edge cases discovered
1. {edge case}: {what happened}
2. {edge case}: {what happened}
## Design implications
- {assumption that was wrong}: {correct reality}
- {approach the spike validated or invalidated}
## Spike code
Deleted. Was at /tmp/spike_{feature_id}/
If the spike reveals the problem is fundamentally different from what was assumed:
Take nwave-ai/nw-spike-methodology from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.