# Correx live-QA plans

Each `QA-<feature>.md` is the artifact that authorizes a `BACKLOG.md` → `RETRO.md` move:
it pins **observable evidence** (events, logs, files, TUI renders) for one shipped feature.
Template: `TEMPLATE.md`. Environment bring-up: **`ENV.md`** (+ `scripts/qa/`).

A feature is **not** "resolved" until its plan passes live. On PASS → move the BACKLOG entry
to RETRO with the run date + cited evidence; on FAIL → refile each miss as a numbered finding.

## Plans (this burndown)

| Plan | Feature | Commits | Needs |
|------|---------|---------|-------|
| `QA-research-egress.md` | per-session egress allowlist + batch source-list approval + dedicated source events | `ab7e4be` `4b0024f` `b098d87` `027ff1f` | model + **SearXNG** |
| `QA-architect-contradiction.md` | architect contradiction-check (display-only) | `4e08510` `eae0a0c` | model + **llamacpp embedder** + `project.enabled`, 2 sessions/1 process |
| `QA-llama-health-probe.md` | LLAMA_SERVER liveness probe | `64a90e7` `9eef936` `266bbf0` | static llama-server you can stop |
| `QA-idea-promotion.md` | idea-board → `.correx/project.toml` promotion | `f107ff5` | bound workspace (router model optional — can seed the event) |
| `QA-reviewer-static-first.md` | reviewer static-findings exclusion (PARTIAL — stage seam+emitter built `e46777e`; runner activation pending) | `447fc7a` `e46777e` | seed `StaticFindingsRecordedEvent` |
| `QA-brief-echo-gate.md` | **ARM-IT** plan: brief echo-back gate (off by default; risky to arm blind) | `1df7af5` | prod-candidate model |
| `QA-grants.md` | cross-session grants (PROJECT/GLOBAL) + revoke | `c36d41b` `8df0ec7` | model + a T2+ tool call, 2 sessions, 2 workspaces |
| `QA-tui-v2.md` | Bubble Tea v2 + Shift+Enter + native cursor + window title | `d247b19` `85af2c6` | **kitty-protocol terminal** + a server with a resumable session |

## Order of attack (suggested)

0. **`QA-tui-v2`** — cheapest of all: no model / network / GPU, just a kitty terminal + a server with a session to enter. Pure render/keyboard verification.
1. **`QA-llama-health-probe`** + **`QA-idea-promotion`** — cheapest, least model-dependent (health is liveness; promotion can be seeded). Quick wins.
2. **`QA-grants`** — no network/embedder; just a model that drives one repeatable T2+ tool call. The headline check (grant in session A → auto-clear in session B) is a strong, cheap signal.
3. **`QA-research-egress`** — once SearXNG is up.
4. **`QA-architect-contradiction`** — needs a real embedder + two sessions.
5. **`QA-brief-echo-gate`** — run this **before** arming the gate anywhere real; check 2 (100% parseable-echo across runs) is the go/no-go for production.
6. **`QA-reviewer-static-first`** — partial until the static-check stage seam lands.

## Still-open §F live-QA gates (no dedicated plan yet — same env applies)

These predate the burndown and remain in `BACKLOG.md` §F; author a plan from `TEMPLATE.md`
when you tackle one: Epic 15 (events/replay + MDC sessionIds), idea-board capture, clarification
loop + workflow-propose panel, the full research-workflow run, TUI kernel-steering + AMD gauge.
