UNPKG

@cloudkinetix/bmad-enhanced

Version:

Cloud-Kinetix enhanced fork of BMAD-METHOD - Breakthrough Method of Agile AI-driven Development with robust versioning and unified validation.

230 lines (186 loc) 5.78 kB
# Task: Validate Parallel Setup > ✅ **Works with any IDE** - Pre-flight validation checklist for parallel development ## Description Comprehensive validation of system readiness for parallel story development, checking prerequisites, dependencies, and potential issues. ## Validation Steps ### 1. Git Environment Check ```bash # Check Git version (needs 2.7+ for worktrees) git_version=$(git --version | awk '{print $3}') echo "Git version: $git_version" # Verify worktree support if git worktree list >/dev/null 2>&1; then echo "✅ Git worktree support available" else echo "❌ Git worktree not supported" exit 1 fi # Check for clean working directory if [ -n "$(git status --porcelain)" ]; then echo "❌ Working directory has uncommitted changes" exit 1 else echo "✅ Working directory clean" fi # Verify on main branch current_branch=$(git branch --show-current) if [[ "$current_branch" == "main" || "$current_branch" == "develop" ]]; then echo "✅ On main branch: $current_branch" else echo "⚠️ Not on main branch: $current_branch" fi ``` ### 2. BMAD Story Validation ```bash # Check story directory exists if [ -d "docs/stories" ]; then echo "✅ Story directory found" story_count=$(find docs/stories -name "user-story-*.md" | wc -l) echo " Found $story_count stories" else echo "❌ No docs/stories directory" exit 1 fi # Validate story format for story in docs/stories/user-story-*.md; do if [ -f "$story" ]; then # Check required sections has_status=$(grep -c "^## Status:" "$story") has_story=$(grep -c "^## Story" "$story") has_ac=$(grep -c "^## Acceptance Criteria" "$story") has_tasks=$(grep -c "^## Tasks" "$story") has_dev_notes=$(grep -c "^## Dev Notes" "$story") if [[ $has_status -eq 0 || $has_story -eq 0 || $has_ac -eq 0 || $has_tasks -eq 0 || $has_dev_notes -eq 0 ]]; then echo "❌ Invalid story format: $(basename $story)" else echo "✅ Valid format: $(basename $story)" fi fi done ``` ### 3. System Resource Check ```bash # Check available disk space available_space=$(df -h . | awk 'NR==2 {print $4}') echo "Available disk space: $available_space" # Check memory (macOS/Linux compatible) if [[ "$OSTYPE" == "darwin"* ]]; then total_mem=$(sysctl -n hw.memsize | awk '{print $1/1024/1024/1024 "GB"}') echo "Total memory: $total_mem" else total_mem=$(free -h | awk '/^Mem:/ {print $2}') echo "Total memory: $total_mem" fi # Count CPU cores if [[ "$OSTYPE" == "darwin"* ]]; then cpu_cores=$(sysctl -n hw.ncpu) else cpu_cores=$(nproc) fi echo "CPU cores: $cpu_cores" echo "Recommended max agents: $((cpu_cores * 2))" ``` ### 4. Development Environment Check ```bash # Check Node.js if command -v node &> /dev/null; then node_version=$(node --version) echo "✅ Node.js installed: $node_version" else echo "❌ Node.js not found" fi # Check npm if command -v npm &> /dev/null; then npm_version=$(npm --version) echo "✅ npm installed: $npm_version" else echo "❌ npm not found" fi # Check for test framework if [ -f "package.json" ]; then has_jest=$(grep -c "jest" package.json) has_mocha=$(grep -c "mocha" package.json) has_vitest=$(grep -c "vitest" package.json) if [[ $has_jest -gt 0 || $has_mocha -gt 0 || $has_vitest -gt 0 ]]; then echo "✅ Test framework found" else echo "⚠️ No test framework detected" fi fi # Check for linting if [ -f ".eslintrc" ] || [ -f ".eslintrc.js" ] || [ -f ".eslintrc.json" ]; then echo "✅ ESLint configuration found" else echo "⚠️ No ESLint configuration" fi ``` ### 5. Claude-Specific Validation (if using Claude) ```bash # Check for Claude commands directory if [ -d ".claude/commands" ]; then echo "✅ Claude commands directory exists" else echo "⚠️ Claude commands directory missing" echo " Run: mkdir -p .claude/commands" fi # Check for Task tool availability echo "ℹ️ Claude Task tool availability can only be verified at runtime" echo " The /stories command will fail gracefully if unavailable" ``` ### 6. Parallel Configuration Check ```bash # Check for configuration file if [ -f ".claude/parallel-config.json" ]; then echo "✅ Parallel configuration found" # Validate JSON syntax if python -m json.tool .claude/parallel-config.json >/dev/null 2>&1; then echo "✅ Configuration syntax valid" else echo "❌ Invalid JSON in configuration" fi else echo "⚠️ No parallel configuration file" echo " Using defaults" fi ``` ### 7. Generate Validation Report ```bash cat > parallel-validation-report.md << EOF # Parallel Development Validation Report Generated: $(date) ## System Readiness - Git Version: $git_version - Worktree Support: ✅ - Clean Working Directory: ✅ - CPU Cores: $cpu_cores - Recommended Agents: $((cpu_cores * 2)) ## Story Validation - Stories Found: $story_count - Valid Format: X/Y - Ready for Development: X ## Environment - Node.js: $node_version - Test Framework: ✅ - Linting: ✅ ## Recommendations 1. [Specific recommendations based on findings] ## Command to Execute \`\`\`bash /stories --waves X,Y,Z --quality-gates \`\`\` EOF echo "✅ Validation complete. See parallel-validation-report.md" ``` ## Integration This validation can be run: 1. Manually before starting parallel development 2. As part of `/stories:analyze` mode 3. In CI/CD pipeline before deployment 4. As a pre-commit hook ## Success Criteria System is ready when: - All Git checks pass - Stories are properly formatted - Sufficient system resources - Development environment configured - No blocking issues identified