any-percent
Any%
Explore different approaches in parallel - no restrictions, fastest path to comparing real implementations. Each variant uses hosted LLM for code generation.
Announce: "I'm using speed-run:any% for parallel exploration via hosted LLM."
Core principle: When unsure of the best architecture, implement multiple approaches fast via hosted LLM and let real code + tests determine the winner.
When to Use
- Unsure which architectural approach is best
- Want to compare 2-5 different designs quickly
- "Try both approaches", "explore both", "not sure which way"
- Want token-efficient parallel exploration
Workflow Overview
| Phase | Description |
|---|---|
| 1. Context | Quick gathering (1-2 questions max) |
| 2. Approaches | Generate 2-5 architectural approaches |
| 3. Plan | Create implementation plan per variant |
| 4. Implement | Dispatch ALL agents in SINGLE message, each uses hosted LLM |
| 5. Evaluate | Scenario tests -> fresh-eyes -> judge survivors |
| 6. Complete | Finish winner, cleanup losers |
Directory Structure
docs/plans/<feature>/
design.md # Shared context
speed-run/
any-percent/
variant-<slug>/
plan.md # Implementation plan for this variant
result.md # Final report
.worktrees/
speed-run-variant-<slug>/ # Variant worktree
Phase 1: Quick Context
Gather just enough to generate approaches (1-2 questions max):
- What are you building?
- Any hard constraints? (language, framework, infrastructure)
Do NOT brainstorm extensively. The point of any% is to explore fast, not deliberate slowly.
Phase 2: Generate Approaches
Identify the primary architectural axis (biggest impact decision):
- Storage engine (SQL vs NoSQL vs file-based)
- Framework (Express vs Fastify vs Hono)
- Architecture pattern (monolith vs microservices vs serverless)
- State management approach
- Auth strategy
Generate 2-5 approaches along that axis:
Based on the requirements, here are 3 approaches to explore:
1. variant-sqlite: SQLite storage with query builder
→ Pros: Simple, embedded, zero config
→ Cons: Single writer, no replication
2. variant-postgres: PostgreSQL with ORM
→ Pros: Scalable, ACID, rich queries
→ Cons: External dependency, more setup
3. variant-redis: Redis with persistence
→ Pros: Fast, built-in pub/sub
→ Cons: Memory-bound, limited queries
All will be implemented via hosted LLM and tested.
Spawning 3 parallel variants now.
Variant limits: Max 5-6. Don't do full combinatorial explosion:
- Identify the primary axis
- Create variants along that axis
- Fill secondary slots with natural pairings
Phase 3: Plan + Implement (Parallel)
Setup worktrees:
.worktrees/speed-run-variant-sqlite/
.worktrees/speed-run-variant-postgres/
.worktrees/speed-run-variant-redis/
Branches:
<feature>/speed-run/variant-sqlite
<feature>/speed-run/variant-postgres
<feature>/speed-run/variant-redis
CRITICAL: Dispatch ALL variants in a SINGLE message
<single message>
Task(variant-sqlite, run_in_background: true)
Task(variant-postgres, run_in_background: true)
Task(variant-redis, run_in_background: true)
</single message>
Variant agent prompt:
You are implementing the [VARIANT-SLUG] variant in a speed-run any% exploration.
Other variants are being implemented in parallel with different approaches.
**Your working directory:** /path/to/.worktrees/speed-run-variant-<slug>
**Design context:** docs/plans/<feature>/design.md
**Your plan location:** docs/plans/<feature>/speed-run/any-percent/variant-<slug>/plan.md
**Your approach:** [APPROACH DESCRIPTION]
- [Key architectural decisions for this variant]
- [Technology choices specific to this variant]
**Your workflow:**
1. Create implementation plan for YOUR approach
- Save to plan location above
- Focus on what makes this approach unique
2. For each implementation task, use hosted LLM for first-pass code generation:
- Write a contract prompt (DATA CONTRACT + API CONTRACT + ALGORITHM + RULES)
- Call: mcp__speed-run__generate_and_write_files
- Run tests
- Fix failures with Claude Edit tool (surgical 1-4 line fixes)
- Re-test until passing
3. Follow TDD
4. Use verification before claiming done
**Code generation rules:**
- Use mcp__speed-run__generate_and_write_files for algorithmic code
- Use Claude direct ONLY for surgical fixes and multi-file coordination
- Write contract prompts with exact data models, routes, and algorithm steps
**Report when done:**
- Plan created: yes/no
- All tasks completed: yes/no
- Test results (output)
- Files changed count
- Hosted LLM calls made
- Fix cycles needed
- What makes this variant's approach unique
- Any issues encountered
Phase 4: Evaluate
Step 1: Gate check - All tests pass
Step 2: Run same scenario tests against all variants
Use scenario-testing skill. Same scenarios, different implementations.
Step 3: Fresh-eyes on survivors
Fresh-eyes review of variant-sqlite (N files)...
Fresh-eyes review of variant-postgres (N files)...
Step 4: Invoke Judge Skill
CRITICAL: Invoke speed-run:judge now.
The judge skill contains the full scoring framework with checklists. Invoking it fresh ensures the scoring format is followed exactly.
Invoke: speed-run:judge
Context to provide:
- Variants to judge: variant-sqlite, variant-postgres, variant-redis
- Worktree locations: .worktrees/speed-run-variant-<slug>/
- Test results from each variant
- Scenario test results
- Fresh-eyes findings
- Speed-run metrics: hosted LLM calls, fix cycles, generation time per variant
The judge skill will:
- Fill out the complete scoring worksheet for each variant
- Fill out the Speed-Run Metrics table
- Build the scorecard with integer scores (1-5, no half points)
- Check hard gates (Fitness Δ≥2, any score=1)
- Announce winner with rationale (including token efficiency)
Do not summarize or abbreviate the scoring. The judge skill output should be the full worksheet.
Any%-specific context: In any%, variants explore different architectural approaches, so Fitness differences are expected and valid. A Fitness gap here reflects different design trade-offs, not deviation from a shared design. Weight Craft and Spark higher when approaches are fundamentally different.
Phase 5: Completion
Winner: Use finish-branch
Losers: Cleanup
git worktree remove .worktrees/speed-run-variant-sqlite
git worktree remove .worktrees/speed-run-variant-redis
git branch -D <feature>/speed-run/variant-sqlite
git branch -D <feature>/speed-run/variant-redis
Write result.md:
# Any% Results: <feature>
## Approaches Explored
| Variant | Approach | Tests | Scenarios | Fresh-Eyes | LLM Calls | Result |
|---------|----------|-------|-----------|------------|-----------|--------|
| variant-sqlite | Embedded SQL | 18/18 | 5/5 | 0 issues | 3 | WINNER |
| variant-postgres | External DB + ORM | 20/20 | 5/5 | 1 minor | 4 | eliminated |
| variant-redis | In-memory + persist | 16/16 | 4/5 | 2 issues | 5 | eliminated |
## Winner Selection
Reason: Simplest architecture, zero external dependencies, all scenarios pass
## Token Savings
Estimated savings vs Claude direct: ~60% on code generation
Save to: docs/plans/<feature>/speed-run/any-percent/result.md
Skill Dependencies
| Dependency | Usage |
|---|---|
writing-plans |
Generate implementation plan per variant |
git-worktrees |
Create isolated worktree per variant |
parallel-agents |
Dispatch all variant agents in parallel |
scenario-testing |
Run same scenarios against all variants |
fresh-eyes |
Quality review on survivors |
judge |
speed-run:judge - scoring framework (bundled) |
finish-branch |
Handle winner, cleanup losers |
Common Mistakes
Too many variants
- Problem: Combinatorial explosion, wasted compute
- Fix: Cap at 5-6, pick primary axis only
Extensive brainstorming before exploring
- Problem: Defeats the purpose of any% (fast exploration)
- Fix: 1-2 questions max, then generate and go
Using Claude direct for all code generation
- Problem: No token savings, defeats speed-run purpose
- Fix: Variants MUST use hosted LLM for first-pass generation
Dispatching variants in separate messages
- Problem: Serial instead of parallel
- Fix: ALL Task tools in a SINGLE message
Skipping scenario tests
- Problem: Can't compare variants fairly
- Fix: Same scenarios against all variants
Forgetting cleanup
- Problem: Orphaned worktrees
- Fix: Always cleanup losers, write result.md
More from 2389-research/claude-plugins
omakase-off
This skill should be used as the entry gate for build/create/implement requests. Triggers on "build X", "create Y", "implement Z", "add feature", "try both approaches", "not sure which approach". Offers brainstorm-together or omakase (chef's choice parallel exploration) options. Detects indecision during brainstorming to offer parallel exploration.
15binary-re:static-analysis
Use when analyzing binary structure, disassembling code, or decompiling functions. Deep static analysis via radare2 (r2) and Ghidra headless - function enumeration, cross-references (xrefs), decompilation, control flow graphs. Keywords - "disassemble", "decompile", "what does this function do", "find functions", "analyze code", "r2", "ghidra", "pdg", "afl
15firebase-development:add-feature
This skill should be used when adding features to existing Firebase projects. Triggers on "add function", "create endpoint", "new tool", "add api", "new collection", "implement", "build feature". Guides TDD workflow with test-first development, security rules, and emulator verification.
15css-development:refactor
This skill should be used when refactoring existing CSS from inline styles or utility classes to semantic patterns. Triggers on "refactor CSS", "extract styles", "consolidate CSS", "convert inline", "clean up styles", "migrate to semantic". Transforms to semantic classes with dark mode and tests.
15binary-re:dynamic-analysis
Use when you need to run a binary, trace execution, or observe runtime behavior. Runtime analysis via QEMU emulation, GDB debugging, and Frida hooking - syscall tracing (strace), breakpoints, memory inspection, function interception. Keywords - "run binary", "execute", "debug", "trace syscalls", "set breakpoint", "qemu", "gdb", "frida", "strace", "watch memory
14binary-re:tool-setup
Use when reverse engineering tools are missing, not working, or need configuration. Installation guides for radare2 (r2), Ghidra, GDB, QEMU, Frida, binutils, and cross-compilation toolchains. Keywords - "install radare2", "setup ghidra", "r2 not found", "qemu missing", "tool not installed", "configure gdb", "cross-compiler
14