UNPKG

claude-flow-multilang

Version:

Revolutionary multilingual AI orchestration framework with cultural awareness and DDD architecture

498 lines (347 loc) 11.3 kB
# Claude-Flow Migration System A comprehensive migration system for existing claude-flow projects to adopt optimized prompts and configurations. ## Overview The migration system provides tools to: - Analyze existing projects for migration readiness - Migrate projects using different strategies (full, selective, merge) - Create automatic backups for safe rollback - Validate successful migrations - Handle edge cases and conflicts gracefully ## Quick Start ```bash # Analyze your project npx claude-flow migrate analyze # Run migration with dry-run preview npx claude-flow migrate --dry-run --verbose # Migrate with selective strategy (recommended) npx claude-flow migrate --strategy selective --preserve-custom # Rollback if needed npx claude-flow migrate rollback ``` ## Architecture ### Core Components 1. **MigrationAnalyzer** - Analyzes project structure and detects conflicts 2. **MigrationRunner** - Executes migration strategies 3. **RollbackManager** - Handles backup creation and restoration 4. **MigrationValidator** - Validates successful migrations 5. **ProgressReporter** - Provides visual feedback during operations ### Migration Strategies #### Full Strategy - **Use Case**: New projects or complete overhaul - **Behavior**: Replaces entire `.claude` folder - **Risk Level**: High (with backup) - **Command**: `--strategy full` #### Selective Strategy - **Use Case**: Projects with custom commands (default) - **Behavior**: Updates core files, preserves customizations - **Risk Level**: Medium - **Command**: `--strategy selective --preserve-custom` #### Merge Strategy - **Use Case**: Complex projects with custom configurations - **Behavior**: Merges configurations, preserves custom commands - **Risk Level**: Low - **Command**: `--strategy merge` ## CLI Commands ### Analysis Commands ```bash # Basic analysis claude-flow migrate analyze # Detailed analysis with output file claude-flow migrate analyze --detailed --output analysis.json # Check specific project claude-flow migrate analyze /path/to/project ``` ### Migration Commands ```bash # Preview changes (safe) claude-flow migrate --dry-run --verbose # Full migration claude-flow migrate --strategy full # Selective migration (recommended) claude-flow migrate --strategy selective --preserve-custom # Merge migration for complex projects claude-flow migrate --strategy merge # Force migration without prompts claude-flow migrate --force # Skip post-migration validation claude-flow migrate --skip-validation ``` ### Backup & Rollback Commands ```bash # List available backups claude-flow migrate rollback --list # Rollback to latest backup claude-flow migrate rollback # Rollback to specific backup claude-flow migrate rollback --timestamp 2024-01-01T12:00:00 # Force rollback without confirmation claude-flow migrate rollback --force ``` ### Validation Commands ```bash # Validate migration claude-flow migrate validate # Detailed validation report claude-flow migrate validate --verbose # Check project status claude-flow migrate status ``` ## Configuration ### Migration Manifest The system uses a manifest file (`migration-manifest.json`) to define: - File mappings and transformations - Strategy configurations - Validation requirements - Rollback settings ```json { "version": "1.0.0", "files": { "commands": { "sparc.md": { "source": ".claude/commands/sparc.md", "target": ".claude/commands/sparc.md", "transform": "replace", "priority": 1 } } }, "strategies": { "selective": { "preserveCustom": true, "backupRequired": true, "riskLevel": "medium" } } } ``` ### Project Configuration Projects can include migration preferences in `CLAUDE.md`: ```markdown ## Migration Configuration - strategy: selective - preserveCustom: true - customCommands: ['my-command', 'special-workflow'] ``` ## API Usage ### Programmatic Migration ```typescript import { MigrationRunner, MigrationAnalyzer } from 'claude-flow/migration'; // Analyze project const analyzer = new MigrationAnalyzer(); const analysis = await analyzer.analyze('./my-project'); // Run migration const runner = new MigrationRunner({ projectPath: './my-project', strategy: 'selective', preserveCustom: true, dryRun: false, }); const result = await runner.run(); console.log(`Migration ${result.success ? 'succeeded' : 'failed'}`); ``` ### Backup Management ```typescript import { RollbackManager } from 'claude-flow/migration'; const rollback = new RollbackManager('./my-project'); // Create backup const backup = await rollback.createBackup({ type: 'pre-migration', description: 'Before optimization update', }); // List backups const backups = await rollback.listBackups(); // Rollback await rollback.rollback(backup.metadata.backupId); ``` ## Migration Scenarios ### Scenario 1: Fresh Project Setup ```bash # For new projects without existing customizations claude-flow migrate --strategy full ``` **Result**: Clean installation of all optimized prompts and configurations. ### Scenario 2: Existing Project with Custom Commands ```bash # Analyze first claude-flow migrate analyze --detailed # Selective migration preserving customizations claude-flow migrate --strategy selective --preserve-custom ``` **Result**: Core files updated, custom commands preserved. ### Scenario 3: Complex Project with Configurations ```bash # Use merge strategy for complex setups claude-flow migrate --strategy merge --preserve-custom # Validate after migration claude-flow migrate validate --verbose ``` **Result**: Configurations merged, custom content preserved. ### Scenario 4: Safe Preview Before Migration ```bash # Preview all changes claude-flow migrate --dry-run --verbose # Run actual migration if satisfied claude-flow migrate --strategy selective ``` **Result**: Risk-free preview of all changes before applying. ### Scenario 5: Batch Migration ```bash # Find and migrate multiple projects find . -name ".claude" -type d | while read dir; do project_path=$(dirname "$dir") echo "Migrating $project_path" claude-flow migrate "$project_path" --strategy selective --force done ``` **Result**: Multiple projects migrated with consistent strategy. ## Risk Management ### Automatic Backups Every migration creates automatic backups: - **Location**: `.claude-backup/` directory - **Format**: Timestamped folders with full file content - **Retention**: Configurable (default: 30 days, max 10 backups) - **Validation**: Checksums for integrity verification ### Conflict Detection The analyzer detects potential conflicts: - **Custom Commands**: Commands not in standard set - **Modified Files**: Files with custom modifications - **Configuration Conflicts**: Incompatible settings - **Permission Issues**: Read-only files or directories ### Rollback Safety Multiple rollback options: - **Automatic**: Failed migrations auto-rollback - **Manual**: User-initiated rollback to any backup - **Validation**: Checksum verification during restore - **Recovery**: Pre-rollback backups for safety ## Troubleshooting ### Common Issues #### Migration Fails with Permission Errors ```bash # Check and fix permissions chmod -R u+w .claude/ claude-flow migrate --strategy selective ``` #### Custom Commands Not Preserved ```bash # Use preserve-custom flag claude-flow migrate --strategy selective --preserve-custom ``` #### Validation Failures ```bash # Run detailed validation claude-flow migrate validate --verbose # Check for missing files or corruption ls -la .claude/commands/ ``` #### Rollback Not Working ```bash # List available backups claude-flow migrate rollback --list # Check backup integrity cat .claude-backup/*/backup-manifest.json ``` ### Debug Mode Enable detailed logging: ```bash export DEBUG=true claude-flow migrate --verbose ``` ### Log Files Migration logs are stored in: - **Development**: Console output - **Production**: `logs/migration.log` ## Advanced Usage ### Custom Migration Scripts Create custom migration scripts using the API: ```typescript import { MigrationRunner } from 'claude-flow/migration'; class CustomMigration extends MigrationRunner { async customTransform(content: string): Promise<string> { // Apply custom transformations return content.replace(/old-pattern/g, 'new-pattern'); } } ``` ### Extending Validation Add custom validation rules: ```typescript import { MigrationValidator } from 'claude-flow/migration'; class ProjectValidator extends MigrationValidator { async validateCustomRules(projectPath: string): Promise<ValidationResult> { // Custom validation logic return super.validate(projectPath); } } ``` ### Integration with CI/CD Automate migrations in CI/CD pipelines: ```yaml # .github/workflows/migrate.yml steps: - name: Analyze Migration run: claude-flow migrate analyze --output analysis.json - name: Run Migration run: claude-flow migrate --strategy selective --force - name: Validate Migration run: claude-flow migrate validate ``` ## Performance Considerations ### Optimization Tips 1. **Use Selective Strategy**: Faster than full migration 2. **Skip Validation**: Use `--skip-validation` for speed (not recommended for production) 3. **Dry Run First**: Preview changes without file I/O 4. **Batch Operations**: Group multiple small migrations ### Benchmarks Typical performance metrics: - **Analysis**: ~100ms for standard project - **Full Migration**: ~500ms for complete replacement - **Selective Migration**: ~200ms preserving customizations - **Validation**: ~150ms for standard checks - **Backup Creation**: ~100ms for typical project ## Security Considerations ### File Safety - **Checksums**: All files verified with SHA-256 - **Permissions**: Original permissions preserved - **Isolation**: Migrations run in project scope only - **Validation**: Content integrity verified ### Backup Security - **Local Storage**: Backups stored locally only - **No Network**: No external dependencies - **Encryption**: Optional backup encryption available - **Access Control**: Respects file system permissions ## Contributing ### Development Setup ```bash # Clone and setup git clone https://github.com/chatman-media/claude-flow-multilang cd claude-code-flow npm install # Run migration tests npm test src/migration/ # Build migration system npm run build:migration ``` ### Testing ```bash # Unit tests npm test src/migration/tests/ # Integration tests npm run test:integration # End-to-end tests npm run test:e2e ``` ### Adding New Features 1. **Analyzers**: Extend `MigrationAnalyzer` for new detection rules 2. **Strategies**: Add new migration strategies to `MigrationRunner` 3. **Validators**: Create custom validation rules in `MigrationValidator` 4. **Transformers**: Add file transformation logic ## License This migration system is part of claude-code-flow and follows the same license terms. ## Support - **Documentation**: Full API docs available - **Issues**: Report bugs via GitHub issues - **Community**: Join discussions in project forums - **Enterprise**: Commercial support available --- For more information, see the [main claude-code-flow documentation](../../README.md).