// claude-symphony Output Validation Configuration
{
  "$schema": "https://raw.githubusercontent.com/znehraks/claude-symphony/main/schemas/output_validation.schema.json",
  "validation": {
    "enabled": true,
    "description": "Per-stage output verification and quality assurance",
    "per_stage": {
      "01-brainstorm": {
        "description": "Ideas and requirements output validation",
        "required_outputs": {
          "ideas.md": {
            "exists": true,
            "min_size_bytes": 500,
            "content_checks": {
              "min_ideas": 5,
              "has_sections": [
                "Idea List",
                "Evaluation Criteria"
              ]
            }
          },
          "requirements_analysis.md": {
            "exists": true,
            "min_size_bytes": 1000,
            "content_checks": {
              "sections": [
                "Functional Requirements",
                "Non-Functional Requirements"
              ],
              "has_priorities": true
            }
          }
        },
        "validation_commands": [],
        "quality_metrics": {
          "idea_diversity": 0.7,
          "requirement_completeness": 0.8
        }
      },
      "02-research": {
        "description": "Research output validation",
        "required_outputs": {
          "tech_research.md": {
            "exists": true,
            "min_size_bytes": 2000,
            "content_checks": {
              "has_sources": true,
              "min_sources": 3,
              "has_sections": ["Hypothesis", "Key Findings", "Evidence & Sources", "Recommendation"]
            }
          },
          "feasibility_report.md": {
            "exists": true,
            "content_checks": {
              "sections": [
                "Technical Feasibility",
                "Risk Analysis",
                "Conclusion"
              ]
            }
          }
        },
        "validation_commands": [],
        "quality_metrics": {
          "source_quality": 0.8,
          "analysis_depth": 0.7
        }
      },
      "03-planning": {
        "description": "Planning output validation",
        "required_outputs": {
          "architecture.md": {
            "exists": true,
            "min_size_bytes": 2000,
            "content_checks": {
              "has_diagrams": true,
              "sections": [
                "System Architecture",
                "Component Design",
                "Data Flow"
              ]
            }
          },
          "tech_stack.md": {
            "exists": true,
            "content_checks": {
              "has_justification": true
            }
          },
          "project_plan.md": {
            "exists": true,
            "content_checks": {
              "has_timeline": true,
              "has_milestones": true
            }
          },
          "implementation.yaml": {
            "exists": true,
            "format": "yaml",
            "description": "Implementation rules for Stage 06 (generated from config/implementation.yaml.template)",
            "content_checks": {
              "required_keys": [
                "component_style",
                "styling_approach",
                "state_management",
                "naming_conventions",
                "folder_structure"
              ]
            }
          },
          "conventions.md": {
            "exists": true,
            "min_size_bytes": 1000,
            "content_checks": {
              "sections": [
                "Planning Conventions",
                "UI/UX Conventions",
                "Code Conventions"
              ]
            }
          },
          "conventions-changelog.md": {
            "exists": false,
            "required": false,
            "description": "Convention amendment log (optional)"
          }
        },
        "validation_commands": []
      },
      "04-ui-ux": {
        "description": "UI/UX design output validation",
        "required_outputs": {
          "wireframes.md": {
            "exists": true,
            "content_checks": {
              "min_screens": 3
            }
          },
          "user_flows.md": {
            "exists": true,
            "content_checks": {
              "has_flow_diagram": true
            }
          },
          "design_system.md": {
            "exists": true,
            "content_checks": {
              "sections": [
                "Colors",
                "Typography",
                "Components"
              ]
            }
          }
        },
        "optional_outputs": {
          "component_specs.json": {
            "exists": false,
            "required": false,
            "format": "json",
            "description": "Component specifications with version metadata",
            "content_checks": {
              "required_keys": ["version", "last_updated"]
            }
          },
          "design_tokens.json": {
            "exists": false,
            "required": false,
            "format": "json",
            "description": "Design tokens with version metadata",
            "content_checks": {
              "required_keys": ["version", "last_updated"]
            }
          },
          "stitch_generated/": {
            "exists": false,
            "is_directory": true,
            "description": "Stitch-generated UI files (when Stitch MCP is used)"
          },
          "design_dna.json": {
            "exists": false,
            "format": "json",
            "description": "Extracted Design DNA from moodboard (when Stitch MCP is used)"
          },
          "stitch_exports/": {
            "exists": false,
            "is_directory": true,
            "description": "Figma/HTML exports from Stitch (when Stitch MCP is used)"
          }
        },
        "validation_commands": []
      },
      "05-task-management": {
        "description": "Task management output validation",
        "required_outputs": {
          "tasks.md": {
            "exists": true,
            "content_checks": {
              "min_tasks": 10,
              "has_estimates": true,
              "has_priorities": true
            }
          },
          "sprint_plan.md": {
            "exists": true,
            "content_checks": {
              "has_sprint_goals": true
            }
          }
        },
        "validation_commands": []
      },
      "06-implementation": {
        "description": "Implementation output validation (TDD-first: build → test → E2E → lint)",
        "required_outputs": {
          "source_code/": {
            "exists": true,
            "is_directory": true
          },
          "implementation_log.md": {
            "exists": true,
            "format": "changelog"
          },
          "test_summary.md": {
            "exists": true,
            "content_checks": {
              "sections": [
                "Unit",
                "Integration",
                "Coverage"
              ]
            }
          },
          "refactoring_report.md": {
            "exists": true,
            "content_checks": {
              "sections": [
                "Convention Compliance",
                "Refactoring Points",
                "Metrics Summary"
              ]
            }
          }
        },
        "validation_commands": [
          {
            "name": "build",
            "command": "npm run build",
            "required": true,
            "description": "Level 1: Project must compile"
          },
          {
            "name": "test",
            "command": "npm run test",
            "required": true,
            "description": "Level 2: All unit and integration tests must pass"
          },
          {
            "name": "e2e",
            "command": "npm run test:e2e",
            "required": false,
            "description": "Level 3: E2E tests for critical user flows"
          },
          {
            "name": "lint",
            "command": "npm run lint",
            "required": false,
            "allow_warnings": true,
            "description": "Level 4: Static analysis"
          },
          {
            "name": "typecheck",
            "command": "npm run typecheck",
            "required": false,
            "description": "Level 4: Type checking"
          }
        ],
        "quality_metrics": {
          "test_pass_rate": 1.0,
          "test_coverage_min": 0.6,
          "lint_score": 0.9
        }
      },
      "07-qa": {
        "description": "QA & Full Testing output validation",
        "required_outputs": {
          "qa_report.md": {
            "exists": true,
            "content_checks": {
              "sections": [
                "Issues Found",
                "Issues Resolved",
                "Quality Assessment"
              ]
            }
          },
          "bug_list.md": {
            "exists": true,
            "content_checks": {
              "has_bug_list": true
            }
          },
          "test_report.md": {
            "exists": true,
            "content_checks": {
              "pass_rate_min": 100
            }
          },
          "coverage_report.md": {
            "exists": true,
            "content_checks": {
              "coverage_min": 60
            }
          }
        },
        "validation_commands": [
          {
            "name": "test",
            "command": "npm run test",
            "required": true
          },
          {
            "name": "e2e",
            "command": "npm run test:e2e",
            "required": true
          },
          {
            "name": "coverage",
            "command": "npm run test:coverage",
            "required": false,
            "threshold": {
              "lines": 60,
              "branches": 55,
              "functions": 60
            }
          }
        ],
        "quality_metrics": {
          "bug_resolution_rate": 0.9,
          "test_coverage": 0.6,
          "all_tests_pass": true
        }
      },
      "08-deployment": {
        "description": "Deployment output validation",
        "required_outputs": {
          ".github/workflows/": {
            "exists": true,
            "is_directory": true
          },
          "deployment_config/": {
            "exists": true,
            "is_directory": true
          },
          "deployment_log.md": {
            "exists": true
          }
        },
        "validation_commands": [
          {
            "name": "workflow_validate",
            "command": "gh workflow list",
            "required": false
          }
        ],
        "quality_metrics": {
          "ci_configured": true,
          "deployment_documented": true
        }
      }
    }
  },
  "validation_process": {
    "steps": [
      {
        "name": "check_required_files",
        "description": "Check required files exist",
        "required": true
      },
      {
        "name": "validate_file_content",
        "description": "Validate file content",
        "required": true
      },
      {
        "name": "run_validation_commands",
        "description": "Run validation commands",
        "required": false
      },
      {
        "name": "calculate_quality_score",
        "description": "Calculate quality score",
        "required": false
      },
      {
        "name": "generate_report",
        "description": "Generate validation report",
        "required": true
      }
    ],
    "on_failure": {
      "action": "block_transition",
      "allow_override": true,
      "require_justification": true
    }
  },
  "reporting": {
    "format": "markdown",
    "output_path": "state/validations/",
    "include": [
      "validation_summary",
      "file_checks",
      "command_results",
      "quality_scores",
      "recommendations"
    ],
    "severity_levels": {
      "error": {
        "description": "Block stage transition",
        "icon": "❌"
      },
      "warning": {
        "description": "Show warning only",
        "icon": "⚠️"
      },
      "info": {
        "description": "Informational",
        "icon": "ℹ️"
      },
      "pass": {
        "description": "Validation passed",
        "icon": "✅"
      }
    }
  },
  "auto_fix": {
    "enabled": true,
    "suggest_fixes": true,
    "auto_apply": false,
    "fixable_issues": [
      "missing_sections",
      "format_errors",
      "lint_errors"
    ]
  },
  "integration": {
    "handoff": {
      "include_validation_status": true,
      "block_if_failed": true
    },
    "checkpoint": {
      "save_validation_results": true
    },
    "memory": {
      "save_quality_trends": true
    }
  }
}