# .tas/tas-example.yaml - Reference template for tas.yaml at root
# Copy this file to root (tas.yaml) and fill in project information.
# This file ONLY contains TAS flow and logic.
# Tech stack, coding conventions, build commands belong in CLAUDE.md.

project:
  name: "My Project"
  code: "PROJ"              # Prefix for file naming: PROJ-Feature-001, PROJ-Bug-001, etc.
  type: greenfield          # greenfield | brownfield
  description: "Brief project description"

# Azure DevOps integration
ado:
  enabled: true                 # false if project doesn't use ADO
  organization: "https://dev.azure.com/torus-engineering"
  project_id: "f80dac23-9fa5-4b8e-a1db-da4d5aea7b31"

team:
  - name: "Nguyen Van A"
    role: pe
    ado_id: "nguyenvana@torus.vn"
  - name: "Tran Van B"
    role: se
    ado_id: "tranvanb@torus.vn"
  - name: "Le Van C"
    role: dse
    ado_id: "levanc@torus.vn"

# Flow configuration
workflow:
  # Gate: true = a command STOPS unless its nearest upstream artifact(s) are Approved.
  # Each command checks its own upstream inline (see that command's "Gate" step). false = no gate (solo/prototype).
  # Map: tas-sad/tas-design-uiux ← prd; tas-design-spec ← design-uiux + docs/ui/*.html; tas-feature ← prd+sad; tas-plan ← feature+sad; tas-dev ← feature-technical.
  # Status source of truth = the artifact file itself. /tas-init preset: solo=false, team=true.
  gate_enforcement: true

  # Stage 02 (UI/UX Design + Design Spec) toggle — decided at kick-off.
  # true  = product has a UI → run /tas-design-uiux then /tas-design-spec; Feature.Design Reference + FTP.UI Binding are filled.
  # false = no UI (pure API / service / batch / pipeline) → skip both design commands; Design Reference / UI Binding = N/A.
  ui_ux_stage: true

  # Phase 1: Develop (Orchestrated Agentic)
  develop:
    environment: test
    use_tdd: true
    auto_review: true
    # Autonomy mode for /tas-dev + /tas-plan.
    # manual (default) — human gates: plan approval, SAD/ADR ask, deviation prompt, Done confirm.
    # full — skip gates: auto-pick approach, write Technical file straight, auto-Done if review passes.
    # CLI flag --autonomous=true|false on /tas-dev or /tas-plan overrides this per-call.
    # Hard gates remain even in `full`: post-impl review still runs; Critical/High blocks auto-Done; ADR creation stays human-triggered.
    autonomy_mode: manual
    orchestration:
      max_parallel: 3          # max SE Agents spawned simultaneously per parallel group batch

  # Phase 2: Verify (Agentic + PE Review)
  verify:
    environment: staging

  # Phase 3: Deploy with Feature Flag (Agentic)
  deploy:
    environment: production
    feature_flag: true

  # Phase 4: Operate (Autonomous)
  operate:
    environment: production

# Brownfield-specific config
brownfield:
  existing_docs_path: "docs/"
  codebase_scan_on_init: true

# Pre-commit security hook (installed via tas-kit install --security-hook=husky|native)
# See .tas/hooks/README.md for details
#
# 3-tier scan:
#   Tier 1 (always): built-in regex scan for ~45 secret patterns — blocks
#   Tier 2 (if on PATH): gitleaks / trufflehog — only runs if installed — blocks
#   Tier 3 (opt-in, LOCAL ONLY): AI deep scan → writes docs/security-report.md;
#                                does NOT block. Use a personal Claude Code
#                                subscription (no API charges). Not for CI.
security:
  pre_commit_hook: true                    # master switch; false to disable without uninstalling
  external_scanner: auto                   # auto | gitleaks | trufflehog | none — tier 2
  tool: claude                             # claude | codex | gemini | none — tier 3 AI (report-only)
  deep_scan_on_every_commit: false         # true = opt into tier 3 AI review each local commit
  block_on: [critical, high]               # severities that block commit (tier 1 & 2 only)
  allow_bypass: true                       # print hint about SKIP_SECURITY_SCAN / --no-verify
