plugins/nw/skills/nw-spike-methodology/SKILL.md
Teaches agents how to run a timeboxed spike - throwaway code that validates one assumption before DESIGN
npx skillsauth add nwave-ai/nwave nw-spike-methodologyInstall 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.
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:
testing
Acceptance test creation methodology for the DISTILL wave. Domain knowledge for the acceptance designer agent: port-to-port principle, prior wave reading, wave-decision reconciliation, graceful degradation, and document back-propagation.
development
Cross-agent collaboration protocols, workflow handoff patterns, and commit message formats for TDD/Mikado/refactoring workflows
development
Creates a phased roadmap.json for a feature goal with acceptance criteria and TDD steps. Use when planning implementation steps before execution.
testing
Acceptance test creation methodology for the DISTILL wave. Domain knowledge for the acceptance designer agent: port-to-port principle, prior wave reading, wave-decision reconciliation, graceful degradation, and document back-propagation.