> ## Documentation Index
> Fetch the complete documentation index at: https://kowshik-93.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# feature-preflight

> Environment readiness check — config, MCP, CLI auth, clean tree — one list, before any phase spends time.

<Info>
  **Invoke:** `/feature-preflight` · **Side effects:** read-only · **Writes:** nothing
</Info>

Most stalled shipflow runs don't stall on a hard problem — they stall on an unconnected MCP
server, an unauthenticated `gh`/`az`, or a dirty branch, discovered three phases in. This phase
checks the environment **once, up front**, and reports every gap together.

## Checks

* **Config shape** — `shipflow.config.md` exists and has all 9 expected sections.
* **Standing context** — `product.md` present if `context.require_product_doc: true`.
* **Tracker MCP connectivity** (tracker mode only) — a minimal read through the connected MCP
  server for the configured provider.
* **Code-host CLI auth** — `gh auth status` or `az account show`, per `code_host.host`.
* **Git working tree** — `git status --porcelain` on every repo in scope; dirty/mid-rebase is a
  warning, not automatically a blocker.
* **Polyrepo reachability** — every `repos[].path` exists locally as a checked-out working tree.
* **Workspace hygiene** — `.shipflow/` is present in `.gitignore`.

## Verdict

**READY** (warnings noted but nothing blocking) or **BLOCKED** — with the exact fix for each
blocker (`gh auth login`, clone a missing repo, add `.shipflow/` to `.gitignore`, …). The
orchestrator runs this before phase 1 and does not proceed while BLOCKED.
