#
# Fairway active product backlog.
#
# This file is promoted from examples/fairway-adoption-improvements.yaml after
# the dashboard redesign queue closeout on 2026-06-07. The examples file remains
# source material for demos and adoption fixtures; this roadmap file is the
# project backlog target for `.fairway/config.toml`.
#
# Source authority:
# - Active backlog definition lives here.
# - Runtime execution state lives in `.fairway/state.db` and must be changed
#   through Fairway commands.
# - `examples/fairway-adoption-improvements.yaml` and `docs/archive/*.yaml`
#   are source material/provenance, not active queues.
# - Promotion and retirement rules are documented in
#   `docs/design/backlog-sources.md`.
#
tasks:
  - id: FW-101
    title: Add prompt-file session launch path
    kind: session-adapter
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sessions
    source_paths:
      - docs/design/session-launch.md
      - examples/session-adapters
      - internal
      - cmd
    target_paths:
      - cmd
      - internal
      - examples/session-adapters
      - docs/design/session-launch.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: product-hardening
    acceptance_checks:
      - session launch supports a prompt-file based path or documented launcher convention
      - dry-run output shows provider command, prompt file, transcript path, and session metadata
      - launcher records a session without claiming a task
      - docs explain how GPUaaS platform-foundation lanes should use the prompt-file path

  - id: FW-102
    title: Add dashboard gate-readiness drill-down
    kind: dashboard
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - docs/design/dashboard.md
      - internal
      - web
    target_paths:
      - internal
      - web
      - docs/design/dashboard.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: product-hardening
    acceptance_checks:
      - task detail shows which profile gates the task satisfies
      - task detail shows counted evidence rows and remaining missing evidence reasons
      - dashboard uses the same readiness evaluation logic as the CLI

  - id: FW-103
    title: Add SQLite busy retry for burst local writes
    kind: store-hardening
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: storage
    source_paths:
      - internal
      - docs/design/postgres-adapter.md
      - docs/design/implementation-roadmap.md
    target_paths:
      - internal
      - docs/config-reference.md
      - docs/design/implementation-roadmap.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: reliability
    acceptance_checks:
      - SQLite store writes use a small busy timeout or retry policy
      - burst evidence/review writes from scripts do not fail with SQLITE_BUSY under normal local use
      - retry behavior is documented and remains bounded

  - id: FW-104
    title: Add store-level activity filters
    kind: dashboard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - docs/design/dashboard.md
      - internal
      - web
    target_paths:
      - internal
      - web
      - docs/design/dashboard.md
    review_domains:
      - arch
      - governance
    risk_level: low
    migration_type: product-hardening
    acceptance_checks:
      - activity queries support kind, task id, profile, and time-window filters at the store/API layer
      - dashboard activity feed no longer needs to fetch a large mixed feed before filtering
      - existing unfiltered activity view remains available

  - id: FW-105
    title: Add workstream pagination or expandable groups
    kind: dashboard
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - docs/design/dashboard.md
      - internal
      - web
    target_paths:
      - internal
      - web
      - docs/design/dashboard.md
    review_domains:
      - arch
      - governance
    risk_level: low
    migration_type: product-hardening
    acceptance_checks:
      - dashboard stays scannable when a profile or kind group has more than 50 tasks
      - workstream sections can paginate, collapse, or expand without losing filter state
      - default view still favors the most actionable active tasks

  - id: FW-106
    title: Preserve repeated task metadata flags in CLI add/update
    kind: cli-hardening
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths:
      - cmd/fairway/main.go
      - docs/design/cli.md
      - docs/agent-guide.md
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - docs/design/cli.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: product-hardening
    acceptance_checks:
      - repeated metadata flags such as --acceptance preserve all supplied values
      - add and update tests cover repeated acceptance values and comma-separated metadata values
      - docs state which flags are repeatable and how repeated values are rendered in task detail

  - id: FW-107
    title: Align dashboard ready metric with CLI readiness
    kind: dashboard
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - internal/dashboard
      - cmd/fairway/main.go
      - docs/design/dashboard.md
    target_paths:
      - internal/dashboard
      - internal/dashboard/server_test.go
      - docs/design/dashboard.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: product-hardening
    acceptance_checks:
      - dashboard summary ready count uses the same dependency-aware readiness evaluator as `fairway ready`
      - dashboard distinguishes open/todo backlog count from claimable ready count
      - dashboard tests cover a blocked-by-dependency task that is todo but not ready
      - GPUaaS platform-foundation dashboard and `fairway --json ready` agree on claimable task count

  - id: FW-108
    title: Add provider-neutral tmux transcript and checkpoint bridge
    kind: session-adapter
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sessions
    source_paths:
      - docs/design/session-launch.md
      - docs/agent-guide.md
      - examples/session-adapters
      - cmd/fairway/main.go
      - internal/session
      - internal/store
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/session
      - examples/session-adapters
      - docs/design/session-launch.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: provider-neutral-session-bridge
    depends_on:
      - FW-101
    acceptance_checks:
      - tmux-backed Codex, Claude, Gemini, and shell lanes can be registered with provider, role, task id, tmux pane, transcript path, pid, worktree, and branch in one repeatable command or adapter
      - adapter captures or tails a transcript path that the dashboard and `task-detail` can surface without provider-specific APIs
      - adapter records an initial checkpoint when a task is associated and documents a cadence for fresh checkpoints on long-running lanes
      - session reconcile can mark missing tmux/PID sessions stale without changing task ownership
      - docs include GPUaaS-style examples for Claude lanes that coordinate through Fairway state rather than provider chat

  - id: FW-109
    title: Add delegated provider session watcher adapter pattern
    kind: session-adapter
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sessions
    source_paths:
      - docs/design/session-launch.md
      - docs/agent-guide.md
      - examples/session-adapters
      - cmd/fairway/main.go
      - internal/store
    target_paths:
      - examples/session-adapters
      - examples/session-adapters/provider-event.sh
      - docs/design/session-launch.md
      - docs/agent-guide.md
      - docs/config-reference.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: delegated-provider-session-watcher
    depends_on:
      - FW-108
    acceptance_checks:
      - docs define how provider-specific runtime states such as waiting on approval, waiting on input, completed, failed, and stale map to Fairway sessions, checkpoints, evidence, or handoffs
      - example adapter or documented convention covers delegated Codex thread monitoring without making Fairway core depend on Codex APIs
      - watcher records `awaiting_input` checkpoints for delegated sessions that need approval or user input
      - dashboard/task-detail/coordinator output can surface the session and latest checkpoint without provider-specific chat access
      - docs state that task ownership, terminal gates, and merge readiness remain Fairway responsibilities

  - id: FW-110
    title: Add active provider-session readiness guard
    kind: readiness-guard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sessions
    source_paths:
      - docs/design/session-launch.md
      - docs/agent-guide.md
      - examples/session-adapters/provider-event.sh
      - cmd/fairway/main.go
      - internal/store
      - internal/session
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/store
      - internal/session
      - docs/design/session-launch.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: provider-session-readiness-guard
    depends_on:
      - FW-109
    acceptance_checks:
      - readiness/coordinator checks identify active external provider sessions that do not have a `started` provider-event checkpoint for their associated task
      - guard output includes provider, external session id, role, task id, and the missing lifecycle checkpoint so the coordinator can repair state without provider-specific polling
      - stale, waiting, failed, and completed provider sessions are evaluated against the documented lifecycle checkpoint rule instead of only session heartbeat state
      - dashboard or task-detail surfaces the guard finding alongside existing session/checkpoint state
      - tests cover active session without started checkpoint, active session with started checkpoint, waiting/stale checkpoint, and completed checkpoint cases

  - id: FW-111
    title: Add stale in-progress reconciliation and active-work watchdog
    kind: readiness-guard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sessions
    source_paths:
      - docs/agent-guide.md
      - docs/design/session-launch.md
      - docs/design/coordinator-loop.md
      - cmd/fairway/main.go
      - internal/store
      - internal/dashboard
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/store
      - internal/dashboard
      - docs/agent-guide.md
      - docs/design/coordinator-loop.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: stale-in-progress-active-work-reconcile
    depends_on:
      - FW-110
    acceptance_checks:
      - "`fairway reconcile active` reports active-work mismatches across sessions, tasks, checkpoints, evidence, parent tasks, and live provider attachments"
      - coordinator/readiness output distinguishes `running session + terminal task`, `in_progress task + no running session`, `in_progress task with stale checkpoint/heartbeat`, and `external process/thread + no Fairway session` as separate findings
      - reconcile report can run in dry-run mode and prints provider, session id, task id, task status, latest evidence result, latest checkpoint, and recommended action
      - dashboard distinguishes active provider work from unattended `in_progress` queue state without implying someone is actively working
      - dashboard banner shows the count of `in_progress` tasks with no live session or stale checkpoint
      - optional fix mode can end stale sessions but does not automatically close or reopen tasks without explicit operator action
      - pass/fail/partial evidence on an `in_progress` task creates a required status-decision finding until the operator marks done, blocked, todo, or an allowed follow-up state
      - parent or backlog tasks in `in_progress` warn unless they have direct rollup evidence/checkpoint proving someone is producing a rollup artifact
      - default config remains four-state, but docs define extension options such as `stale`, `needs_followup`, `waiting_for_prereq`, or `partial` for tracks that need partial-completion semantics
      - tests cover stale running session on terminal task, unattended in-progress task, evidence-without-status-decision, active parent without rollup artifact, and clean active session cases

  - id: FW-112
    title: Add grouped subcommand help coverage
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths:
      - docs/design/cli.md
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - docs/design/cli.md
    review_domains:
      - governance
    risk_level: low
    migration_type: cli-help-usability
    acceptance_checks:
      - grouped commands accept `help`, `-h`, and `--help` without returning an unknown-subcommand error
      - "`session --help` lists `upsert`, `status`, `end`, `reconcile`, and `launch`"
      - dashboard, db, record, checkpoint, packet, watcher, tracker, and regression-pack help output lists valid subcommands or grouped command usage
      - CLI smoke tests cover representative grouped help aliases
      - docs/design/cli.md documents grouped help behavior

  - id: FW-113
    title: Add work-coverage audit for commits tasks and evidence
    kind: readiness-guard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: work-coverage-audit
    source_paths:
      - docs/design/coordinator-loop.md
      - docs/design/schema.md
      - docs/agent-guide.md
      - cmd/fairway/main.go
      - internal/store
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/store
      - docs/design/coordinator-loop.md
      - docs/config-reference.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: work-coverage-audit
    depends_on:
      - FW-111
    acceptance_checks:
      - "`fairway audit work-coverage` compares recent commits, changed files, tasks, evidence, checkpoints, reviews, and configured source/target paths."
      - Audit reports commits since a configurable base ref that do not mention or map to a Fairway task id.
      - Audit reports changed files that are not covered by active or recently completed task source_paths or target_paths.
      - Audit reports evidence artifacts that cannot be linked to a task and done tasks that have no evidence when evidence is required by config or profile.
      - Audit reports tasks marked done or merge-ready while required review domains are missing.
      - Audit supports `--since-ref`, `--since-duration`, `--task-id`, `--json`, and `--dry-run` without mutating task state.
      - Documentation explains that the audit is advisory by default and should be used at task, review, deploy, and release boundaries.

  - id: FW-114
    title: Add CI and deploy failure learning audit
    kind: readiness-guard
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: ci-learning-audit
    source_paths:
      - docs/design/coordinator-loop.md
      - docs/agent-guide.md
      - docs/governance/review-guards.md
      - cmd/fairway/main.go
      - internal/store
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/store
      - docs/design/coordinator-loop.md
      - docs/governance/review-guards.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - ops
    risk_level: medium
    migration_type: ci-deploy-learning-audit
    depends_on:
      - FW-113
    acceptance_checks:
      - Audit classifies failed CI, deploy, smoke, and UAT evidence as missed local gate, missed review gate, CI-environment-only failure, flaky runner/cache failure, or approval-gated blocker.
      - Audit identifies failed pipeline/deploy evidence with no matching CI-FIX, CD-FIX, OPS-FIX, HARNESS-FIX, UAT-BUG, or DOC-FIX task.
      - Audit can render a learning artifact template that records failure class, root cause, missed gate, expected local reproduction command, owner, and follow-up task.
      - Review guidance requires tasks that touch CI scripts, release gates, YAML/JSON, generated artifacts, or promotion wiring to record exact verification commands.
      - Tests cover deterministic script failure with no follow-up task, environment-only failure with follow-up task, and clean passed pipeline evidence.

  - id: FW-115
    title: Surface work-coverage and learning findings in dashboard
    kind: dashboard
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - docs/design/dashboard.md
      - docs/design/coordinator-loop.md
      - internal/dashboard
      - internal/store
    target_paths:
      - internal/dashboard
      - internal/dashboard/server_test.go
      - docs/design/dashboard.md
    review_domains:
      - arch
      - governance
      - ui
    risk_level: medium
    migration_type: work-coverage-dashboard
    depends_on:
      - FW-113
      - FW-114
    acceptance_checks:
      - Dashboard diagnostics shows counts for uncovered commits, uncovered changed files, orphan evidence, done-without-evidence, missing-review, and failed-CI-without-follow-up findings.
      - Task detail shows whether a task covers recent changed files through source_paths or target_paths.
      - Wall or diagnostics banner highlights high-risk coverage findings without obscuring normal ready/active/done task flow.
      - Findings link to the relevant commit, task, evidence artifact, review record, or suggested follow-up command.
      - Dashboard tests cover a clean repo, an uncovered commit, orphan evidence, and a failed CI evidence row without follow-up task.

  - id: FW-116
    title: Require backing monitor process for watcher and CI sessions
    kind: readiness-guard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: watchers
    source_paths:
      - docs/design/watchers.md
      - docs/agent-guide.md
      - docs/design/coordinator-loop.md
      - cmd/fairway/main.go
      - internal/store
      - internal/dashboard
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/store
      - internal/dashboard
      - docs/design/watchers.md
      - docs/agent-guide.md
      - docs/design/coordinator-loop.md
    review_domains:
      - arch
      - governance
      - ops
    risk_level: medium
    migration_type: watcher-lifecycle-readiness-guard
    depends_on:
      - FW-111
      - FW-114
    acceptance_checks:
      - watcher and CI monitor sessions can record a backing process kind, automation id, pid, tmux pane, external run id, or explicit manual checkpoint window
      - "`fairway reconcile active` reports monitor sessions that have no backing process/automation proof and no fresh bounded checkpoint"
      - dashboard diagnostics distinguishes real active monitor work from stale monitor bookkeeping that only left a task in progress
      - "watcher start or deploy-run monitor creation docs require proving the heartbeat/automation exists before leaving the task `in_progress`"
      - tests cover a monitor with a valid backing automation, a monitor with no backing automation, and a manually bounded checkpoint that expires

  - id: FW-117
    title: Add release-run packet and release verification guard
    kind: readiness-guard
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - docs/governance/release.md
      - docs/release-notes.md
      - CHANGELOG.md
      - .github/workflows/release.yml
      - .goreleaser.yaml
      - cmd/fairway/main.go
      - internal/store
      - internal/reconcile
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/store
      - internal/reconcile
      - docs/governance/release.md
      - docs/design/coordinator-loop.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - ops
    risk_level: medium
    migration_type: release-run-readiness-guard
    depends_on:
      - FW-113
      - FW-114
      - FW-116
    acceptance_checks:
      - release-run packet captures version, tag, source SHA, release notes, changelog state, CI status, docs status, signing/notary status, release URL, Homebrew tap commit, and verification commands
      - release-run workflow requires one Fairway task/checkpoint per release attempt and evidence for local checks, pushed main checks, tag push, release workflow result, public release state, asset access, and Homebrew fetch
      - guard reports a failure when the Homebrew cask points to a version whose GitHub release is still draft or whose asset URLs return 404
      - guard reports missing release notes or changelog updates before tag creation
      - docs include exact v0.1.2 lessons learned, including publishing the draft release before treating the Homebrew cask as usable
      - tests cover clean release-run, draft-release-with-public-cask, missing-release-notes, and failed-asset-url cases

  - id: FW-118
    title: Add monitor completion handback and next-action resume guard
    kind: readiness-guard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: watchers
    source_paths:
      - docs/design/watchers.md
      - docs/design/coordinator-loop.md
      - docs/agent-guide.md
      - cmd/fairway/main.go
      - internal/reconcile
      - internal/dashboard
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/reconcile
      - internal/dashboard
      - docs/design/watchers.md
      - docs/design/coordinator-loop.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - ops
    risk_level: medium
    migration_type: watcher-completion-handback
    depends_on:
      - FW-116
    acceptance_checks:
      - When a watcher or heartbeat closes the final monitored CI/deploy/UAT task, Fairway records an explicit handback checkpoint or next-action recommendation.
      - Watcher completion produces a reusable coordinator continuation prompt when ready work remains, including working-memory path, queue config, completed monitor summary, and "continue unless stop condition applies" instruction.
      - Provider-backed monitor integrations can send the continuation prompt to the owning coordinator/orchestrator session after all monitored items are reconciled.
      - Coordinator/readiness output distinguishes "all monitors complete, no active sessions, ready work exists" from a genuinely idle/complete state.
      - Dashboard diagnostics shows a resume-needed finding when monitors finish and the task queue has ready non-conflicting work.
      - Agent guide documents that monitor completion is not terminal unless the operator explicitly marked the whole work block complete, and that CI/deploy monitor tooling must either send a continuation prompt or record why no continuation is safe.
      - Tests cover all monitored tasks complete with ready work available, all monitored tasks complete with no ready work, and monitor completion followed by next branch push.

  - id: FW-119
    title: Add daily reports and retrospective dashboard view
    kind: dashboard
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - docs/design/dashboard.md
      - docs/design/reports.md
      - internal/dashboard
      - internal/store
      - cmd/fairway/main.go
    target_paths:
      - internal/dashboard
      - internal/dashboard/server_test.go
      - internal/store
      - cmd/fairway/main.go
      - docs/design/dashboard.md
      - docs/design/reports.md
      - docs/quickstart.md
      - docs/config-reference.md
    review_domains:
      - arch
      - governance
      - ui
    risk_level: medium
    migration_type: dashboard-reports
    depends_on:
      - FW-104
      - FW-105
      - FW-118
    acceptance_checks:
      - "`/reports` opens a polished daily report for the local current day with date picker, today/yesterday/last-seven-days shortcuts, and URL-preserved filters."
      - report summary separates delivery outcomes from monitor/deploy-run/watch bookkeeping so a high "done today" count is explainable.
      - report shows completed tasks, moving tasks, created follow-ups, blocked/resolved tasks, evidence rows, reviews, and CI/deploy/UAT result summaries before any large table.
      - lane outcome section groups work by role and domain/kind with representative task links, latest evidence links, and pagination or expandable groups for large days.
      - CI/deploy/UAT timeline shows pipeline/deploy identifiers, source SHA or branch, environment, result, elapsed wait window when available, and generated follow-up tasks.
      - "follow-up taxonomy groups `CI-FIX`, `CD-FIX`, `UAT-BUG`, `OPS-FIX`, `HARNESS-FIX`, and `DOC-FIX` tasks created during the report window."
      - review/evidence section shows newly satisfied gates, failed or partial evidence, and done tasks still missing required review domains.
      - drill-down task table is bounded, filterable, sortable, paginated, and supports include/exclude monitor/deploy-run bookkeeping.
      - report exports Markdown, JSON, and CSV for the exact selected date range and filters.
      - navigation links Wall, Board, Reports, Diagnostics, and task detail using the same dashboard shell and visual system.
      - "page avoids raw data-dump presentation: stable summary cards, small status chips, clear section rhythm, no nested cards, and no oversized unbounded tables."
      - tests cover local-day boundary behavior, monitor/deploy-run inclusion filters, role/domain grouping, follow-up taxonomy grouping, and export matching filtered browser scope.

  - id: FW-120
    title: Set up local Plane evaluation workspace
    kind: tracker
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: tracker
    source_paths:
      - docs/design/issue-tracker-integrations.md
      - docs/product.md
      - examples/fairway-adoption-improvements.yaml
    target_paths:
      - docs/design/issue-tracker-integrations.md
      - docs/operations/plane-local-evaluation.md
      - examples/tracker-adapters/plane
    review_domains:
      - arch
      - ops
      - governance
    risk_level: medium
    migration_type: tracker-plane-local-evaluation
    acceptance_checks:
      - local Plane setup is documented with exact Docker/compose command, version/source used, URL, startup verification, shutdown, reset, and data persistence notes.
      - a Fairway evaluation workspace/project is created in Plane with representative epics, tasks, follow-up tasks, labels, modules/cycles where available, comments, and links.
      - evaluation records which Plane concepts map cleanly to Fairway task id, title, notes, parent, status, priority, role, domain, kind, review domains, acceptance checks, evidence links, and follow-up taxonomy.
      - evaluation records which Plane concepts are planning-only and must not mutate Fairway execution state.
      - credentials, tokens, cookies, and local secrets are not committed; any env file names are added to ignore rules if needed.
      - setup can be repeated from a clean local machine without relying on hidden manual browser steps except initial admin account creation if Plane requires it.

  - id: FW-121
    title: Define provider-neutral external tracker adapter contract
    kind: tracker
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: tracker
    source_paths:
      - docs/design/issue-tracker-integrations.md
      - cmd/fairway/main.go
      - internal/store
    target_paths:
      - docs/design/issue-tracker-integrations.md
      - docs/design/cli.md
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/tracker
      - internal/store
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: tracker-adapter-contract
    depends_on:
      - FW-120
    acceptance_checks:
      - tracker adapter contract defines provider-neutral operations for configure, dry-run import, link, export-status/comment, reconcile, and resolve external references.
      - contract explicitly separates planning mirror operations from Fairway execution-state mutations.
      - provider mapping supports Plane, Jira, and Linear concepts without hardcoding Plane-specific fields into Fairway core.
      - tracker reconcile reports drift without mutating Fairway DB or remote tracker state unless an explicit apply command is added.
      - tests cover provider registry, unsupported provider error handling, dry-run reconcile, and link persistence.

  - id: FW-122
    title: Add Plane tracker adapter spike
    kind: tracker
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: tracker
    source_paths:
      - docs/design/issue-tracker-integrations.md
      - docs/operations/plane-local-evaluation.md
      - internal/tracker
      - cmd/fairway/main.go
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/tracker/plane
      - examples/tracker-adapters/plane
      - docs/design/issue-tracker-integrations.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - backend
      - governance
    risk_level: medium
    migration_type: tracker-plane-adapter-spike
    depends_on:
      - FW-121
    acceptance_checks:
      - Plane adapter can dry-run export a bounded Fairway task set to Plane issue payloads with field mapping visible before write.
      - Plane adapter can create or update Plane issues for a small evaluation set while storing Fairway tracker links for created external issue ids and URLs.
      - Plane adapter can export a completion/blocker/evidence summary as a Plane comment or equivalent planning-surface update without changing Fairway execution state.
      - Plane adapter can import explicitly selected Plane issues into Fairway tasks only through an operator-driven dry-run/apply flow.
      - adapter configuration and credentials come from environment or OS credential store, not committed config.
      - spike report states what should generalize to Jira/Linear and what remains Plane-specific.

  - id: FW-123
    title: Add provider usage accounting telemetry model
    kind: telemetry
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provider-usage
    source_paths:
      - docs/design/session-launch.md
      - docs/design/schema.md
      - docs/agent-guide.md
      - examples/session-adapters
    target_paths:
      - docs/design/provider-usage-accounting.md
      - docs/design/schema.md
      - docs/agent-guide.md
      - examples/session-adapters/provider-event.sh
      - cmd/fairway/main.go
      - internal/store
      - internal/dashboard
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: provider-usage-accounting
    depends_on:
      - FW-118
    acceptance_checks:
      - provider usage accounting uses provider-specific adapters that emit normalized Fairway usage events; Fairway core does not parse every provider transcript or poll provider APIs directly.
      - usage model defines provider-neutral fields for provider, external session id, task id, started token snapshot, completed token snapshot, derived delta, provider-reported total, elapsed time, and confidence/source.
      - Codex is treated as the first concrete adapter and captures cached input tokens when available so reports can show cache ratio and distinguish cached-heavy tasks from fully uncached work.
      - model supports providers that expose explicit per-run usage and providers that only expose a running total by recording start/end snapshots without requiring Fairway to call provider APIs.
      - session adapters can record usage checkpoints or evidence without storing prompts, transcripts, secrets, model inputs, or other sensitive content.
      - task detail, reports, and dashboard summaries can show token usage per task/session when data exists and show unknown when it does not; unavailable values are not reported as zero.
      - design explains how usage can later roll up by epic, role, provider, day, task kind, validation phase, and external tracker issue without making token usage a completion gate.
      - reports can identify expensive task classes and guide follow-up improvements such as scripts, runbooks, prompts, adapters, dashboards, or workflow changes.
      - implementation, if included, has schema migration/backward compatibility tests and does not break existing agent_sessions or task_evidence rows.

  - id: FW-124
    title: Add Codex provider usage adapter
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provider-usage
    source_paths:
      - docs/design/provider-usage-accounting.md
      - docs/agent-guide.md
      - examples/session-adapters/provider-event.sh
      - cmd/fairway/main.go
    target_paths:
      - examples/session-adapters/codex-usage-adapter.sh
      - docs/design/provider-usage-accounting.md
      - docs/agent-guide.md
      - cmd/fairway/main_test.go
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: codex-provider-usage-adapter
    depends_on:
      - FW-123
      - FW-125
    acceptance_checks:
      - Codex usage adapter feeds normalized Fairway usage events through the provider-neutral OTel ingestion path when available, or through `fairway record usage` / `provider-event.sh` for `codex exec --json` and manual snapshots.
      - Fairway core does not read Codex private SQLite files, auth files, transcripts, prompts, logs, or generated content.
      - adapter accepts OTel `response.completed` token counts and `codex exec --json` `turn.completed.usage` when supplied, including input tokens, cached input tokens, output tokens, reasoning tokens, total tokens, model, session/thread id, and phase.
      - adapter supports derived start/end token snapshots when only a running total is available, but the snapshot source is supplied by the provider surface or caller rather than scraped from private Codex state by Fairway core.
      - unknown or unavailable Codex fields are recorded as unknown/null, not zero.
      - docs explain the supported Codex usage ingestion paths and warn that private Codex local DB/log schemas are not stable API contracts.
      - tests cover provider-reported cached-token ingestion, derived snapshot ingestion, unknown values, and privacy rejection for prompt/token/content metadata.

  - id: FW-125
    title: Add provider-neutral OTel usage ingestion
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provider-usage
    source_paths:
      - docs/design/provider-usage-accounting.md
      - examples/session-adapters/provider-event.sh
      - cmd/fairway/main.go
      - internal/store
    target_paths:
      - examples/session-adapters/provider-otel-ingest.sh
      - docs/design/provider-usage-accounting.md
      - docs/agent-guide.md
      - cmd/fairway/main_test.go
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: provider-otel-usage-ingestion
    depends_on:
      - FW-123
    acceptance_checks:
      - OTel usage ingestion accepts provider-supported OTLP logs, metrics, or traces and emits normalized Fairway usage records through `fairway record usage` or `provider-event.sh`.
      - ingestion maps provider, Fairway task/session/correlation id, provider request/session id, model, event timestamp, input tokens, cached/cache-read tokens, cache-creation tokens, output tokens, reasoning tokens when available, total tokens, cost when available, source, and confidence.
      - Fairway task context is carried by resource attributes such as `fairway.task_id`, `fairway.session_id`, `fairway.role`, and `fairway.track` rather than provider-specific private state.
      - ingestion explicitly does not require prompt logging, tool-body logging, raw API body logging, auth-token capture, transcript capture, or generated-content capture.
      - unavailable token fields remain unknown/null and are not reported as zero.
      - docs define the provider-neutral OTel contract and explain how Codex and Claude provider mappings plug into it.
      - tests cover at least one Codex-shaped OTel usage event, one Claude-shaped OTel usage event, unknown fields, and rejection of sensitive prompt/token/content metadata.

  - id: FW-126
    title: Add Claude Code OTel usage mapping
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provider-usage
    source_paths:
      - docs/design/provider-usage-accounting.md
      - examples/session-adapters/provider-otel-ingest.sh
    target_paths:
      - examples/session-adapters/provider-otel-ingest.sh
      - docs/design/provider-usage-accounting.md
      - docs/agent-guide.md
      - cmd/fairway/main_test.go
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: claude-code-otel-usage-mapping
    depends_on:
      - FW-125
    acceptance_checks:
      - Claude Code OTel mapping captures `claude_code.token.usage`, `claude_code.cost.usage`, and API request token attributes when present.
      - mapping records input tokens, output tokens, cache-read tokens, cache-creation tokens, model, request id, cost, session id, and query source when available.
      - mapping keeps raw prompt, raw tool, and raw API body telemetry disabled for usage accounting.
      - docs include Claude Code environment variable guidance for usage-only telemetry.

  - id: FW-127
    title: Add Fairway work batch model for shared validation
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordination
    source_paths:
      - docs/agent-guide.md
      - docs/design
      - cmd/fairway/main.go
      - internal/store
      - internal/dashboard
    target_paths:
      - docs/design/work-batch-model.md
      - docs/agent-guide.md
      - cmd/fairway/main.go
      - internal/store
      - internal/dashboard
      - cmd/fairway/main_test.go
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: fairway-work-batch-model
    depends_on:
      - FW-116
      - FW-118
    acceptance_checks:
      - Fairway defines a work batch as the implementation, validation, review, and deploy-run unit that can contain multiple granular Fairway tasks sharing one branch, worktree, CI run, and evidence set.
      - CLI supports creating a batch, adding/removing tasks, recording batch evidence, linking a deploy-run or pipeline id, and showing task-to-batch evidence mapping.
      - Dashboard/reporting distinguishes granular task count from batch count so operators can see when too many small tasks are creating duplicate CI cycles.
      - Batch plan records included task ids, branch/worktree, shared validation commands, review domains, rollback/split criteria, and expected CI/deploy run.
      - Individual Fairway tasks still close independently, but may reference the same batch evidence when the evidence clearly validates each task.
      - Agent guide instructs orchestrators to batch by shared validation surface and to avoid one branch/CI run per small task unless review, rollback, ownership, or dependency risk requires isolation.
      - Reconcile/audit warns when many related tasks in the same domain are producing separate CI monitors that could have been a batch.

  - id: FW-128
    title: Add CI monitor utility handback adapter
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: watchers
    source_paths:
      - docs/design/watchers.md
      - docs/agent-guide.md
      - docs/design/work-batch-model.md
      - examples/session-adapters
      - cmd/fairway/main.go
      - internal/reconcile
    target_paths:
      - examples/session-adapters/ci-monitor.sh
      - docs/design/watchers.md
      - docs/agent-guide.md
      - docs/design/work-batch-model.md
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/reconcile
    review_domains:
      - arch
      - governance
      - ops
      - backend
    risk_level: medium
    migration_type: ci-monitor-utility-handback
    depends_on:
      - FW-116
      - FW-118
      - FW-127
    acceptance_checks:
      - CI/deploy/UAT monitor polling can run as a utility process without keeping a provider agent conversation active.
      - Utility records monitor session proof with monitor kind, automation id or external run id, poll command, source SHA, task id, and expected completion window.
      - Utility records heartbeat/checkpoint updates while waiting and closes the monitor session when the external run finishes.
      - Utility attaches pass/fail/timeout evidence and creates or recommends `CI-FIX`, `CD-FIX`, `UAT-BUG`, `OPS-FIX`, `HARNESS-FIX`, or `DOC-FIX` follow-up tasks for actionable failures.
      - Utility emits a reusable coordinator continuation prompt or resume-needed finding after the final monitored run completes and ready work remains.
      - "Agent docs state the operating rule: agents do not poll CI; watcher utilities poll CI and emit Fairway handbacks; agents act on handbacks."
      - Work batch docs explain that batching related tasks plus utility monitoring is the preferred path for reducing CI churn and provider-token spend.
      - Tests cover pass, fail, timeout/stale, ready-work handback, no-ready-work completion, and missing monitor backing proof.

  - id: FW-129
    title: Add tool-first utility adapter contract
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: utilities
    source_paths:
      - docs/agent-guide.md
      - docs/design/watchers.md
      - docs/design/cli.md
      - examples/session-adapters
      - cmd/fairway/main.go
      - internal/store
      - internal/reconcile
      - internal/dashboard
    target_paths:
      - docs/agent-guide.md
      - docs/design/watchers.md
      - docs/design/cli.md
      - examples/session-adapters/utility-event.sh
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/store
      - internal/reconcile
      - internal/dashboard
    review_domains:
      - arch
      - governance
      - ops
      - backend
    risk_level: medium
    migration_type: tool-first-utility-adapter-contract
    depends_on:
      - FW-116
      - FW-118
      - FW-128
    acceptance_checks:
      - Fairway defines a provider-neutral utility adapter contract for deterministic, repetitive, or pollable work that should not consume provider-agent tokens.
      - Utility events can record task id, batch id, role, utility name, command, external run id, started/heartbeat/completed/failed/timeout/stale state, evidence artifacts, and recommended next action.
      - CLI or adapter example supports emitting utility handbacks into existing session, checkpoint, evidence, and reconcile surfaces without creating provider-specific dependencies.
      - Dashboard and reconcile output distinguish utility work from active agent/provider work and show when a human or agent decision is required.
      - "Docs define the operating rule: use tools/scripts for deterministic or pollable work, reports/classifiers for repetitive summarization, agents for judgment, and high-context agents for architecture/release/risk."
      - Examples cover at least CI monitoring, codegen drift check, release asset check, and registry/image freshness check as utility-shaped workflows.
      - Tests cover utility pass, fail, timeout/stale, next-action handback, evidence attachment, and no active provider session required.

  - id: FW-130
    title: Add Fairway orchestration controller loop
    kind: epic
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: orchestration
    source_paths:
      - docs/design/coordinator-loop.md
      - docs/agent-guide.md
      - docs/design/watchers.md
      - docs/design/work-batch-model.md
      - cmd/fairway/main.go
      - internal/reconcile
      - internal/dashboard
    target_paths:
      - docs/design/coordinator-loop.md
      - docs/agent-guide.md
      - docs/design/cli.md
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/reconcile
      - internal/dashboard
    review_domains:
      - arch
      - governance
      - ops
      - backend
    risk_level: high
    migration_type: fairway-orchestration-controller-loop
    depends_on:
      - FW-118
      - FW-127
      - FW-128
      - FW-129
    acceptance_checks:
      - Fairway defines an orchestration controller that reads tasks, sessions, watchers, batches, reviews, monitor handbacks, worktrees, and checkpoints.
      - Controller emits a deterministic next-action plan in dry-run mode without mutating task state.
      - Plan classifies current state as active, waiting, blocked, stale, complete, ready, review-gated, approval-gated, or utility-gated.
      - Controller can recommend or start configured utility monitors for deterministic/pollable work when policy allows.
      - Controller recommends batching when related ready tasks share domain, validation commands, review path, branch/worktree, or expected CI/deploy-run.
      - Controller emits provider continuation prompts only when judgment, implementation, review, or human decision is required.
      - Controller enforces stop conditions before destructive, production-impacting, credential, approval-gated, review-gated, or unsafe-to-infer actions.
      - Dashboard shows the current orchestration recommendation and why the lane is active, waiting, paused, or idle.
      - Tests cover CI-complete-ready-work, all-work-complete, blocked-by-review, blocked-by-approval, stale-session-reconcile, batch-recommended, utility-monitor-start, and dry-run-no-mutation paths.

  - id: FW-131
    title: Add lane closeout guard for branch and worktree lifecycle
    kind: workflow-guard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: workflow
    source_paths:
      - docs/agent-guide.md
      - docs/design/work-batch-model.md
      - docs/design/coordinator-loop.md
      - cmd/fairway/main.go
      - internal/git
      - internal/reconcile
      - internal/store
      - internal/dashboard
    target_paths:
      - docs/agent-guide.md
      - docs/design/cli.md
      - docs/design/work-batch-model.md
      - docs/design/coordinator-loop.md
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - internal/git
      - internal/reconcile
      - internal/store
      - internal/dashboard
    review_domains:
      - arch
      - governance
      - ops
      - backend
    risk_level: high
    migration_type: lane-branch-worktree-closeout
    depends_on:
      - FW-111
      - FW-113
      - FW-127
    acceptance_checks:
      - Fairway defines `task done != lane done` as an enforceable workflow invariant in docs and CLI output.
      - Closeout dry-run reports task status, evidence, required reviews, commit association, CI/deploy/UAT evidence, session/watchers, branch merge state, remote branch state, and worktree cleanliness for a role lane and task or batch.
      - Closeout distinguishes safe-to-delete merged branches from branches that must be preserved because of pending review, pending CI, blocked dependency, release preservation, follow-up batch, or explicit operator reason.
      - Closeout can run in advisory mode before a lane claims the next implementation task and emits a finding when the previous lane task is done but branch/worktree/session cleanup is incomplete.
      - Optional apply mode deletes only verified merged remote branches and refuses destructive cleanup unless the task or batch is merge-ready, merged into the configured main branch, and cleanly reconciled.
      - Coordinator/preflight output includes lane closeout findings and blocks or warns before dispatching new implementation work on a lane with unresolved branch/worktree cleanup debt.
      - Dashboard diagnostics or lane detail surfaces closeout debt, including stale done-task branches, dirty worktrees, and preserved-branch reasons.
      - Tests cover clean closeout, review-gated closeout, CI-pending closeout, preserved branch with reason, dirty worktree, unmerged branch, safe merged remote deletion dry-run, and refusal to delete unmerged branches.

  - id: FW-132
    title: Refresh public positioning and product boundary docs
    kind: docs
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: product
    source_paths:
      - README.md
      - docs/product.md
      - docs/design/product-boundaries.md
      - docs/release-notes.md
      - docs/agent-guide.md
    target_paths:
      - README.md
      - docs/product.md
      - docs/design/product-boundaries.md
      - docs/release-notes.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: product-positioning
    depends_on:
      - FW-131
    acceptance_checks:
      - README positions Fairway as a coordination control plane for multi-agent engineering work, with traffic-control/lane language as the original primitive rather than the whole product.
      - Product docs define explicit non-goals for auto-claim, auto-approve, auto-merge, auto-push, destructive cleanup, transcript storage, provider auth storage, CI execution, workflow-engine replacement, and cost gating.
      - Provider usage accounting is documented as an advisory planning signal, not a task completion gate.
      - Release notes and agent guide point to the durable product boundary rules.

  - id: FW-133
    title: Define backlog source authority and promotion rules
    kind: docs
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: roadmap
    source_paths:
      - docs/roadmap/fairway-product-backlog.yaml
      - examples/fairway-adoption-improvements.yaml
      - docs/archive
      - docs/design/backlog-sources.md
      - docs/agent-guide.md
    target_paths:
      - docs/design/backlog-sources.md
      - docs/agent-guide.md
      - docs/archive/README.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
    risk_level: low
    migration_type: backlog-source-authority
    depends_on:
      - FW-131
    acceptance_checks:
      - Docs identify the active backlog file, example/source-material files, archived queues, and Fairway DB runtime state.
      - Promotion rules explain how a task moves from examples/archive into the active backlog and DB.
      - Archive rules explain when old queue files are retained for provenance and when they must not be treated as active.
      - Agent guide tells provider sessions to maintain local untracked memory files under tmp-ux for long-running tracks.

  - id: FW-134
    title: Move project-specific task taxonomy into workstream profiles
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: profiles
    source_paths:
      - docs/governance/commits.md
      - docs/design/workstream-profiles.md
      - docs/workstream-profile-guide.md
      - docs/design/product-boundaries.md
    target_paths:
      - docs/governance/commits.md
      - docs/design/workstream-profiles.md
      - docs/workstream-profile-guide.md
      - docs/design/product-boundaries.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: profile-taxonomy-boundary
    depends_on:
      - FW-132
    acceptance_checks:
      - Docs clarify that prefixes such as CI-FIX, CD-FIX, UAT-BUG, OPS-FIX, HARNESS-FIX, and DOC-FIX are project/profile conventions, not Fairway core grammar.
      - Workstream profile docs show how a project can define or document task taxonomy without changing core code.
      - Governance docs avoid implying Fairway semantically owns CI, UAT, or deploy task prefixes.

  - id: FW-135
    title: Complete GPUaaS operator dashboard walkthrough signoff
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: adoption
    source_paths:
      - docs/assessment/dashboard-v2-walkthrough.md
      - docs/assessment/dashboard-redesign-closeout.md
      - docs/design/dashboard.md
      - README.md
    target_paths:
      - docs/assessment/dashboard-v2-walkthrough.md
      - docs/assessment/dashboard-redesign-closeout.md
      - docs/release-notes.md
    review_domains:
      - arch
      - governance
      - ops
    risk_level: medium
    migration_type: adoption-signoff
    depends_on:
      - FW-102
      - FW-105
    acceptance_checks:
      - GPUaaS operator walkthrough is completed against the current wall, board, diagnostics, reports, and task-detail flows.
      - Signoff records which personas were covered and which workflows passed, failed, or need follow-up.
      - Any operator-identified gaps are recorded as Fairway tasks rather than hidden notes.
      - Dashboard redesign closeout distinguishes dogfood completion from external/adopter signoff.

  - id: FW-136
    title: Add Fairway public docs cleanup pass
    kind: docs
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: docs-portal
    source_paths:
      - README.md
      - docs
      - docusaurus
    target_paths:
      - README.md
      - docs
      - docusaurus
    review_domains:
      - arch
      - governance
    risk_level: low
    migration_type: public-docs-cleanup
    depends_on:
      - FW-132
      - FW-133
      - FW-134
    acceptance_checks:
      - Public docs navigation highlights quickstart, product boundaries, backlog sources, dashboard, agent guide, and release notes.
      - Internal-only historical notes remain archived or omitted from public navigation.
      - README, product docs, Docusaurus docs, and release notes use consistent positioning language.
      - Docs portal build or local docs validation passes.

  - id: FW-137
    title: Reconcile historical review debt
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: governance
    source_paths:
      - .fairway/state.db
      - docs/assessment
      - docs/governance/review-guards.md
      - docs/design/coordinator-loop.md
    target_paths:
      - docs/assessment
      - docs/governance/review-guards.md
    review_domains:
      - arch
      - governance
    risk_level: medium
    migration_type: review-debt-reconciliation
    depends_on:
      - FW-134
    acceptance_checks:
      - Coordinator plan review-gated done tasks are captured in a review-debt assessment with missing domains and recommended resolution.
      - The sweep does not fabricate approvals; each item is either backed by recorded review evidence, explicitly waived, or left pending with a concrete owner/action.
      - Fairway state records evidence for the sweep and any review records or waivers that are applied.
      - Remaining review-gated tasks are intentionally listed as follow-up debt rather than hidden coordinator-plan noise.

  - id: FW-138
    title: Remeasure dashboard performance blockers and reconcile FWRD state
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - docs/assessment/dashboard-performance-budget.md
      - docs/assessment/dashboard-redesign-closeout.md
      - internal/dashboard
    target_paths:
      - docs/assessment/dashboard-performance-budget.md
      - docs/assessment/dashboard-redesign-closeout.md
      - docs/assessment
    review_domains:
      - arch
      - governance
      - ops
    risk_level: medium
    migration_type: dashboard-performance-reconciliation
    depends_on:
      - FW-134
    acceptance_checks:
      - Current dashboard performance posture is remeasured or explicitly reconciled against the existing FWRD-161/FWRD-162 benchmark evidence.
      - FWRD-129 and FWRD-151 remain blocked only if their original acceptance is intentionally historical/deferred; otherwise state and docs are updated consistently.
      - Any unresolved performance or RSS gap is recorded as a concrete follow-up instead of silently treated as passed.
      - The dashboard closeout docs explain which blocked FWRD items are historical, accepted exceptions, or still actionable.

  - id: FW-139
    title: Add remote push intent and reviewer merge-lane guard
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: workflow-closeout
    source_paths:
      - docs/agent-guide.md
      - docs/governance/commits.md
      - docs/design/work-batch-model.md
      - docs/design/review-lanes.md
      - docs/design/coordinator-loop.md
      - cmd/fairway/main.go
      - internal/reconcile
      - internal/git
    target_paths:
      - docs/agent-guide.md
      - docs/governance/commits.md
      - docs/design/work-batch-model.md
      - docs/design/review-lanes.md
      - docs/design/coordinator-loop.md
      - cmd/fairway/main.go
      - internal/reconcile
      - internal/git
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: high
    migration_type: remote-push-intent-guard
    depends_on:
      - FW-131
      - FW-137
    acceptance_checks:
      - Fairway documents that provider/thread branches are local scratch branches by default and remote push requires explicit intent.
      - Supported push intents include main-validation, integration, review, release, backup, and exception, with exception requiring a recorded reason.
      - Workflow closeout, coordinator plan, or workflow check reports pushed remote branches without recorded intent as closeout debt.
      - Reviewer/merge lane guidance explains how a reviewer can verify worker branches, merge locally into the configured main branch, and push one integrated batch for CI when the orchestrator is not doing it.
      - Tests cover scratch branch with no remote push, approved main-validation push, review branch push, exception with reason, and remote branch without push intent reported as a blocker or warning.

  - id: FW-140
    title: Run v0.1.4 release checklist
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - docs/release-notes.md
      - docs/governance/release.md
      - .goreleaser.yaml
      - website
    target_paths:
      - docs/release-notes.md
      - docs/assessment
      - .github/workflows
    review_domains:
      - arch
      - governance
      - ops
    risk_level: high
    migration_type: release-run
    depends_on:
      - FW-136
      - FW-139
    acceptance_checks:
      - Release-run packet or equivalent release evidence records version v0.1.4, source commit, intended tag, release notes, CI/docs/signing/notary/Homebrew checks, and owner.
      - Release checklist validation commands are run and recorded, including Go tests, Go vet, Docusaurus build, goreleaser check when available, workflow/deploy guard, and release verify dry-run or documented blocker.
      - No new feature work is added during the release-run; failures create scoped follow-up tasks.
      - Release decision is recorded as pass, blocked, or waived with residual risk.

  - id: FW-141
    title: Add first-class task tags for cross-cutting work grouping
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: task-metadata
    source_paths:
      - docs/design/workstream-profiles.md
      - docs/design/cli.md
      - docs/design/dashboard.md
      - docs/design/reports.md
      - cmd/fairway/main.go
      - internal/store
      - internal/dashboard
    target_paths:
      - docs/design/workstream-profiles.md
      - docs/design/cli.md
      - docs/design/dashboard.md
      - docs/design/reports.md
      - cmd/fairway/main.go
      - internal/store
      - internal/dashboard
    review_domains:
      - arch
      - governance
      - frontend
    risk_level: medium
    migration_type: task-tags
    depends_on:
      - FW-133
      - FW-134
    acceptance_checks:
      - Task definitions support first-class tags as generic strings or key:value pairs without replacing profile, kind, owning-domain, risk, or review-domain metadata.
      - YAML import/export preserves tag order and supports repeated tags.
      - CLI add, spawn, update, and task-detail support repeatable tag metadata and render tags consistently.
      - Store and dashboard filters can query tasks by one or more tags.
      - Reports can group or filter by tags for cross-cutting programs such as production-readiness, security-review, docs-portal, mfa, uat-hardening, pssm-closeout, fairway-process, environment:staging, and environment:cloudflare.
      - Workstream profiles may define recommended tag groups or display groups, but tags remain generic product metadata.
      - Tests cover YAML import/export, CLI repeated tags, store filtering, dashboard/report filtering, and backward compatibility for tasks without tags.

  - id: FW-142
    title: Clean up pending-state and historical blockers
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: process
    source_paths:
      - internal/coordinator
      - docs/assessment
      - docs/design/coordinator-loop.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - internal/coordinator
      - docs/assessment
      - docs/design/coordinator-loop.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
    risk_level: medium
    migration_type: pending-state-cleanup
    depends_on:
      - FW-141
    acceptance_checks:
      - Coordinator plan ignores stale awaiting_input checkpoints superseded by later done checkpoints.
      - Duplicate dashboard signoff blockers are consolidated under FW-135 without fabricated operator approval.
      - Historical performance blockers are marked superseded or deferred without claiming original acceptance passed.
      - Historical review debt closeout strategy is documented without fabricated approvals.
      - Active reconciliation remains clean and coordinator plan noise is reduced.

  - id: FW-143
    title: Define reusable Fairway rule-pack model
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rule-packs
    source_paths:
      - docs/design/rule-packs.md
      - docs/design/workstream-profiles.md
      - docs/config-reference.md
      - docs/product.md
      - docs/agent-guide.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - docs/design/rule-packs.md
      - docs/design/workstream-profiles.md
      - docs/config-reference.md
      - docs/product.md
      - docs/agent-guide.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - backend
    risk_level: high
    migration_type: rule-pack-source-model
    depends_on:
      - FW-130
      - FW-141
    acceptance_checks:
      - Design doc defines Fairway rule packs as reusable operating knowledge separate from Fairway core and project-specific task queues.
      - Model explains relationship between rule packs, workstream profiles, tasks, evidence, reviews, and coordinator recommendations.
      - Rule metadata shape covers applicability triggers, required evidence, recommended commands, review domains, risk floor, and stop conditions.
      - Configuration sketch supports file and external sources with advisory, blocking, and disabled modes.
      - Design explains how CodeGuard can be consumed as a security rule source without replacing project-specific GPUaaS rules.
      - Follow-up implementation tasks are identified for rule-source loading, rule matching, task-detail/dashboard surfacing, merge-ready checks, and packet generation.

  - id: FW-144
    title: Add rule source config model
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rule-packs
    source_paths:
      - docs/design/rule-packs.md
      - docs/config-reference.md
      - internal/config
      - cmd/fairway
    target_paths:
      - docs/design/rule-packs.md
      - docs/config-reference.md
      - internal/config
      - cmd/fairway
    review_domains:
      - arch
      - governance
      - backend
    risk_level: high
    migration_type: rule-source-config-model
    depends_on:
      - FW-143
    acceptance_checks:
      - Config supports `[[rule_sources]]` with name, source, optional immutable pin/checksum metadata, and mode.
      - Supported modes include advisory, blocking, and disabled.
      - Config validation catches duplicate names, unknown modes, empty sources, and malformed source schemes.
      - Initial source validation supports local `path:` and `file:` sources only; network fetch remains disabled.
      - Remote source declarations are represented only as future/pinned metadata and cannot be used as blocking authority without immutable commit SHA and checksum support.
      - Documentation explains that external guidance such as CodeGuard must be converted or vendored into Fairway-native rule-pack format before loading.

  - id: FW-145
    title: Add rule pack loader and validator
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rule-packs
    source_paths:
      - docs/design/rule-packs.md
      - internal/rules
      - cmd/fairway
    target_paths:
      - internal/rules
      - cmd/fairway
      - docs/design/rule-packs.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: high
    migration_type: rule-pack-loader
    depends_on:
      - FW-144
    acceptance_checks:
      - Loader reads local rule-pack directories with Markdown files containing YAML front matter.
      - Validator checks rules against the pack-owned `schemas/rule.schema.yaml` rather than a divergent Fairway-core schema.
      - Validator checks required rule fields, duplicate ids, status values, top-level risk floor, evidence names, review domains, applicability metadata, and invalid nested `risk_floor` placement.
      - Per-rule `version` is rejected; source or repository pinning versions the pack as a unit.
      - Rule groups resolve as source name plus `rules/` subdirectory, and validation reports available groups plus unresolved profile references.
      - Review domains referenced by packs are checked against project-defined review domains and reported as warnings when unknown.
      - CLI includes `fairway rules validate <dir>` or equivalent validation command for local packs.
      - CLI includes `fairway rules evidence-types` or equivalent output listing evidence types from loaded packs, configured gates, and recorded evidence.
      - Blocking rules that require evidence types with no known gate, command, or recorded evidence pattern produce validation findings.
      - External GitHub sources are represented in config but remain fetch-disabled until safe fetch/cache policy is implemented.
      - CLI command or config validation output reports loaded rule counts, group counts, evidence type counts, and validation findings.

  - id: FW-146
    title: Match rule packs to tasks by paths tags kind and risk
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rule-packs
    source_paths:
      - internal/rules
      - internal/store
      - cmd/fairway
    target_paths:
      - internal/rules
      - internal/store
      - cmd/fairway
      - docs/design/rule-packs.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: high
    migration_type: rule-task-matching
    depends_on:
      - FW-145
      - FW-141
    acceptance_checks:
      - Rule matcher evaluates task source paths, target paths, tags, kind, profile, risk level, and review domains.
      - Populated applicability axes within one rule are combined with AND semantics; multiple values within a single axis are OR.
      - Rules match independently across a pack, and output is ordered by risk floor descending then rule id.
      - "`risk_floor` is treated as an applicability floor for task risk and does not raise or mutate the task risk level."
      - Project config `rule_groups` binds rule groups to workstream profiles; pack-local profiles are examples unless imported.
      - "`applies_when.profiles` narrows an already-bound rule and does not bind the source by itself."
      - Match output distinguishes selected, non-applicable, and disabled rules.
      - Non-applicable rule rationale is available in human and JSON output.
      - CLI can show applicable rules for a task in human and JSON output.
      - Tests cover path glob matches, tag matches, task kind, profile binding, risk-floor behavior, disabled sources, multi-axis AND behavior, and no-match tasks.

  - id: FW-147
    title: Surface applicable rules in task detail dashboard and reports
    kind: task
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - internal/dashboard
      - docs/design/dashboard.md
      - docs/design/reports.md
      - docs/design/rule-packs.md
    target_paths:
      - internal/dashboard
      - docs/design/dashboard.md
      - docs/design/reports.md
      - docs/design/rule-packs.md
    review_domains:
      - arch
      - governance
      - frontend
      - backend
    risk_level: high
    migration_type: rule-dashboard-surfacing
    depends_on:
      - FW-146
    acceptance_checks:
      - Task detail shows applicable rules, mode, required evidence, review domains, and stop conditions.
      - Board or reports surface missing rule evidence without crowding the main task table.
      - Dashboard output distinguishes advisory and blocking rule gaps.
      - Tests cover task detail rendering and dashboard/report rule-gap summaries.

  - id: FW-148
    title: Add rule evidence checks to merge-ready and workflow check
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: merge-ready
    source_paths:
      - internal/rules
      - internal/reconcile
      - cmd/fairway
      - docs/design/rule-packs.md
    target_paths:
      - internal/rules
      - internal/reconcile
      - cmd/fairway
      - docs/design/rule-packs.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: high
    migration_type: rule-evidence-merge-ready
    depends_on:
      - FW-146
    acceptance_checks:
      - Blocking rule sources can require matching evidence before merge-ready passes.
      - Advisory rule gaps appear as warnings and do not block.
      - Workflow check reports missing rule evidence with rule id, evidence type, mode, and task id.
      - Tests cover blocking, advisory, disabled, satisfied, and missing evidence cases.

  - id: FW-149
    title: Add selected rule packet template integration
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: packets
    source_paths:
      - internal/rules
      - cmd/fairway
      - docs/design/rule-packs.md
      - docs/design/cli.md
    target_paths:
      - internal/rules
      - cmd/fairway
      - docs/design/rule-packs.md
      - docs/design/cli.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: rule-packet-template-integration
    depends_on:
      - FW-146
    acceptance_checks:
      - Packet command can render selected applicable rules for a task.
      - Packet output includes selected rules, non-applicable rationale fields, required evidence, recommended commands, review domains, and residual risk fields.
      - Rule packets can be recorded as evidence but do not approve reviews or close tasks.
      - Tests cover human and JSON packet output for selected rules.

  - id: FW-150
    title: Add provider notification router and handoff delivery states
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator
    source_paths:
      - docs/design/coordinator-loop.md
      - docs/design/session-launch.md
      - docs/design/watchers.md
      - docs/agent-guide.md
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - examples/session-adapters
    target_paths:
      - docs/design/coordinator-loop.md
      - docs/design/session-launch.md
      - docs/design/watchers.md
      - docs/agent-guide.md
      - docs/config-reference.md
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - examples/session-adapters
    review_domains:
      - arch
      - governance
      - backend
      - ops
      - security
    risk_level: high
    migration_type: provider-notification-orchestrator
    depends_on:
      - FW-109
      - FW-118
      - FW-130
    acceptance_checks:
      - Fairway distinguishes handoff recorded, notification sent, reviewer acknowledged, review recorded, and notification failed states.
      - Provider or review-domain registry maps domains such as architecture, security, governance, backend, frontend, and ops to configured provider targets without hardcoding project-specific thread ids.
      - Coordinator plan reports review-ready work that has Fairway handoff but no delivered provider/thread notification.
      - First implementation can send provider-neutral notification intents through an adapter boundary while preserving Fairway as the durable source of truth.
      - Notification delivery never grants review approval, task completion, merge, push, deploy, or release authority by itself.
      - Stale notification/watchdog output identifies task id, target domain, provider target, last handoff, last notification attempt, and recommended next action.
      - Docs explain when to use Codex app thread steering versus tmux/CLI provider sessions, including the distinction between Fairway handoff and actual thread notification.

  - id: FW-151
    title: Execute historical review-debt sweep cleanup
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator
    source_paths:
      - internal/coordinator
      - docs/assessment/fairway-review-debt-sweep-2026-06-07.md
      - docs/assessment/fairway-review-debt-execution-2026-06-10.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - internal/coordinator
      - docs/assessment/fairway-review-debt-execution-2026-06-10.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: review-debt-execution
    depends_on:
      - FW-137
      - FW-142
    acceptance_checks:
      - Coordinator plan does not report historical review-debt for terminal tasks whose required review domains are already approved.
      - Historical review-debt remains sourced from missing required review domains, not stale review checkpoints alone.
      - Sweep assessment records before/after debt counts and the remaining real debt inventory.
      - No historical approvals are fabricated; remaining debt is left pending for real review or explicit governance waiver.
      - Tests cover both terminal tasks with missing review domains and terminal tasks with approved review domains plus stale review checkpoints.

  - id: FW-152
    title: Add status-filtered task listing with dependency visibility
    kind: cli-hardening
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths:
      - cmd/fairway
      - internal/store
      - docs/design/cli.md
      - docs/agent-guide.md
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - internal/store
      - docs/design/cli.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: task-list-status-filter
    acceptance_checks:
      - CLI can list tasks by status without direct SQLite access, for example todo, blocked, in_progress, done, and review states.
      - Human output includes task id, title, role, kind, status, owner or claimant, and dependency summary.
      - JSON output exposes the same fields for scripts and orchestrator handoff prompts.
      - Status-filtered listing distinguishes todo-but-not-ready tasks from claimable ready tasks.
      - Tests cover status filters, combined status filters, no-match output, and tasks with missing or blocked dependencies.

  - id: FW-153
    title: Explain empty ready queues with blocker summaries
    kind: cli-hardening
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: readiness
    source_paths:
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - docs/design/cli.md
      - docs/design/coordinator-loop.md
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - internal/coordinator
      - internal/store
      - docs/design/cli.md
      - docs/design/coordinator-loop.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: ready-empty-explanation
    acceptance_checks:
      - When `fairway ready` returns no claimable tasks but todo tasks remain, CLI explains why ready is empty.
      - Output groups non-ready todo work by dependency-blocked, review-gated, approval-gated, profile-gated, session-gated, and unknown categories.
      - Output highlights top blocking dependency task ids and suggested next inspection command.
      - JSON ready output includes claimable count, non-ready todo count, blocker categories, and blocker task ids.
      - Coordinator plan uses the same readiness explanation instead of requiring operators to inspect the database directly.

  - id: FW-154
    title: Respect configured local artifact paths in clean-worktree gates
    kind: workflow-guard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: merge-ready
    source_paths:
      - cmd/fairway
      - internal/git
      - internal/reconcile
      - docs/config-reference.md
      - docs/design/cli.md
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - internal/git
      - internal/reconcile
      - docs/config-reference.md
      - docs/design/cli.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: artifact-cleanliness-policy
    acceptance_checks:
      - Merge-ready and workflow closeout can treat configured local evidence artifact directories as allowed untracked operational artifacts.
      - Default behavior remains conservative for arbitrary untracked source files.
      - Config documents the difference between tracked durable evidence, local untracked evidence, and ignored scratch output.
      - CLI output names ignored artifact paths separately from true dirty-worktree findings.
      - Tests cover clean source with untracked allowed artifacts, dirty source files, ignored scratch paths, and artifact paths referenced by Fairway evidence.

  - id: FW-155
    title: Harden rule source globstar matching and validation
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rules
    source_paths:
      - internal/rules
      - docs/design/rule-packs.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - internal/rules
      - internal/rules/rules_test.go
      - docs/design/rule-packs.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: medium
    migration_type: rule-pack-globstar-hardening
    depends_on:
      - FW-146
    acceptance_checks:
      - Rule source path matching either supports mid-pattern `**` globs such as `packages/**/gen/**` or validator rejects them with a clear error.
      - Platform rule-pack patterns that currently rely on mid-pattern globstar are covered by tests against representative paths.
      - Validator output identifies unsupported glob syntax before authors assume a dead pattern is active.
      - Rule-pack docs define the supported glob grammar and examples.

  - id: FW-156
    title: Degrade missing advisory rule sources to findings
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rules
    source_paths:
      - internal/rules
      - internal/config
      - cmd/fairway
      - docs/design/rule-packs.md
      - docs/config-reference.md
    target_paths:
      - internal/rules
      - internal/rules/rules_test.go
      - cmd/fairway/main_test.go
      - docs/design/rule-packs.md
      - docs/config-reference.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: advisory-rule-source-load
    depends_on:
      - FW-144
    acceptance_checks:
      - Missing or unreadable advisory-mode rule sources become error-severity findings without preventing other valid sources from loading.
      - Missing blocking/enforce-mode rule sources still fail closed unless explicitly configured otherwise.
      - CLI output and JSON output identify the source name, path, mode, and load finding.
      - Tests cover one missing advisory source plus two valid local sources, and one missing blocking source.

  - id: FW-157
    title: Add rule-pack validation CI templates
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rule-pack-ci
    source_paths:
      - docs/design/rule-packs.md
      - docs/release-notes.md
      - examples
      - scripts
    target_paths:
      - docs/design/rule-packs.md
      - docs/release-notes.md
      - examples
      - scripts
    review_domains:
      - arch
      - governance
      - ops
    risk_level: low
    migration_type: rule-pack-ci-validation
    depends_on:
      - FW-144
    acceptance_checks:
      - Fairway documents a minimal CI command for rule-pack repos to run `fairway rules validate`.
      - Example CI snippets or scripts cover `fairway-rules-platform` and project-specific packs without requiring remote fetch support.
      - Validation examples show expected warning behavior when run under a project with a different review-domain vocabulary.
      - Release notes or docs identify rule-pack CI validation as required before treating a pack as reusable.

  - id: FW-158
    title: Filter notification gaps by acknowledgement and terminal task state
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator
    source_paths:
      - internal/store
      - internal/coordinator
      - cmd/fairway
      - docs/design/coordinator-loop.md
    target_paths:
      - internal/store
      - internal/store/store_test.go
      - internal/coordinator
      - internal/coordinator/plan_test.go
      - docs/design/coordinator-loop.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: high
    migration_type: notification-gap-noise-reduction
    depends_on:
      - FW-150
    acceptance_checks:
      - Notification-gap queries exclude acknowledged handoffs that no longer need delivery.
      - Notification-gap queries exclude terminal tasks unless the task has an explicit pending review or unresolved notification requirement.
      - Coordinator plan does not flood upgraded projects with historical handoffs on done tasks.
      - Tests cover unacknowledged active handoff, acknowledged active handoff, terminal done task, and terminal task with unresolved review routing.

  - id: FW-159
    title: Add stale sent-notification escalation
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator
    source_paths:
      - internal/store
      - internal/coordinator
      - docs/design/coordinator-loop.md
      - docs/config-reference.md
    target_paths:
      - internal/store
      - internal/store/store_test.go
      - internal/coordinator
      - internal/coordinator/plan_test.go
      - docs/design/coordinator-loop.md
      - docs/config-reference.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: notification-ack-timeout
    depends_on:
      - FW-150
    acceptance_checks:
      - A notification in `sent` state does not suppress coordinator action forever when no acknowledgement or review arrives within the configured window.
      - Coordinator plan distinguishes never-sent, sent-awaiting-ack, stale-sent, acknowledged, and review-recorded states.
      - Config documents the acknowledgement timeout and default behavior.
      - Tests cover fresh sent notification, stale sent notification, acknowledged notification, and review-recorded notification.

  - id: FW-160
    title: Make provider and utility adapters parse sessions fail-closed
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: session-adapters
    source_paths:
      - examples/session-adapters/provider-event.sh
      - examples/session-adapters/utility-event.sh
      - cmd/fairway
      - docs/design/session-launch.md
      - docs/agent-guide.md
    target_paths:
      - examples/session-adapters/provider-event.sh
      - examples/session-adapters/utility-event.sh
      - cmd/fairway/main_test.go
      - docs/design/session-launch.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - security
    risk_level: high
    migration_type: adapter-fail-closed-session-parse
    depends_on:
      - FW-109
      - FW-150
    acceptance_checks:
      - Provider and utility event adapters read session state from structured JSON output instead of column-position parsing.
      - If session-state parsing fails, adapter refuses the event rather than treating missing fields as permission to proceed.
      - Existing session/task mismatch and terminal-session guards remain enforced.
      - Tests or smoke fixtures cover malformed session output, missing session, mismatched task, ended session, and valid event.

  - id: FW-161
    title: Reconcile rule match status terminology
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rules
    source_paths:
      - docs/design/rule-packs.md
      - docs/roadmap/fairway-product-backlog.yaml
      - cmd/fairway
      - internal/rules
    target_paths:
      - docs/design/rule-packs.md
      - docs/roadmap/fairway-product-backlog.yaml
      - cmd/fairway
      - internal/rules
    review_domains:
      - arch
      - governance
      - backend
    risk_level: low
    migration_type: rule-status-terminology
    depends_on:
      - FW-146
    acceptance_checks:
      - Rule matching docs and backlog acceptance use the implemented selected, non-applicable, and disabled statuses.
      - Historical FW-146 acceptance drift is documented without fabricating a re-review.
      - CLI help, design docs, and tests agree on the final status vocabulary.

  - id: FW-162
    title: Add project rule-source adoption checklist
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: rule-pack-adoption
    source_paths:
      - docs/design/rule-packs.md
      - docs/config-reference.md
      - docs/agent-guide.md
      - examples
    target_paths:
      - docs/design/rule-packs.md
      - docs/config-reference.md
      - docs/agent-guide.md
      - examples
    review_domains:
      - arch
      - governance
      - ops
    risk_level: low
    migration_type: project-rule-source-adoption
    depends_on:
      - FW-144
      - FW-156
    acceptance_checks:
      - Docs define the difference between example `[[rule_sources]]` and live project adoption in `.fairway/*.toml`.
      - Adoption checklist covers local path existence, mode selection, review-domain vocabulary, validation command, CI validation, and first advisory rollout.
      - Example configs avoid hard references to absent optional packs unless the resulting missing-source behavior is documented and validated.
      - GPUaaS adoption can reference the checklist without assuming remote fetch support.

  - id: FW-163
    title: Add review completion handback to coordinator plan
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator
    source_paths:
      - internal/store
      - internal/coordinator
      - cmd/fairway
      - docs/design/coordinator-loop.md
      - docs/design/review-lanes.md
      - docs/agent-guide.md
    target_paths:
      - internal/store
      - internal/coordinator
      - cmd/fairway
      - docs/design/coordinator-loop.md
      - docs/design/review-lanes.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: review-completion-handback
    depends_on:
      - FW-150
    acceptance_checks:
      - Recording a review re-evaluates the affected task's required review domains and latest verdicts without relying on provider chat context.
      - Coordinator plan surfaces a review-complete handback action when all required review domains are approved and `merge-ready` passes or is expected to be the next action.
      - The handback includes task id, required domains, approved domains, latest verdicts, merge-ready status, and recommended next action.
      - Tasks with unresolved changes-requested verdicts, missing required domains, or failed merge-ready gates do not produce a false review-complete handback.
      - Dashboard or task detail exposes the review-complete/merge-ready handback state so an orchestrator does not need to poll reviewer chats.
      - Tests cover no reviews, partial approvals, changes requested then approved, all domains approved, and merge-ready blocked by a non-review gate.

  - id: FW-164
    title: Suppress stale review-complete handbacks for closed tasks
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator
    source_paths:
      - internal/coordinator
      - internal/store
      - cmd/fairway
      - docs/design/coordinator-loop.md
      - docs/design/review-lanes.md
    target_paths:
      - internal/coordinator
      - internal/store
      - cmd/fairway
      - docs/design/coordinator-loop.md
      - docs/design/review-lanes.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: review-completion-handback-noise
    depends_on:
      - FW-163
    acceptance_checks:
      - Coordinator plan does not surface `review-complete` actions for tasks that are already closed, pushed, or previously processed by the coordinator.
      - Historical done tasks with complete reviews remain visible through reports/audit views without creating next-action noise.
      - Recently completed review handbacks remain visible until the coordinator records the merge/push/closeout decision or equivalent acknowledgement.
      - Tests cover fresh review-complete action, already-pushed closed task suppression, historical done task suppression, and acknowledged handback suppression.
      - Docs explain the difference between review debt, fresh review-complete handback, and historical completed-task audit state.

  - id: FW-165
    title: Normalize Homebrew version comparison in release verifier
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - cmd/fairway
      - docs/governance/release.md
      - docs/assessment/fairway-v0.1.5-release-run.md
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - docs/governance/release.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: low
    migration_type: release-verify-homebrew-version-normalization
    acceptance_checks:
      - "`fairway release verify --version v0.1.5 --homebrew-version 0.1.5` passes when all other release checks pass."
      - "`fairway release verify` still fails when the Homebrew cask version points at a different semantic version."
      - Docs explain that Git tags include the `v` prefix while Homebrew cask versions normally omit it.
      - Regression tests cover exact tag match, prefix-normalized match, and real mismatch.

  - id: FW-166
    title: Update release and docs workflows for GitHub Node runtime deprecation
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - .github/workflows
      - docs/governance/release.md
      - docs/assessment/fairway-v0.1.5-release-run.md
    target_paths:
      - .github/workflows
      - docs/governance/release.md
    review_domains:
      - governance
      - ops
    risk_level: low
    migration_type: github-actions-node-runtime-deprecation
    acceptance_checks:
      - Release, CI, and Docs Portal workflows no longer emit GitHub Actions Node.js 20 deprecation warnings.
      - Updated workflow posture is documented with the relevant GitHub Actions runtime setting or action version change.
      - Release workflow still passes `goreleaser check` and a dry-run or documented safe validation path before the next tag.
      - Docs Portal workflow still builds and deploys successfully after the runtime posture change.

  - id: FW-167
    title: Add user-facing release highlights to GitHub release process
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - .goreleaser.yaml
      - docs/governance/release.md
      - docs/release-notes.md
      - CHANGELOG.md
    target_paths:
      - .goreleaser.yaml
      - docs/governance/release.md
      - docs/release-notes.md
      - CHANGELOG.md
    review_domains:
      - arch
      - governance
      - ops
    risk_level: low
    migration_type: release-notes-highlights
    acceptance_checks:
      - GitHub Releases for v0.1.6 and later include a short highlights section before the raw commit/changelog list.
      - Highlights are written for readers who do not follow the repository and summarize the release in no more than three bullets.
      - Release runbook documents where highlights come from and who approves them before tagging.
      - Automated or documented release process preserves detailed changelog content while adding the user-facing summary.

  - id: FW-168
    title: Add consumer-repo agent breadcrumb during init
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: init
    source_paths:
      - cmd/fairway
      - docs/agent-guide.md
      - docs/design/cli.md
      - README.md
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - docs/agent-guide.md
      - docs/design/cli.md
      - README.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: low
    migration_type: agent-cold-start-discovery
    acceptance_checks:
      - "`fairway init` in a fresh consumer repo writes `.fairway/AGENTS.md` with the condensed Fairway operating contract."
      - "The generated agent contract states the execution source of truth, start-of-session ritual, role resolution order, session registration expectation, and where to find the full guide."
      - "`fairway init` prints a ready-to-paste root `AGENTS.md` / `CLAUDE.md` block pointing agents at `.fairway/AGENTS.md` and the versioned Fairway guide."
      - "Re-running `fairway init` does not clobber an edited `.fairway/AGENTS.md`; it reports that the file already exists and how to refresh it explicitly."
      - "Tests cover fresh init, existing edited contract preservation, and generated output text."

  - id: FW-169
    title: Embed agent guide in Fairway CLI
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: docs
    source_paths:
      - cmd/fairway
      - docs/agent-guide.md
      - docs/design/cli.md
      - README.md
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - docs/agent-guide.md
      - docs/design/cli.md
      - README.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: low
    migration_type: embedded-agent-operating-contract
    acceptance_checks:
      - "`fairway agent-guide` prints the agent guide embedded in the built binary without requiring network access or a Fairway source checkout."
      - "Embedded guide content is version-matched to the released binary and sourced from `docs/agent-guide.md` at build time."
      - "`fairway agent-guide --path` or an equivalent documented option prints the source/version path or writes the guide to a requested file."
      - "`fairway help` and `fairway init` output reference `fairway agent-guide` as the offline fallback for agents in consumer repos."
      - "Tests cover command output and failure behavior for invalid guide output options."

  - id: FW-174
    title: Add structured command help and clean help exits
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths:
      - cmd/fairway
      - docs/design/cli.md
      - README.md
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - docs/design/cli.md
      - README.md
    review_domains:
      - arch
      - governance
      - backend
    risk_level: low
    migration_type: cli-help-discoverability
    acceptance_checks:
      - "`fairway help` groups commands by workflow area with one-line descriptions instead of printing a single pipe-delimited command list."
      - "`fairway <command> --help` exits with status 0 and usage text, without an `error:` prefix or treating `--help` as a positional argument."
      - "High-use groups include queue/task state, evidence/review, sessions, worktrees, coordinator, rules, reports, dashboard, release, and configuration."
      - "Help text stays concise enough for humans and agents to scan, with longer examples deferred to `fairway agent-guide` or docs."
      - "Regression tests cover top-level help, at least one file-taking command help path, and an unknown command error path."

  - id: FW-175
    title: Update Codex usage adapters for current token telemetry
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provider-adapters
    source_paths:
      - examples/session-adapters/codex-usage-adapter.sh
      - examples/session-adapters/provider-otel-ingest.sh
      - docs/design/provider-usage-accounting.md
      - docs/agent-guide.md
      - cmd/fairway/main_test.go
    target_paths:
      - examples/session-adapters/codex-usage-adapter.sh
      - examples/session-adapters/provider-otel-ingest.sh
      - docs/design/provider-usage-accounting.md
      - docs/agent-guide.md
      - cmd/fairway/main_test.go
    review_domains:
      - arch
      - governance
      - backend
    risk_level: low
    migration_type: codex-token-telemetry-compatibility
    acceptance_checks:
      - "Codex `exec --json` usage ingestion maps current `reasoning_output_tokens` into Fairway `reasoning_tokens` attribution."
      - "Provider-neutral OTel ingestion recognizes current Codex reasoning-output token field names and token-type labels."
      - "Docs state the supported Codex token telemetry fields and preserve the privacy boundary: no prompt, transcript, tool body, auth token, or generated-content storage."
      - "Focused adapter tests cover Codex `turn.completed.usage` with `reasoning_output_tokens`."
      - "`go test ./...`, `go vet ./...`, `git diff --check`, and `go run ./cmd/fairway config validate` pass before closeout."

  - id: FW-176
    title: Add review completion notification and coordinator resume guard
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator-notifications
    source_paths:
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - internal/dashboard
      - docs/agent-guide.md
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
    target_paths:
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - internal/dashboard
      - docs/agent-guide.md
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
      - docs/design/product-boundaries.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: review-completion-resume-guard
    acceptance_checks:
      - "When all required review domains for a task are approved, Fairway emits or surfaces a review-complete next-action notification for the configured coordinator/control target."
      - "`coordinator plan` reports a bounded `review_complete_next_action` item containing task id, commit, approved domains, missing domains if any, and suggested merge-ready/closeout command."
      - "Provider/session capability checks distinguish direct thread steering from Fairway-only handoff recording, because Codex app thread tools may be available in one project/session and absent in another."
      - "Docs require providers to verify `send_message_to_thread`/`read_thread` availability before claiming a thread was steered; otherwise they must record a Fairway handoff/notification and route through the control/orchestrator track."
      - "Dashboard or task detail clearly distinguishes `review pending`, `changes requested`, and `review complete; waiting for merge/push/CI` states."
      - "Notification records distinguish at least `handoff_recorded`, `notification_delivered`, and `thread_steered` or equivalent states so operators can see whether a reviewer/control thread was actually contacted."
      - "The signal is not repeated after an acknowledged/delivered coordinator notification unless the task commit or required review set changes."
      - "Tests cover partial review, changes requested, all-approved review, amended commit/reset, and already-acknowledged review-complete notification paths."
      - "Docs explain that review completion notification is a resume signal only; it does not approve merge, push, deploy, or task completion."

  - id: FW-177
    title: Enforce review notification delivery before review-wait state
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator-notifications
    source_paths:
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - internal/dashboard
      - docs/agent-guide.md
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
    target_paths:
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - internal/dashboard
      - docs/agent-guide.md
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
      - docs/design/product-boundaries.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: review-notification-delivery-enforcement
    acceptance_checks:
      - "Coordinator plan distinguishes `handoff_recorded`, `notification_delivered`, `notification_failed`, `review_acknowledged`, and `review_recorded` for review-gated tasks."
      - "A review-gated task with a Fairway handoff but failed or missing reviewer notification is surfaced as notification-blocked, not silently treated as normal review wait."
      - "Dashboard and task detail show `handoff recorded; notification failed` distinctly from `reviewer notified` and `review pending`."
      - "`workflow check` or `workflow closeout` reports failed reviewer notification state while required reviews are missing."
      - "Providers cannot claim a reviewer thread was steered unless a delivered notification or thread-steered record exists."
      - "Docs state that Fairway handoff is durable queue state, not proof that a reviewer/control thread was contacted."
      - "Optional CLI retry path such as `fairway notify reviews <task-id>` or equivalent can re-attempt configured reviewer notifications."
      - "Tests cover handoff-only, notification-failed, delivered notification, acknowledged notification, and review-recorded paths."

  - id: FW-178
    title: Add Cloudflare Access read-only dashboard sharing model
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-security
    source_paths:
      - internal/dashboard
      - cmd/fairway
      - docs/design/dashboard.md
      - docs/design/product-boundaries.md
      - docs/config-reference.md
      - docs/agent-guide.md
      - README.md
    target_paths:
      - internal/dashboard
      - cmd/fairway
      - docs/design/dashboard.md
      - docs/design/dashboard-sharing.md
      - docs/design/product-boundaries.md
      - docs/config-reference.md
      - docs/agent-guide.md
      - README.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
      - security
    risk_level: medium
    migration_type: dashboard-shared-access-hardening
    acceptance_checks:
      - "Fairway defines a generic shared/read-only dashboard mode suitable for identity-aware proxy exposure."
      - "Shared mode disables or blocks mutating dashboard/API actions by default; write actions require explicit future opt-in and authorization."
      - "Docs describe Cloudflare Tunnel plus Cloudflare Access One-Time PIN as a reference deployment, with `fairway.core42.dev` only as an example user/project hostname."
      - "Docs clearly separate Fairway product capability from user/project-owned deployment config such as domain, Cloudflare account, Access policy, and allowed users/domains."
      - "Reference config supports binding the origin to localhost, setting read-only mode, and declaring a trusted proxy mode such as Cloudflare Access."
      - "Docs state that identity headers are only trusted when the origin is reachable exclusively through the trusted proxy/tunnel, and recommend Access JWT verification before trusting headers beyond local/dev usage."
      - "Dashboard sharing docs include named-email and email-domain allowlist examples, audit/logging expectations, teardown steps, and a warning not to expose the dashboard directly to the public internet."
      - "Tests or documented smoke checks cover shared/read-only mode blocking mutation paths while preserving normal read-only dashboard pages."

  - id: FW-179
    title: Define review-wait notification model
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator-notifications
    source_paths:
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
      - docs/design/dashboard.md
      - docs/agent-guide.md
    target_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
      - docs/design/dashboard.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: review-wait-notification-model
    acceptance_checks:
      - "A review-wait model is documented as a projection from existing tasks, handoffs, reviews, notifications, provider targets, and review routes without introducing a parallel wait store."
      - "The model defines pending, stale, notification_failed, resolved, and cancelled review-wait states and maps existing reviewstate notification statuses into those states."
      - "The staleness clock has one canonical source derived from notification acknowledgement timeout, with defined fallback origins for handoff-only waits."
      - "Wake prompts are generated from fixed templates at send time; no untrusted stored prompt text becomes a provider message."
      - "Read-only dashboard sharing is explicitly outside wake/send authority; wake delivery belongs to coordinator/watcher/provider-adapter surfaces."
      - "Static routability validation is required before providers enter ambiguous review waits."
      - "Deferred slices for CLI/read model, dashboard/SSE, and watcher delivery are identified as product backlog tasks."

  - id: FW-180
    title: Add review-wait read model and CLI projection
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator-notifications
    source_paths:
      - cmd/fairway
      - internal/reviewstate
      - internal/coordinator
      - internal/store
      - docs/design/review-wait-notification-model.md
      - docs/design/coordinator-loop.md
      - docs/design/cli.md
    target_paths:
      - cmd/fairway
      - internal/reviewstate
      - internal/coordinator
      - internal/store
      - docs/design/review-wait-notification-model.md
      - docs/design/coordinator-loop.md
      - docs/design/cli.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: review-wait-read-model
    acceptance_checks:
      - "`fairway review-waits list --blocking --task <task-id> --stale` exposes deterministic review-wait rows projected from existing state."
      - "Projection covers pending, stale, notification_failed, resolved, and cancelled without adding a second wait store or wait table."
      - "Routable missing notification is pending with action deliver_notification; missing delivery proof is pending with action record_delivery_proof; unroutable missing notification is notification_failed with action mapping_required."
      - "`fairway route review` and `coordinator preflight` report required review domains with no routable reviewer role or provider target before ambiguous review wait."
      - "Coordinator plan surfaces the same review-wait rows or equivalent action payloads used by the CLI."
      - "Focused tests cover projection, CLI JSON/human output, static routability validation, stale clock origin, and the no-second-store invariant."

  - id: FW-181
    title: Clarify DB and YAML queue visibility for reviewers
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: backlog-source-authority
    source_paths:
      - docs/design/backlog-sources.md
      - docs/agent-guide.md
      - docs/governance/review-guards.md
    target_paths:
      - docs/design/backlog-sources.md
      - docs/agent-guide.md
      - docs/governance/review-guards.md
    review_domains:
      - arch
      - governance
      - ops
    risk_level: low
    migration_type: backlog-visibility-docs
    acceptance_checks:
      - "Docs explain that Fairway DB/runtime state is authoritative for task status, evidence, reviews, sessions, handoffs, notifications, and batches."
      - "Reviewer guidance requires `fairway task-detail`, `list`, `ready`, `reconcile active --dry-run`, or `db export` before treating a YAML text-search miss as a blocker."
      - "YAML misses are actionable only for real config/import/export drift or missing portable review artifacts."
      - "Agent and review guard docs prevent blocking an implementation solely because a DB-visible task is absent from a configured YAML queue search."

  - id: FW-182
    title: Show review-wait state in read-only dashboard
    kind: task
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - internal/dashboard
      - internal/reviewstate
      - docs/design/dashboard.md
      - docs/design/review-wait-notification-model.md
    target_paths:
      - internal/dashboard
      - internal/reviewstate
      - docs/design/dashboard.md
      - docs/design/review-wait-notification-model.md
    review_domains:
      - arch
      - governance
      - frontend
      - ops
    risk_level: medium
    migration_type: review-wait-dashboard-sse
    acceptance_checks:
      - "Dashboard task detail renders read-only review-wait rows from the same projection as `fairway review-waits list`."
      - "Dashboard may emit advisory SSE events for stale, notification_failed, and resolved review waits, derived from existing DB polling."
      - "No dashboard mutation, provider wake send, external notifier dependency, approval authority, merge authority, deploy authority, user subscription feature, or parallel wait store is introduced."
      - "Focused dashboard tests cover task-detail rendering and advisory SSE event names."
      - "Docs keep the read-only dashboard trust boundary and no-wake authority rule explicit."

  - id: FW-183
    title: Add review-wait wake watcher
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator-notifications
    source_paths:
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - examples/session-adapters
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
    target_paths:
      - cmd/fairway
      - internal/coordinator
      - internal/store
      - examples/session-adapters
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: review-wait-wake-watcher
    acceptance_checks:
      - "A coordinator/watch surface can detect parked provider threads from review-wait rows and emit bounded wake prompts using fixed templates."
      - "Wake delivery uses existing provider adapter/session notification patterns and records notification evidence under the trust boundary."
      - "Dashboard remains read-only and never gains send/wake authority."
      - "No Slack/email/external notifier dependency or user subscription application is introduced in this slice."
      - "Watcher degrades to polling/tick behavior and never becomes the only source of review-wait truth."
      - "Tests cover stale wait wake selection, notification failure handling, resolved waits, duplicate suppression, and fixed-template rendering."

  - id: FW-195
    title: Promote coordination-intelligence product model
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordination-intelligence
    source_paths:
      - tmp-ux/fairway-coordination-intelligence-2026-06-13.md
      - docs/design/coordination-intelligence.md
      - docs/product.md
      - docs/design/scope.md
      - docs/design/implementation-roadmap.md
      - docs/agent-guide.md
    target_paths:
      - docs/design/coordination-intelligence.md
      - docs/product.md
      - docs/design/scope.md
      - docs/design/implementation-roadmap.md
      - docs/roadmap/fairway-product-backlog.yaml
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - ops
      - security
    risk_level: medium
    migration_type: coordination-intelligence-model
    acceptance_checks:
      - "Coordination-intelligence design is promoted from tmp-ux into durable docs without making Fairway an autonomous workflow engine or LLM provider runtime."
      - "Docs state that Fairway remains the coordination source of truth, LLMs are bounded advisory/execution attachments, and humans retain approval authority."
      - "Product/scope/roadmap docs link to the model and preserve no dashboard send authority, no provider credential storage, no auto-approval, no auto-merge, and no production mutation boundaries."
      - "Follow-up tasks split implementation into memory, waits/wakes, failure routing, retry packets, advisory guards, and dashboard projections."

  - id: FW-196
    title: Add first-class track memory packets
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: track-memory
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/context-packets.md
      - docs/design/coordinator-loop.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/coordination-intelligence.md
      - docs/design/context-packets.md
      - docs/design/cli.md
      - docs/config-reference.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: track-memory
    acceptance_checks:
      - "`fairway memory show|update|append|packet|stale` or an equivalent first slice exposes structured track memory from Fairway facts."
      - "Track memory stores curated operating summaries and source fact references, not raw transcripts or raw provider prompt bodies."
      - "Generated packets include active scope, current objective, active tasks/sessions, blockers, decisions, review waits, next actions, and source evidence/checkpoint/review ids."
      - "Focused tests cover packet rendering, stale detection, no raw prompt storage, and missing-source behavior."

  - id: FW-197
    title: Add generic wait/watch records for parked tracks
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: wait-watch
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/live-operation-control-room.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/coordination-intelligence.md
      - docs/design/provider-notifications.md
      - docs/design/cli.md
      - docs/config-reference.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: generic-wait-watch
    acceptance_checks:
      - "A generic wait/watch model can represent reviews_complete, handback_ready, session_completed, task_unblocked, ci_finished, deploy_finished, uat_finished, approval_required, live_window_deadline_missed, and track_memory_stale conditions."
      - "Wait records are projected from or linked to existing Fairway facts and do not become a second task state source."
      - "`fairway wait list|tick|ack` or equivalent read-model commands expose open, stale, resolved, failed, and acknowledged waits."
      - "Docs and tests make clear that wait ticking is not a durable timer, DAG executor, auto-approval, task claim, live execution, or environment mutation."

  - id: FW-198
    title: Add bounded wake delivery for parked work
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: wait-watch
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - examples/session-adapters
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - examples/session-adapters
      - docs/design/coordination-intelligence.md
      - docs/design/provider-notifications.md
      - docs/design/cli.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
      - security
    risk_level: medium
    migration_type: bounded-wake-delivery
    acceptance_checks:
      - "`fairway wait wake --send` or equivalent coordinator wake path renders fixed-template prompts from current Fairway state."
      - "Wake delivery records provider notification rows with stable dedupe signatures, delivery/failure state, and target provider metadata."
      - "If no provider target exists, Fairway records notification_failed instead of claiming delivery."
      - "Read-only dashboard remains display-only and never gains send, credential, approval, merge, deploy, or live execution authority."
      - "Tests cover duplicate suppression, fixed-template rendering, failed delivery, acknowledged waits, and resolved waits."

  - id: FW-199
    title: Add known-failure routing recommendations
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: failure-routing
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/watchers.md
      - docs/design/coordinator-loop.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/coordination-intelligence.md
      - docs/design/cli.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: known-failure-routing
    acceptance_checks:
      - "Fairway can classify known evidence failure classes such as artifact mismatch, provider 4xx, browser surface failure, setup gate failure, callback missing, redaction finding, uncommitted reviewed files, and undelivered review handoff."
      - "Failure routing recommends scoped follow-up task templates by default and does not silently create work unless an explicit operator command, dry-run/apply workflow, or configured policy allows it."
      - "Generated recommendations attach evidence paths, owning domain/layer, suggested prefix/kind, and forbidden actions until review."
      - "Tests cover recommendation-only behavior, explicit apply behavior if implemented, and no live/production action authorization."

  - id: FW-200
    title: Add retry packet generator for bounded reruns
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: packets
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/live-operation-control-room.md
      - docs/design/context-packets.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/coordination-intelligence.md
      - docs/design/cli.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
      - security
    risk_level: medium
    migration_type: retry-packet-generator
    acceptance_checks:
      - "A retry packet command can generate bounded packet text from task id, source SHA, operator surface, artifact directory, evidence contract, allowed actions, forbidden actions, expiry, and prior failure closure."
      - "Generated packets clearly state that packet rendering is not execution authorization."
      - "The generator supports live-operation and non-live preflight packet shapes without encoding GPUaaS-specific task prefixes in core."
      - "Tests cover required field validation, forbidden-action rendering, prior-failure closure text, and no hidden approval semantics."

  - id: FW-201
    title: Define advisory recommendation contract and guards
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: advisory
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/product-boundaries.md
      - docs/design/scope.md
      - docs/config-reference.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/coordination-intelligence.md
      - docs/design/cli.md
      - docs/design/product-boundaries.md
      - docs/config-reference.md
      - docs/agent-guide.md
    review_domains:
      - arch
      - governance
      - backend
      - security
    risk_level: medium
    migration_type: advisory-recommendation-guards
    acceptance_checks:
      - "Define a structured advisory recommendation schema with action, task id, target role, confidence, requires_human, rationale, risk flags, and cited Fairway facts."
      - "Fairway validates advisory output against task state, review gates, risk, configured provider trust, and allowed action enums."
      - "Advisory output is recorded as advisory evidence/checkpoint only and never approves reviews, accepts risk, merges, deploys, claims tasks, or mutates environments."
      - "Optional provider config remains replaceable and non-authoritative; no provider credentials, prompts, transcripts, cookies, tokens, or raw private provider state are stored by default."

  - id: FW-202
    title: Show coordination intelligence in dashboard projections
    kind: task
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/dashboard.md
      - internal/dashboard
      - internal
    target_paths:
      - internal/dashboard
      - internal
      - docs/design/coordination-intelligence.md
      - docs/design/dashboard.md
    review_domains:
      - arch
      - governance
      - frontend
      - ops
      - security
    risk_level: medium
    migration_type: coordination-dashboard-projections
    acceptance_checks:
      - "Dashboard shows read-only coordination-intelligence projections for track memory freshness, open/stale waits, wake target, last wake attempt, suggested command, and next deterministic action where available."
      - "Dashboard may show advisory recommendations as non-authoritative findings with cited Fairway facts and confidence, not as approvals or commands."
      - "Dashboard does not send provider prompts, hold provider credentials, approve reviews, authorize execution, mutate environments, or change terminal task status."
      - "Focused dashboard tests cover display-only waits, stale state, advisory labels, and no send/approval controls."

  - id: FW-203
    title: Add provider notification lifecycle audit
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordinator-notifications
    source_paths:
      - docs/design/provider-notifications.md
      - docs/design/review-wait-notification-model.md
      - docs/design/coordinator-loop.md
      - docs/design/live-operation-control-room.md
      - docs/design/coordination-intelligence.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/cli.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: provider-notification-lifecycle-audit
    acceptance_checks:
      - "A notification audit/report command or coordinator projection lists unresolved provider notification rows across review waits, completion handbacks, generic waits, and live-operation handoffs."
      - "The report distinguishes handoff_recorded, sent, notification_delivered, thread_steered, review_recorded, failed, notification_failed, stale, acknowledged, and terminal/superseded cases without introducing a second notification store."
      - "Output includes task id, target domain/role, provider target, last handoff id, last notification id, stale age, expected next action, and fixed-template recovery suggestion."
      - "Tests cover clean notifications, stale sent notification, failed delivery, missing target, already-acknowledged wake, terminal task suppression, and mixed wait types."

  - id: FW-204
    title: Add completion handback supersede cleanup path
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: completion-handbacks
    source_paths:
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/coordination-intelligence.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/cli.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: completion-handback-supersede-cleanup
    acceptance_checks:
      - "Fairway can mark stale completion handbacks as superseded or obsolete with a reason, replacement handback/evidence reference when available, and immutable audit evidence."
      - "Coordinator plan, review-waits, and notification audits stop treating resolved obsolete handbacks as active waits while retaining history for incident review."
      - "The command or action refuses to hide unresolved handbacks for non-terminal tasks unless a replacement path or explicit blocked decision is recorded."
      - "Tests cover superseding an old handback, refusing unsafe suppression, terminal-task cleanup, and preserving evidence/review history."

  - id: FW-205
    title: Generalize provider target routability validation for wakes
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provider-targets
    source_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/live-operation-control-room.md
      - docs/design/coordination-intelligence.md
      - docs/config-reference.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/config-reference.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/cli.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: provider-target-routability-validation
    acceptance_checks:
      - "Static routability validation applies not only to review domains but also to generic waits, completion handbacks, live-operation next actors, track-memory wakes, and provider-session handoffs."
      - "When no provider target exists, Fairway records or reports notification_failed/mapping_required instead of silently parking a thread or claiming delivery."
      - "Preflight and tick paths report missing route/provider target before ambiguous waits become long idle periods."
      - "Tests cover review, handback, generic wait, live operation, and unmapped target cases."

  - id: FW-206
    title: Add live-operation retry budget and causal reset policy
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: live-operation-control
    source_paths:
      - docs/design/live-operation-control-room.md
      - docs/design/coordination-intelligence.md
      - docs/design/coordinator-loop.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/live-operation-control-room.md
      - docs/design/coordination-intelligence.md
      - docs/design/cli.md
    review_domains:
      - arch
      - governance
      - backend
      - ops
      - security
    risk_level: medium
    migration_type: live-operation-retry-budget-causal-reset
    acceptance_checks:
      - "Live-operation control can record meaningful failed rerun count, coordination-only failures, reset reason, and current retry budget for approval-gated operations."
      - "After a configured failure budget is reached, Fairway recommends or requires a causal-reset task before another narrow rerun packet is generated."
      - "Retry packet generation includes prior failure closure, iteration count, reset task reference, and explicit no-hidden-approval language."
      - "Tests cover meaningful failure counting, coordination-only non-counting failures, budget exhaustion, reset task clearance, and packet rendering after reset."

  - id: FW-207
    title: Add coordination docs-to-backlog coverage audit
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: backlog-governance
    source_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/live-operation-control-room.md
      - docs/design/coordination-intelligence.md
      - docs/design/provider-surface-capability-readiness.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - docs/roadmap/fairway-product-backlog.yaml
      - docs/design/implementation-roadmap.md
      - docs/agent-guide.md
      - cmd/fairway
      - internal
    review_domains:
      - arch
      - governance
      - ops
    risk_level: low
    migration_type: coordination-docs-backlog-audit
    acceptance_checks:
      - "A lightweight audit checklist or command maps coordination design claims, deferred slices, and command examples to backlog task ids or implemented command evidence."
      - "The audit flags doc-only capabilities with no backlog task, completed backlog tasks with stale docs, and GPUaaS-specific incident lessons that should be generalized into Fairway product tasks."
      - "Output is advisory and does not change task status, review status, merge readiness, or release readiness."
      - "Docs explain when to run the audit after incident retrospectives, design reviews, and large coordination-model updates."

  - id: FW-208
    title: Add consumer critical-flow governance template
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: consumer-governance
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/live-operation-control-room.md
      - docs/design/context-packets.md
      - docs/agent-guide.md
      - /Users/subash/dev/GPUasService/doc/governance/Critical_Flow_Preflight_And_Drill_Gate_v1.md
    target_paths:
      - docs/agent-guide.md
      - docs/design/consumer-critical-flow-governance.md
      - docs/design/coordination-intelligence.md
      - docs/design/context-packets.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - ops
      - security
    risk_level: medium
    migration_type: consumer-critical-flow-governance-template
    acceptance_checks:
      - "Fairway docs provide a reusable consumer-repo template for critical-flow governance: flow map before implementation, non-live preflight before live window, bounded retry before causal reset, and Fairway evidence before handoff."
      - "The template separates Fairway-owned coordination primitives from product-owned scripts, fixtures, flows, and evidence contracts."
      - "The template includes reviewer context packet fields for causal goal, last blocker, allowed proof, forbidden actions, reviewed commands, artifact paths, and next owner/action."
      - "The template makes clear that Fairway can recommend and render packets but does not approve reviews, accept risk, merge, deploy, mutate environments, or authorize live execution."

  - id: FW-209
    title: Add configurable risk-scaled review profiles
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: review-governance
    source_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/consumer-critical-flow-governance.md
      - docs/config-reference.md
      - cmd/fairway
      - internal
      - /Users/subash/dev/GPUasService/doc/operations/Fairway_Review_Operating_Model.md
      - /Users/subash/dev/GPUasService/doc/governance/Critical_Flow_Preflight_And_Drill_Gate_v1.md
    target_paths:
      - cmd/fairway
      - internal
      - docs/config-reference.md
      - docs/design/review-policy-profiles.md
      - docs/design/review-wait-notification-model.md
      - docs/design/coordinator-loop.md
      - docs/design/consumer-critical-flow-governance.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - backend
      - ops
      - security
    risk_level: medium
    migration_type: configurable-risk-scaled-review-profiles
    acceptance_checks:
      - "Fairway config supports named review profiles such as micro-slice, grouped-slice, epic, launch, live-window, deploy, and production-readiness."
      - "A review profile can derive required review domains from task risk, task kind, tags, parent/epic relationship, changed paths, authoring domain, and explicit no-inheritance triggers."
      - "Review inheritance can mark a child task as covered by an approved parent/group packet only when the child does not expand authority, mutate environments, handle credentials, weaken safety gates, or authorize live/deploy/public exposure actions."
      - "Fairway supports a safe-iteration-zone concept for approved non-live/disposable boundaries where internal setup, readback, harness, classifier, and provider-shape fixes can use lightweight review until a boundary exit is requested."
      - "Review profile selection records the expected defect class or risk-control value for extra reviewers, so full review can be challenged when it does not improve quality or cycle time."
      - "Config and coordinator guidance support process-change pilots: a new review/gate policy can run in advisory mode with a stated speed, quality, or safety hypothesis before becoming blocking."
      - "Reports can compare review/gate overhead against outcomes such as defects caught, rework reduced, blocked time, cycle time, and avoided unsafe actions."
      - "Coordinator detects looping review/retry patterns, such as repeated meaningful failures after near-ready claims, repeated same-layer fixes, or approvals that do not improve end-to-end flow progress."
      - "When a loop is detected, coordinator recommends a causal reset with failure chain, real unknowns, required proof before retry, and a lighter safe-boundary review plan."
      - "merge-ready and review-wait projections explain whether a missing review is required by the selected profile, inherited from a parent/group packet, waived, or intentionally deferred to epic/release review."
      - "Coordinator plan recommends grouping small docs/harness/stale-cleanup review slices, continuing safe-boundary iteration, and reserving full review matrices for epic, launch, live-window, deploy, production-readiness, compliance, and enforcement boundaries."
      - "Tests cover one-review micro slices, grouped child reviews, safe-iteration-zone inheritance, loop-detected causal reset, full epic review, same-lane authorship mapping, no-inheritance triggers, and review-wait output for inherited versus missing domains."

  - id: FW-210
    title: Add delivery velocity and process overhead dashboard
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: delivery-analytics
    source_paths:
      - docs/design/dashboard.md
      - docs/design/coordination-intelligence.md
      - docs/design/review-policy-profiles.md
      - docs/design/review-wait-notification-model.md
      - docs/design/live-operation-control-room.md
      - cmd/fairway
      - internal
      - web
    target_paths:
      - cmd/fairway
      - internal
      - web
      - docs/design/dashboard.md
      - docs/design/delivery-velocity-and-overhead.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - backend
      - ops
      - frontend
    risk_level: medium
    migration_type: delivery-velocity-process-overhead-dashboard
    depends_on:
      - FW-209
    acceptance_checks:
      - "Fairway exposes a time-windowed delivery report showing tasks completed, tasks blocked/unblocked, time in blocked state, time in review wait, time from first evidence to done, and time from done to merge-ready."
      - "Report includes process-overhead indicators: review records per completed task, review approvals versus changes_requested, same-lane mapping count, notification/wake count, handoff count, and review waits that did not produce changes."
      - "Report distinguishes outcome sources: defects or follow-ups found by review, preflight, tests, UAT, CI/CD, deploy, live-window execution, and manual inspection."
      - "Report highlights loops: repeated meaningful failures, repeated same-layer follow-ups, retry packets after near-ready claims, and tasks where coordination time exceeded engineering progress."
      - "Dashboard shows a compact velocity/overhead panel with trends for completed tasks, median blocked/review-wait time, review usefulness ratio, and top sources of follow-up tasks."
      - "CLI supports a read-only command such as `fairway delivery report --since <duration> [--profile <name>] [--format text|json]` using existing task, review, evidence, notification, session, checkpoint, and merge-ready data."
      - "Metrics are advisory by default and must not approve reviews, mutate task status, merge, deploy, or gate release without an explicit configured policy."
      - "Tests cover report calculation, empty windows, review-heavy tasks, preflight-found defects, loop detection summaries, and dashboard/read-only JSON projection."

  - id: FW-211
    title: Add repeated-work automation candidate detection
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: automation-intelligence
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/delivery-velocity-and-overhead.md
      - docs/design/coordinator-loop.md
      - docs/design/context-packets.md
      - cmd/fairway
      - internal
      - /Users/subash/dev/GPUasService/doc/governance/Critical_Flow_Preflight_And_Drill_Gate_v1.md
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/automation-candidate-detection.md
      - docs/design/coordination-intelligence.md
      - docs/design/delivery-velocity-and-overhead.md
      - docs/design/coordinator-loop.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - backend
      - ops
    risk_level: medium
    migration_type: repeated-work-automation-candidates
    depends_on:
      - FW-210
    acceptance_checks:
      - "Fairway detects repeated deterministic work patterns across tasks, sessions, evidence, notifications, and command text, using a default rule of manual once, checklist/command capture on second occurrence, and automation recommendation on third occurrence."
      - "Candidate report groups repeated work such as status summaries, review-wait checks, merge-ready checks, commit-boundary handling, preflight packet rendering, UAT coverage diffs, CI/deploy monitor handbacks, evidence redaction, and delivery-overhead reporting."
      - "Each automation candidate includes frequency, recent task ids, representative commands/artifacts, estimated token/coordination cost, likely owner, and suggested implementation surface such as script, Fairway CLI, dashboard panel, watcher, or packet template."
      - "Coordinator plan can recommend creating a scoped automation task when repeated work exceeds threshold, but it does not auto-create tasks or mutate workflow without explicit configured policy."
      - "Dashboard or CLI exposes candidates read-only, for example `fairway automation candidates --since <duration> --format text|json`."
      - "Tests cover repeated command detection, repeated review/notification loops, false positives for intentionally manual approvals, threshold configuration, and read-only dashboard/CLI projection."

  - id: FW-212
    title: Normalize public dashboard share hostname plan
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-sharing
    source_paths:
      - docs/design/dashboard-sharing.md
      - docs/design/dashboard.md
      - docs/governance/release.md
      - docs/config-reference.md
      - README.md
    target_paths:
      - docs/design/dashboard-sharing.md
      - docs/design/dashboard-share-hostname-release.md
      - docs/design/dashboard.md
      - docs/governance/release.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - ops
    risk_level: low
    migration_type: dashboard-share-hostname-normalization
    acceptance_checks:
      - "Fairway docs recommend an AI Cloud-aligned dashboard share hostname and explicitly avoid making legacy consumer-specific hostnames the Fairway product default."
      - "The plan assesses `fairway.aicloud.core42.dev` first, names `aicloud-fairway.core42.dev` or another concrete fallback when subdomain delegation is not available, and records the reason."
      - "Docs define a compatibility/deprecation plan for existing `fairway-gpuaas.core42.dev` viewers without making the older name the product-facing default or breaking current access during migration."
      - "Release/distribution notes state whether Homebrew, GoReleaser, binary packaging, or dashboard command surfaces need changes for the hostname update."
      - "Trust boundaries remain explicit: dashboard sharing stays read-only, Fairway does not own the Cloudflare account or Access policy, and no dashboard send/write authority is added."
      - "Validation covers markdown/backlog syntax and a read-only DNS observation or documented blocker for current hostname viability."

  - id: FW-213
    title: Add dashboard share release update checklist
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release-distribution
    source_paths:
      - docs/design/dashboard-share-hostname-release.md
      - docs/governance/release.md
      - docs/release-notes.md
      - .goreleaser.yaml
      - README.md
    target_paths:
      - docs/governance/release.md
      - docs/release-notes.md
      - docs/release-highlights.md
      - .goreleaser.yaml
      - README.md
    review_domains:
      - governance
      - ops
    risk_level: low
    migration_type: dashboard-share-release-update
    depends_on:
      - FW-212
    acceptance_checks:
      - "Release checklist includes the public dashboard/share hostname transition and confirms whether docs-only release notes are sufficient."
      - "Homebrew and GoReleaser are explicitly reviewed for hostname coupling; if no packaging change is required, evidence records the negative finding."
      - "Release notes or highlights mention the Fairway-neutral dashboard sharing reference when appropriate for the next public release."
      - "Compatibility expectations for `fairway-gpuaas.core42.dev` are included in the release handoff or intentionally deferred to a deployment-owner task."

  - id: FW-214
    title: Audit coordination notification backlog gaps after dashboard share update
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: backlog-governance
    source_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/coordination-intelligence.md
      - docs/design/live-operation-control-room.md
      - docs/design/dashboard-sharing.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - docs/roadmap/fairway-product-backlog.yaml
      - docs/design/coordination-intelligence.md
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
    review_domains:
      - governance
      - ops
      - backend
    risk_level: low
    migration_type: notification-coordination-backlog-gap-audit
    depends_on:
      - FW-212
    acceptance_checks:
      - "A fresh scan of review-wait notifications, provider notifications, coordinator loop, live-operation control-room, and coordination-intelligence docs identifies remaining Fairway product gaps not already represented by FW-179 through FW-214."
      - "Any missing Fairway-owned gap is added as a scoped backlog task with source paths, target paths, owner role, review domains, risk, and acceptance checks."
      - "GPUaaS-specific deployment or incident details remain in consumer-owned tasks unless a reusable Fairway product primitive is missing."
      - "Audit evidence records the scan commands and explicitly states whether no new backlog tasks were needed."

  - id: FW-215
    title: Reconcile stale completed coordination doc references
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: backlog-governance
    source_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/coordination-intelligence.md
      - docs/design/live-operation-control-room.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/coordination-intelligence.md
      - docs/design/live-operation-control-room.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - backend
    risk_level: low
    migration_type: stale-coordination-doc-reference-cleanup
    depends_on:
      - FW-214
    acceptance_checks:
      - "The docs-backlog audit stale completed-task findings for FW-181, FW-184, FW-187, and FW-188 are reconciled by updating the relevant coordination docs with implemented command/report names or by correcting stale task path metadata."
      - "The cleanup remains documentation/backlog governance only and does not change review, notification, dashboard, provider-send, merge, deploy, or release authority."
      - "Validation reruns `fairway audit docs-backlog` for the affected coordination docs and records whether stale completed-task findings were removed or intentionally retained with rationale."

  - id: FW-216
    title: Reconcile memory-only Fairway product completions into task records
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: backlog-governance
    source_paths:
      - tmp-ux/fairway-product-working-memory-2026-06-10.md
      - tmp-ux/fairway-product-working-memory-2026-06-11-fw178.md
      - tmp-ux/fairway-public-dashboard-release-memory-2026-06-17.md
      - tmp-ux/fairway-coordination-intelligence-2026-06-13.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - docs/roadmap/fairway-product-backlog.yaml
      - docs/design
      - tmp-ux
    review_domains:
      - governance
      - ops
    risk_level: low
    migration_type: memory-only-completion-reconciliation
    depends_on:
      - FW-215
    acceptance_checks:
      - "Fairway memory files are scanned for completed implementation, docs, release, dashboard, notification, and coordination work that lacks a durable task or done closeout record."
      - "Substantial completed batches are represented as grouped task handles with evidence instead of remaining only in memory files."
      - "The reconciliation explicitly distinguishes completed work, open product gaps, and consumer-specific GPUaaS dogfooding requests."
      - "Evidence records scan commands, created/closed task handles, and lessons for preventing memory-only closeout."

  - id: FW-217
    title: Backfill detailed design backlog from coordination-intelligence docs
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: design-backlog
    source_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/design/coordinator-loop.md
      - docs/design/coordination-intelligence.md
      - docs/design/live-operation-control-room.md
      - docs/design/dashboard-sharing.md
      - tmp-ux/fairway-coordination-intelligence-2026-06-13.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - docs/roadmap/fairway-product-backlog.yaml
      - docs/design/coordination-intelligence.md
      - docs/design/coordinator-loop.md
      - docs/design/provider-notifications.md
      - docs/design/review-wait-notification-model.md
      - docs/design/live-operation-control-room.md
    review_domains:
      - architecture
      - governance
      - backend
    risk_level: medium
    migration_type: detailed-design-backlog-backfill
    depends_on:
      - FW-216
    acceptance_checks:
      - "Every reusable Fairway product capability described in the coordination-intelligence, review-wait, provider-notification, coordinator-loop, and live-operation-control-room docs maps to an existing task or a newly added scoped backlog task."
      - "Backlog rows include owner role, layer, source paths, target paths, risk, review domains, and concrete acceptance checks."
      - "GPUaaS-specific process lessons are converted into reusable Fairway primitives only when the need is product-general."
      - "A docs-backlog audit passes for the scanned docs or records exact residual blockers."

  - id: FW-218
    title: Prepare Fairway release after coordination cleanup
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release-distribution
    source_paths:
      - docs/release-notes.md
      - docs/release-highlights.md
      - docs/governance/release.md
      - .goreleaser.yaml
      - README.md
      - docs/roadmap/fairway-product-backlog.yaml
    target_paths:
      - docs/release-notes.md
      - docs/release-highlights.md
      - docs/governance/release.md
      - .goreleaser.yaml
      - README.md
    review_domains:
      - ops
      - governance
    risk_level: medium
    migration_type: release-prep
    depends_on:
      - FW-216
      - FW-217
    acceptance_checks:
      - "Release notes and highlights include the completed dashboard sharing, review-wait/notification, coordination-intelligence, and dogfooding cleanup work."
      - "Release verification covers `go test ./...`, `go vet ./...`, `goreleaser check`, config validation, and dashboard lifecycle smoke."
      - "Homebrew/cask and binary distribution posture is checked and either updated or explicitly recorded as unchanged."
      - "Release handoff names version, commit SHA, artifacts, known limits, and post-release dashboard restart guidance."

  - id: FW-219
    title: Add dashboard lifecycle restart and version-readback guidance
    kind: dashboard
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-operations
    source_paths:
      - docs/design/dashboard.md
      - docs/design/dashboard-sharing.md
      - docs/quickstart.md
      - README.md
      - cmd
      - internal/dashboard
    target_paths:
      - docs/design/dashboard.md
      - docs/design/dashboard-sharing.md
      - docs/quickstart.md
      - README.md
      - cmd
      - internal/dashboard
    review_domains:
      - ops
      - backend
    risk_level: low
    migration_type: dashboard-lifecycle-version-readback
    depends_on:
      - FW-218
    acceptance_checks:
      - "Dashboard lifecycle docs explain how to restart local full-access and read-only shared dashboards after a new Fairway binary is built."
      - "Dashboard status or logs expose enough version/build/readback context for operators to verify which binary is serving each surface."
      - "Slow/stale dashboard diagnosis distinguishes old binary, stale provider sessions, large activity feed, Cloudflare tunnel, and browser/client cache causes."
      - "Validation includes a local dashboard lifecycle smoke and read-only shared dashboard status check."

  - id: FW-220
    title: Publish Fairway binary and documentation release
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release-distribution
    source_paths:
      - docs/release-notes.md
      - docs/release-highlights.md
      - docs/governance/release.md
      - docs
      - .goreleaser.yaml
      - README.md
    target_paths:
      - docs/release-notes.md
      - docs/release-highlights.md
      - docs/governance/release.md
      - docs
      - .goreleaser.yaml
      - README.md
    review_domains:
      - ops
      - governance
    risk_level: medium
    migration_type: binary-and-docs-release
    depends_on:
      - FW-218
      - FW-219
    acceptance_checks:
      - "A tagged Fairway release is cut from a reviewed commit after cleanup/release-prep tasks are merge-ready."
      - "Binary artifacts are built and smoke-verified on the supported local platform, including `fairway ready`, `fairway reconcile active --dry-run`, and dashboard start/status."
      - "Documentation release content is published or staged with version, commit SHA, release date, highlights, operator upgrade notes, and known limits."
      - "Post-release verification restarts the GPUaaS read-only and local full-access dashboards with the released binary and records version/readback evidence."

  - id: FW-221
    title: Add durable generic wait add and ack commands
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordination-waits
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/coordinator-loop.md
      - docs/design/cli.md
      - cmd/fairway
      - internal
    target_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/coordinator-loop.md
      - docs/design/cli.md
      - cmd/fairway
      - internal
    review_domains:
      - backend
      - governance
      - ops
    risk_level: medium
    migration_type: durable-generic-wait-add-ack
    depends_on:
      - FW-217
    acceptance_checks:
      - "`fairway wait add` records a durable parked-work wait using existing Fairway task/checkpoint/notification state or a documented lightweight store extension approved by architecture."
      - "`fairway wait ack` records acknowledgement/resolution proof without deleting wait history."
      - "`fairway wait list|tick|wake` include waits created by `wait add` and preserve existing projection behavior for review waits, completion handbacks, live-window phases, sessions, and memory staleness."
      - "Wait records include task id, kind, track/owner, condition, target, deadline or ack timeout origin, state, stale age, last wake attempt, and suggested command."
      - "The dashboard remains read-only and never sends wake prompts or mutates wait state."
      - "Tests cover add, list, stale tick, wake rendering, ack, duplicate suppression, resolved suppression, and no approval/merge/deploy authority."

  - id: FW-222
    title: Add advisory provider adapter configuration
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: advisory-providers
    source_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/product-boundaries.md
      - docs/config-reference.md
      - cmd/fairway
      - internal
    target_paths:
      - docs/design/coordination-intelligence.md
      - docs/design/product-boundaries.md
      - docs/config-reference.md
      - docs/design/cli.md
      - cmd/fairway
      - internal
    review_domains:
      - architecture
      - governance
      - backend
      - security
    risk_level: medium
    migration_type: advisory-provider-adapter-config
    depends_on:
      - FW-217
      - FW-201
    acceptance_checks:
      - "Fairway config can declare optional advisory providers such as noop/rules-only, local Ollama, local llama.cpp, OpenAI-compatible endpoint, Codex, Claude, and Gemini without making any provider required."
      - "The first implementation supports at least a noop/rules-only provider and a local/OpenAI-compatible dry-run adapter boundary without storing prompts, transcripts, raw tool bodies, generated content, auth tokens, or provider-private data."
      - "`fairway advisory validate` remains the authority gate for any provider output and rejects unsupported actions, uncited facts, risk flags without `requires_human`, and state-machine violations."
      - "Accepted advisory output can be recorded only as advisory evidence or checkpoint context; it does not approve reviews, accept risk, claim tasks, merge, push, deploy, wake providers, or mutate live environments."
      - "Docs explain provider trust levels, privacy rules, credential sourcing, and local-only defaults."
      - "Tests cover config parsing, disabled provider behavior, noop/rules-only output, invalid provider output rejection, and privacy redaction boundaries."

  - id: FW-223
    title: Add optional external notifier interface
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provider-notifications
    source_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/config-reference.md
      - cmd/fairway
      - internal
    target_paths:
      - docs/design/review-wait-notification-model.md
      - docs/design/provider-notifications.md
      - docs/config-reference.md
      - docs/design/cli.md
      - cmd/fairway
      - internal
    review_domains:
      - architecture
      - governance
      - backend
      - ops
      - security
    risk_level: medium
    migration_type: optional-external-notifier-interface
    depends_on:
      - FW-217
      - FW-203
    acceptance_checks:
      - "Fairway defines a provider-neutral notifier interface for review waits, completion handbacks, generic waits, and live-operation handoffs without introducing Slack/email/Teams as required dependencies."
      - "The first implementation supports a noop/logging notifier or dry-run notifier and records delivery/failure evidence through existing notification rows."
      - "Missing external credentials, provider outages, or notifier failures never make Fairway lose workflow state or claim delivery."
      - "Notifier output uses fixed templates rendered from current Fairway state and does not store arbitrary wake prompt text for later replay."
      - "Dashboard remains read-only and gains no send authority."
      - "Tests cover dry-run notification, provider failure, missing credentials, fixed-template rendering, duplicate suppression, and trust-boundary docs."

  - id: FW-224
    title: Add trusted proxy identity verification model
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-security
    source_paths:
      - docs/design/dashboard-sharing.md
      - docs/design/product-boundaries.md
      - docs/config-reference.md
      - internal/dashboard
      - cmd/fairway
    target_paths:
      - docs/design/dashboard-sharing.md
      - docs/design/product-boundaries.md
      - docs/config-reference.md
      - docs/design/cli.md
      - internal/dashboard
      - cmd/fairway
    review_domains:
      - architecture
      - governance
      - backend
      - ops
      - security
    risk_level: high
    migration_type: trusted-proxy-identity-verification
    depends_on:
      - FW-217
      - FW-178
    acceptance_checks:
      - "Fairway defines the security model for trusting identity-aware proxy headers beyond local/dev read-only dashboard sharing."
      - "Cloudflare Access JWT verification or an equivalent upstream verification contract is documented and exposed through config without making shared dashboard exposure a default."
      - "The implementation refuses to trust identity headers unless the origin reachability, trusted proxy mode, audience/team/issuer checks, and failure behavior are explicitly configured."
      - "Read-only mode remains the default shared-dashboard trust boundary; any future write access requires a separate opt-in authorization and audit model."
      - "Tests cover no proxy, trusted proxy metadata only, invalid/missing JWT, valid verified identity, unreachable verification metadata, and no dashboard mutation authority."

  - id: FW-231
    title: Define Fairway supply-chain provenance model
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provenance
    source_paths:
      - docs/design/product-boundaries.md
      - docs/design/reports.md
      - docs/design/schema.md
      - docs/design/provider-usage-accounting.md
    target_paths:
      - docs/design/supply-chain-provenance.md
      - docs/design/product-boundaries.md
      - docs/design/reports.md
      - docs/config-reference.md
      - website/sidebars.js
    review_domains:
      - arch
      - governance
      - security
    risk_level: high
    migration_type: supply-chain-provenance-model
    tags:
      - supply-chain
      - provenance
      - agentic-engineering
    acceptance_checks:
      - "Fairway explicitly defines its role as supply-chain provenance metadata, not a compiler/runtime dependency."
      - "Model distinguishes source code, build artifacts, CI/CD, Fairway work provenance, provider usage, prompts/context packets, evidence, reviews, and release decisions."
      - "Trust boundaries state what Fairway must not store: raw secrets, provider auth state, raw prompt bodies by default, private transcripts, raw tool bodies, or generated content dumps."
      - "Design covers task-to-commit-to-release linkage, provenance export shape, retention, backup, and future tamper-evidence requirements."
      - "Docs explain how consumers can audit why work happened, who/what executed it, which evidence existed, and which gates were satisfied."

  - id: FW-232
    title: Add provenance report and task prompt-packet export
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: reports
    source_paths:
      - docs/design/supply-chain-provenance.md
      - docs/design/reports.md
      - docs/design/context-packets.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/reports.md
      - docs/design/cli.md
      - docs/design/supply-chain-provenance.md
    review_domains:
      - backend
      - governance
      - security
    risk_level: medium
    migration_type: provenance-report-export
    tags:
      - supply-chain
      - provenance
      - reports
    acceptance_checks:
      - "CLI can export a task or date-range provenance packet containing task metadata, checkpoints, evidence refs, review refs, commit refs, release refs, provider/session refs, and usage refs without raw prompt/transcript/content storage."
      - "Export supports JSON and Markdown and is deterministic enough for audit diffs."
      - "Prompt-packet export includes objective, scope, acceptance, source facts, forbidden actions, validation gates, and evidence refs when present, while preserving privacy boundaries."
      - "Dashboard/reports can show supply-chain provenance summaries by task, day, release, and commit SHA."
      - "Tests cover JSON/Markdown export, missing evidence, privacy rejection/redaction, and date-range rollup."

  - id: FW-233
    title: Link Fairway provenance to release attestations
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release-governance
    source_paths:
      - docs/governance/release.md
      - docs/design/release-cuts.md
      - docs/design/supply-chain-provenance.md
      - docs/release-notes.md
    target_paths:
      - docs/governance/release.md
      - docs/design/release-cuts.md
      - docs/design/supply-chain-provenance.md
      - cmd/fairway
      - internal
    review_domains:
      - governance
      - security
      - ops
    risk_level: high
    migration_type: release-provenance-attestation
    tags:
      - supply-chain
      - release
      - provenance
    acceptance_checks:
      - "Release process requires a provenance bundle naming release SHA, included Fairway task IDs, evidence summaries, review gates, CI/CD checks, and known waivers."
      - "Release notes or release artifacts can reference the provenance bundle without exposing internal-only URLs or secrets."
      - "The model supports SLSA/in-toto-style future attestation without requiring those systems in the first implementation."
      - "Release checks fail or warn when committed source changes lack linked Fairway task IDs or provenance evidence."
      - "Docs include operator steps for generating, storing, and reviewing release provenance."

  - id: FW-234
    title: Add tamper-evident evidence retention and backup posture
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: evidence-custody
    source_paths:
      - docs/design/supply-chain-provenance.md
      - docs/design/schema.md
      - docs/config-reference.md
      - docs/governance/release.md
    target_paths:
      - docs/design/supply-chain-provenance.md
      - docs/design/schema.md
      - docs/config-reference.md
      - cmd/fairway
      - internal
    review_domains:
      - security
      - governance
      - backend
      - ops
    risk_level: high
    migration_type: evidence-retention-tamper-evidence
    tags:
      - supply-chain
      - evidence
      - retention
    acceptance_checks:
      - "Design and implementation define append-only evidence/checkpoint retention expectations and explicit mutation boundaries."
      - "Fairway can produce a hash manifest over selected evidence/provenance exports for tamper-evidence."
      - "Backup/restore guidance covers local SQLite, exported provenance bundles, and external archival targets without storing secrets."
      - "Retention classes distinguish source-control-worthy provenance, local scratch, sensitive evidence references, and external compliance artifacts."
      - "Tests cover hash manifest generation, changed artifact detection, missing artifact reporting, and privacy boundary checks."

  - id: FW-235
    title: Add cross-project activity rollup dashboard
    kind: dashboard
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: multi-project-reports
    source_paths:
      - docs/design/multi-project.md
      - docs/design/reports.md
      - docs/design/dashboard.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/multi-project.md
      - docs/design/reports.md
      - docs/design/dashboard.md
    review_domains:
      - backend
      - ui
      - governance
    risk_level: medium
    migration_type: cross-project-activity-rollup
    tags:
      - dashboard
      - multi-project
      - reports
    acceptance_checks:
      - "Dashboard and reports can show activity across configured Fairway project registries, not only the currently selected DB."
      - "Rollup answers what happened today by project, task, provider/session, evidence count, status movement, and commit/release refs."
      - "Default view makes days with evidence but no Git commits visible without treating generated artifacts as source commits."
      - "Filters support project, profile, role, tag, date range, task status, and evidence type."
      - "Tests cover attached DB aggregation, duplicate task ids across projects, missing project DBs, and read-only dashboard behavior."

  - id: FW-236
    title: Add safe evidence artifact viewer and redaction gate
    kind: dashboard
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: evidence-viewer
    source_paths:
      - docs/design/dashboard.md
      - docs/design/reports.md
      - docs/design/product-boundaries.md
      - cmd/fairway
      - internal
    target_paths:
      - internal/dashboard
      - cmd/fairway
      - docs/design/dashboard.md
      - docs/design/reports.md
      - docs/config-reference.md
    review_domains:
      - ui
      - security
      - backend
      - governance
    risk_level: high
    migration_type: evidence-artifact-viewer
    tags:
      - evidence
      - dashboard
      - security
    acceptance_checks:
      - "Fairway can render linked Markdown, JSON, text, and HTML evidence artifacts through a safe viewer instead of raw downloads when configured."
      - "Viewer applies internal URL/secret redaction rules and clearly labels local-only, internal-only, and publishable evidence."
      - "Viewer never serves paths outside configured evidence roots and never follows symlinks outside allowed roots."
      - "Dashboard task detail links evidence through the viewer while retaining raw path readback for local operators."
      - "Tests cover markdown/json/html rendering, path traversal rejection, symlink rejection, internal URL redaction, and read-only dashboard authority."

  - id: FW-237
    title: Promote environment rehearsal packets into executable Fairway templates
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: environment-rehearsal
    source_paths:
      - docs/design/environment-deploy-preflight.md
      - docs/design/regression-packets.md
      - docs/design/reports.md
      - cmd/fairway
      - internal
    target_paths:
      - cmd/fairway
      - internal
      - docs/design/environment-deploy-preflight.md
      - docs/design/regression-packets.md
      - docs/design/cli.md
    review_domains:
      - ops
      - backend
      - governance
    risk_level: medium
    migration_type: executable-rehearsal-packets
    tags:
      - deploy
      - airgap
      - preflight
    acceptance_checks:
      - "Fairway supports reusable rehearsal packet templates for demo/dev/staging/airgap workflows with required inputs, preflight checks, expected evidence, rollback, and closeout shape."
      - "A packet can be rendered as Markdown/JSON and optionally instantiated as child tasks or waits without hand-copying prompt text."
      - "Rehearsal packets distinguish setup gaps, product defects, environment drift, and operator-access blockers."
      - "Reports can group repeated rehearsal failures by packet/check id to show where automation should be added."
      - "Tests cover packet rendering, required-input validation, child task instantiation, and no live/deploy authority without explicit task state."

  - id: FW-238
    title: Add reusable task prompt library and recipe extraction
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: context-packets
    source_paths:
      - docs/design/context-packets.md
      - docs/design/coordination-intelligence.md
      - docs/agent-guide.md
      - cmd/fairway
      - internal
    target_paths:
      - docs/design/context-packets.md
      - docs/design/coordination-intelligence.md
      - docs/design/cli.md
      - cmd/fairway
      - internal
    review_domains:
      - governance
      - arch
      - backend
    risk_level: medium
    migration_type: task-prompt-library
    tags:
      - prompt-library
      - agentic-engineering
      - provenance
    acceptance_checks:
      - "Fairway can promote a completed task into a reusable recipe/context packet containing objective, scope, inputs, forbidden actions, validation gates, expected evidence, and closeout rules."
      - "Recipes reference evidence and source facts instead of storing raw transcripts or arbitrary provider prompt bodies by default."
      - "CLI can render a recipe into a new task prompt packet with task-specific substitutions and privacy checks."
      - "Dashboard exposes recipes as prompt/runbook library entries linked to completed source tasks."
      - "Tests cover recipe extraction, substitution, privacy rejection, missing source facts, and recipe-to-task instantiation."

  - id: FW-255
    title: Assess Postgres or server-backed Fairway store for team deployments
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: storage
    source_paths:
      - docs/design/postgres-adapter.md
      - docs/design/schema.md
      - internal/store
      - cmd/fairway
    target_paths:
      - docs/design/postgres-adapter.md
      - docs/design/schema.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
      - ops
    risk_level: high
    migration_type: postgres-team-store-assessment
    tags:
      - storage
      - postgres
      - team-deployment
    acceptance_checks:
      - "Assessment states when SQLite remains the default local/single-user store and when a Postgres/server-backed store is justified for shared team deployments."
      - "Design covers migration/cutover, rollback, locking/concurrency, backup/restore, deployment topology, and compatibility harness requirements."
      - "Assessment preserves Fairway DB as source of truth and rejects a second wait store, dashboard cache store, review store, or notification truth source."
      - "Postgres compatibility command status is documented, including that generated DDL is review output and apply/cutover is not yet implemented."
      - "Follow-on implementation slices are bounded so no high-risk storage migration is implied by the assessment task."

  - id: FW-256
    title: Define shared-team Fairway operating model beyond the store backend
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: coordination
    source_paths:
      - docs/design
      - docs/product.md
    target_paths:
      - docs/design/shared-team-operating-model.md
      - docs/product.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - ops
    risk_level: high
    migration_type: shared-team-operating-model
    acceptance_checks:
      - "Document when Fairway remains local-first versus when a shared team control plane is justified."
      - "Define authority boundaries for dashboard, CLI, provider sessions, reviewers, coordinators, and automation in shared-team mode."
      - "Cover identity, audit, tenancy/project scoping, offline/local fallback, and no hidden approval/send/merge/deploy authority."
      - "State that shared-team Fairway is not just a Postgres backend; server API, concurrency, deployment, and operations require separate reviewed designs."
      - "Preserve local-first defaults and dashboard read-only trust boundaries."

  - id: FW-257
    title: Design shared-team Fairway server API and identity boundary
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: server
    source_paths:
      - docs/design
      - cmd/fairway
      - internal/dashboard
      - internal/store
    target_paths:
      - docs/design/shared-team-server-api.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - security
      - ops
    risk_level: high
    migration_type: shared-team-server-api
    dependencies:
      - FW-256
    acceptance_checks:
      - "Define whether a Fairway server process is needed, which APIs it exposes, and which CLI/dashboard flows remain local-only."
      - "Specify authn/authz, read-only versus write-capable roles, audit requirements, CSRF/API token boundaries, and Cloudflare/Pomerium/no-edge deployment profiles."
      - "No implementation or public exposure is authorized by the design task."
      - "Separate dashboard routes, command-shaped write APIs, provider adapter APIs, and local-only release/git/live-operation flows."
      - "Preserve privacy boundaries for prompts, transcripts, raw tool bodies, tokens, cookies, credentials, and artifact content."

  - id: FW-258
    title: Design shared-team concurrency sync and conflict model
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: storage
    source_paths:
      - docs/design
      - internal/store
      - internal/reconcile
    target_paths:
      - docs/design/shared-team-concurrency-and-sync.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
      - ops
    risk_level: high
    migration_type: shared-team-concurrency-sync
    dependencies:
      - FW-256
    acceptance_checks:
      - "Define multi-writer semantics for task status, evidence, reviews, waits, sessions, imports, recipes, and dashboard actions."
      - "Cover optimistic concurrency, row locking, idempotency, append-only facts, offline writes, conflict detection, and operator-reviewed reconciliation."
      - "Clarify what belongs in Postgres/server mode versus local SQLite plus export/import or event replication."
      - "Define conflict response shape and retry/idempotency behavior without exposing private payloads."
      - "Preserve Fairway DB as source of truth and reject hidden bidirectional workflow sync."

  - id: FW-259
    title: Design shared-team Fairway deployment and operations model
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: deployment
    source_paths:
      - docs/design
      - docs/config-reference.md
      - docs/quickstart.md
    target_paths:
      - docs/design/shared-team-deployment-operations.md
      - docs/config-reference.md
      - docs/quickstart.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - governance
      - ops
      - security
    risk_level: high
    migration_type: shared-team-deployment-ops
    dependencies:
      - FW-256
    acceptance_checks:
      - "Define deployment topologies for single-host team server, airgap/internal server, and managed shared dashboard without assuming Cloudflare."
      - "Cover backups, restore/PITR, upgrades, observability, performance budgets, secrets, TLS, least privilege, and disaster recovery."
      - "Define release gates before any shared-team runtime is advertised as supported."
      - "Keep shared read-only dashboard and shared write API as independent switches."
      - "State that this design does not authorize runtime deployment, public exposure, release tag, dashboard restart, or write-capable dashboard behavior."

  - id: FW-260
    title: Prepare Fairway dashboard performance and shared-team docs release
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - docs/design/dashboard.md
      - docs/design/shared-team-operating-model.md
      - docs/design/shared-team-server-api.md
      - docs/design/shared-team-concurrency-and-sync.md
      - docs/design/shared-team-deployment-operations.md
      - CHANGELOG.md
      - docs/release-notes.md
      - docs/release-highlights.md
    target_paths:
      - CHANGELOG.md
      - docs/release-notes.md
      - docs/release-highlights.md
      - docs/assessment
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - ops
      - security
    risk_level: medium
    migration_type: release-prep
    dependencies:
      - FW-256
      - FW-257
      - FW-258
      - FW-259
    acceptance_checks:
      - "Prepare release notes, highlights, changelog, and verification packet for the post-v0.1.9 dashboard performance fixes and shared-team design documents."
      - "Run release-prep gates including tests, vet, diff check, config validation, workflow check, active reconciliation, GoReleaser check, and release verification where applicable."
      - "State whether the release should include dashboard restart/version-readback work as a separate follow-up task."
      - "Do not tag, publish, restart dashboards, change public exposure, or declare a release complete under this preparation task."

  - id: FW-269
    title: Implement shared-team server API skeleton and read-only mode
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: server
    source_paths:
      - docs/design/shared-team-server-api.md
      - docs/design/shared-team-deployment-operations.md
      - cmd/fairway
      - internal/config
      - internal/dashboard
      - internal/store
    target_paths:
      - cmd/fairway
      - internal/config
      - internal/dashboard
      - internal/store
      - docs/config-reference.md
      - docs/design/cli.md
      - docs/design/shared-team-server-api.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - ops
      - security
    risk_level: high
    migration_type: shared-team-read-only-server
    dependencies:
      - FW-257
      - FW-259
    acceptance_checks:
      - "Server/API entrypoint or mode is documented and runnable in read-only mode."
      - "Read endpoints expose task/detail/report/status data through existing store read models without creating a second store."
      - "Dashboard remains read-only; no review/approval/merge/deploy/live authority is added."
      - "Config validation covers disabled/read-only modes and fails closed for write-capable settings."
      - "Focused tests and full go test ./... pass."

  - id: FW-270
    title: Implement shared-team identity and command authorization guard
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: server
    source_paths:
      - docs/design/shared-team-server-api.md
      - docs/design/trusted-proxy-identity-verification.md
      - cmd/fairway
      - internal/config
      - internal/dashboard
      - internal/store
    target_paths:
      - cmd/fairway
      - internal/config
      - internal/dashboard
      - internal/store
      - docs/config-reference.md
      - docs/design/shared-team-server-api.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - ops
      - security
    risk_level: high
    migration_type: shared-team-identity-authz
    dependencies:
      - FW-257
      - FW-269
    acceptance_checks:
      - "Identity model supports local/no-edge, trusted proxy read-only, API token, and service-account or mTLS placeholders as configured modes."
      - "Unverified trusted proxy headers are advisory only and cannot grant write authority."
      - "Authorization checks are command-scoped: viewer, operator, reviewer:<domain>, coordinator, adapter:<name>, admin."
      - "Audit output avoids raw JWT/header/cookie/token/prompt/transcript/provider-private data."
      - "Security-focused tests cover missing identity, bad issuer/audience or equivalent failed proof, insufficient role, and read-only allow cases."

  - id: FW-271
    title: Implement shared-team write API pilot for append-only evidence and checkpoints
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: server
    source_paths:
      - docs/design/shared-team-server-api.md
      - docs/design/shared-team-concurrency-and-sync.md
      - cmd/fairway
      - internal/store
      - internal/dashboard
    target_paths:
      - cmd/fairway
      - internal/store
      - internal/dashboard
      - docs/config-reference.md
      - docs/design/shared-team-server-api.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - ops
      - security
    risk_level: high
    migration_type: shared-team-append-only-write-api
    dependencies:
      - FW-258
      - FW-269
      - FW-270
    acceptance_checks:
      - "Write API accepts append-only evidence/checkpoint commands with idempotency keys."
      - "Duplicate idempotency key with identical payload returns existing result; mismatch fails closed."
      - "No arbitrary prompt/transcript/tool body persistence is introduced."
      - "Local CLI remains the reference mutation path; server API command semantics match CLI evidence/checkpoint behavior."
      - "Tests cover retry, mismatch, authz denial, project scoping, and audit rows."

  - id: FW-272
    title: Implement shared-team guarded task status and review write pilot
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: server
    source_paths:
      - docs/design/shared-team-server-api.md
      - docs/design/shared-team-concurrency-and-sync.md
      - internal/store
      - internal/reviewpolicy
      - cmd/fairway
    target_paths:
      - cmd/fairway
      - internal/store
      - internal/reviewpolicy
      - internal/dashboard
      - docs/design/shared-team-server-api.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
      - ops
      - security
    risk_level: high
    migration_type: shared-team-guarded-write-api
    dependencies:
      - FW-258
      - FW-270
      - FW-271
    acceptance_checks:
      - "Status changes require expected current status or equivalent conflict guard."
      - "Review writes require reviewer domain authority and preserve existing review-policy boundaries."
      - "Conflicts return structured safe errors without private payloads."
      - "Task state history and review rows are updated transactionally with denormalized read state where applicable."
      - "Tests cover stale status, missing review authority, grouped review boundary preservation, and concurrent write conflicts."

  - id: FW-273
    title: Build disposable Postgres/shared-store rehearsal harness
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: storage
    source_paths:
      - docs/design/postgres-adapter.md
      - docs/design/shared-team-concurrency-and-sync.md
      - internal/store
      - cmd/fairway
    target_paths:
      - cmd/fairway
      - internal/store
      - docs/design/postgres-adapter.md
      - docs/design/shared-team-concurrency-and-sync.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
      - ops
    risk_level: high
    migration_type: postgres-rehearsal-harness
    dependencies:
      - FW-255
      - FW-258
    acceptance_checks:
      - "Disposable Postgres or server-backed store rehearsal applies reviewed DDL or documented compatibility output."
      - "Imports a SQLite Fairway backup/export and verifies task/evidence/review/session/report read-model equivalence."
      - "Records backup/provenance manifest and rollback instructions."
      - "No production/shared dashboard store is switched under this task."
      - "CI/local harness can be rerun from documented commands."

  - id: FW-277
    title: Prove disposable Postgres apply import readback
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: storage
    source_paths:
      - docs/design/postgres-adapter.md
      - docs/design/shared-team-concurrency-and-sync.md
      - internal/store
      - cmd/fairway
    target_paths:
      - cmd/fairway
      - internal/store
      - docs/design/postgres-adapter.md
      - docs/design/shared-team-concurrency-and-sync.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
      - ops
      - security
    risk_level: high
    migration_type: disposable-postgres-apply-import-proof
    dependencies:
      - FW-273
    acceptance_checks:
      - "A disposable isolated Postgres environment applies reviewed DDL or records exact unsupported DDL gaps without switching the runtime store."
      - "A SQLite Fairway backup/export is imported or replayed into the disposable target, or the missing import capability is reported with exact follow-up acceptance."
      - "Readback proves task/evidence/review/session/report equivalence against the source rehearsal packet, or records deterministic mismatches and rollback/disposal evidence."
      - "Harness output includes provenance manifest, cleanup/disposal proof, and rollback notes."
      - "SQLite remains the default store; no production migration, public/shared API exposure, dashboard restart, release, or cutover readiness claim is made."

  - id: FW-274
    title: Package local small-team Fairway deployment for Mac mini GitLab lab
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: deployment
    source_paths:
      - docs/design/shared-team-deployment-operations.md
      - docs/config-reference.md
      - docs/quickstart.md
      - cmd/fairway
    target_paths:
      - docs/operations
      - docs/config-reference.md
      - docs/quickstart.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - ops
      - security
    risk_level: high
    migration_type: small-team-lab-packaging
    dependencies:
      - FW-259
      - FW-269
      - FW-270
    acceptance_checks:
      - "Runbook covers install, config, secrets, dashboard/server start, pid/log files, backup/restore, and version readback."
      - "No root-owned application data under root filesystem; data paths are configurable."
      - "Local GitLab/Mac mini or equivalent lab can start the read-only shared dashboard/server from scratch."
      - "Smoke checks verify status, board, reports, API readback, Cloudflare/Pomerium/no-edge boundary as applicable."
      - "Evidence records exact binary/version/config and cleanup/rollback."

  - id: FW-275
    title: Run small-team shared Fairway pilot and capture operator feedback
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: adoption
    source_paths:
      - docs/design/shared-team-operating-model.md
      - docs/design/shared-team-deployment-operations.md
      - docs/design/small-team-autonomy-operating-model.md
      - docs/release-notes.md
    target_paths:
      - docs/assessment
      - docs/design/small-team-autonomy-operating-model.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - ops
      - security
    risk_level: high
    migration_type: shared-team-pilot
    dependencies:
      - FW-269
      - FW-270
      - FW-274
    acceptance_checks:
      - "Pilot defines participating roles, allowed commands, forbidden actions, and fallback to local CLI."
      - "Operators use the shared surface for at least one review/wait/evidence workflow without hidden authority."
      - "Rough edges are recorded with owner/severity/fix-now-or-defer decisions."
      - "Delivery/process metrics compare shared-team pilot against local-only workflow."
      - "Closeout recommends promote, repeat pilot, or block shared-team support with exact reasons."

  - id: FW-276
    title: Prepare Fairway shared-team implementation release packet
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - CHANGELOG.md
      - docs/release-notes.md
      - docs/release-highlights.md
      - docs/assessment
      - docs/design/shared-team-operating-model.md
      - docs/design/shared-team-server-api.md
      - docs/design/shared-team-concurrency-and-sync.md
      - docs/design/shared-team-deployment-operations.md
    target_paths:
      - CHANGELOG.md
      - docs/release-notes.md
      - docs/release-highlights.md
      - docs/assessment
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - ops
      - security
    risk_level: high
    migration_type: shared-team-release-prep
    dependencies:
      - FW-269
      - FW-270
      - FW-271
      - FW-272
      - FW-273
      - FW-274
      - FW-275
    acceptance_checks:
      - "Release notes/changelog/highlights summarize implemented shared-team capabilities and explicit non-claims."
      - "Validation packet includes tests, deployment smoke, backup/restore, identity/authz, and pilot evidence."
      - "Release boundary reviews are complete before tag/publish."
      - "Dashboard restart/version readback is a separate tracked closeout step if release is published."

  - id: FW-278
    title: Add Fairway doctor and capability preflight diagnostics
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: diagnostics
    source_paths:
      - docs/design/cli.md
      - docs/design/provider-surface-capability-readiness.md
      - docs/design/coordinator-loop.md
      - cmd/fairway
      - internal/config
    target_paths:
      - cmd/fairway
      - internal/config
      - docs/design/cli.md
      - docs/design/provider-surface-capability-readiness.md
      - docs/design/coordinator-loop.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - backend
      - governance
      - ops
    risk_level: medium
    migration_type: doctor-preflight-diagnostics
    dependencies:
      - FW-277
    acceptance_checks:
      - "Fairway exposes a read-only doctor/preflight diagnostic surface for local execution dependencies such as Go cache, git write lane, tmux, Docker/Postgres proof tools, browser/dashboard reachability, config paths, and provider capability probes."
      - "Diagnostics report structured pass/warn/fail rows with owner, suggested command, evidence path, and whether the finding blocks task work, release, dashboard restart, or shared-team pilot."
      - "The surface does not mutate task state, run live operations, start providers, approve work, push, deploy, restart dashboards, or expose secrets."
      - "Tests cover missing tool, sandbox/git lock guidance, configured path checks, and JSON/human output."

  - id: FW-279
    title: Add lane runtime lifecycle start status logs stop model
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: runtime
    source_paths:
      - docs/design/shared-team-operating-model.md
      - docs/design/shared-team-deployment-operations.md
      - docs/design/coordinator-loop.md
      - cmd/fairway
      - internal/store
    target_paths:
      - cmd/fairway
      - internal/store
      - docs/design/cli.md
      - docs/design/shared-team-operating-model.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
      - ops
    risk_level: high
    migration_type: lane-runtime-lifecycle
    dependencies:
      - FW-270
    acceptance_checks:
      - "Fairway defines lane runtime records and CLI/read-model surfaces for start, status, logs, and stop/readback of provider or helper lanes without storing raw transcripts, prompts, tool bodies, or secrets."
      - "Lifecycle commands record durable session/checkpoint/evidence state and distinguish advisory observation from authority to run provider prompts or mutate project state."
      - "Stop/status/logs behavior is bounded for local/tmux lanes first and fails closed for unknown remote runtimes."
      - "Dashboard remains read-only; no provider-send, approval, merge, deploy, release, public exposure, or live-operation authority is added."
      - "Tests cover start/status/log/stop records, stale or missing process readback, log redaction/path safety, and no raw private content persistence."

  - id: FW-280
    title: Add agent optimized structured output contracts
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: integration
    source_paths:
      - docs/design/cli.md
      - docs/design/context-packets.md
      - docs/design/provider-notifications.md
      - docs/design/shared-team-server-api.md
      - cmd/fairway
    target_paths:
      - cmd/fairway
      - docs/design/cli.md
      - docs/design/context-packets.md
      - docs/design/shared-team-server-api.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
    risk_level: medium
    migration_type: agent-structured-output-contracts
    dependencies:
      - FW-270
    acceptance_checks:
      - "Fairway defines stable agent-oriented JSON contracts for task packets, ready queues, waits, reviews, evidence requirements, lane status, and closeout handbacks so providers do not scrape human text."
      - "Contracts include schema/version fields, allowed enum values, privacy exclusions, and compatibility notes for future changes."
      - "CLI surfaces expose the contracts through explicit JSON modes or packet export commands without storing raw prompts, transcripts, generated content, tool bodies, auth tokens, or provider-private payloads."
      - "Tests cover schema stability, unknown-field tolerance where intended, and no authority expansion through structured output."

  - id: FW-281
    title: Add typed delivery resource model
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: delivery
    source_paths:
      - docs/design/environment-deploy-preflight.md
      - docs/design/delivery-velocity-and-overhead.md
      - docs/design/shared-team-deployment-operations.md
      - internal/store
      - cmd/fairway
    target_paths:
      - docs/design/delivery-resources.md
      - docs/design/environment-deploy-preflight.md
      - docs/design/dashboard.md
      - cmd/fairway
      - internal/store
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - arch
      - backend
      - governance
      - ops
      - security
    risk_level: high
    migration_type: typed-delivery-resource-model
    dependencies:
      - FW-237
      - FW-280
    acceptance_checks:
      - "Fairway models delivery resources such as environments, dashboards, docs portals, binaries, release artifacts, CI pipelines, preflight packets, and rehearsal targets as typed read-model records derived from existing tasks/evidence/config before adding any new store."
      - "Resources expose owner, current state, provenance, last verified version/commit, required evidence, open blockers, and next safe action."
      - "Dashboard/report projections remain read-only and do not grant deploy, restart, publish, public-exposure, approval, merge, or live-operation authority."
      - "Privacy and security boundaries exclude secrets, credentials, raw logs with sensitive data, and arbitrary artifact-content serving."
      - "Design/tests cover duplicate resource names across projects, stale verification, failed preflight/deploy evidence, and handoff-ready resource packets."

  - id: FW-282
    title: Fix CI server write mode test isolation
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: ci
    source_paths:
      - cmd/fairway/main_test.go
      - .github/workflows
    target_paths:
      - cmd/fairway/main_test.go
      - docs/roadmap/fairway-product-backlog.yaml
    risk_level: low
    migration_type: ci-test-fixture-isolation
    dependencies:
      - FW-277
    acceptance_checks:
      - "CI failure run/job URL, failing command, runner, commit SHA, and log excerpt are recorded as Fairway evidence."
      - "The failing server write-mode test creates its own isolated Fairway repo/config fixture before asserting write-mode fail-closed behavior."
      - "Focused `go test ./cmd/fairway -run TestCLI_ServerWriteModeFailsClosed -count=1` passes locally."
      - "`go test ./...`, `go vet ./...`, `git diff --check`, `fairway config validate`, and active reconciliation pass before closeout."
      - "No release, dashboard restart, public exposure, or server write authority change is introduced."

  - id: FW-283
    title: Package one-command small-team lab lifecycle
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: deployment
    source_paths:
      - docs/operations/small-team-lab-deployment.md
      - docs/design/shared-team-deployment-operations.md
      - docs/design/cli.md
      - cmd/fairway
      - examples
    target_paths:
      - cmd/fairway
      - cmd/fairway/main_test.go
      - docs/operations/small-team-lab-deployment.md
      - docs/design/cli.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - backend
      - governance
      - ops
      - security
    risk_level: high
    migration_type: small-team-lab-lifecycle
    dependencies:
      - FW-274
      - FW-278
      - FW-279
    acceptance_checks:
      - "A bounded one-command lab lifecycle starts the loopback read-only shared server with explicit config, listen address, pid file, log file, and binary/version readback."
      - "Companion status, logs, and stop commands fail closed for stale or mismatched pid files and never signal an unrelated process."
      - "The lifecycle refuses non-loopback or write-capable server modes and does not grant dashboard write, provider-send, approval, merge, deploy, release, public-exposure, or live-operation authority."
      - "Focused tests cover start/status/logs/stop, stale pid cleanup, version/config readback, unsafe listen rejection, and restart after a clean stop."
      - "The small-team lab runbook uses the packaged lifecycle and documents operator-owned data, pid, log, backup, restore, smoke, and rollback paths."

  - id: FW-284
    title: Repeat small-team shared Fairway pilot with non-authoring operator
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: adoption
    source_paths:
      - docs/assessment/fairway-small-team-shared-pilot-2026-07-06.md
      - docs/operations/small-team-lab-deployment.md
      - docs/design/small-team-autonomy-operating-model.md
    target_paths:
      - docs/assessment
      - docs/design/small-team-autonomy-operating-model.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - ops
      - security
    risk_level: high
    migration_type: small-team-repeat-pilot
    dependencies:
      - FW-283
    acceptance_checks:
      - "A non-authoring operator runs the packaged lifecycle on the Mac mini GitLab lab or an equivalent isolated host and records exact binary, version, config, pid, log, and cleanup readback."
      - "The operator verifies status, task list, one task detail, reports, and a review/wait/evidence readback flow without enabling server writes or dashboard mutation."
      - "Pilot evidence includes startup and response timings, backup/restore or rollback proof, rough edges with owners, and before/after delivery-process metrics."
      - "Closeout explicitly recommends promote read-only small-team mode, repeat with fixes, or block, while keeping write pilot, trusted-proxy runtime, public exposure, release, deploy, and live-operation authority out of scope."

  - id: FW-285
    title: Refresh Fairway v0.1.10 release packet after shared-team pilot
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - docs/assessment/fairway-v0.1.10-release-prep-2026-07-06.md
      - docs/assessment
      - docs/release-notes.md
      - docs/release-highlights.md
      - CHANGELOG.md
    target_paths:
      - docs/assessment/fairway-v0.1.10-release-prep-2026-07-06.md
      - docs/release-notes.md
      - docs/release-highlights.md
      - CHANGELOG.md
      - docs/roadmap/fairway-product-backlog.yaml
    review_domains:
      - governance
      - ops
      - security
    risk_level: high
    migration_type: shared-team-release-prep-refresh
    dependencies:
      - FW-276
      - FW-281
      - FW-282
      - FW-284
    acceptance_checks:
      - "The v0.1.10 packet is refreshed to the final reviewed source SHA and includes all post-v0.1.9 work, including typed delivery resources, CI isolation, lifecycle packaging, repeat-pilot findings, and current operator-guide media."
      - "Release notes distinguish supported read-only small-team behavior from preview-only write, trusted-proxy, non-loopback, and Postgres runtime boundaries."
      - "Release-prep gates include tests, vet, diff check, config validation, deploy-mode clean/pushed workflow guard, GoReleaser check, local binary smoke, and active reconciliation."
      - "Task remains release preparation only; tag, publish, Homebrew update, dashboard restart, public exposure, and release declaration require separate reviewed tasks."

  - id: FW-286
    title: Publish Fairway v0.1.10 binary docs and Homebrew update
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - docs/assessment/fairway-v0.1.10-release-prep-2026-07-06.md
      - docs/release-notes.md
      - docs/release-highlights.md
      - CHANGELOG.md
      - .github/workflows/release.yml
      - .goreleaser.yaml
    target_paths:
      - GitHub release v0.1.10
      - fairway-run/homebrew-tap
      - docs.fairway.run
    review_domains:
      - governance
      - ops
      - security
    risk_level: critical
    migration_type: release-publish
    dependencies:
      - FW-285
    acceptance_checks:
      - "Tag v0.1.10 is created at the reviewed clean and pushed source SHA and the normal release workflow passes."
      - "GitHub release is public and signed/notarized assets plus checksums return HTTP 200."
      - "Homebrew cask version and tap commit are updated, brew fetch passes, and fairway release verify passes."
      - "Docs workflow passes and production Fairway docs host serves the v0.1.10 support boundary."

  - id: FW-287
    title: Restart Fairway dashboards and verify v0.1.10 readback
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: operations
    source_paths:
      - docs/operations/small-team-lab-deployment.md
    target_paths:
      - Fairway shared dashboard processes
    review_domains:
      - governance
      - ops
    risk_level: high
    migration_type: dashboard-release-readback
    dependencies:
      - FW-286
    acceptance_checks:
      - "Shared read-only and local full dashboards run the released v0.1.10 binary with durable pid/log files."
      - "Status reports version 0.1.10 and exact binary path for both instances."
      - "Local probes pass and the public compatibility hostname preserves its Cloudflare Access boundary."

  - id: FW-288
    title: Fix dashboard status binary and version readback against live process
    kind: bug
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths:
      - cmd/fairway/main.go
    target_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - docs/design/dashboard.md
    review_domains:
      - backend
      - ops
    risk_level: high
    migration_type: dashboard-status-correctness
    acceptance_checks:
      - "Dashboard status derives or verifies version and binary path from the live managed process rather than the invoking CLI binary."
      - "Status fails closed or reports unknown when legacy pid files cannot prove the process binary/version."
      - "Regression covers invoking a newer CLI against an older running dashboard process."

  - id: FW-289
    title: Publish Fairway v0.1.11 dashboard status correctness patch
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths:
      - cmd/fairway/main.go
      - cmd/fairway/main_test.go
      - docs/design/dashboard.md
      - docs/release-notes.md
      - CHANGELOG.md
    target_paths:
      - GitHub release v0.1.11
      - fairway-run/homebrew-tap
      - docs.fairway.run
      - Fairway dashboards
    review_domains:
      - backend
      - governance
      - ops
      - security
    risk_level: critical
    migration_type: patch-release
    dependencies:
      - FW-288
    acceptance_checks:
      - "v0.1.11 contains the reviewed dashboard lifecycle identity fix and passes CI/release verification."
      - "GitHub assets and Homebrew cask 0.1.11 are public and fetchable."
      - "Both dashboards restart on v0.1.11 with JSON lifecycle records and independently verified process paths."

  - id: FW-290
    title: Make Fairway common-path work nearly automatic
    kind: epic
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: product
    source_paths: [docs/design/small-team-autonomy-operating-model.md, docs/design/review-policy-profiles.md, docs/design/work-batch-model.md, cmd/fairway/main.go]
    target_paths: [docs/design/common-path-automation.md, cmd/fairway, internal/dashboard, docs/agent-guide.md, docs/quickstart.md]
    review_domains: [arch, governance, ops]
    risk_level: high
    migration_type: progressive-disclosure-epic
    acceptance_checks:
      - "Routine reversible work uses a compact lifecycle while preserving durable task, session, checkpoint, evidence, review, and closeout records."
      - "Consequential boundaries remain explicit and blocking; no command infers approval, live authority, deploy, release, credential use, or public exposure."
      - "Usability and process metrics prove the common path reduces operator actions and cycle time without reducing defect or rollback evidence."

  - id: FW-291
    parent_id: FW-290
    title: Define Fairway common-path automation and progressive disclosure contract
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: design
    source_paths: [docs/design/small-team-autonomy-operating-model.md, docs/design/review-policy-profiles.md]
    target_paths: [docs/design/common-path-automation.md, README.md, docs/product.md]
    review_domains: [arch, governance, ops]
    risk_level: high
    migration_type: common-path-design
    acceptance_checks:
      - "Design separates common, advanced, and consequential paths and maps each shortcut to existing durable primitives."
      - "Design defines fail-closed inference, idempotency, output, recovery, and measurement requirements."
      - "Anti-goals prevent a hidden workflow engine, approval authority, CI runner, or second coordination store."

  - id: FW-292
    parent_id: FW-290
    title: Implement atomic fairway work start and status
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths: [cmd/fairway/main.go, internal/store]
    target_paths: [cmd/fairway/main.go, cmd/fairway/main_test.go, docs/design/cli.md]
    review_domains: [backend, governance, ops]
    risk_level: high
    migration_type: common-path-start
    dependencies: [FW-291]
    acceptance_checks:
      - "work start atomically resolves one task, attaches/upserts one provider session, transitions or claims the task, and records one active lifecycle checkpoint."
      - "Repeated start is idempotent and reports the existing attachment instead of duplicating state."
      - "work status presents the compact lifecycle plus commands for advanced detail without hiding blockers."

  - id: FW-293
    parent_id: FW-290
    title: Implement guarded fairway work verify and close
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths: [cmd/fairway/main.go, internal/store, internal/reviewpolicy]
    target_paths: [cmd/fairway/main.go, cmd/fairway/main_test.go, docs/design/cli.md, internal/store/store.go, internal/store/store_test.go]
    review_domains: [backend, governance, ops, security]
    risk_level: high
    migration_type: common-path-close
    dependencies: [FW-292]
    acceptance_checks:
      - "work verify records bounded validation evidence without becoming a CI runner or storing raw command output by default."
      - "work close runs existing review/evidence/reconcile gates, closes the session and task only when they pass, and returns exact blockers otherwise."
      - "No close shortcut creates reviews, approvals, deploy authorization, release authorization, or live-operation authority."

  - id: FW-294
    parent_id: FW-290
    title: Add common-path recommendations and progressive dashboard disclosure
    kind: task
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard
    source_paths: [internal/dashboard, internal/reviewpolicy, cmd/fairway/main.go]
    target_paths: [internal/dashboard, cmd/fairway, docs/design/dashboard.md]
    review_domains: [backend, ui, governance]
    risk_level: high
    migration_type: common-path-ui
    dependencies: [FW-292]
    acceptance_checks:
      - "CLI/dashboard lead with current action, blockers, and boundary status while keeping primitive-level audit detail available on demand."
      - "Recommendations are deterministic and advisory; ambiguous task/risk/session inference fails closed."
      - "Small changes do not display false missing-review or zero-value diagnostic states."

  - id: FW-295
    parent_id: FW-290
    title: Pilot and measure Fairway common-path process weight
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: adoption
    source_paths: [docs/design/common-path-automation.md, internal/deliveryreport]
    target_paths: [docs/assessment, docs/design/common-path-automation.md, internal/deliveryreport]
    review_domains: [governance, ops]
    risk_level: high
    migration_type: common-path-pilot
    dependencies: [FW-293, FW-294, FW-303, FW-306]
    acceptance_checks:
      - "Pilot compares manual actions, authoring time, elapsed time, review waits, defects caught, reopen/retry count, evidence completeness, rollback confidence, and resume quality."
      - "Pilot measures hollow-but-present decisions, false-positive deviations, stale memory, promotion debt, and closeout delay rather than decision presence alone."
      - "Promotion requires lower common-path effort without weaker consequential-boundary enforcement; reversible work stays advisory when blocking adds ceremony without outcome improvement."
      - "Findings produce concrete automation or policy follow-ups rather than adding default ceremony."

  - id: FW-296
    title: Close AI Cloud consumer-driven Fairway gaps
    kind: epic
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: product
    source_paths: [docs/assessment]
    target_paths: [docs/design, cmd/fairway, internal]
    review_domains: [arch, governance, ops]
    risk_level: high
    migration_type: consumer-gap-epic
    acceptance_checks:
      - "AI Cloud operational pain is converted into bounded Fairway product tasks with evidence and ownership."
      - "Fixes reduce coordination noise without weakening durable evidence or consequential boundaries."

  - id: FW-297
    parent_id: FW-296
    title: Add reviewer-domain routing coverage preflight
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: review-routing
    source_paths: [internal/config, internal/reviewstate]
    target_paths: [cmd/fairway, internal/config, docs/design]
    review_domains: [backend, governance, ops]
    risk_level: high
    migration_type: review-routing-preflight
    acceptance_checks:
      - "A project can validate every review domain used by active tasks before waits become mapping_required."
      - "Output distinguishes configured aliases, routes, provider targets, and actionable missing mappings."

  - id: FW-298
    parent_id: FW-296
    title: Add lifecycle-aware historical wait triage and bulk resolution
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: waits
    source_paths: [internal/reviewstate, internal/completionhandback]
    target_paths: [cmd/fairway, internal/dashboard, docs/design]
    review_domains: [backend, governance, ops]
    risk_level: high
    migration_type: wait-hygiene
    acceptance_checks:
      - "Open-wait projections suppress resolved terminal and superseded facts while preserving immutable history."
      - "Operators can preview and record bounded bulk acknowledgement or supersede decisions without deleting evidence."

  - id: FW-299
    parent_id: FW-296
    title: Make failure routing state and follow-up aware
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: failure-routing
    source_paths: [internal/audit, cmd/fairway]
    target_paths: [internal/audit, cmd/fairway, docs/design]
    review_domains: [backend, governance, ops]
    risk_level: high
    migration_type: failure-routing-noise
    acceptance_checks:
      - "Failure routing does not classify passing closeout commands or superseded historical evidence as missing local gates."
      - "Existing follow-up tasks and terminal task state suppress duplicate recommendations while preserving source evidence."

  - id: FW-300
    parent_id: FW-296
    title: Keep managed Fairway binaries out of consumer worktrees
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: lifecycle
    source_paths: [cmd/fairway, docs/operations]
    target_paths: [cmd/fairway, docs/operations]
    review_domains: [backend, ops, security]
    risk_level: high
    migration_type: managed-binary-cache
    acceptance_checks:
      - "Managed binary installs default to an OS/user cache outside the consumer repository or install a durable ignore rule explicitly."
      - "Upgrade, rollback, status, and cleanup preserve exact binary/version readback without dirtying project git status."

  - id: FW-301
    parent_id: FW-296
    title: Add consumer capability and minimum-version readiness report
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: readiness
    source_paths: [cmd/fairway, internal/config]
    target_paths: [cmd/fairway, internal/config, docs/design]
    review_domains: [arch, backend, ops]
    risk_level: high
    migration_type: consumer-capability-readiness
    acceptance_checks:
      - "Consumer config can declare or derive required Fairway capabilities and minimum version."
      - "Readiness reports exact missing commands, schema, and features plus pinned and running binary versions without mutating or upgrading automatically."

  - id: FW-302
    parent_id: FW-290
    title: Define task decision memory and curated reasoning contract
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: design
    source_paths: [docs/design/common-path-automation.md, docs/design/coordination-intelligence.md]
    target_paths: [docs/design/task-decision-memory.md, docs/design/cli.md, docs/design/small-team-autonomy-operating-model.md]
    review_domains: [arch, governance, ops, security]
    risk_level: high
    migration_type: task-decision-memory-design
    dependencies: [FW-291]
    acceptance_checks:
      - "The model separates transcript, task memory, decision record, track memory, project memory, evidence, and git diff authority."
      - "Material scope deviations require a concise decision with trigger, alternatives, reason, risk, changed scope, and evidence references."
      - "Retention and privacy rules keep raw provider reasoning optional and non-authoritative."

  - id: FW-303
    parent_id: FW-290
    title: Implement task decision records and decision-aware context packets
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths: [cmd/fairway/main.go, internal/store]
    target_paths: [cmd/fairway, internal/store, docs/design/cli.md]
    review_domains: [arch, backend, governance, security]
    risk_level: high
    migration_type: task-decision-memory
    dependencies: [FW-302]
    acceptance_checks:
      - "Fairway records structured doer-drafted task decisions using a privacy-bounded canonical model without storing raw transcripts."
      - "Task detail, work status, and context packets expose current and superseded decisions, scope additions, risks, quality state, and supporting fact references."
      - "Decision quality states distinguish draft, accepted, insufficient, and superseded; low-risk reversible work remains advisory while consequential decisions require independent acceptance."
      - "Decision text cannot grant approval, merge, deploy, credential, release, or live-operation authority."

  - id: FW-304
    parent_id: FW-290
    title: Require explanation for material intent-to-diff deviations at work close
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: workflow
    source_paths: [cmd/fairway/main.go, internal/git, internal/rules]
    target_paths: [cmd/fairway, internal/git, internal/reviewpolicy, docs/design/cli.md, docs/design/task-decision-memory.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: intent-diff-deviation-gate
    dependencies: [FW-293, FW-303, FW-295]
    acceptance_checks:
      - "Work verify compares material changed paths and ownership domains with declared task scope and identifies unexplained additions."
      - "Before pilot promotion, deviation findings are advisory for reversible work and blocking only at existing consequential boundaries."
      - "After measured promotion, work close blocks unexplained material deviations but permits accepted generated, mechanical, or explicitly reviewed scope changes."
      - "The gate uses git diff and accepted structured decisions as authority; raw transcripts remain optional forensic references only."

  - id: FW-305
    parent_id: FW-290
    title: Preserve provider lifecycle identity in custom work-start summaries
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli
    source_paths: [cmd/fairway/main.go, internal/reconcile]
    target_paths: [cmd/fairway/main.go, cmd/fairway/main_test.go, docs/design/cli.md]
    review_domains: [backend, governance, ops]
    risk_level: high
    migration_type: work-start-lifecycle-identity
    dependencies: [FW-292]
    acceptance_checks:
      - "Custom work-start summary always retains a stable session identity that active reconciliation can match."
      - "Regression proves custom summary starts and repeats reconcile cleanly without duplicate lifecycle checkpoints."

  - id: FW-306
    parent_id: FW-290
    title: Add track-memory lifecycle reconciliation promotion debt and durability proof
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: memory
    source_paths: [internal/store, docs/design/task-decision-memory.md]
    target_paths: [cmd/fairway, internal/store, internal/dashboard, docs/design]
    review_domains: [arch, backend, governance, ops]
    risk_level: high
    migration_type: track-memory-lifecycle
    dependencies: [FW-303]
    acceptance_checks:
      - "Every active track memory record has owner, review date, source facts, and disposition state."
      - "Read-only reconciliation reports stale entries, missing ownership, conflicting or superseded facts, and promotion debt with previewed promote, refresh, archive, or supersede actions."
      - "No memory is silently deleted or promoted; disposition is immutable and auditable, and canonical docs remain authoritative after promotion."
      - "Backup, export, restore, and shared-store rehearsal prove track memory is recoverable after machine loss."

  - id: FW-307
    parent_id: FW-290
    title: Harden decision-memory lifecycle and lightweight enforcement design
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: design
    source_paths: [docs/design/task-decision-memory.md, docs/design/common-path-automation.md]
    target_paths: [docs/design/task-decision-memory.md, docs/design/common-path-automation.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, governance, ops]
    risk_level: high
    migration_type: decision-memory-lifecycle-design
    dependencies: [FW-302]
    acceptance_checks:
      - "Track memory has owner, review date, disposition, promotion debt, and tested durability requirements."
      - "Decision quality distinguishes draft, accepted, insufficient, and superseded rather than gating on presence alone."
      - "Reversible work remains advisory until pilot evidence justifies broader enforcement."

  - id: FW-308
    title: Define Fairway agent-native product and explainability contract
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: product
    source_paths: [docs/product.md, docs/governed-agentic-engineering.md, docs/design/task-decision-memory.md]
    target_paths: [docs/design/agent-native-product-interface.md, README.md, docs/product.md]
    review_domains: [arch, governance, ops, security]
    risk_level: high
    migration_type: agent-native-product-contract
    acceptance_checks:
      - "The product explicitly identifies agents as primary operational users and humans as consequential judgment authorities."
      - "The design test requires replacement-agent continuation and human-defensible outcomes without transcript trust."
      - "Explainability separates retrieved facts, model inference, unknowns, and reviewed provenance."

  - id: FW-309
    parent_id: FW-290
    title: Implement grounded fairway explain code packet
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: explainability
    source_paths: [internal/git, internal/store, internal/provenance]
    target_paths: [cmd/fairway, internal/git, internal/provenance, docs/design/cli.md, docs/design/agent-native-product-interface.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, backend, governance, security]
    risk_level: high
    migration_type: explain-code-packet
    dependencies: [FW-303, FW-304]
    acceptance_checks:
      - "Explain code resolves file, symbol, line, commit, or task entry points into cited task, diff, decision, contract, evidence, and review facts."
      - "Packet labels recorded facts, conflicts, missing provenance, and bounded machine inference inputs without generating historical rationale."
      - "Output is deterministic JSON or Markdown and excludes raw transcripts, secrets, prompts, and tool bodies."

  - id: FW-310
    parent_id: FW-290
    title: Add advisory LLM narrative over grounded explain packets
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: explainability
    source_paths: [internal/provenance, internal/config]
    target_paths: [cmd/fairway, internal/config, internal/provenance, docs/config-reference.md, docs/design, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, backend, governance, security]
    risk_level: high
    migration_type: explain-code-narrative
    dependencies: [FW-309]
    acceptance_checks:
      - "An optional configured advisory provider turns a grounded explain packet into human-readable narrative with citations."
      - "Every statement is labeled recorded, inferred, or unknown and generated text is never written back as accepted historical provenance."
      - "Provider use is optional, privacy-bounded, and grants no task, review, merge, deploy, release, credential, or live-operation authority."

  - id: FW-311
    title: Prepare Fairway v0.1.12 agent-native common-path release
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths: [docs/release-notes.md, docs/release-highlights.md, CHANGELOG.md]
    target_paths: [CHANGELOG.md, docs/release-notes.md, docs/release-highlights.md, docs/assessment, docs/roadmap/fairway-product-backlog.yaml, GitHub-release-v0.1.12, fairway-run/homebrew-tap, docs.fairway.run]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: agent-native-release-prep
    dependencies: [FW-291, FW-292, FW-293, FW-294, FW-295, FW-297, FW-298, FW-299, FW-300, FW-301, FW-303, FW-304, FW-305, FW-306, FW-307, FW-308, FW-309, FW-310, FW-312]
    acceptance_checks:
      - "All common-path, decision-memory, consumer-gap, and explainability tasks included in the release are done with reviewed evidence."
      - "Release packet states implemented versus advisory behavior and does not claim deterministic LLM reproducibility."
      - "CI, docs, release assets, Homebrew, version readback, and dashboard restart have explicit publish and verification tasks."

  - id: FW-313
    title: Publish Fairway v0.1.12 binary docs and Homebrew update
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release
    source_paths: [docs/assessment/fairway-v0.1.12-release-prep-2026-07-11.md, docs/release-notes.md, docs/release-highlights.md, CHANGELOG.md]
    target_paths: [GitHub-release-v0.1.12, fairway-run/homebrew-tap, docs.fairway.run]
    review_domains: [governance, ops, security]
    risk_level: critical
    migration_type: release-publish
    dependencies: [FW-311]
    acceptance_checks:
      - "Deploy-mode clean/pushed guard, exact local/remote source SHA, absent v0.1.12 tag, tests, vet, GoReleaser, config, and release-ldflags smoke pass before tag creation."
      - "An annotated v0.1.12 tag is created at the reviewed source SHA and published through the normal GitHub Actions and GoReleaser path without moving an existing tag."
      - "GitHub assets and checksums, docs release content, Homebrew tap/cask version, and brew fetch are verified and recorded."
      - "Dashboard restart and public exposure changes remain outside this publish task and are owned by FW-314."

  - id: FW-314
    title: Restart shared Fairway dashboards on v0.1.12 and record version readback
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-lifecycle
    source_paths: [docs/operations/small-team-lab-deployment.md, docs/design/dashboard.md]
    target_paths: [AI-Cloud-dashboard-7878, AI-Cloud-dashboard-7879]
    review_domains: [governance, ops]
    risk_level: critical
    migration_type: dashboard-release-restart
    dependencies: [FW-313]
    acceptance_checks:
      - "The released v0.1.12 binary is installed outside consumer worktrees and both shared dashboards restart with distinct durable pid and log files."
      - "Status readback records version, binary, config, listen address, read-only/full mode, pid, and log identity for ports 7878 and 7879."
      - "Local root/board probes and the public Cloudflare Access boundary probe pass without changing dashboard authority or public exposure policy."

  - id: FW-315
    title: Assess v0.1.12 dashboard performance on real AI Cloud data
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-performance
    source_paths: [internal/dashboard, docs/design/dashboard.md]
    target_paths: [docs/assessment, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [backend, ui, ops]
    risk_level: high
    migration_type: dashboard-performance-assessment
    dependencies: [FW-314]
    acceptance_checks:
      - "Cold and warm TTFB and total time are measured for root, board, diagnostics, reports, task detail, and lazy panel routes on both 7878 and 7879 using the real AI Cloud data set."
      - "The assessment captures dashboard_timing projection breakdowns, cache hit/miss behavior, DB row counts, contention, memory/CPU, and browser-visible usability against documented budgets and FW-250 through FW-254 baselines."
      - "Confirmed bottlenecks become bounded Fairway tasks with owning layer, reproduction, baseline, target, regression coverage, and no dashboard authority change; product defects remain separate from data/archive hygiene and deployment/runtime findings."

  - id: FW-316
    title: Bound dashboard SSE polling to incremental work and idle CPU budget
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-events
    source_paths: [internal/dashboard/sse_events.go, internal/store]
    target_paths: [internal/dashboard, internal/store, docs/design/dashboard.md]
    review_domains: [backend, ops]
    risk_level: high
    migration_type: dashboard-sse-performance
    dependencies: [FW-315]
    acceptance_checks:
      - "One idle /events client on the 1747-task AI Cloud fixture consumes under 5% CPU averaged over 30 seconds while preserving the documented under-1.5-second event latency budget."
      - "Polling uses an incremental cursor or equivalent bounded read and does not recompute full review-wait/gate projections every second when no relevant facts changed."
      - "Tests cover idle stream CPU/work counters, new-event delivery, reconnect cursor behavior, stale review-wait transitions, and no dashboard authority change."

  - id: FW-317
    title: Remove heavy coordinator and closeout work from dashboard wall first response
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-read-model
    source_paths: [internal/dashboard, internal/coordinator, internal/closeout]
    target_paths: [internal/dashboard, docs/design/dashboard.md]
    review_domains: [backend, ui, ops]
    risk_level: high
    migration_type: dashboard-wall-fast-path
    dependencies: [FW-315]
    acceptance_checks:
      - "Cold / on the 1747-task AI Cloud fixture completes under 2 seconds without an SSE contention load; warm response remains under 200 ms."
      - "Coordinator plan and closeout debt remain visible through bounded lazy or cached read-only panels and skipped state is never rendered as a clean zero."
      - "Regression records per-block timing and proves the wall first response does not execute the current 9-19 second coordinator projection or multi-second closeout loop."

  - id: FW-318
    title: Batch dashboard delivery reports and remove full task-detail loops
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-reports
    source_paths: [internal/dashboard/reports.go, internal/deliveryreport, internal/store]
    target_paths: [internal/dashboard, internal/deliveryreport, internal/store, docs/design/reports.md]
    review_domains: [backend, ui, ops]
    risk_level: high
    migration_type: dashboard-report-batching
    dependencies: [FW-315]
    acceptance_checks:
      - "Cold /reports on the 1747-task AI Cloud fixture completes under 3 seconds and warm response remains under 200 ms."
      - "Reports facts, delivery, and rough-edge projections use bounded batch readers and no longer perform 1747 TaskDetail hydrations per render."
      - "Tests cover report equivalence, projection call counts, concurrent singleflight behavior, and no dashboard mutation or authority change."

  - id: FW-319
    title: Split dashboard diagnostics into independently bounded progressive panels
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-diagnostics
    source_paths: [internal/dashboard, internal/coordinator, internal/reconcile]
    target_paths: [internal/dashboard, docs/design/dashboard.md]
    review_domains: [backend, ui, ops]
    risk_level: high
    migration_type: dashboard-diagnostics-progressive-load
    dependencies: [FW-315]
    acceptance_checks:
      - "Diagnostics shell remains under 200 ms and each heavy panel returns or exposes progress independently with a target under 3 seconds on the AI Cloud fixture."
      - "Coordinator, audit, closeout, and reconciliation failures are isolated so a 10-second coordinator or 7-second audit projection does not hold the complete 1.2 MB diagnostics response."
      - "No-JS fallbacks and tests preserve read-only visibility without adding dashboard send, approval, merge, deploy, or live authority."

  - id: FW-320
    title: Instrument and optimize dashboard task-detail read model
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-task-detail
    source_paths: [internal/dashboard/server.go, internal/store]
    target_paths: [internal/dashboard, internal/store, docs/design/dashboard.md]
    review_domains: [backend, ui, ops]
    risk_level: high
    migration_type: dashboard-task-detail-performance
    dependencies: [FW-315]
    acceptance_checks:
      - "Task detail for a high-evidence AI Cloud task completes under 1 second cold and warm on the 1747-task fixture."
      - "dashboard_timing exposes named task-detail projection blocks and row/call counts so regressions are attributable."
      - "Batching or bounded caching preserves exact review/evidence/wait/media semantics and invalidates on relevant mutation without changing authority."

  - id: FW-321
    title: Prevent static and unknown dashboard routes from running wall projections
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-routing
    source_paths: [internal/dashboard/server.go, internal/dashboard/assets]
    target_paths: [internal/dashboard, docs/design/dashboard.md]
    review_domains: [backend, ui]
    risk_level: medium
    migration_type: dashboard-static-route-guard
    dependencies: [FW-315]
    acceptance_checks:
      - "Requests such as /favicon.ico and unknown asset paths return a bounded static response or 404 under 50 ms and never invoke dashboardViewData."
      - "Regression proves route matching does not fall through to the wall handler while valid wall, board, reports, task, event, and asset routes remain unchanged."

  - id: FW-322
    title: Define AI Cloud Fairway dataset archive and retention hygiene packet
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: data-hygiene
    source_paths: [docs/design, internal/store]
    target_paths: [docs/assessment, docs/design, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [governance, ops]
    risk_level: medium
    migration_type: dashboard-dataset-hygiene
    dependencies: [FW-315]
    acceptance_checks:
      - "Packet classifies 1702 terminal tasks, 216 stale checkpoints, 245 old handoffs, 37 blocked tasks, and the 13 MB DB plus 14 MB WAL without deleting or rewriting evidence."
      - "Recommendations separate archive/export, checkpoint and WAL maintenance, retention, and active read-model filtering, with reversible dry-run proof and restore validation."
      - "No data cleanup runs under this task and no product latency defect is closed merely by reducing the fixture."

  - id: FW-323
    title: Benchmark and bound dual-dashboard SQLite and client contention
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: dashboard-runtime
    source_paths: [internal/dashboard, docs/operations, scripts/dashboard-contention-benchmark.sh]
    target_paths: [docs/assessment, docs/operations, internal/dashboard, scripts/dashboard-contention-benchmark.sh]
    review_domains: [arch, backend, ops]
    risk_level: high
    migration_type: dashboard-runtime-contention
    dependencies: [FW-315, FW-316]
    acceptance_checks:
      - "A repeatable harness measures two dashboard processes, one or more SSE clients, WAL state, cache isolation, CPU, RSS, and route latency on the same SQLite database."
      - "After the SSE fix, one active read-only client causes less than 20 percent cold-route degradation on the local full dashboard and does not hold a CPU core while idle."
      - "Recommendations distinguish SQLite deployment limits from product projection defects and do not switch stores, expose a public endpoint, or change dashboard authority."

  - id: FW-312
    title: Make latest review verdict ordering deterministic
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: store
    source_paths: [internal/store, internal/coordinator]
    target_paths: [internal/store, internal/coordinator, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [backend, governance, ops]
    risk_level: high
    migration_type: review-ordering
    acceptance_checks:
      - "Review readers order append-only rows by durable row id so latest verdict is deterministic even when timestamps tie or the wall clock moves backward."
      - "Coordinator review completion handback tests pass repeatedly for changes-then-approved and approved-then-changes sequences."

  - id: FW-324
    title: Reframe Fairway product narrative and documentation
    kind: epic
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: product-documentation
    source_paths: [README.md, docs, website]
    target_paths: [README.md, docs, website, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, governance, ui]
    risk_level: medium
    migration_type: product-narrative-docs-epic
    acceptance_checks:
      - "Fairway is consistently presented as the engineering control and accountability layer for agent-driven delivery, with coordination as a capability rather than the category definition."
      - "The public documentation has a short path for adopters and progressive disclosure for advanced operating-model concepts."
      - "Claims, comparisons, examples, and case studies distinguish implemented capability, validated practice, planned work, and explicit non-goals."

  - id: FW-325
    title: Establish evidence-backed Fairway positioning and claims
    kind: docs
    parent_id: FW-324
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: product-positioning
    source_paths: [README.md, docs/product.md, docs/design/product-boundaries.md, docs/design/agent-native-product-interface.md]
    target_paths: [README.md, docs/product.md, docs/design/product-boundaries.md, docs/docs-portal.md]
    review_domains: [arch, governance]
    risk_level: medium
    migration_type: evidence-backed-positioning
    acceptance_checks:
      - "The primary narrative leads with accountable intent, decisions, evidence, independent judgment, and promotion rather than worktrees or lane mechanics."
      - "A claim inventory labels implemented, validated, experimental, planned, and non-goal statements and removes unsupported compliance or market claims."
      - "The narrative explains how Fairway composes with coding agents, source control, CI/CD, issue trackers, and orchestrators without claiming to replace them."

  - id: FW-326
    title: Redesign Fairway documentation information architecture
    kind: docs
    parent_id: FW-324
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: docs-information-architecture
    source_paths: [docs, website]
    target_paths: [docs/docs-portal.md, docs, website]
    review_domains: [governance, ui]
    risk_level: medium
    migration_type: docs-information-architecture
    dependencies: [FW-325]
    acceptance_checks:
      - "Navigation separates evaluate, get started, use, operate, integrate, understand, and reference journeys instead of mirroring internal feature vocabulary."
      - "Every current document is classified as canonical, supporting reference, assessment/evidence, release material, or archive candidate, with one named canonical owner per subject."
      - "Duplicate and superseded narratives have merge/archive dispositions so the rewrite reduces document and concept duplication rather than adding another layer."

  - id: FW-327
    title: Prove the five-minute Fairway first-value path
    kind: task
    parent_id: FW-324
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: onboarding
    source_paths: [README.md, docs/quickstart.md, docs/agent-guide.md, cmd/fairway]
    target_paths: [README.md, docs/quickstart.md, docs/agent-guide.md, docs/assessment]
    review_domains: [backend, governance, ops, ui]
    risk_level: medium
    migration_type: first-value-onboarding
    dependencies: [FW-325]
    acceptance_checks:
      - "A new adopter can install or run Fairway, initialize a repository, complete one bounded work item, and inspect its decision/evidence record in five minutes without learning the full vocabulary."
      - "A clean-environment rehearsal records commands, elapsed time, confusion points, defaults, artifacts, cleanup, and a pass/fail recommendation."
      - "Advanced concepts remain discoverable through progressive links and do not interrupt the common path unless a consequential boundary requires them."

  - id: FW-328
    title: Consolidate Fairway concepts into a progressive operating guide
    kind: docs
    parent_id: FW-324
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: concept-model
    source_paths: [docs/design, docs/agent-guide.md, docs/governed-agentic-engineering.md]
    target_paths: [docs/design/concepts.md, docs/agent-guide.md, docs/governed-agentic-engineering.md, docs/archive]
    review_domains: [arch, governance]
    risk_level: medium
    migration_type: concept-consolidation
    dependencies: [FW-326, FW-327]
    acceptance_checks:
      - "The minimum vocabulary needed for common work is explicitly separated from advanced coordination, shared-team, release, and forensic concepts."
      - "Overlapping concept documents are consolidated or cross-referenced to one canonical definition; superseded material moves to archive with provenance."
      - "No new core term is introduced without a demonstrated user need, authority boundary, and relationship to existing terminology."

  - id: FW-329
    title: Define Fairway ecosystem category and composition boundaries
    kind: docs
    parent_id: FW-324
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: ecosystem-positioning
    source_paths: [docs/design/provider-surface-capability-readiness.md, docs/design/issue-tracker-integrations.md, docs/design/product-boundaries.md]
    target_paths: [docs/integrations.md, docs/ecosystem.md, README.md, website]
    review_domains: [arch, governance]
    risk_level: medium
    migration_type: ecosystem-category-and-integrations
    dependencies: [FW-325]
    acceptance_checks:
      - "Docs define the ecosystem by durable responsibilities: coding agents, agent orchestrators, source control, CI/CD, issue systems, identity/security controls, and Fairway's independent engineering record and control layer."
      - "The ecosystem page explains authority and composition boundaries without naming, ranking, or comparing individual products."
      - "Specific product names appear only in implementation-specific adapter or integration instructions where they are necessary to use a supported capability."
      - "Implemented integrations are separated from recipes, design directions, and unsupported provider claims."

  - id: FW-330
    title: Publish an evidence-backed AI Cloud Fairway case study
    kind: docs
    parent_id: FW-324
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: case-study
    source_paths: [docs/assessment, docs/release-notes.md, docs/design/task-decision-memory.md]
    target_paths: [docs/case-studies/ai-cloud.md, website]
    review_domains: [governance, ops]
    risk_level: medium
    migration_type: adopter-case-study
    dependencies: [FW-325, FW-327]
    acceptance_checks:
      - "The case study explains the AI Cloud problem, operating model, representative workflows, measured outcomes, defects or process gaps found, and known limitations."
      - "Every quantitative claim links to durable Fairway or repository evidence and avoids presenting internal activity volume as customer value."
      - "The case study includes concrete examples of provider replacement, context recovery, decision/evidence readback, review, release, and environment rehearsal."

  - id: FW-331
    title: Rebuild and publish the Fairway documentation portal narrative
    kind: docs
    parent_id: FW-324
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: docs-portal
    source_paths: [README.md, docs, website]
    target_paths: [website, docs/docs-portal.md, README.md]
    review_domains: [governance, ui, ops]
    risk_level: high
    migration_type: docs-portal-rebuild
    dependencies: [FW-326, FW-328, FW-329, FW-330]
    acceptance_checks:
      - "Portal landing and navigation communicate product value, audience, first action, authority boundary, and proof before exposing detailed internal concepts."
      - "Quickstart, integrations, operating guide, architecture, reference, case study, release, and security/provenance content are reachable through tested user journeys on desktop and mobile widths."
      - "Local link/navigation/build checks and screenshot-backed visual review pass before publication, with version/source readback and rollback evidence recorded."

  - id: FW-332
    title: Remove GPUaaS-specific assumptions from standalone Fairway
    kind: task
    parent_id: FW-324
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: product-portability
    source_paths: [README.md, cmd/fairway, internal, docs, examples, agents, website]
    target_paths: [README.md, cmd/fairway, internal, docs, examples, agents, website]
    review_domains: [arch, backend, governance, ops]
    risk_level: high
    migration_type: gpuaas-reference-scrub
    dependencies: [FW-325, FW-326]
    acceptance_checks:
      - "An inventory classifies every GPUaaS, GPUasService, and AI Cloud reference as core-product defect, reusable example, compatibility fixture, case study, assessment evidence, release history, or archive material."
      - "Core Fairway code, defaults, help, configuration guidance, agent roles, portal navigation, and reusable examples do not assume GPUaaS repository names, paths, domains, hostnames, task prefixes, roles, or deployment topology."
      - "Legitimate AI Cloud and GPUaaS references remain only in clearly labeled case studies, consumer examples, historical release material, assessments, or compatibility fixtures and do not define standalone product behavior."
      - "Generic replacement fixtures and examples preserve regression coverage, while compatibility aliases or migrations are documented where removal would break existing consumers."
      - "Repository-wide reference checks, tests, config validation, docs build/link validation, and a clean standalone initialization rehearsal pass before closeout."

  - id: FW-333
    title: Perform independent post-v0.1.12 release readiness review
    kind: task
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release-readiness
    source_paths: [README.md, cmd/fairway, internal, docs, examples, website, scripts]
    target_paths: [docs/assessment, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, backend, governance, ops, security, ui]
    risk_level: critical
    migration_type: independent-release-readiness-review
    dependencies: [FW-324, FW-331, FW-332]
    acceptance_checks:
      - "The complete v0.1.12-to-HEAD delta is reviewed for correctness, compatibility, authority changes, security/privacy regressions, operational behavior, documentation claims, and release scope."
      - "A clean validation packet covers full Go tests and vet, config/workflow/reconcile guards, portal build and dependency audit, release tooling, clean first-value rehearsal, and public desktop/mobile portal readback."
      - "GPUaaS and AI Cloud references are verified as classified compatibility, case-study, assessment, release-history, or archive material rather than hidden standalone defaults."
      - "The assessment names material blockers, accepted residual risks, version recommendation, rollback boundary, and an explicit release or hold verdict tied to the reviewed source SHA."

  - id: FW-334
    title: Prepare Fairway v0.1.13 integrated release packet
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release-preparation
    source_paths: [CHANGELOG.md, docs/release-notes.md, docs/release-highlights.md, .goreleaser.yaml, docs/assessment]
    target_paths: [CHANGELOG.md, docs/release-notes.md, docs/release-highlights.md, .goreleaser.yaml, docs/assessment]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: v0.1.13-release-preparation
    dependencies: [FW-333]
    acceptance_checks:
      - "The v0.1.13 changelog, release notes, highlights, package description, exact source SHA, runtime/docs scope, known limits, rollback boundary, and verification checklist are complete and consistent with the canonical product narrative."
      - "Release metadata contains no stale coordination-control-plane category, unsupported compliance/adoption claim, or promotion of shared-write/trusted-proxy/non-loopback/Postgres runtime previews."
      - "Full code, integration, race, release, first-value, portal, and clean/pushed workflow gates pass on the reviewed candidate SHA."

  - id: FW-335
    title: Publish and verify Fairway v0.1.13
    kind: task
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: release-publication
    source_paths: [.goreleaser.yaml, docs/release-notes.md, docs/release-highlights.md, docs/assessment]
    target_paths: [docs/assessment]
    review_domains: [governance, ops, security]
    risk_level: critical
    migration_type: v0.1.13-release-publication
    dependencies: [FW-334]
    acceptance_checks:
      - "The annotated v0.1.13 tag points to the authorized reviewed SHA and the normal release workflow publishes signed/notarized binary assets without moving an existing tag."
      - "GitHub release, checksums, asset HTTP status, Homebrew cask/tap commit, brew fetch, installed version, public docs, and release verification readbacks pass."
      - "Rollback reference remains v0.1.12, and dashboard restart/version readback is either completed under a separate reviewed task or explicitly deferred."

  - id: FW-336
    title: Prove provider replacement on one real agent task
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: adopter-value-proof
    source_paths: [docs/quickstart.md, docs/agent-guide.md, examples/session-adapters, docs/assessment]
    target_paths: [docs/quickstart.md, docs/assessment, website]
    review_domains: [governance, ops, ui]
    risk_level: medium
    migration_type: provider-replacement-adoption-demo
    dependencies: [FW-335]
    acceptance_checks:
      - "A real bounded implementation task starts with one external provider, records intent, checkpoint, material decision, Git state, and evidence, then deliberately ends that provider before completion."
      - "A replacement provider resumes from Fairway and repository facts without private transcript access, completes the task, and identifies any missing context or ceremony."
      - "The resulting optional second quickstart demonstrates user value rather than Fairway self-verification and reports elapsed time, recovered facts, unrecoverable context, rough edges, and cleanup."

  - id: FW-337
    title: Sanitize local paths in public provenance exports
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: provenance-privacy
    source_paths: [internal/provenance, cmd/fairway, docs/design/supply-chain-provenance.md]
    target_paths: [internal/provenance, cmd/fairway, docs/design/supply-chain-provenance.md]
    review_domains: [backend, governance, security]
    risk_level: high
    migration_type: provenance-path-sanitization
    dependencies: [FW-335]
    acceptance_checks:
      - "Public/release provenance export mode emits repository-relative config, database, artifact, and source references and never exposes a local home directory or checkout root."
      - "Regression covers absolute Unix and Windows-style paths, already-relative paths, paths outside the repository, and privacy fail-closed behavior without rewriting authoritative source facts in the Fairway DB."

  - id: FW-338
    title: Make release verify help exit cleanly
    kind: task
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: cli-help
    source_paths: [cmd/fairway/main.go, cmd/fairway/main_test.go]
    target_paths: [cmd/fairway/main.go, cmd/fairway/main_test.go, docs/design/cli.md]
    review_domains: [backend, governance]
    risk_level: low
    migration_type: release-verify-help
    dependencies: [FW-335]
    acceptance_checks:
      - "`fairway release verify --help` exits zero with Fairway-style usage and no raw Go flag error."
      - "Focused regression preserves normal release verification parsing and failure behavior."

  - id: FW-339
    title: Fix v0.1.13 verification page MDX build failure
    kind: task
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: docs-portal
    source_paths: [docs/assessment/fairway-v0.1.13-release-verification-2026-07-11.md, website]
    target_paths: [docs/assessment/fairway-v0.1.13-release-verification-2026-07-11.md]
    review_domains: [governance, ui]
    risk_level: low
    migration_type: docs-mdx-link-fix
    dependencies: [FW-335]
    acceptance_checks:
      - "The public release reference uses MDX-compatible Markdown link syntax and renders as a working external link."
      - "The local Docusaurus production build and the exact pushed Docs Portal workflow pass before closeout."

  - id: FW-340
    title: Build Fairway certification evidence accelerator and sovereign reference profile
    kind: epic
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-assurance
    source_paths: [cmd/fairway, internal, scripts, docs, examples, .github, .goreleaser.yaml]
    target_paths: [cmd/fairway, internal/assurance, scripts, docs, examples, .github, .goreleaser.yaml, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-deployment-readiness-epic
    acceptance_checks:
      - "Fairway provides reusable versioned assurance profiles, deterministic evidence mapping, readiness and gap reporting, assessor-ready package generation, and offline verification for consumer projects."
      - "Generated packages distinguish recorded evidence, customer responsibility, external assessment, exceptions, and missing proof and never grant or imply certification, compliance, authorization, approval, risk acceptance, merge, deploy, release, credential, public-exposure, or live-operation authority."
      - "Fairway's disconnected, sovereign-connected, restricted-data, and customer-managed deployment profiles are the first reference implementation and dogfood package, not a substitute for accredited external certification."

  - id: FW-341
    title: Define sovereign threat model control baseline and claims taxonomy
    kind: docs
    parent_id: FW-340
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-control-baseline
    source_paths: [docs/product.md, docs/design/product-boundaries.md, docs/design/shared-team-operating-model.md, docs/design/supply-chain-provenance.md]
    target_paths: [docs/security/sovereign-deployment-ready.md, docs/security/sovereign-threat-model.md, docs/roadmap/fairway-product-backlog.yaml, website/sidebars.js]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-control-baseline
    dependencies: [FW-333, FW-355]
    acceptance_checks:
      - "The threat model covers disconnected and sovereign-connected operation, malicious artifacts, compromised build infrastructure, operator and reviewer impersonation, insider misuse, evidence tampering, rollback, backup loss, adapter escape, and data-boundary failure."
      - "A control baseline maps applicable Fairway responsibilities to NIST SSDF, NIST 800-53 or 800-171 families, EU CRA technical documentation, and product-evaluation inputs without presenting those mappings as certification."
      - "Claims are classified as implemented, validated, independently assessed, externally certified, customer responsibility, or out of scope, and every public sovereign claim must name its exact profile and evidence version."

  - id: FW-342
    title: Implement enforceable network-isolated Fairway runtime profile
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-runtime-isolation
    source_paths: [cmd/fairway, internal/config, internal/dashboard, internal/networkpolicy, internal/provenance, examples/session-adapters, docs/config-reference.md, docs/roadmap/fairway-product-backlog.yaml]
    target_paths: [cmd/fairway, internal/config, internal/dashboard, internal/networkpolicy, internal/provenance, examples/session-adapters, docs/config-reference.md, docs/design/cli.md, docs/design/provider-surface-capability-readiness.md, docs/security, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: network-isolated-runtime
    dependencies: [FW-341]
    acceptance_checks:
      - "A named sovereign-offline profile fails closed on outbound DNS, HTTP, telemetry, update, external notifier, remote provider, remote identity, and remote asset dependencies while retaining explicitly allowed loopback or local-socket operation."
      - "Fairway doctor and capability readiness report every configured network dependency and prove that ordinary task, evidence, review, report, dashboard, backup, restore, and verification paths operate without external network access."
      - "Automated egress-deny tests cover direct and adapter-mediated network attempts, redirects, proxy environment variables, DNS resolution, and accidental remote assets without weakening existing local trust boundaries."

  - id: FW-343
    title: Build signed offline Fairway installation update and rollback bundle
    kind: task
    parent_id: FW-340
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-offline-distribution
    source_paths: [internal/provenance/release_bundle.go, scripts/release/build_release_assurance_bundle.sh, examples/fairway-config.toml, examples/sovereign-deployment-baselines/v1, docs/security/release-assurance-bundle.md, docs/security/sovereign-deployment-ready.md]
    target_paths: [cmd/fairway/main.go, cmd/fairway/main_test.go, cmd/fairway/release_offline_test.go, cmd/fairway-offline-verify/main.go, internal/offlinebundle, scripts/release/build_offline_distribution_bundle.sh, scripts/ci/offline_distribution_rehearsal.sh, docs/design/cli.md, docs/design/schema.md, docs/governance/release.md, docs/operations/sovereign-offline-bundle.md, docs/security/release-assurance-bundle.md, docs/security/sovereign-deployment-ready.md, docs/roadmap/fairway-product-backlog.yaml, website/sidebars.js]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: signed-offline-distribution
    dependencies: [FW-342, FW-347, FW-348]
    acceptance_checks:
      - "One versioned offline bundle contains supported platform binaries, local documentation, configuration examples, hardened deployment material, checksums, signatures, SBOM, VEX, provenance, licenses, and an inventory manifest without requiring a package registry or CDN."
      - "A small offline verifier validates bundle completeness, artifact digests, signatures, source and builder identity, policy version, and rollback target before installation and fails closed on substitution or missing evidence."
      - "Disconnected install, upgrade, rollback, backup compatibility, and cleanup rehearsals pass from removable-media-style input with exact binary/config/data-path/version readback."

  - id: FW-344
    title: Add sovereign identity and command authorization profile
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-identity-authorization
    source_paths: [internal/config, internal/dashboard, internal/store, internal/identityproof, cmd/fairway, docs/design/shared-team-server-api.md, docs/security/sovereign-threat-model.md]
    target_paths: [internal/config, internal/dashboard, internal/store, internal/identityproof, cmd/fairway, docs/security, docs/config-reference.md, docs/design/shared-team-server-api.md, docs/roadmap/fairway-product-backlog.yaml, website/sidebars.js]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-identity-authorization
    dependencies: [FW-341]
    acceptance_checks:
      - "Supported sovereign profiles bind every shared read or write action to cryptographically verified customer-controlled identity and reject unverified proxy headers, anonymous shared access, and identity fallback."
      - "Command-scoped roles, project scope, separation of duties, session expiry, revocation, and explicit dual-control requirements for consequential actions are machine-readable and fail closed."
      - "Negative tests cover missing or stale proof, role and project confusion, actor spoofing, replay, self-review, break-glass expiry, and audit attribution without adding dashboard approval, deploy, release, credential, or live authority."

  - id: FW-345
    title: Define customer-controlled encryption key and FIPS posture
    kind: task
    parent_id: FW-340
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-cryptography
    source_paths: [internal/config, cmd/fairway/main.go, docs/design/shared-team-deployment-operations.md, docs/security/sovereign-deployment-ready.md]
    target_paths: [internal/config/crypto_posture.go, internal/config/crypto_posture_test.go, internal/config/config.go, cmd/fairway/main.go, cmd/fairway/main_test.go, docs/config-reference.md, docs/design/cli.md, docs/design/shared-team-deployment-operations.md, docs/security/sovereign-cryptography-key-posture.md, docs/security/sovereign-deployment-ready.md, docs/operations/sovereign-key-readiness.md, docs/roadmap/fairway-product-backlog.yaml, website/sidebars.js]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-cryptography-boundary
    dependencies: [FW-341]
    acceptance_checks:
      - "Each sovereign profile identifies encryption-in-transit, at-rest, backup, evidence-export, and signing boundaries plus the customer or platform owner for every key."
      - "Fairway uses customer-approved platform or validated cryptographic modules and never claims that Fairway itself is FIPS 140-3 validated unless the exact evaluated module and configuration are documented."
      - "Capability checks fail readiness when required encryption, key custody, rotation, recovery, or approved-module proof is absent; no bespoke cryptographic primitive is introduced."

  - id: FW-346
    title: Add tamper-evident sovereign audit export and retention controls
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-audit-integrity
    source_paths: [internal/store/store.go, internal/audit, cmd/fairway/main.go, docs/design/schema.md, docs/security/sovereign-threat-model.md]
    target_paths: [internal/store/store.go, internal/store/store_test.go, internal/audit/export.go, internal/audit/export_test.go, cmd/fairway/main.go, cmd/fairway/main_test.go, docs/design/cli.md, docs/design/schema.md, docs/security/sovereign-audit-integrity.md, docs/security/sovereign-deployment-ready.md, docs/operations/sovereign-audit-export.md, docs/roadmap/fairway-product-backlog.yaml, website/sidebars.js]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: tamper-evident-audit-export
    dependencies: [FW-341]
    acceptance_checks:
      - "Audit export cryptographically binds ordered records to actor, action, project, task, policy, source version, and trusted time metadata and detects deletion, insertion, reordering, database rollback, or export substitution."
      - "Customer-controlled signing, rotation, verification, external WORM or SIEM export, retention, legal hold, backup, restore, and verification-failure procedures are documented and rehearsed."
      - "The design preserves Fairway's existing source-of-truth boundaries, stores no raw prompts, transcripts, tool bodies, credentials, or secrets, and does not describe a hash chain as an external certification."

  - id: FW-347
    title: Produce machine-verifiable Fairway release assurance bundle
    kind: task
    parent_id: FW-340
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-release-assurance
    source_paths: [.github/workflows/release.yml, .goreleaser.yaml, internal/provenance, cmd/fairway/main.go, docs/design/supply-chain-provenance.md]
    target_paths: [.github/workflows/release.yml, .github/workflows/ci.yml, scripts/release/build_release_assurance_bundle.sh, internal/provenance/release_bundle.go, internal/provenance/release_bundle_test.go, cmd/fairway/main.go, cmd/fairway/main_test.go, docs/design/cli.md, docs/design/supply-chain-provenance.md, docs/security/release-assurance-bundle.md, docs/security/release-license-overrides.json, docs/governance/release.md, docs/roadmap/fairway-product-backlog.yaml, website/sidebars.js]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-release-assurance-bundle
    dependencies: [FW-341, FW-358, FW-359]
    acceptance_checks:
      - "Every candidate release produces checksums, detached signatures, SPDX or CycloneDX SBOM, VEX, dependency and license inventory, source and build provenance, builder identity, build recipe, test summary, and vulnerability disposition."
      - "Offline and connected verification enforce artifact digest, signature, provenance subject, trusted builder, expected source revision, policy version, and required evidence completeness rather than merely displaying metadata."
      - "The bundle states its measured SLSA properties without overclaiming a level, reproducibility, dependency trust, or certification that the build system has not independently demonstrated."

  - id: FW-348
    title: Package hardened Fairway sovereign deployment baselines
    kind: task
    parent_id: FW-340
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-deployment-hardening
    source_paths: [scripts, examples, docs/operations, docs/design/shared-team-deployment-operations.md]
    target_paths: [internal/deploymentbaseline/baseline.go, internal/deploymentbaseline/baseline_test.go, cmd/fairway/main.go, cmd/fairway/main_test.go, examples/sovereign-deployment-baselines/v1, docs/design/cli.md, docs/design/shared-team-deployment-operations.md, docs/operations/sovereign-deployment-baselines.md, docs/security/sovereign-deployment-ready.md, docs/roadmap/fairway-product-backlog.yaml, website/sidebars.js]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-deployment-hardening
    dependencies: [FW-342, FW-344, FW-345, FW-346]
    acceptance_checks:
      - "Versioned single-host, managed-service, and container or orchestration baselines use least privilege, explicit data paths, rootless execution where supported, local assets, network allowlists, read-only filesystems where practical, and customer secret stores."
      - "Baselines include service identity, firewall, SELinux or AppArmor guidance, configuration signing, drift detection, backup/restore, key recovery, status/version/log readback, resource budgets, upgrade, rollback, and disaster recovery."
      - "A validator reports deviations from the selected baseline without silently changing the system, and no baseline grants dashboard send, approval, merge, deploy, release, credential, or live-operation authority."

  - id: FW-349
    title: Produce sovereign assessor control matrix and evidence package
    kind: docs
    parent_id: FW-340
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-assessor-evidence
    source_paths: [internal/assurance, cmd/fairway, examples/assurance-profiles, docs/security, docs/design, docs/governance, docs/assessment, website/sidebars.js]
    target_paths: [internal/assurance, cmd/fairway, examples/assurance-profiles, examples/oscal, docs/security, docs/design, docs/assurance, docs/assessment, website/sidebars.js]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-assessor-evidence-package
    dependencies: [FW-341, FW-344, FW-345, FW-346, FW-347, FW-348, FW-360]
    acceptance_checks:
      - "The assessor package includes architecture and data flows, threat model, security target draft, control responsibility matrix, secure development lifecycle, vulnerability process, privacy/data inventory, configuration baselines, test strategy, known gaps, and evidence index."
      - "Applicable NIST controls and assessment objectives are exported in human-readable and OSCAL-compatible form with implementation status, customer responsibility, evidence reference, profile, product version, and review date."
      - "EU CRA and EUCC or Common Criteria readiness inputs are separated from certification claims, and unsupported ISO, SOC, CUI, national cloud, or regulatory statements fail the documentation claim guard."

  - id: FW-350
    title: Run independent disconnected sovereign deployment rehearsal
    kind: task
    parent_id: FW-340
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-rehearsal
    source_paths: [scripts, docs/operations, docs/security, docs/assessment]
    target_paths: [scripts, docs/assessment, docs/security]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-disconnected-rehearsal
    dependencies: [FW-343, FW-349, FW-361]
    acceptance_checks:
      - "A non-authoring operator installs and verifies Fairway in a disposable environment with DNS and outbound network denied, no pre-existing caches, and only the signed offline bundle plus documented trust roots."
      - "The rehearsal covers identity, authorization failures, ordinary task/evidence/review workflows, dashboard readback, audit verification, backup/restore, upgrade/rollback, key loss recovery, tampered bundle rejection, and clean disposal."
      - "The packet records exact commands, artifacts, timings, resource use, stop conditions, defects, residual risks, and promote, repeat-with-fixes, or block recommendation without self-certifying external compliance."

  - id: FW-351
    title: Complete Fairway jurisdiction and export-control applicability review
    kind: docs
    parent_id: FW-340
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-jurisdiction-review
    source_paths: [docs/security, docs/product.md, docs/governance/release.md, .goreleaser.yaml]
    target_paths: [docs/security, docs/assessment, docs/governance/release.md]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: jurisdiction-export-applicability
    dependencies: [FW-341, FW-349]
    acceptance_checks:
      - "Qualified review records the product and distribution applicability of EU CRA, EUCC or Common Criteria, NIST CUI procurement, FIPS cryptographic-module requirements, national sovereign-cloud schemes, and other explicitly targeted markets."
      - "US export classification records the applicable ECCN or EAR99 rationale, encryption ENC or reporting decision, release-channel implications, restricted-party and destination screening ownership, and counsel or specialist sign-off without exposing private legal advice."
      - "The result selects concrete target assessments, defers irrelevant certifications with reasons, and prevents public or procurement claims beyond the reviewed jurisdiction, version, configuration, and organizational scope."

  - id: FW-352
    title: Commission independent Fairway sovereign security assessment
    kind: task
    parent_id: FW-340
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-independent-assessment
    source_paths: [docs/security, docs/assessment, cmd/fairway, internal, scripts]
    target_paths: [docs/assessment, docs/security, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-independent-security-assessment
    dependencies: [FW-350, FW-351]
    acceptance_checks:
      - "An independent qualified assessor performs architecture review, secure code review, penetration testing, authorization abuse testing, supply-chain verification, offline escape testing, audit tamper testing, and deployment-baseline assessment against the named profile."
      - "Findings are severity-ranked, reproducible, assigned, remediated or explicitly accepted by authorized owners, retested, and linked to a bounded public summary that exposes no exploit-enabling secrets."
      - "The assessor states what was and was not evaluated; Fairway does not convert a penetration test, control mapping, or readiness review into a certification claim."

  - id: FW-353
    title: Add restricted-environment vulnerability advisory and LTS patch channel
    kind: task
    parent_id: FW-340
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-vulnerability-response
    source_paths: [SECURITY.md, cmd/fairway, internal/securityadvisory, scripts, docs/governance/release.md, docs/security, docs/design/cli.md, website/sidebars.js]
    target_paths: [SECURITY.md, cmd/fairway, internal/securityadvisory, scripts/ci, docs/security, docs/governance/release.md, docs/design/cli.md, website/sidebars.js]
    review_domains: [governance, ops, security]
    risk_level: critical
    migration_type: restricted-vulnerability-response
    dependencies: [FW-343, FW-347]
    acceptance_checks:
      - "Fairway publishes machine-readable and human-readable security advisories, affected versions, VEX updates, severity, mitigations, fixed versions, and offline patch-bundle identifiers without requiring an installation to contact the public internet."
      - "A documented LTS and end-of-support policy defines patch timelines, emergency signing and release, disconnected notification delivery, customer acknowledgement, rollback, and superseded trust-root handling."
      - "A rehearsal delivers and verifies one synthetic advisory and offline patch through the restricted channel while preserving customer-controlled import and deployment authority."

  - id: FW-354
    title: Prepare Fairway Sovereign Deployment Ready release packet
    kind: task
    parent_id: FW-340
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-readiness-release
    source_paths: [docs/security, docs/assessment, docs/release-notes.md, docs/release-highlights.md, CHANGELOG.md, .goreleaser.yaml]
    target_paths: [docs/security, docs/assessment, docs/release-notes.md, docs/release-highlights.md, CHANGELOG.md]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-readiness-release-packet
    dependencies: [FW-350, FW-351, FW-352, FW-353, FW-361]
    acceptance_checks:
      - "The release packet identifies the exact reviewed source, binaries, offline bundle, assurance bundle, supported sovereign profiles, customer responsibilities, independent assessment, known limits, rollback target, and evidence index."
      - "A machine-checkable claim manifest permits Sovereign Deployment Ready only for the exact validated version and configurations and rejects certified, compliant, FIPS-validated, CUI-authorized, or jurisdiction-wide language without corresponding external evidence."
      - "Full connected and disconnected release gates, independent reviews, artifact verification, install/upgrade/rollback rehearsal, public wording review, and clean/pushed workflow checks pass before any separate publish task is authorized."

  - id: FW-355
    title: Define reusable assurance profile schema and authority contract
    kind: task
    parent_id: FW-340
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-profile-schema
    source_paths: [internal/config, internal/rules, internal/provenance, docs/design/supply-chain-provenance.md, docs/design/product-boundaries.md]
    target_paths: [internal/assurance, cmd/fairway, examples/assurance-profiles, docs/design/assurance-profiles.md, docs/design/cli.md]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: assurance-profile-schema
    dependencies: [FW-333]
    acceptance_checks:
      - "A versioned YAML or JSON assurance profile defines framework source and version, applicability, scope, controls, assessment objectives, accepted evidence classes, freshness, responsibility, external-assessment requirements, and prohibited claims."
      - "Profile validation is deterministic, rejects unknown schema versions, duplicate controls, unsafe paths or text, unsupported status or responsibility values, and any embedded command or executable content."
      - "The authority contract states that profiles and generated findings organize evidence only and cannot certify, declare compliance, accept risk, approve work, mutate workflow, or grant merge, deploy, release, credential, public-exposure, or live-operation authority."

  - id: FW-356
    title: Add deterministic assurance evidence normalization and control mapping
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-evidence-read-model
    source_paths: [internal/store, internal/provenance, internal/evidencemodel, internal/reviewpolicy, internal/assurance]
    target_paths: [internal/assurance, internal/store, cmd/fairway, docs/design/assurance-profiles.md]
    review_domains: [arch, backend, governance, security]
    risk_level: high
    migration_type: assurance-evidence-normalization
    dependencies: [FW-355]
    acceptance_checks:
      - "A deterministic read model maps existing Fairway task, decision, evidence, review, CI, release, provenance, rehearsal, exception, and external-assessment references to normalized evidence facts without adding a second evidence or control-result store."
      - "Each mapped fact retains source reference, result, timestamp, actor or producer, project and task scope, profile applicability, freshness, and confidence boundary while excluding raw prompts, transcripts, tool bodies, credentials, secrets, and artifact contents by default."
      - "Conflicting, missing, stale, superseded, unreviewed, out-of-scope, and externally asserted facts remain visible and cannot be upgraded to satisfied by summary text or generated narrative."

  - id: FW-357
    title: Add assurance profile readiness and certification gap reports
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-readiness-report
    source_paths: [internal/assurance, cmd/fairway, internal/dashboard]
    target_paths: [internal/assurance, cmd/fairway, cmd/fairway/main_test.go, docs/design/cli.md, docs/design/assurance-profiles.md]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: high
    migration_type: assurance-readiness-gap-report
    dependencies: [FW-356]
    acceptance_checks:
      - "Read-only commands list profiles and report control status for a project, task set, release, or supplied evidence scope using stable text and JSON contracts."
      - "Statuses are limited to satisfied-by-recorded-evidence, partial, missing, stale, conflicting, customer-responsibility, external-assessment-required, exception-recorded, and not-applicable-with-rationale; compliant and certified are never inferred."
      - "Gap rows name the control, missing or stale proof, owner, next evidence action, source references, freshness, and assessor boundary without mutating task state or automatically creating work."

  - id: FW-358
    title: Generate deterministic assessor-ready assurance packages
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-package-export
    source_paths: [internal/assurance, internal/provenance, cmd/fairway, docs/design/supply-chain-provenance.md]
    target_paths: [internal/assurance, cmd/fairway, examples/assurance-profiles, docs/design/assurance-packages.md, docs/design/cli.md]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: assessor-ready-assurance-package
    dependencies: [FW-357]
    acceptance_checks:
      - "A bounded command exports a deterministic package containing manifest, scope and boundaries, control matrix, evidence index, decisions, reviews, provenance references, exceptions, customer responsibilities, external-assessment requirements, gaps, and verification instructions."
      - "The package supports JSON, Markdown or CSV control views and an OSCAL-compatible export boundary while storing references and redacted summaries rather than arbitrary artifact content."
      - "Repeated export from the same profile and Fairway state is byte-stable apart from explicitly versioned creation metadata, and unsafe paths, secret-like values, unsupported schemas, or generated certification claims fail closed."

  - id: FW-359
    title: Add offline assurance package verification and claim guards
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-package-verification
    source_paths: [internal/assurance, internal/provenance, cmd/fairway]
    target_paths: [internal/assurance, cmd/fairway, docs/design/assurance-packages.md, docs/design/cli.md]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: assurance-package-verification
    dependencies: [FW-358]
    acceptance_checks:
      - "Offline verification checks package schema, profile identity and digest, manifest and file digests, scope, source state, evidence references, freshness, required sections, exception linkage, and optional external signatures without contacting a network service."
      - "Verification fails closed on tampering, missing required evidence, unknown profile or package schema, unsafe paths, stale evidence outside profile policy, and claims of certified, compliant, authorized, or FIPS-validated status without explicit external evidence."
      - "Verification output distinguishes package integrity from control sufficiency and external certification and never writes findings back into Fairway automatically."

  - id: FW-360
    title: Publish starter assurance profiles and custom profile authoring kit
    kind: task
    parent_id: FW-340
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-profile-library
    source_paths: [internal/assurance, examples/assurance-profiles, docs/design/assurance-profiles.md]
    target_paths: [examples/assurance-profiles, docs/assurance, docs/design/assurance-profiles.md, docs/config-reference.md]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: assurance-profile-library
    dependencies: [FW-355, FW-357, FW-359]
    acceptance_checks:
      - "Versioned starter profiles organize evidence for NIST SSDF, NIST 800-171 assessment support, EU CRA technical documentation, software supply-chain assurance, and Fairway Sovereign Deployment Ready while linking authoritative framework sources and exact versions."
      - "Profiles clearly separate complete control catalogs from bounded starter mappings, product responsibilities from customer responsibilities, and certification-body evidence from Fairway-recorded engineering evidence."
      - "An authoring guide, schema validation fixtures, profile diff command or report, and compatibility policy let consumers create reviewed custom profiles without executable rules, hidden authority, or silent profile updates."

  - id: FW-361
    title: Pilot Fairway assurance packages with sovereign and AI Cloud evidence
    kind: task
    parent_id: FW-340
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-package-pilot
    source_paths: [examples/assurance-profiles, docs/assessment, docs/case-studies/ai-cloud.md, docs/security]
    target_paths: [docs/assessment, docs/assurance, docs/case-studies/ai-cloud.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: assurance-package-pilot
    dependencies: [FW-341, FW-360]
    acceptance_checks:
      - "Fairway generates one package for its Sovereign Deployment Ready reference profile and one bounded AI Cloud consumer package using existing durable evidence without importing private transcripts, credentials, secrets, or raw artifact bodies."
      - "An independent reviewer measures evidence collection time, mapped and unmapped controls, stale or conflicting evidence, false satisfaction findings, package usability, manual assessor work remaining, and whether the package materially shortens readiness work."
      - "The pilot produces promote, repeat-with-fixes, or block recommendations for each profile and does not advertise certification, compliance, authorization, or customer outcomes beyond the measured evidence."

  - id: FW-362
    title: Resolve assurance review history to latest domain verdict
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: assurance-evidence-normalization
    source_paths: [internal/assurance, internal/store, docs/assessment]
    target_paths: [internal/assurance, docs/design/assurance-profiles.md, docs/assessment/fairway-assurance-package-pilot-2026-07-12.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: high
    migration_type: assurance-review-history-resolution
    dependencies: [FW-312, FW-356, FW-361]
    acceptance_checks:
      - "Assurance mapping keeps only the latest durable review verdict per task and domain in current state while retaining earlier review references as superseded history without review reasons or private content."
      - "Changes-then-approve can support a positive review requirement, approve-then-changes remains non-satisfying, and tied timestamps resolve by durable review row order rather than wall-clock order."
      - "Readiness and package regressions prove resolved review history no longer creates a false conflict and unresolved or mixed current-domain verdicts never create false satisfaction."

  - id: FW-363
    title: Retain signed sovereign rehearsal media and independent trust bootstrap
    kind: task
    parent_id: FW-340
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-rehearsal-media
    source_paths: [scripts/release, cmd/fairway-offline-verify, internal/offlinebundle, internal/provenance, docs/operations, docs/security]
    target_paths: [scripts/ci, docs/assessment, docs/operations, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-rehearsal-media-retention
    dependencies: [FW-343, FW-347, FW-353]
    acceptance_checks:
      - "A clean reviewed source candidate and pinned rollback release are built into all four supported archives, nested signed release-assurance packages, and one retained signed offline distribution with exact source, builder, policy, current, rollback, checksum, and standalone-verifier identity."
      - "A separate trust-bootstrap packet records the Ed25519 public key and fingerprint plus the independently reviewed Linux arm64 verifier digest; ephemeral private signing material is destroyed and neither media nor trust packet is committed or publicly released."
      - "The retained media and trust packet are delivered through distinct local evidence paths to the non-authoring FW-350 operator, verify without network access, and preserve customer import, install, deployment, release, credential, public-exposure, and live-operation authority."

  - id: FW-364
    title: Remove undeclared git runtime dependency from offline dashboard and server
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-offline-runtime
    source_paths: [cmd/fairway, internal/dashboard, internal/git, internal/offlinebundle, docs/operations]
    target_paths: [cmd/fairway, internal/dashboard, internal/git, internal/offlinebundle, scripts/ci, docs/operations]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-offline-runtime-dependency
    dependencies: [FW-343, FW-363]
    acceptance_checks:
      - "Dashboard and shared server start, remain running, and provide bounded status/readback in a clean signed network-none installation with no git executable; Git-dependent projections report unavailable or deferred instead of terminating the process."
      - "Commands that genuinely require Git still fail with a bounded actionable error and never synthesize repository state, weaken read-only or authorization boundaries, or add network/package installation."
      - "Focused PATH-without-git regressions and a fresh independent disconnected rehearsal prove dashboard and server behavior from signed media before FW-350 can be promoted."

  - id: FW-365
    title: Add offline customer key bootstrap for sovereign rehearsal
    kind: task
    parent_id: FW-340
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-customer-key-bootstrap
    source_paths: [cmd/fairway, internal/identityproof, internal/audit, docs/security, docs/operations]
    target_paths: [cmd/fairway, internal/identityproof, internal/audit, scripts/ci, docs/security, docs/operations]
    review_domains: [arch, backend, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-offline-customer-key-bootstrap
    dependencies: [FW-344, FW-346, FW-363]
    acceptance_checks:
      - "A reviewed offline-only bootstrap or rehearsal surface creates distinct Ed25519 identity and audit roots inside operator-controlled tmpfs, writes private material mode 0600 without printing, logging, committing, persisting to Fairway, or reusing product release keys, and emits pinned public fingerprints."
      - "A cache-free network-none environment can exercise positive identity authorization, role and revocation failures, signed audit export and verification, key loss and recovery, and key substitution rejection without downloading packages or importing unreviewed tools."
      - "Documentation labels the surface as rehearsal or local bootstrap only, not HSM or production key ceremony, FIPS validation, credential authority, certification, deployment approval, or risk acceptance; private-key destruction and exact public-key evidence are recorded."

  - id: FW-366
    title: Automate sovereign rehearsal media and immutable trust bootstrap generation
    kind: task
    parent_id: FW-340
    role: ops
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-rehearsal-builder
    source_paths: [scripts/release, cmd/fairway-offline-verify, internal/offlinebundle, internal/provenance, docs/operations]
    target_paths: [scripts/release, scripts/ci, docs/operations, docs/assessment]
    review_domains: [arch, governance, ops, security]
    risk_level: critical
    migration_type: sovereign-rehearsal-builder
    dependencies: [FW-343, FW-347, FW-353, FW-363]
    acceptance_checks:
      - "One reproducible non-publishing command builds exact current and pinned rollback archives, nested assurance, outer offline media, and a physically separate trust-bootstrap packet with source, builder, policy, archive, manifest, public-key, and verifier digests."
      - "The trust packet contains immutable facts only and never embeds mutable pending or approved review state; latest review acceptance is linked through durable Fairway evidence or a separate reviewed handoff without rewriting signed media."
      - "Ephemeral private signing material is destroyed, retained output is secret-scanned, macOS extended-attribute portability noise is removed, failures leave a bounded diagnostic packet, and no tag, release, publication, install, deploy, credential, public-exposure, or live authority is implied."

  - id: FW-367
    title: Make sovereign reference documentation pass claim guards
    kind: task
    parent_id: FW-340
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: sovereign-claim-guard
    source_paths: [docs/security/sovereign-threat-model.md, docs/security/sovereign-cryptography-key-posture.md, docs/security/sovereign-identity-authorization.md, internal/assurance/claims.go]
    target_paths: [docs/security/sovereign-threat-model.md, docs/security/sovereign-cryptography-key-posture.md, docs/security/sovereign-identity-authorization.md]
    review_domains: [governance, security]
    risk_level: medium
    migration_type: sovereign-reference-claim-guard
    acceptance_checks:
      - "Every canonical sovereign reference and assessor-input document passes fairway assurance claims validate without weakening positive unsupported-claim rejection."
      - "Threat-model wording continues to require explicit customer policy permission for connected dependencies without being misread as product or regulatory approval."
      - "Focused claim validation, full tests, vet, config, workflow, diff, and reconciliation checks pass; no certification, compliance, release, deploy, credential, public, or live authority is introduced."

  - id: FW-368
    title: Complete migration from tmp-ux memory to Fairway track memory
    kind: epic
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: project-working-memory
    source_paths: [docs/design/project-working-memory.md, docs/design/task-decision-memory.md, docs/design/context-packets.md, internal/store, cmd/fairway]
    target_paths: [docs/design, docs/agent-guide.md, docs/config-reference.md, internal, cmd/fairway]
    review_domains: [governance]
    risk_level: medium
    migration_type: working-memory-product
    acceptance_checks:
      - "Existing database-backed Fairway track memory remains the sole durable working-memory authority; tmp-ux memory files are inventoried as migration inputs rather than formalized as a second store."
      - "A new provider can render bounded Fairway resume context, follow source facts, and identify the exact next action without prior chat history or local memory files."
      - "A measured GPUaaS migration demonstrates lower context-reconstruction cost without equivalent process overhead, and legacy files receive explicit promote, archive, or supersede disposition."

  - id: FW-369
    title: Document Fairway memory authority and tmp-ux retirement lifecycle
    kind: docs
    parent_id: FW-368
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: project-working-memory-design
    source_paths: [docs/design/backlog-sources.md, docs/design/task-decision-memory.md, docs/design/context-packets.md, docs/agent-guide.md]
    target_paths: [docs/design/project-working-memory.md, docs/product.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [governance]
    risk_level: low
    migration_type: working-memory-design
    acceptance_checks:
      - "The design documents existing Fairway track-memory commands, schema, source-fact validation, lifecycle, and authority."
      - "The design classifies tmp-ux memory as a migration source and defines preview-first import, coverage, retirement, privacy, and cold-start rules."
      - "Migration tooling and the GPUaaS pilot depend on this reviewed contract."

  - id: FW-370
    title: Add tmp-ux memory import, coverage audit, and cold-start completion
    kind: task
    parent_id: FW-368
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: project-working-memory-runtime
    source_paths: [docs/design/project-working-memory.md, internal/store, internal/packet, cmd/fairway]
    target_paths: [internal, cmd/fairway, docs/agent-guide.md, docs/config-reference.md]
    review_domains: [arch]
    risk_level: medium
    migration_type: working-memory-runtime
    dependencies: [FW-369]
    acceptance_checks:
      - "Fairway inventories legacy tmp-ux memory and previews a bounded mapping into the existing track-memory schema without creating a filesystem memory authority."
      - "Coverage and cold-start output combine the selected Fairway track with current task, session, checkpoint, decision, evidence, review, Git, and stale-source facts."
      - "Secret-pattern, unsafe-path, unrelated-track, archive-exclusion, and explicit-apply regressions pass; raw legacy file content is not stored by default."

  - id: FW-371
    title: Migrate GPUaaS active memory into Fairway and retire legacy files
    kind: task
    parent_id: FW-368
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: project-working-memory-pilot
    source_paths: [docs/design/project-working-memory.md, docs/assessment, ../GPUasService/tmp-ux]
    target_paths: [docs/assessment, docs/agent-guide.md, docs/design/project-working-memory.md]
    review_domains: [ops]
    risk_level: medium
    migration_type: working-memory-consumer-pilot
    dependencies: [FW-370]
    acceptance_checks:
      - "One active GPUaaS legacy memory file is mapped into existing Fairway track memory without moving secrets or raw file contents into the database or version control."
      - "A cold-start provider identifies current objective, verified state, source posture, blockers, evidence, and next action without conversation history or tmp-ux memory."
      - "The pilot records resume time, clarification count, stale findings, repeated investigation, maintenance time, and explicit disposition for the migrated file."

  - id: FW-372
    title: Add source-grounded engineering knowledge
    kind: epic
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: engineering-knowledge
    source_paths: [docs/design/engineering-knowledge.md, docs/design/project-working-memory.md, docs/design/task-decision-memory.md, internal/provenance]
    target_paths: [docs/design, docs/agent-guide.md, docs/config-reference.md, internal, cmd/fairway, examples]
    review_domains: [governance]
    risk_level: medium
    migration_type: engineering-knowledge-product
    acceptance_checks:
      - "Fairway provides a reusable framework for project-owned, source-grounded, agent-maintained engineering knowledge without becoming canonical documentation or a transcript store."
      - "Knowledge pages expose authority, verification state, source revision, provenance, conflict state, and promotion history in inspectable Markdown and Git."
      - "A measured GPUaaS pilot proves useful cold-start and task-query behavior before semantic retrieval or hosted knowledge infrastructure is considered."

  - id: FW-373
    title: Define engineering knowledge schema, lifecycle, and authority model
    kind: docs
    parent_id: FW-372
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: engineering-knowledge-design
    source_paths: [docs/design/task-decision-memory.md, docs/design/product-boundaries.md, docs/design/supply-chain-provenance.md, docs/design/project-working-memory.md]
    target_paths: [docs/design/engineering-knowledge.md, docs/product.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [governance]
    risk_level: low
    migration_type: engineering-knowledge-design
    acceptance_checks:
      - "The design assigns framework ownership to Fairway and knowledge-content ownership to each consumer repository."
      - "The design defines page metadata, source classes, ingest/query/lint/promote operations, security boundaries, and derived-versus-canonical authority."
      - "The MVP explicitly avoids embeddings, hosted services, automatic canonical writes, and cross-project retrieval until measured need exists."

  - id: FW-374
    title: Implement engineering knowledge scaffold, status, and deterministic lint
    kind: task
    parent_id: FW-372
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: engineering-knowledge-foundation
    source_paths: [docs/design/engineering-knowledge.md, internal/config, internal/provenance, cmd/fairway]
    target_paths: [internal/knowledge, internal/config, cmd/fairway, examples, docs/agent-guide.md, docs/config-reference.md]
    review_domains: [arch]
    risk_level: medium
    migration_type: engineering-knowledge-foundation
    dependencies: [FW-373]
    acceptance_checks:
      - "Knowledge init creates the configured project-owned Markdown scaffold and manifest without overwriting existing files."
      - "Status and lint deterministically validate metadata, indexes, links, source revisions, path custody, duplicate identities, stale pages, and secret patterns."
      - "Pages carry an owner and review-by date; configured local or CI lint reports overdue knowledge and requires an explicit refresh, retain, supersede, or archive disposition without silently changing authority."
      - "The implementation records references and digests only, keeps generated changes as normal reviewable Git diffs, and grants no workflow or documentation authority."

  - id: FW-375
    title: Add bounded knowledge ingest, query packet, and promotion workflow
    kind: task
    parent_id: FW-372
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: engineering-knowledge-lifecycle
    source_paths: [docs/design/engineering-knowledge.md, docs/design/project-working-memory.md, internal/knowledge, internal/packet, internal/provenance]
    target_paths: [internal/knowledge, internal/packet, cmd/fairway, docs/agent-guide.md, docs/config-reference.md]
    review_domains: [security]
    risk_level: medium
    migration_type: engineering-knowledge-lifecycle
    dependencies: [FW-370, FW-374]
    acceptance_checks:
      - "Ingest previews bounded source-grounded page changes and applies them only through an explicit command that leaves a normal Git diff."
      - "Task-aware query packets select relevant indexed pages with provenance and verification labels instead of loading the full corpus."
      - "Cold-start composition renders execution memory first, adds only explicitly relevant knowledge within a separate budget, and deduplicates shared source references."
      - "Promotion requires an explicit canonical target and reviewed commit reference; conflicts, unsafe content, and unverified-only citation chains fail closed."

  - id: FW-376
    title: Run integrated GPUaaS memory and engineering-knowledge cold-start pilot
    kind: task
    parent_id: FW-372
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: engineering-knowledge-pilot
    source_paths: [docs/design/project-working-memory.md, docs/design/engineering-knowledge.md, docs/assessment, ../GPUasService]
    target_paths: [docs/assessment, docs/design/project-working-memory.md, docs/design/engineering-knowledge.md, docs/product.md]
    review_domains: [ops]
    risk_level: medium
    migration_type: engineering-memory-consumer-pilot
    dependencies: [FW-371, FW-375]
    acceptance_checks:
      - "A provider with only repository and Fairway access resumes one GPUaaS workstream and answers one cross-task architecture question using bounded memory and knowledge packets."
      - "The pilot measures grounding, context size, lookup and resume time, stale or contradictory claims, maintenance cost, repeated investigation, and incorrect authority choices."
      - "The pilot separately checks for synthesis errors that deterministic grounding and staleness lint cannot detect, and records whether owners disposition lint findings within the review window."
      - "A reviewed keep/refine/stop decision determines whether to expand adoption or defer semantic retrieval and automation."

  - id: FW-388
    title: Measure control effectiveness
    kind: epic
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: control-effectiveness
    source_paths: [docs/design/delivery-velocity-and-overhead.md, docs/design/review-policy-profiles.md, internal/deliveryreport, internal/audit]
    target_paths: [docs/design/control-effectiveness.md, docs/roadmap/fairway-product-backlog.yaml, internal, cmd/fairway]
    review_domains: [governance]
    risk_level: medium
    migration_type: control-effectiveness-analytics
    acceptance_checks:
      - "Fairway measures individual controls against observable outcomes without claiming causality."
      - "Coverage, cohort limits, confounds, formulas, and raw facts remain inspectable."
      - "Control metrics remain advisory and cannot approve, merge, deploy, or waive mandatory invariants."

  - id: FW-386
    title: Define control effectiveness metric contract
    kind: docs
    parent_id: FW-388
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: control-effectiveness-design
    source_paths: [docs/design/delivery-velocity-and-overhead.md, docs/design/review-policy-profiles.md, docs/design/work-batch-model.md]
    target_paths: [docs/design/control-effectiveness.md, docs/product.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [governance]
    risk_level: low
    migration_type: control-effectiveness-design
    acceptance_checks:
      - "Define control exposure, applicability, firing, bypass, outcome, cohort, and denominator semantics."
      - "Separate mandatory invariants from controls eligible for effectiveness-based tuning."
      - "Define coverage-first reporting, within-window comparisons, diff-size conditioning, and uncertainty language."

  - id: FW-379
    title: Add outcome linkage and Git-derived rework facts
    kind: task
    parent_id: FW-388
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: control-outcome-instrumentation
    source_paths: [docs/design/control-effectiveness.md, internal/store, internal/git, cmd/fairway]
    target_paths: [internal/store, internal/git, internal/deliveryreport, cmd/fairway, docs/agent-guide.md]
    review_domains: [arch]
    risk_level: medium
    migration_type: control-outcome-instrumentation
    dependencies: [FW-386]
    acceptance_checks:
      - "Report commit-to-task coverage and Git-derived post-promotion file-touch facts for bounded 7, 14, and 30 day windows."
      - "Support explicit incident, rollback, reopen, corrective, and superseding-task outcome links without inferring them from prose alone."
      - "Exclude configured generated and high-churn paths and expose all exclusions and denominators."

  - id: FW-380
    title: Add advisory control effectiveness report
    kind: task
    parent_id: FW-388
    role: backend
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: control-effectiveness-report
    source_paths: [docs/design/control-effectiveness.md, internal/deliveryreport, internal/reviewpolicy, internal/audit, cmd/fairway]
    target_paths: [internal/controlanalytics, internal/deliveryreport, cmd/fairway, docs/agent-guide.md, docs/config-reference.md]
    review_domains: [arch, governance]
    risk_level: medium
    migration_type: control-effectiveness-report
    dependencies: [FW-379]
    acceptance_checks:
      - "Compare mature applicable tasks with observed controls against explicit bypass cohorts inside the same time window, risk band, and diff-size band; not-applicable, unknown, and right-censored tasks remain visible but outside the outcome denominator."
      - "Classify controls as discriminating, insufficient sample, insufficient coverage, high friction, mandatory invariant, or redesign candidate."
      - "Emit observational results, denominator facts, configuration revision and digest, sample sizes, exclusions, and limitations without causal or automatic policy claims."

  - id: FW-381
    title: Add control effectiveness dashboard
    kind: dashboard
    parent_id: FW-388
    role: ui
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: control-effectiveness-dashboard
    source_paths: [docs/design/control-effectiveness.md, internal/controlanalytics, internal/dashboard]
    target_paths: [internal/dashboard, docs/design/dashboard.md]
    review_domains: [arch, governance]
    risk_level: medium
    migration_type: control-effectiveness-dashboard
    dependencies: [FW-380]
    acceptance_checks:
      - "Dashboard shows coverage, cohort size, outcome deltas, friction, uncertainty, and control classification from the CLI report model."
      - "Operators can filter by profile, time window, risk, diff-size band, and control family."
      - "Dashboard remains read-only and links every aggregate to inspectable task and Git facts."

  - id: FW-387
    title: Calibrate control analytics with GPUaaS pilot
    kind: task
    parent_id: FW-388
    role: governance
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: control-effectiveness-pilot
    source_paths: [docs/design/control-effectiveness.md, docs/assessment, ../GPUasService]
    target_paths: [docs/assessment, docs/product.md, docs/design/control-effectiveness.md]
    review_domains: [arch, backend]
    risk_level: medium
    migration_type: control-effectiveness-consumer-pilot
    dependencies: [FW-380]
    acceptance_checks:
      - "Measure GPUaaS commit-to-task coverage before interpreting any control outcome."
      - "Evaluate representative review, evidence, preflight, security, and process controls within contemporaneous cohorts conditioned on task size."
      - "Record keep, narrow, redesign, instrument, or defer decisions without removing mandatory safety invariants."

  - id: FW-389
    title: Define quality engineering principles for AI-assisted delivery
    kind: docs
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: ai-quality-engineering-principles
    source_paths: [docs/product.md, docs/design/control-effectiveness.md, docs/governed-agentic-engineering.md]
    target_paths: [docs/design/ai-quality-engineering.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [governance, arch]
    risk_level: medium
    migration_type: ai-quality-engineering-definition
    acceptance_checks:
      - "Define Quality Engineering for AI-Assisted Software Delivery as a discipline without prescribing product implementation."
      - "Define quality, quality records, evidence, verification, human judgment, statistical assurance, outcomes, and continuous improvement."
      - "State authority boundaries, manufacturing-analogy limits, and non-goals clearly enough for independent review."

  - id: FW-390
    title: Assess Fairway against AI-assisted software quality principles
    kind: docs
    role: arch
    profile: fairway-adoption
    owning_domain: fairway
    owning_layer: ai-quality-system-assessment
    source_paths: [docs/design/ai-quality-engineering.md, docs/product.md, docs/release-notes.md, docs/agent-guide.md, cmd/fairway, internal]
    target_paths: [docs/assessment/fairway-ai-engineering-quality-system-assessment-2026-08-02.md, docs/roadmap/fairway-product-backlog.yaml]
    review_domains: [governance, backend]
    risk_level: medium
    migration_type: ai-quality-system-capability-assessment
    acceptance_checks:
      - "Map each Quality Record stage to cited current Fairway capabilities and validation evidence."
      - "Distinguish implemented, validated practice, partial, missing, and deliberately external capabilities without converting gaps into implementation tasks."
      - "State the defensible current product claim and the empirical questions that must be answered before broader repositioning."
