"A wall with no door isn't a trust boundary. It's a promise you haven't been asked to keep yet."
What Happens When the Archive Finally Clears the Bar
The quarantine two lessons ago had an easy life. Nothing was approved, nothing was pressing, and the product worked perfectly without a single transcript crossing the wall. That is genuinely the right way to start. But a gate is only tested on the day someone has thousands of transcripts they actually want on the other side — and then the question stops being "should the default be denied?" and becomes the much harder "what does a human decision even look like at this scale?"
The honest problem: per-release review does not scale to thousands of videos, and pretending it does produces the worst outcome of all — a gate that everyone agrees is important and nobody actually operates, until someone quietly widens it to get work done. Meanwhile the thing you're approving isn't really each individual transcript. It's a pipeline: this provider, this model, this configuration, this audio preparation, producing output of this structural quality. You looked at a sample, you formed a judgment about the pipeline, and you'd happily stand behind every release that came out of it.
Approve the Identity, Not the Instance
So Recall built the door as a cohort policy. An operator creates a policy that pins, as exact values, everything that defines the pipeline whose output the judgment covers:
- the provider and the model;
- the configuration hash and the audio proxy configuration hash — the same content-addressed fingerprints the paid ledger uses;
- the release status and the structural quality class it covers;
- the approver, and the evidence behind the decision.
Only releases that match that exact identity can be selected under the policy, and selecting one writes a durable per-release approval row that names the policy it came from. The judgment is made once, by a person, about a precisely-described population — and then applied mechanically to the members of it. The promotion is automated. The judgment never is.
Notice what the config hashes buy here, because it's the whole reason this is safe. If anything about the pipeline drifts — a new model, a changed setting, different audio preparation — the fingerprint changes, and the drifted releases simply do not match the policy. They aren't quietly swept in on the strength of a judgment that was made about something else. A policy can't silently grow to cover output its approver never saw, because the thing it pins is an identity, not a description.
The Manual Gate Didn't Go Anywhere
The original path is untouched and still valid: a release that a human individually reviewed and approved is eligible, exactly as before. The cohort path sits beside it rather than replacing it, and it's deliberately narrower — the older legacy transcripts, produced by a different model entirely, fall outside every Scribe cohort policy and stay quarantined. Two doors, both requiring a person, one of them able to carry a decision across a population.
The cohort path also refuses a shortcut it could easily have taken: approving a release under a policy does not rewrite that release's own review status. A candidate release stays a candidate; the policy approval is recorded as a separate durable fact next to it. It would have been so convenient to stamp "reviewed" on everything the policy touched — and it would have been a lie, because nobody reviewed them. The system keeps two true statements instead of one convenient false one. That honesty costs something, and it is worth seeing where the bill arrives: the export guard from lesson 1 refuses a candidate release outright, so keeping the status truthful means the guard can no longer be a single chain of checks. It became a disjunction — export if the release walked the manual path, or if it holds a live approval row under a live policy — with both branches still requiring eligibility explicitly set to approved, the release still current, and the video not retired. Build the door and the doorway in the same change. A promotion path whose consuming boundary has no branch for it is a door opening onto a wall, and it fails closed and silently, which is the hardest kind to notice.
Publishing Is a Job, Not a Button
Pressing Publish to Lantern in Operations doesn't perform the publication inside the request — Track 2 forbade that, and this is a good place to watch the rule hold under pressure. It creates one durable job with three recorded phases: approve every remaining release matching the policy's kind, ask the corpus engine for a complete reindex, then reconcile its semantic vectors. The job and each phase's response survive a closed page and a control-plane restart; an interrupted job returns to the queue on startup and repeats its idempotent phases; a failure records the exact phase and the remote error for a deliberate retry. A database index allows exactly one publish job in flight at a time.
The detail that says the design is finished: a run that approves nothing is still worth running. Corrections and retirements since the last publication need to propagate too — a corrected release drops the old version from the feed, and a retired missing video disappears from the next reconciliation. Publication isn't a one-way push of new material; it's a reconciliation of what the corpus should currently contain. A gate that only knows how to let things in eventually fills the corpus with things you've since stopped standing behind.