claude-flow-tbowman01
Version:
Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)
840 lines (609 loc) โข 22.2 kB
Markdown
# 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.