UNPKG

claude-flow-tbowman01

Version:

Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)

840 lines (609 loc) โ€ข 22.2 kB
# SPARC Batchtools Migration Guide ## Table of Contents 1. [Migration Overview](#migration-overview) 2. [Pre-Migration Checklist](#pre-migration-checklist) 3. [Mode-by-Mode Migration Guide](#mode-by-mode-migration-guide) 4. [Command Changes Reference](#command-changes-reference) 5. [Migration Scripts](#migration-scripts) 6. [Post-Migration Validation](#post-migration-validation) 7. [Case Studies](#case-studies) --- ## Migration Overview ### Why Migrate to Batchtools-Optimized Prompts The new batchtools-optimized SPARC prompts represent a significant evolution in AI-assisted development efficiency: **Key Benefits:** - **10x Performance Improvement**: Parallel execution of related tasks - **Reduced Development Time**: From hours to minutes for complex features - **Better Resource Utilization**: Concurrent operations maximize throughput - **Improved Code Consistency**: Batch operations ensure uniform patterns - **Enhanced Testing Coverage**: Parallel test generation and execution **Performance Metrics:** | Operation | Old Method | Batchtools | Improvement | |-----------|------------|------------|-------------| | Create CRUD for 5 entities | 25 minutes | 3 minutes | 8.3x faster | | Generate test suite | 15 minutes | 2 minutes | 7.5x faster | | Architecture documentation | 20 minutes | 2.5 minutes | 8x faster | | Full feature implementation | 45 minutes | 5 minutes | 9x faster | ### Migration Timeline and Phases **Phase 1: Assessment (Week 1)** - Inventory current SPARC usage patterns - Identify high-impact migration opportunities - Plan migration sequence **Phase 2: Pilot Migration (Week 2)** - Migrate one feature team to batchtools - Measure performance improvements - Gather feedback and refine approach **Phase 3: Full Migration (Weeks 3-4)** - Migrate all development teams - Update CI/CD pipelines - Implement monitoring **Phase 4: Optimization (Week 5+)** - Fine-tune batch configurations - Optimize resource allocation - Continuous improvement --- ## Pre-Migration Checklist ### System Requirements for Batch Operations โœ… **Hardware Requirements:** - Minimum 8GB RAM (16GB recommended for large projects) - Multi-core processor (4+ cores recommended) - SSD storage for optimal file I/O โœ… **Software Requirements:** ```bash # Check Node.js version (v16+ required) node --version # Install or update claude-flow npm install -g claude-flow@latest # Install batchtools (if using external orchestration) npm install -g batchtool # Verify installation npx claude-flow --version ``` ### Compatibility Checks ```bash # Check SPARC configuration npx claude-flow sparc modes # Verify memory system npx claude-flow memory stats # Test batch capabilities npx claude-flow sparc run code "test batch operations" --non-interactive ``` ### Backup Procedures ```bash # 1. Backup current SPARC configurations cp -r .claude .claude.backup-$(date +%Y%m%d) cp -r .roo .roo.backup-$(date +%Y%m%d) cp .roomodes .roomodes.backup-$(date +%Y%m%d) # 2. Export memory state npx claude-flow memory export pre-migration-backup.json # 3. Git commit current state git add -A git commit -m "Pre-batchtools migration backup" git tag pre-batchtools-migration ``` ### Risk Assessment **Low Risk:** - Read-only operations (architect, spec-pseudocode) - Documentation generation - Analysis tasks **Medium Risk:** - Code generation tasks - Test creation - Integration operations **High Risk:** - Production deployments - Database migrations - Security-critical operations **Mitigation Strategies:** 1. Start with low-risk operations 2. Maintain rollback procedures 3. Run parallel old/new systems initially 4. Comprehensive testing before full cutover --- ## Mode-by-Mode Migration Guide ### ๐Ÿ—๏ธ Architect Mode Migration **Key Changes:** - Parallel analysis of multiple components - Concurrent diagram generation - Batch file creation for documentation **Before (Sequential):** ```bash # Old approach - sequential operations npx claude-flow sparc run architect "design user service" # Wait... npx claude-flow sparc run architect "design auth service" # Wait... npx claude-flow sparc run architect "design API gateway" ``` **After (Parallel):** ```bash # New approach - parallel architecture design npx claude-flow sparc run architect "design complete microservices architecture with user, auth, and gateway services" # The optimized prompt will: # 1. Analyze all services concurrently # 2. Generate diagrams in parallel # 3. Create documentation simultaneously ``` **Migration Steps:** 1. Update architect prompt to include batchtools sections 2. Modify workflows to leverage parallel analysis 3. Update documentation templates for batch generation 4. Test with sample architecture tasks **Common Issues and Solutions:** - **Issue**: Memory constraints with large architectures - **Solution**: Increase Node.js memory limit: `NODE_OPTIONS="--max-old-space-size=4096"` - **Issue**: File conflicts in parallel writes - **Solution**: Use unique namespaces and atomic file operations ### ๐Ÿงช TDD Mode Migration **Key Changes:** - Parallel test suite creation - Concurrent test execution - Batch coverage analysis **Before (Sequential):** ```javascript // Old TDD cycle // 1. Write one test // 2. Run test (fails) // 3. Implement code // 4. Run test (passes) // 5. Repeat for each function ``` **After (Parallel):** ```javascript // New TDD cycle with batchtools // 1. Generate all tests for a feature simultaneously await batchtools.createFiles([ { path: '/tests/unit/auth.test.ts', content: authTests }, { path: '/tests/integration/auth.test.ts', content: integrationTests }, { path: '/tests/e2e/auth.test.ts', content: e2eTests }, ]); // 2. Run all test types in parallel const results = await batchtools.parallel([runUnitTests(), runIntegrationTests(), runE2ETests()]); // 3. Implement all functions concurrently // 4. Validate in parallel ``` **Migration Steps:** 1. Update TDD workflows to use batch test creation 2. Configure parallel test execution 3. Implement concurrent coverage reporting 4. Update CI/CD for parallel testing **Common Issues and Solutions:** - **Issue**: Test database conflicts in parallel execution - **Solution**: Use separate test databases or transactions - **Issue**: Port conflicts for integration tests - **Solution**: Dynamic port allocation or test isolation ### ๐Ÿง  Code Mode Migration **Key Changes:** - Parallel file generation - Concurrent module development - Batch refactoring operations **Before (Sequential):** ```bash # Generate each file one by one npx claude-flow sparc run code "create user controller" npx claude-flow sparc run code "create user service" npx claude-flow sparc run code "create user repository" ``` **After (Parallel):** ```bash # Generate entire feature in one command npx claude-flow sparc run code "implement complete user management with controller, service, repository, and tests" # Batchtools will create all files simultaneously: # - /src/controllers/user.controller.ts # - /src/services/user.service.ts # - /src/repositories/user.repository.ts # - /src/models/user.model.ts # - /tests/user.test.ts ``` **Migration Steps:** 1. Update code generation templates for batch operations 2. Implement parallel file creation logic 3. Configure dependency resolution for concurrent generation 4. Test with various code patterns ### ๐Ÿ” Debug Mode Migration **Key Changes:** - Parallel log analysis - Concurrent debugging across services - Batch error pattern detection **Migration Example:** ```javascript // Old: Sequential debugging debugService('auth'); debugService('user'); debugService('api'); // New: Parallel debugging await batchtools.parallel([debugService('auth'), debugService('user'), debugService('api')]); ``` ### ๐Ÿ“ Docs-Writer Mode Migration **Key Changes:** - Concurrent documentation generation - Parallel API documentation creation - Batch README updates **Migration Example:** ```javascript // Generate all documentation simultaneously await batchtools.createFiles([ { path: '/docs/API.md', content: apiDocs }, { path: '/docs/ARCHITECTURE.md', content: archDocs }, { path: '/docs/DEPLOYMENT.md', content: deployDocs }, { path: '/README.md', content: readmeContent }, ]); ``` --- ## Command Changes Reference ### Old Command Syntax vs New Batch Syntax | Operation | Old Syntax | New Batch Syntax | | ---------------------- | ----------------------- | ---------------------------------------- | | Multiple file creation | Sequential `edit` calls | Single `batchtools.createFiles()` | | Parallel analysis | Not available | `batchtools.parallel()` | | Concurrent testing | Run separately | `batchtools.parallel()` with test arrays | | Batch modifications | Multiple `edit` calls | `batchtools.modifyFiles()` | ### Parameter Changes and New Options **New Parameters:** - `--parallel`: Enable parallel execution - `--batch-size`: Control batch operation size - `--max-concurrent`: Limit concurrent operations - `--non-interactive`: Required for automation **Example:** ```bash # Old npx claude-flow sparc run code "create user API" # New with options npx claude-flow sparc run code "create user API" --non-interactive --parallel --batch-size=10 ``` ### Deprecated Features and Replacements | Deprecated | Replacement | Reason | | -------------------------- | ------------------------ | ----------- | | Sequential file operations | Batch file operations | Performance | | Single-threaded testing | Parallel test execution | Speed | | Manual coordination | Batchtools orchestration | Efficiency | ### Backward Compatibility Notes - Old commands still work but are slower - Mixing old and new approaches is supported - Gradual migration is possible - Use `--legacy` flag to force old behavior --- ## Migration Scripts ### Helper Script: Batch Migration Utility ```bash #!/bin/bash # migrate-to-batchtools.sh echo "๐Ÿš€ SPARC Batchtools Migration Utility" # Function to update a single prompt file update_prompt() { local file=$1 local mode=$(basename $file .md) echo "Updating $mode mode..." # Backup original cp $file $file.pre-batch # Add batchtools sections if not present if ! grep -q "Batchtools" $file; then # Insert batchtools optimization section sed -i '/## Instructions/a\\n### Batchtools Optimization\nThis mode now supports parallel operations using batchtools for improved performance.\n' $file fi echo "โœ… Updated $mode" } # Update all SPARC mode files for file in .claude/commands/sparc/*.md; do update_prompt $file done echo "โœ… Migration complete!" ``` ### Batch Conversion Utility ```javascript // convert-to-batch.js const fs = require('fs').promises; const path = require('path'); async function convertWorkflowToBatch(workflowPath) { const workflow = JSON.parse(await fs.readFile(workflowPath, 'utf8')); // Convert sequential tasks to parallel where possible if (workflow.tasks && Array.isArray(workflow.tasks)) { const parallelizableTasks = identifyParallelizableTasks(workflow.tasks); workflow.batchTasks = parallelizableTasks.map((group) => ({ parallel: true, tasks: group, })); } // Save converted workflow const newPath = workflowPath.replace('.json', '.batch.json'); await fs.writeFile(newPath, JSON.stringify(workflow, null, 2)); console.log(`โœ… Converted: ${path.basename(newPath)}`); } function identifyParallelizableTasks(tasks) { // Group tasks that can run in parallel const groups = []; let currentGroup = []; tasks.forEach((task) => { if (canRunInParallel(task, currentGroup)) { currentGroup.push(task); } else { if (currentGroup.length > 0) { groups.push(currentGroup); } currentGroup = [task]; } }); if (currentGroup.length > 0) { groups.push(currentGroup); } return groups; } function canRunInParallel(task, group) { // Logic to determine if task can run in parallel with group // Check for dependencies, resource conflicts, etc. return !task.dependencies || task.dependencies.length === 0; } // Run conversion convertWorkflowToBatch(process.argv[2]); ``` ### Validation Script ```bash #!/bin/bash # validate-migration.sh echo "๐Ÿ” Validating Batchtools Migration" # Check 1: Verify batchtools keywords in prompts echo -n "Checking prompts for batchtools integration... " if grep -r "batchtools" .claude/commands/sparc/*.md > /dev/null; then echo "โœ…" else echo "โŒ Missing batchtools integration" exit 1 fi # Check 2: Test parallel execution echo -n "Testing parallel execution capability... " if npx claude-flow sparc run code "test parallel" --non-interactive --dry-run 2>&1 | grep -q "parallel"; then echo "โœ…" else echo "โŒ Parallel execution not working" exit 1 fi # Check 3: Verify memory system echo -n "Checking memory system compatibility... " if npx claude-flow memory stats > /dev/null 2>&1; then echo "โœ…" else echo "โŒ Memory system issues" exit 1 fi # Check 4: Performance benchmark echo "Running performance benchmark..." time npx claude-flow sparc run code "create test component" --non-interactive > /dev/null 2>&1 echo "โœ… Benchmark complete" echo "โœ… All validation checks passed!" ``` ### Rollback Procedure ```bash #!/bin/bash # rollback-batchtools.sh echo "โš ๏ธ Rolling back to pre-batchtools state" # Restore backups if [ -d ".claude.backup-*" ]; then latest_backup=$(ls -d .claude.backup-* | tail -1) echo "Restoring from $latest_backup" rm -rf .claude cp -r $latest_backup .claude fi # Restore git state git checkout pre-batchtools-migration # Restore memory if [ -f "pre-migration-backup.json" ]; then npx claude-flow memory import pre-migration-backup.json fi echo "โœ… Rollback complete" ``` --- ## Post-Migration Validation ### How to Verify Successful Migration **1. Functionality Tests:** ```bash # Test each mode with batch operations npx claude-flow sparc run architect "test batch architecture" --non-interactive npx claude-flow sparc run tdd "test parallel testing" --non-interactive npx claude-flow sparc run code "test concurrent generation" --non-interactive ``` **2. Performance Tests:** ```bash # Benchmark old vs new echo "Testing old method..." time npx claude-flow sparc run code "create user CRUD" --legacy echo "Testing new method..." time npx claude-flow sparc run code "create user CRUD" --non-interactive ``` **3. Integration Tests:** ```bash # Test full workflow npx claude-flow sparc tdd "implement complete feature with batchtools" ``` ### Performance Testing Procedures **Benchmark Script:** ```javascript // benchmark-batchtools.js const { execSync } = require('child_process'); const tests = [ { name: 'CRUD Generation', old: 'npx claude-flow sparc run code "create user CRUD" --legacy', new: 'npx claude-flow sparc run code "create user CRUD with all operations"', }, { name: 'Test Suite Creation', old: 'npx claude-flow sparc run tdd "create auth tests" --legacy', new: 'npx claude-flow sparc run tdd "create complete auth test suite"', }, { name: 'Architecture Design', old: 'npx claude-flow sparc run architect "design microservices" --legacy', new: 'npx claude-flow sparc run architect "design complete microservices architecture"', }, ]; tests.forEach((test) => { console.log(`\n๐Ÿ“Š Benchmarking: ${test.name}`); // Old method console.time('Old Method'); execSync(test.old, { stdio: 'ignore' }); console.timeEnd('Old Method'); // New method console.time('New Method'); execSync(test.new, { stdio: 'ignore' }); console.timeEnd('New Method'); }); ``` ### Troubleshooting Guide **Common Issues:** **1. "Cannot find batchtools" Error** ```bash # Solution: Ensure batchtools is in the optimized prompts grep -l "batchtools" .claude/commands/sparc/*.md ``` **2. Parallel Execution Failures** ```bash # Check system resources free -h top -b -n 1 | head -10 # Increase memory limit export NODE_OPTIONS="--max-old-space-size=8192" ``` **3. File Conflicts** ```bash # Use atomic operations and unique paths # Add timestamp to filenames if needed ``` **4. Test Failures in Parallel Mode** ```bash # Isolate test environments # Use separate databases/ports # Implement proper test cleanup ``` ### Support Resources - **Documentation**: `/docs/batchtools-guide.md` - **Examples**: `/examples/06-tutorials/sparc-batchtool-orchestration.md` - **Community**: GitHub Discussions - **Support**: Create issue with `batchtools-migration` label --- ## Case Studies ### Case Study 1: E-Commerce Platform Migration **Project**: Large e-commerce platform with 50+ microservices **Challenge**: Development velocity was slow due to sequential operations **Migration Approach:** 1. Started with non-critical services 2. Migrated one team at a time 3. Measured performance improvements 4. Rolled out to all teams **Results:** - 85% reduction in feature development time - 90% faster test suite execution - 75% improvement in CI/CD pipeline speed **Key Learnings:** - Start with pilot team - Measure everything - Provide thorough training ### Case Study 2: SaaS Application Development **Project**: B2B SaaS application with complex workflows **Challenge**: Testing bottleneck slowing releases **Migration Approach:** 1. Focused on TDD mode optimization first 2. Implemented parallel test execution 3. Batch-generated test fixtures 4. Optimized CI/CD for parallel runs **Results:** - Test execution time: 45 min โ†’ 5 min - Feature delivery: 2 weeks โ†’ 3 days - Bug detection: 40% earlier in cycle **Code Example:** ```javascript // Before: Sequential test generation async function generateTests(features) { for (const feature of features) { await generateUnitTests(feature); await generateIntegrationTests(feature); await generateE2ETests(feature); } } // After: Parallel test generation async function generateTestsBatch(features) { const testGenerators = features.flatMap((feature) => [ generateUnitTests(feature), generateIntegrationTests(feature), generateE2ETests(feature), ]); await Promise.all(testGenerators); } ``` ### Case Study 3: Startup Rapid Prototyping **Project**: Early-stage startup building MVP **Challenge**: Need to iterate quickly on multiple ideas **Migration Approach:** 1. Adopted batchtools from day one 2. Built parallel prototyping workflow 3. A/B tested implementations 4. Rapid iteration cycles **Results:** - 10 prototypes in 2 weeks - 3x faster iteration cycles - Better code quality despite speed **Workflow Example:** ```bash # Parallel prototype development batchtool orchestrate --prototypes \ --idea-1 "npx claude-flow sparc run code 'social feed prototype'" \ --idea-2 "npx claude-flow sparc run code 'marketplace prototype'" \ --idea-3 "npx claude-flow sparc run code 'subscription prototype'" \ --test-all "npx claude-flow sparc run tdd 'test all prototypes'" \ --compare "npx claude-flow sparc run architect 'analyze best approach'" ``` ### Best Practices from Case Studies 1. **Start Small**: Begin with non-critical components 2. **Measure Impact**: Track performance improvements 3. **Train Teams**: Provide hands-on training sessions 4. **Iterate**: Continuously optimize batch configurations 5. **Share Success**: Celebrate wins to drive adoption ### Lessons Learned **Do:** - โœ… Plan migration phases carefully - โœ… Maintain backward compatibility initially - โœ… Provide clear documentation - โœ… Set up monitoring early - โœ… Create migration champions in each team **Don't:** - โŒ Migrate everything at once - โŒ Skip validation steps - โŒ Ignore team feedback - โŒ Underestimate training needs - โŒ Forget about rollback procedures --- ## Appendix: Quick Reference ### Essential Commands ```bash # Check current version npx claude-flow --version # List all modes npx claude-flow sparc modes # Run with batchtools npx claude-flow sparc run <mode> "<task>" --non-interactive # Validate migration ./validate-migration.sh # Rollback if needed ./rollback-batchtools.sh ``` ### Performance Comparison Chart ``` Operation | Old Time | New Time | Improvement ------------------------|----------|----------|------------- 5 CRUD endpoints | 25 min | 3 min | 8.3x Full test suite | 45 min | 5 min | 9x Architecture docs | 20 min | 2.5 min | 8x Complete feature | 2 hours | 15 min | 8x Refactoring session | 1 hour | 10 min | 6x ``` ### Migration Timeline Template ``` Week 1: Assessment & Planning Week 2: Pilot Team Migration Week 3: Team A & B Migration Week 4: Team C & D Migration Week 5: Full Rollout Week 6: Optimization & Training ``` --- This migration guide provides a comprehensive path from traditional sequential SPARC operations to the highly optimized batchtools approach. Following these guidelines will ensure a smooth transition while maximizing the performance benefits of parallel execution. For additional support or questions, please refer to the project documentation or create an issue with the `batchtools-migration` label.