Editorial policy

The standards desk, in a file, versioned, with its reasoning attached to each rule. Every block prompt is checked against this before generation — so a rejected prompt costs $0.

POL-1

No real-person likenesses

A generated face that resembles a real person is a fabrication attributed to someone who never said or did it. There is no editorial use of this that a silhouette or an abstract stand-in cannot serve.

Reject named individuals, and descriptions that resolve to one specific real person even when unnamed.

POL-2

The exclusion line is fixed

The NEGATIVE line is a policy constant, not a prompt suggestion. If a caller can edit it, the prohibitions are advisory.

NEGATIVE must be present and begin, byte-for-byte, with the platform floor (brand-kit/floor.txt). A kit may only append to that floor, never edit or remove from it.

POL-3

No fabricated news scenes

Photoreal footage of an event that did not happen is the specific harm generative video introduces to journalism. Collage cannot be mistaken for a camera.

Reject photoreal style requests and scene framings that present generated imagery as documentary footage.

POL-4

No readable text on screen

Words rendered inside a frame read as quotation. AI lettering also garbles, which turns a garbled word into an apparent misquote.

SCENE must not request readable text. Any on-prop text must map to an entered fact ID, or be a claims-validated block label the caller attests to via `check(..., labels=...)` (v4, below).

POL-5

Narration fits its block

Six takes near ten seconds is what keeps the piece near sixty. A take well outside the window makes the story longer or shorter than intended.

Narration is 23-27 words across 2-3 sentences. This is a coarse pre-flight bound only — the enforcement is the take measured after rendering.

This rule changed — what it used to say

v2 (2026-07-28). This previously read: "A take that overruns gets speed-compressed and reads as rushed; a short one gets centred and reads as out of sync." Both halves described an assembler that no longer exists. Design spec 6.6 replaced the fixed ten-second window with an audio-led model — block length is derived from the take, the voice is never speed-compressed, and nothing is centred — so this rule stopped being a sync constraint and became a RUNTIME BUDGET. The check and its numbers are unchanged; only the reason is. Worth knowing before anyone tightens it further on sync grounds, because that argument no longer applies.

POL-6

Output is checked, not just the request

A compliant prompt can still produce a violating frame. On 2026-07-26 the first CS-1 scene rendered legible numerals despite an explicit exclusion. Checking only the request would have shipped it.

Every rendered asset is evaluated for photorealism, live-action appearance, and readable text before it can reach the approval gate.

POL-7

A pasted URL is a story you reported, not one you're borrowing

Ingest-from-URL (PLAN.md §B4) is a shortcut for a reporter starting from a piece they already filed, not a way to pull someone else's journalism into a video with their byline nowhere on it. "Paste a link to a story you reported" is the UI copy for a reason — a provenance tool that quietly ingests someone else's work has a problem it cannot argue its way out of, no matter how well it cites its quotes.

Every proposed fact carries the URL the journalist pasted and the verbatim span of that page it came from. If the proposed quote is not a character-for-character substring of the fetched article — checked with claims.normalize, the same discipline claims.py applies to narration — the proposal is dropped before it is ever shown, not flagged, not returned with a warning. `ingest.py`'s Proposal.url is always the pasted URL, copied verbatim; a model never writes a citation. This check proves the quote is on the page — the fact's wording is the model's and is confirmed by the journalist, not by this check.

Rules carry their own history. When testing kills an assumption the wrong version stays in the record next to the right one, because a standards document that quietly edits itself is not one anybody should trust.