# Exact GPUaaS lane mapping used for parity dry runs.
# Copy to .fairway/config.toml in a disposable GPUaaS checkout, then run
# `fairway config validate` before importing copied queue data.

[fairway]
project_name = "gpuaas"
db_path = ".fairway/state.db"
queue_source = "yaml:doc/governance/Agent_Work_Queue.yaml"
main_branch = "master"
task_id_pattern = "^[A-Z][A-Z0-9-]*$"

[dashboard]
listen = "127.0.0.1:7878"
auto_open = true

[worktrees]
root = ".."
naming = "gpuas-{role}"
review_branch_naming = "review/{role}"

[sessions]
default_backend = "shell"
stale_after = "12h"

[coordinator]
max_primary_tracks = 1
max_sidecar_tracks = 1
max_review_tracks = 1
checkpoint_stale_after = "24h"

[[roles]]
name = "A-backend"
branch = "agent/A-backend"
provider = "codex"

[[roles]]
name = "B-ui"
branch = "agent/B-ui"
provider = "claude"

[[roles]]
name = "C-ops"
branch = "agent/C-ops"
provider = "codex"

[[roles]]
name = "D-arch"
branch = "agent/D-arch"
provider = "gemini"

[[roles]]
name = "E-governance"
branch = "agent/E-governance"
provider = "gemini"

[[roles]]
name = "orchestrator"
branch = "agent/orchestrator"
provider = "codex"

[[review_routes]]
match = ".github/**"
reviewer = "C-ops"

[[review_routes]]
match = "scripts/ci/**"
reviewer = "E-governance"

[[review_routes]]
match = "doc/api/**"
reviewer = "D-arch"

[[review_routes]]
match = "doc/architecture/platform-foundation/**"
reviewer = "D-arch"

[[review_routes]]
match = "doc/architecture/**"
reviewer = "D-arch"

[[review_routes]]
match = "doc/governance/**"
reviewer = "E-governance"

[[review_routes]]
match = "docs/architecture/**"
reviewer = "D-arch"

[[review_routes]]
match = "doc/design/**"
reviewer = "D-arch"

[[review_routes]]
match = "docs/design/**"
reviewer = "D-arch"

[[review_routes]]
match = "docs/governance/**"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/api/**"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/terminal-gateway/**"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/node-agent/**"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/billing-worker/**"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/provisioning-worker/**"
reviewer = "E-governance"

[[review_routes]]
match = "packages/services/auth/**"
reviewer = "E-governance"

[[review_routes]]
match = "packages/services/billing/**"
reviewer = "E-governance"

[[review_routes]]
match = "packages/services/payments/**"
reviewer = "E-governance"

[[review_routes]]
match = "packages/services/provisioning/**"
reviewer = "E-governance"

[[review_routes]]
match = "packages/services/terminal/**"
reviewer = "E-governance"

[[review_routes]]
match = "packages/services/appruntime/**"
reviewer = "E-governance"

[[review_routes]]
match = "packages/shared/authz/**"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/*security*"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/*release*"
reviewer = "E-governance"

[[review_routes]]
match = "cmd/*runtime*"
reviewer = "E-governance"

[[review_routes]]
match = "packages/*security*"
reviewer = "E-governance"

[[review_routes]]
match = "packages/*release*"
reviewer = "E-governance"

[[review_routes]]
match = "packages/*runtime*"
reviewer = "E-governance"

[[review_routes]]
match = "scripts/*security*"
reviewer = "E-governance"

[[review_routes]]
match = "scripts/*release*"
reviewer = "E-governance"

[[review_routes]]
match = "scripts/*runtime*"
reviewer = "E-governance"

[[review_routes]]
match = "scripts/ops/**"
reviewer = "C-ops"

[[review_routes]]
match = "packages/web/**"
reviewer = "B-ui"

[[review_routes]]
match = "app/**"
reviewer = "B-ui"

[states]
allowed = ["todo", "in_progress", "blocked", "done"]
terminal = ["done"]

[gates]
require_evidence_before_done = true
require_review_before_done = false
require_handoff_before_merge_ready = false
require_blocked_reason = true
allow_force_without_reason = false

[task_kinds]
allowed = ["epic", "story", "task", "bug", "spike", "watch", "architecture-map", "boundary-guard", "facade", "frontend-contract", "release-evidence"]
default = "task"

[task_priorities]
default = 1000

[[workstream_profiles]]
name = "platform-foundation"
task_kinds = ["architecture-map", "boundary-guard", "facade", "frontend-contract", "release-evidence"]
dashboard_groups = ["architecture maps", "boundary guards", "facades", "frontend contracts", "release evidence"]
review_domains = ["D-arch", "E-governance", "B-ui", "C-ops"]
route_samples = [
  "doc/api/openapi.draft.yaml",
  "cmd/api/routes.go",
  "packages/services/billing/service.go",
  "cmd/node-agent/main.go",
  "scripts/ci/contracts_validate.sh",
]

[[workstream_profiles.gates]]
name = "boundary-guard-report"
group = "boundary guards"
mode = "advisory"
task_kinds = ["boundary-guard"]
evidence_type = "guard-report"
required_evidence_count = 1
accepted_results = ["pass", "partial", "blocked"]
artifact_required = true
description = "Report-only boundary guard evidence is expected before enforcement."

[[workstream_profiles.gates]]
name = "release-risk"
group = "release evidence"
mode = "advisory"
task_kinds = ["release-evidence"]
evidence_type = "release-risk"
required_evidence_count = 1
accepted_results = ["pass", "partial", "blocked"]
owner_signoff_required = true
expires_after = "720h"
description = "Residual risk should be recorded for release-facing platform work."

[[packet_templates]]
profiles = ["platform-foundation"]
name = "architecture-map"
required_fields = ["scope", "current_owner", "target_owner", "migration_risk", "acceptance"]
optional_fields = ["source_doc"]

[[packet_templates]]
profiles = ["platform-foundation"]
name = "boundary-guard"
required_fields = ["guard_intent", "mode", "graduation_criteria"]
optional_fields = ["finding", "false_positive", "allowed_debt", "proof_command"]

[[packet_templates]]
profiles = ["platform-foundation"]
name = "vertical-slice"
required_fields = ["slice_goal", "owning_domain", "source_paths", "target_paths", "acceptance"]
optional_fields = ["page_contract", "proof_command", "residual_risk"]
