> ## Documentation Index
> Fetch the complete documentation index at: https://manifest.build/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# PHASE 2

# PHASE-2 — automation from the VM (defined, to wire after phase 1 runs are validated)

Owner: the Claude Code agent on the Azure VM `manifest-agent` (the one
launched via the `agent` script, repos under `~/repos`).

## Schedules

* **Every 2 hours** — light watch: step 1 of the skill only. If no new
  merged PR on mnfst/manifest since `lastAuditedPr`, exit silently
  (near-zero cost). If there are, run the full loop.
* **00:00 nightly** — full audit regardless, as a safety net (catches
  anything the watch missed, plus docs drift not tied to a PR).

## Memory: Supabase (same local instance already on the VM, new schema `docs_harness`)

Tables:

* `runs` (id, started\_at, pr\_from, pr\_to, findings\_count, issue\_url)
* `findings` (id, run\_id, category, doc\_page, doc\_quote, evidence,
  status: raised | accepted | rejected | fixed, issue\_url, pr\_url,
  updated\_at)
* `learnings` (id, created\_at, lesson)

The flat files `references/decisions.md` and `references/learnings.md`
are the phase-1 equivalents; migration = import then keep Supabase as
the source of truth, with the flat files regenerated as read-only
mirrors so the repo stays self-explanatory.

## VM prerequisites (to install at wiring time — warn Seb before

touching the VM, he may be using it live)

1. Clones of mnfst/docs and mnfst/manifest under `~/repos`, pulled at
   each run.
2. `gh` token: issues:write on mnfst/docs, read on mnfst/manifest.
3. Supabase schema `docs_harness` created on the existing instance.
4. Cron entries for the two schedules, launching the Claude Code agent
   with the `/docs-sync` skill.
5. A ping to Seb (WhatsApp/Discord via Hermes) when an issue is filed.

## Guards carried over from phase 1

No PRs ever. One digest issue max per run. Rejected findings never
re-raised. Silence when there is nothing to say.
