## The four-stage loop [#the-four-stage-loop]

1. **Research.** Primary sources and benchmarks land in the vault; every factual or metric claim keeps its exact source and verification date.
2. **Draft.** Issues are authored in MDX under `FrankX/content/newsletters/issues/` using the direct technical architect register, never generic AI filler.
3. **Cut.** The draft is tightened so the reader gets the architectural decision in the first paragraph and the supporting evidence immediately after.
4. **Ship.** Web issues render at `frankx.ai/newsletter`; email dispatch is gated behind human approval and Resend key verification.

## Where each piece lives [#where-each-piece-lives]

| Piece | Repository & path |
|---|---|
| **Issue source (MDX)** | `frankxai/FrankX` · `content/newsletters/issues/` |
| **Published web routes** | `frankxai/frankx.ai-vercel-website` · `app/newsletter/` |
| **Operational risk tracking** | `frankxai/agentic-ops-hub` · `ops/OPS-LEDGER.md` |

## Current operational state [#current-operational-state]

Web issues render on `frankx.ai/newsletter`. Issues 1 and 2 still carry `status: draft` in their source MDX frontmatter (`OPS-LEDGER.md` risk `R7`), and email broadcast remains paused pending Resend API key rotation (`OBJECTIVES.md` O1/O6).
