# Quality Gate Configuration
# Version: 1.0.0
# Story: 2.10 - Quality Gate Manager
#
# This configuration controls the behavior of the 3-layer Quality Gate system.
# Layers execute sequentially with fail-fast behavior.

version: "1.0"

# Layer 1: Pre-commit checks (fast, local)
layer1:
  enabled: true
  failFast: true  # Stop pipeline on first failure
  checks:
    lint:
      enabled: true
      command: "npm run lint"
      failOn: "error"  # error | warning
      timeout: 60000   # 1 minute
    test:
      enabled: true
      command: "npm test"
      timeout: 300000  # 5 minutes
      coverage:
        enabled: true
        minimum: 80
    typecheck:
      enabled: true
      command: "npm run typecheck"
      timeout: 120000  # 2 minutes

# Layer 2: PR Automation (external tools)
layer2:
  enabled: true
  coderabbit:
    enabled: true
    command: "wsl bash -c 'cd ${PROJECT_ROOT} && ~/.local/bin/coderabbit --prompt-only -t uncommitted'"
    timeout: 900000  # 15 minutes
    blockOn:
      - CRITICAL
    warnOn:
      - HIGH
    documentOn:
      - MEDIUM
    ignoreOn:
      - LOW
  quinn:
    enabled: true
    autoReview: true
    agentPath: ".claude/commands/AIOS/agents/qa.md"
    severity:
      block: ["CRITICAL"]
      warn: ["HIGH", "MEDIUM"]

# Layer 3: Human Review (manual)
layer3:
  enabled: true
  requireSignoff: true
  assignmentStrategy: "auto"  # auto | manual | round-robin
  defaultReviewer: "@architect"
  checklist:
    enabled: true
    template: "strategic-review-checklist"
    minItems: 5
  signoff:
    required: true
    expiry: 86400000  # 24 hours in ms

# Report settings
reports:
  location: ".aios/qa-reports"
  format: "json"  # json | yaml | markdown
  retention: 30   # days to keep reports
  includeMetrics: true

# Status persistence
status:
  location: ".aios/qa-status.json"
  updateOnChange: true

# Verbose output settings
verbose:
  enabled: false
  showCommands: true
  showOutput: true
  showTimings: true
