Agent skill
n-version-workflow
N-version programming for critical implementations - generates N independent solutions and selects the best through comparison
Install this agent skill to your Project
npx add-skill https://github.com/rysweet/amplihack/tree/main/docs/claude/skills/n-version-workflow
SKILL.md
N-Version Programming Workflow Skill
Purpose
Execute N-version programming workflow for critical implementations where multiple independent solutions should be generated and compared to select the best approach.
When to Use This Skill
USE FOR:
- Critical security features (authentication, authorization)
- Complex algorithms with multiple valid approaches
- High-risk refactoring of core components
- Architecture decisions with significant long-term impact
- When correctness is paramount over speed
AVOID FOR:
- Simple CRUD operations
- Straightforward bug fixes
- Documentation updates
- Minor UI tweaks
- Time-sensitive quick fixes
Configuration
Core Parameters
N (Number of Versions):
3- Default for standard tasks4-6- Critical features requiring high confidence2- Quick validation of approach
Selection Criteria (priority order):
- Correctness - Meets requirements and passes tests
- Security - No vulnerabilities or anti-patterns
- Simplicity - Ruthless simplicity, minimal complexity
- Philosophy Compliance - Follows project principles
- Performance - Efficiency and resource usage
Agent Diversity Profiles:
conservative- Proven patterns and safetyinnovative- Novel approaches and optimizationsminimalist- Ruthless simplicitypragmatic- Balance trade-offs for practical solutionsperformance-focused- Optimize for speed and efficiency
Execution Process
Step 1: Prepare Common Context
- Use prompt-writer agent to create crystal-clear specification
- Document all requirements explicitly
- Define success criteria measurably
- Prepare identical task specification for all N versions
- Identify evaluation metrics upfront
- CRITICAL: Capture explicit user requirements that CANNOT be optimized away
Output: Single authoritative specification document
Step 2: Generate N Independent Implementations
- Spawn N Claude subprocesses simultaneously
- Each subprocess receives IDENTICAL task specification
- NO context sharing between subprocesses (true independence)
- Each uses different agent diversity profile
- Each produces complete implementation with tests
- Each works in isolated directory (version_1/, version_2/, etc.)
Example for N=3:
- Subprocess 1: Conservative approach (proven patterns, comprehensive error handling)
- Subprocess 2: Pragmatic approach (balance simplicity and robustness)
- Subprocess 3: Minimalist approach (ruthless simplification, minimal dependencies)
Step 3: Collect and Compare Implementations
- Wait for all N implementations to complete
- Use analyzer agent to examine each implementation
- Use tester agent to run tests for each version
- Document results in comparison matrix
Comparison Matrix:
| Version | Correctness | Security | Simplicity | Philosophy | Performance | Lines of Code |
|---------|-------------|----------|------------|------------|-------------|---------------|
| v1 | PASS | PASS | 7/10 | 8/10 | 150ms | 180 |
| v2 | PASS | PASS | 9/10 | 9/10 | 180ms | 95 |
| v3 | FAIL | N/A | 10/10 | 7/10 | N/A | 65 |
Step 4: Review and Evaluate
- Use reviewer agent for comprehensive comparison
- Use security agent to evaluate security of each version
- Apply selection criteria in priority order
- Eliminate versions that fail correctness tests
- Compare remaining versions on other criteria
- Identify best parts of each implementation
Evaluation Process:
- Filter: Remove versions failing correctness tests
- Security Gate: Eliminate versions with security issues
- Philosophy Check: Score each on simplicity and compliance
- Performance Compare: Measure and compare benchmarks
- Synthesis: Identify if hybrid approach could be superior
Step 5: Select or Synthesize Solution
Decision Tree:
- Is there ONE version that passes all criteria?
- YES → Select it and document why
- NO → Continue to step 2
- Are there 2+ versions tied on top criteria?
- YES → Continue to step 3
- NO → Select highest scoring version
- Do versions have complementary strengths?
- YES → Synthesize hybrid combining best parts
- NO → Select based on weighted criteria priority
Example Synthesis:
Selected: Hybrid of v1 and v2
- Core logic from v2 (ruthless simplicity)
- Error handling from v1 (comprehensive coverage)
- Testing approach from v2 (focused, minimal)
- Documentation style from v1 (thorough)
Rationale: v2's minimalist core paired with v1's robust
error handling provides optimal balance of simplicity
and production-readiness.
Step 6: Implement Selected Solution
- Use builder agent to implement final version
- If single version selected: Use it directly
- If synthesis: Implement hybrid combining best parts
- Preserve all explicit user requirements from Step 1
- Run full test suite
- Document selection rationale in code comments
Documentation Template:
"""
N-Version Implementation Selection
Generated Versions: 3
Selection: Hybrid of v1 (conservative) and v2 (pragmatic)
Rationale:
- v1 had superior error handling and edge case coverage
- v2 had cleaner architecture and better testability
- v3 failed correctness tests (edge case handling)
This implementation combines v2's core logic with v1's
defensive programming approach for production robustness.
Selection Criteria Applied:
1. Correctness: v1=PASS, v2=PASS, v3=FAIL
2. Security: All passed
3. Simplicity: v2 ranked highest
4. Philosophy: v1 and v2 tied
5. Performance: Negligible difference
Step 7: Document Learnings
- Create analysis document:
n_version_analysis.md - Document all N implementations generated
- Explain selection rationale in detail
- Capture insights from rejected versions
- Store patterns learned in memory using
store_discovery()fromamplihack.memory.discoveries - Include comparison matrix for future reference
Trade-Offs
Cost: N times the compute resources and time Benefit: Significantly reduced risk of critical errors Best For: Features where bugs are expensive (security, data integrity)
Examples
Example 1: Authentication System
Task: Implement JWT-based authentication Configuration: N=4 (critical security feature) Profiles: conservative, security-focused, pragmatic, minimalist
Result:
- v1 (conservative): Most comprehensive but over-engineered
- v2 (security-focused): Excellent security but complex
- v3 (pragmatic): Good balance, missing edge cases
- v4 (minimalist): Too simple, security gaps
Selection: Hybrid of v2 and v3
- Security implementation from v2
- API design and simplicity from v3
Rationale: Security cannot be compromised, but v3's cleaner API design improved usability without sacrificing security.
Example 2: Data Processing Pipeline
Task: Process large CSV files efficiently Configuration: N=3 (performance-critical) Profiles: pragmatic, performance-focused, minimalist
Result:
- v1 (pragmatic): Pandas-based, familiar but slow
- v2 (performance-focused): Custom streaming, 10x faster
- v3 (minimalist): Python CSV module, simple but slow
Selection: v2 (performance-focused)
Rationale: Performance requirements justified complexity. v2's streaming approach met throughput requirements while v1 and v3 could not scale.
Philosophy Alignment
This workflow enforces:
- Reduced Risk: Multiple implementations catch errors single approach might miss
- Exploration: Different approaches reveal design trade-offs
- Evidence-Based Selection: Systematic comparison vs. gut feeling
- Learning: Rejected versions still provide valuable insights
- Parallel Execution: N implementations run simultaneously for efficiency
Integration with Default Workflow
This workflow replaces Steps 4-5 (Research/Design and Implementation) of the DEFAULT_WORKFLOW when enabled. All other steps (requirements, testing, CI/CD) remain the same.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
chemist-analyst
Analyzes events through chemistry lens using molecular structure, reaction mechanisms, thermodynamics, kinetics, and analytical techniques (spectroscopy, chromatography, mass spectrometry). Provides insights on chemical processes, material properties, reaction pathways, synthesis, and analytical methods. Use when: Chemical reactions, material analysis, synthesis planning, process optimization, environmental chemistry. Evaluates: Molecular structure, reaction mechanisms, yield, selectivity, safety, environmental impact.
learning-path-builder
Creates personalized learning paths for technologies, frameworks, or concepts. Use for user-interactive session only for onboarding new technologies, hackathon skill-building, or personal development planning. Not for use in automated development or investigation. Sequences resources (docs, tutorials, exercises) based on current skill level and learning goals. Adapts to learning style: hands-on, theory-first, project-based.
gh-work-report
Generates comprehensive GitHub activity reports across all authenticated accounts. Gathers repos, PRs, features, and themes for configurable time periods (1/5/7/30/90 days). Produces shareable markdown with tables, mermaid charts, and executive summaries. Can create a private repo with GitHub Actions automation and GitHub Pages aggregation site. Use when: "github report", "work report", "activity summary", "what did I work on", "gh-work-report", "show my github activity".
pr-review-assistant
Philosophy-aware PR reviews checking alignment with amplihack principles. Use when reviewing PRs to ensure ruthless simplicity, modular design, and zero-BS implementation. Suggests simplifications, identifies over-engineering, verifies brick module structure. Posts detailed, constructive review comments with specific file:line references.
code-smell-detector
Identifies anti-patterns specific to amplihack philosophy. Use when reviewing code for quality issues or refactoring. Detects: over-abstraction, complex inheritance, large functions (>50 lines), tight coupling, missing __all__ exports. Provides specific fixes and explanations for each smell.
biologist-analyst
Analyzes living systems and biological phenomena through biological lens using evolution, molecular biology, ecology, and systems biology frameworks. Provides insights on mechanisms, adaptations, interactions, and life processes. Use when: Biological systems, health issues, evolutionary questions, ecological problems, biotechnology. Evaluates: Function, structure, heredity, evolution, interactions, molecular mechanisms.
Didn't find tool you were looking for?