# GADHS pi Documentation
> GADHS pi Documentation — generated from Antora. Every page has a Markdown mirror at the same URL with a .md extension.
## Pi
- [ADR-001: TypeScript toolchain — pnpm, Biome, vitest, Node task runner](/pi/adrs/adr-001-ts-toolchain.md)
- [ADR-002: Downstream-in-spirit of claude-quickstart (deferred sync gating)](/pi/adrs/adr-002-downstream-in-spirit.md)
- [ADR-003: Agent configuration lives in @gadhs/pi; claude-quickstart sunsets as the agent vehicle](/pi/adrs/adr-003-agent-config-lives-in-pi.md)
- [ADR-004: Package boundaries — policy, workflow, and content are separate packages](/pi/adrs/adr-004-package-boundaries.md)
- [ADR-005: One first-party Vertex provider for every publisher, delegating the wire](/pi/adrs/adr-005-vertex-publishers.md)
- [ADR-NNN: <Short, action-oriented title>](/pi/adrs/adr-000-template.md)
- [Architecture](/pi/architecture.md): How the GADHS pi distribution is put together, and the path a single action takes through it.
- [Architecture Decision Records](/pi/adrs/index.md)
- [Configuration Cookbook](/pi/tuning.md): Copy-paste recipes for tuning @gadhs/pi — modes, models, rules, the judge, guards, guidance, and themes.
- [GADHS pi](/pi/index.md): The Georgia DHS distribution of the pi coding agent — one install for models, working modes, safety rails, and agency guidance.
- [Local Development](/pi/local-dev.md): Toolchain, tasks, hooks, and publishing for the GADHS pi monorepo.
- [Model battery: every shipped model, per role, as permutations](/pi/model-battery.md): The battery's store over the packaged models — reviewer, planning, judge, explore, coder, integrity — per task, subject and stack, and the recommendation matrix derived from the production cells.
- [Models on Vertex AI (@gadhs/pi-vertex)](/pi/vertex.md): Every publisher on Google Cloud Vertex AI — Claude, Gemini, and the Model-as-a-Service catalogue — through one extension, one config file, one probe, one ADC story, with a region pinned per model.
- [Packages](/pi/packages.md): The packages in this monorepo and the vendored upstreams they bundle.
- [Phase 1 — Widgets: the @gadhs/pi distribution](/pi/plans/phase-1-widgets.md): Build the extensions and meta package every GADHS developer installs; ship the guidance-injection seam as a tested no-op pipe.
- [Plan: @gadhs/pi-remote — /remote-control hands the running session to a paired phone (#142)](/pi/plans/pi-remote.md)
- [Plan: author-declared review context (#52, #53)](/pi/plans/review-context.md): The submitting model declares which unchanged files the cold reader may see; the guard enforces the list deterministically and inlines the files; the reviewer's instructions check plans and prose against what was supplied, not against themselves.
- [Plan: close the review pane (#43) — terminal acceptance and close](/pi/plans/close-review-pane.md): The composed review pane shipped as 0.8.0–0.8.2 and gained the edited-since marker in 0.17.0. What remains for #43 is the operator's live observation of the pane — this document is the acceptance script, run against the pane it describes — followed by the close: the plan page's Status, the nav move, and the closing comment.
- [Plan: findings get a recorded disposition, and a review’s outcome is one of five, not one line (#96)](/pi/plans/review-disposition.md)
- [Plan: headless hosts — plan approval by select, gate asks that time out to deny, no hangs under RPC (#135)](/pi/plans/headless-hosts.md)
- [Plan: mechanical cold review of plan drafts (#44)](/pi/plans/plan-review.md): exit_plan_mode gets the commit review's reflection pause — a contextless reviewer at least as strong as the author reads the DRAFT before the human sees the dialog.
- [Plan: one Vertex provider for every publisher (#76)](/pi/plans/vertex-publishers.md): Generalise @gadhs/pi-vertex-anthropic from "Claude on Vertex" to "Vertex": one config file, one probe, one ADC story, three publisher kinds — anthropic (today's path), google (Gemini, via pi-ai's Vertex adapter with a pinned location per call), openai-compatible (every MaaS model behind Vertex's OpenAI endpoint, via pi-ai's completions adapter with an ADC bearer). Gemini and the MaaS kind both land on the shape; nothing is reimplemented at the wire.
- [Plan: plan review as one composed component (#43)](/pi/plans/review-pane.md): Replace the display-only overlay + separate select with a single ui.custom component: a scrollable document viewport, the last cold-review outcome, and the choice list, under one handleInput. One focused component that fits any terminal; no focus juggling, nothing for ctrl+o to clobber.
- [Plan: split the pi-modes wiring closure along its seams (#63)](/pi/plans/split-modes-wiring.md): packages/pi-modes/index.ts is a 1,673-line factory closure sharing nineteen pieces of mutable state between every handler. Split it into one mode controller plus four wiring modules, with index.ts left as the composition root. Behaviour-preserving; one commit per seam; the existing tests, unchanged, are the acceptance bar.
- [Plan: Structural bash analysis for the workflow guards (#14)](/pi/plans/structural-bash.md)
- [Plan: the ask broker — one ask, put to the local dialog and a paired phone at once; first answer wins (#140)](/pi/plans/ask-broker.md)
- [Plan: the battery as permutations — task × subject × stack, one store (#108)](/pi/plans/battery-permutations.md)
- [Plan: the cold reviewer reads the snapshot — bounded read/grep/find beyond the declared context (#97)](/pi/plans/reviewer-snapshot-access.md)
- [Plan: the model battery — every shipped model, per role, with a matrix (#79)](/pi/plans/model-battery.md)
- [Plan: the quality pass before others consume — decompose the entry closures, cover the last inch, hunt bugs (#131)](/pi/plans/quality-pass.md)
- [Project Conventions](/pi/project-conventions.md): TypeScript conventions for this repo, and how the Rust-centric agency standards map onto it.
- [Reviewer evaluation: does a second vendor add value?](/pi/reviewer-eval.md): A re-runnable corpus of contrived changes with planted defects, run through the shipped review prompts on candidate reviewer models, scored against an answer key. First run (2026-09-07): Gemini 3.8 Flash beside Claude Fable 5.1, for #70.
- [Security](/pi/security.md): Security posture of the GADHS pi distribution — threat model, credential handling, and the enforcement stack.
- [Testing](/pi/testing.md): Test strategy for the GADHS pi monorepo.
- [Workflow Modes (@gadhs/pi-modes)](/pi/modes.md): Modes, deterministic permission layers, the safety-only judge, workflow guards, and guidance injection — the full reference.
- [Working remotely](/pi/remote.md): Which remote workflows carry the whole GADHS distribution, which carry part of it, and where the phone-first client is coming from.
## Standards
- [Agency Standards](/pi/standards/index.md): GADHS agency-wide engineering standards, distributed from the claude-quickstart template
- [CLAUDE.md Skeleton](/pi/standards/claude-md-skeleton.md): What belongs in .claude/CLAUDE.md vs the synced rules and standards
- [Coding Conventions](/pi/standards/coding-conventions.md): Rust style, errors, types, dependencies, lints, and service patterns
- [Delivery Protocol](/pi/standards/delivery-protocol.md): Preflight, recommendations, debugging, and the delivery checklist
- [Git Workflow](/pi/standards/git-workflow.md): Branching, commits, signing, hooks, and versioning
- [GitLab Workflow Standards](/pi/standards/gitlab-workflow.md): Issue, MR, and epic standards
- [Migration Runbook](/pi/standards/migration-runbook.md): Step-by-step downstream migration/re-sync onto the synced deterministic-first layout
- [Security Baseline](/pi/standards/security-baseline.md): Kerckhoffs's principle and public-visibility enforcement
- [Testing](/pi/standards/testing.md): Test strategy, runners, categories, and the pre-push battery
## Optional
- [Full corpus](/llms-full.txt)
- [Search index](/search-index.js)