← Files AI Film Pipeline MasterARCHIVED FILE
skills/ai-film-pipeline-master/references/PRECEDENCE.md
17.3 KB · Sep 30, 2026 · 23:17 UTC
# PRECEDENCE — which rule wins when two cards disagree Open this file only when two cards you are actually holding cannot both be obeyed in the shot in front of you. It is not a reading order, not a quality ranking, and not a list of which phases matter most. Every card in this package is correct inside its own situation; what this file supplies is the sentence, missing until now, that says which situation wins when two of them arrive at once. If the two cards can both be obeyed — if one is a technique and the other is a different technique for the same goal, or if one already names its own boundary and the case in front of you falls outside it — there is no conflict and nothing here applies. Choose, and move on. --- <!-- GENERATED:toc — do not edit by hand. Generated in the source package --> ## Contents - [1. The order](#1-the-order) - [2. How to tier a card](#2-how-to-tier-a-card) - [3. When both sides land on the same tier](#3-when-both-sides-land-on-the-same-tier) - [4. How a card claims precedence explicitly](#4-how-a-card-claims-precedence-explicitly) - [5. What this file does not do](#5-what-this-file-does-not-do) - [6. Where a same-tier collision is recorded](#6-where-a-same-tier-collision-is-recorded) <!-- /GENERATED:toc --> ## 1. The order > **When two rules collide, the one that wins is the one whose reason survives being ignored.** That sentence is the whole method. Ask of each card: if I break this, what is left? **If what is left puts a real person in danger, the card is tier 0.** If what is left is a piece that states something untrue, the card is tier 1. If what is left is a piece nobody can watch or no engine can build, tier 2. If what is left cannot be understood by the audience it was made for, tier 3. If what is left contradicts something already measured, approved or paid for, tier 4. If what is left is simply a weaker version of a piece that still works, tier 5. **The brief is not on this ladder.** Language, dialect, length, format, aspect, size, colour and style are the user's call (root `SKILL.md` §0): they are written as asked, and no tier outranks them. The ladder settles two cards against each other inside what the brief asked for. **And a tier ranks; it never stops the work** — the only waits in the package are the three that root `SKILL.md` §0 names. ### Tier 0 — Safety of a person Breaking it hurts somebody, and the somebody is on one of two sides of the screen. **A person in the piece** is exposed: a contributor who was promised anonymity becomes identifiable; a location that was meant to be unplaceable is placed; a person who did not consent is recognisable. **A person watching it** is injured by the piece itself: a deliberate strobe or rapid flash sequence that can trigger a seizure is the case that actually exists, and it is governed by `safety.photosensitive_flash`. Ordinary light — firelight, candles, a lamp, a sunset, a flickering bulb in a scene — is never a flash question. **This half was added after the first**, because the tier as first written said *in the piece* and a flashing sequence therefore fell straight through it into tier 5, where it was weighed against the drop and the trailer's charge and lost. The test is the same on both sides and it is not *is there a person in frame* — it is **does somebody get hurt, and can it be taken back afterwards.** **This tier was added in September 2026, after a test run found that the ladder could not see it.** The test asked the question above about a rule protecting a site guard who had been promised his face would not be shown — and the answer came back *a very good film*. True, watchable, understandable, on budget. The ladder tiered the protection rule at **5**, below *contradicts something already paid for*, because the whole ladder was built to stop a piece being **wrong** and nothing in it was built to stop a piece being **dangerous**. Five separate exposures reached a finished shot list in that run and every check in this package passed them. **It sits above truth, and the reason is asymmetry of repair.** A false statement can be corrected: you publish the correction, and the harm is mostly undone. An exposure cannot be withdrawn — the frame has been seen, the voice has been matched, and no later edit reaches the person who was watching. Accuracy is recoverable and safety is not, so safety goes first. **What lives here:** anything a contributor was promised, anything that would place a person or a building, anything that would let a voice be matched, any material whose subject cannot consent and would be harmed by appearing, and anything in the piece that can injure the person watching it. **It does not outrank truth by licensing a lie** — the piece still may not say something false to protect someone. Where protection and accuracy genuinely collide, the move is to say **less**, on the record, and to say that you are saying less: an unobtainable marker closed in the open is the tool for exactly this, and *"we are not naming where this was filmed"* on screen costs the audience nothing and is itself true. **Tier 0 adds no step.** It decides which of two cards wins inside a shot. It creates no permission, clearance or rights step, and the one consent that waits — a real person's, before their voice or likeness is cloned — is the one root `SKILL.md` §0 already names. ### Tier 1 — Evidence and truth Breaking it makes the piece factually wrong, not merely worse. A face nobody can know, a date, a canon rule, an undocumented reconstruction. These rules are first because the damage they prevent cannot be repaired by any later craft: a beautiful shot of an invented king is still a claim about a man who left no likeness, and a viewer who believes it has been misled by the piece rather than merely disappointed by it. **This tier applies where the piece claims to be true** — a history piece the user wants realistic, a factual claim. On a stylised, fictional or openly reimagined piece the brief's own choice of how real to be is the answer, and this tier has nothing to rank. Even where it applies it is never a stop: a source found is used; none found, the web is searched; none there, the closest thing is used and recorded (root `SKILL.md` §0). Everything else in this package is a way of making a piece better. This tier is the only one that decides whether the piece is honest. ### Tier 2 — Delivery reality Breaking it makes the piece unreadable or unbuildable. The platform interface band, muted autoplay, a safe zone, an engine's real limit. These are not opinions about what plays well; they are descriptions of the surface the piece lands on and the machine that makes it. A rule at this tier is not saying *this looks worse* but *this will not arrive*. A caption under the interface bar is not a caption. A camera move across fine lettering does not come back as lettering. Craft cannot argue with a constraint that will simply consume the work, which is why this tier sits above every judgement about what plays better. Note that an engine's real limit is a measurement with a date on it, not a permanent fact. When a card at this tier names an engine behaviour, the behaviour is what outranks — so check that the behaviour still happens before letting the card beat a tier 5 card you would otherwise want. ### Tier 3 — Audience fit Comprehension and suitability. The children's cut floor; a child needing to see a whole body to copy a dance. A piece that the audience it was made for cannot follow has failed at the thing it was for, however well it is shot. This tier is narrower than it looks: it is not *the audience might prefer something else*, which is craft, but *this specific audience cannot read, cannot follow, or is harmed by this*. A child who cannot count the objects has not been taught. A viewer who reads three seconds of digital silence as a broken file has stopped watching the piece and started troubleshooting it. Retention judgements, by contrast, are craft: a rule about keeping a viewer is not the same kind of rule as one about the viewer being able to understand what they are keeping. ### Tier 4 — Locked upstream material Something measured, approved or paid for that later work is built on. Measured audio, an approved keyframe, a frozen character sentence, a declared act map. The force here is not that the earlier decision was wiser; it is that other work now stands on it. Breaking a lock does not cost one shot, it costs every shot downstream that was built to match, and in a generated pipeline that cost is paid in regenerations. This tier sits below audience fit because a lock can be re-locked — the honest move when a locked value is genuinely wrong is to change it upstream and propagate it, not to break it quietly in one shot. ### Tier 5 — Craft preference Everything else. Every rule here is a judgement about what plays better, and the strongest of them still yields to tiers 0 to 4. This is not a demotion. Most of the cards in this package live at tier 5, and they are the reason the package exists: they are the accumulated craft that separates a piece that is merely true, deliverable, comprehensible and consistent from one that is good. But a craft rule is an answer to *what is the better version of this shot*, and that question has no standing against *does this shot expose someone*, *is this shot true*, *will it arrive*, *can they follow it*, or *does it match what we already built*. --- ## 2. How to tier a card **Tier a card by the reason the card itself gives, never by which phase it lives in.** The tier is not a property of the file, the phase, or the card's position in the pipeline. It is a property of the harm the card exists to prevent, and that harm is stated in the card's own **What it is**, **Effect on the audience** and **Avoid when** lines. Read those, ask what survives ignoring the card, and place it. A Phase 8 card can be tier 1 and a Phase 1 card can be tier 5. A camera-move card is ordinarily tier 5 craft, but a camera-move card whose stated reason is *this move makes the engine destroy the inscription* is a tier 2 card, and in a heritage piece where the destroyed inscription comes back as invented writing it reaches tier 1. A lighting card is ordinarily craft, but a lighting card whose stated reason is *this protects the work from claiming to know what a person who lived three thousand years ago looked like* is an evidence rule. The same card can also sit at different tiers in different projects, because the harm it prevents depends on the piece. A rule about hidden faces is tier 1 in heritage work, where the face is genuinely unknowable, and tier 2 in a drama, where it is a continuity mechanism. Tier the card for the project you are in. Two things that are **not** reasons to tier a card: - **Phase order.** A phase-priority chain — Phase 3 owns shot size, Phase 7 owns lighting — settles who writes a value into the document. It does not settle which of two rules is right when they collide. Where a phase-ownership chain and this order reach the same answer, cite the tier, not the chain, because the chain will reach a different answer the next time and the tier will not. - **Card count or file size.** A bible with six hundred cards does not outrank one with eighteen. --- ## 3. When both sides land on the same tier **The order is silent, and the honest move is to say so.** Two cards at the same tier are not resolved by this file, and a reader who invents a tie-breaker here is making a decision while claiming a rule made it. Do this instead: 1. **Record it.** Name both card ids and state that the order does not decide between them. 2. **Pick the one the piece needs.** Decide on the project in front of you — the format, the platform, the audience, what the shot is for. That is a judgement, and it is yours to make. 3. **Note the choice in the warning list** handed forward with the work, worded as a choice and not as a rule: *"`a.card` and `b.card` are both tier 3 and disagree here; chose `a.card` because the piece is a phone-first reel. The order does not settle this."* 4. **Record it under `decisions` in `project.yaml`**, which is the log for a run. The package's own log, [`COLLISIONS.md`](./COLLISIONS.md) at the package root, takes a row when the package itself is being maintained — an installed copy is read, not edited — and §6 below says what a row holds. A same-tier collision that recurs across projects is collected rather than settled mid-run: the run chooses and records, and §6 says how a repeated choice becomes a card field when the package is maintained. It is never a question put to the user. --- ## 4. How a card claims precedence explicitly Two optional fields may appear on any card, immediately before its backticked id: ```markdown **Outranks:** `other.card_id` — in the case where … **Yields to:** `other.card_id` — in the case where … ``` **Outranks:** names the ids this card beats, and in what case. **Yields to:** names the ids that beat this card, and in what case. Both may be absent, and most cards will never carry either. A card that has never met another card does not need them; the fields record collisions that have actually been found and settled, not every collision that is theoretically possible. Do not add them speculatively. Three rules for writing them: - **Always name the case.** A bare `**Yields to:** `other.card`` is useless, because both cards are right somewhere and the reader needs to know where the line falls. Write the condition: *on children's content*, *where legible carved lettering is in frame*, *on a frame that will be animated*. - **Where the carve-out is short, write it into the card's prose as well**, in the **Used for and where it works best** or **Avoid when** line. A reader who never opens this file should still get the right answer from the card alone. The field is the index; the prose is the answer. - **A field beats a tier reading, and here is why.** The tiers in §1 are a method for a pair nobody has examined yet. A `**Yields to:**` or `**Outranks:**` line is the record of a pair somebody *did* examine, in a specific case, and wrote down. So when a field and your own tier reading disagree, **the field wins for the case it names** — read the card's prose for the scope split, apply it, and use the tiers only for the cases the field does not name. A worked example, because this is the crack a reader is most likely to fall into. §1 puts a frozen character sentence at tier 4, locked upstream material, which suggests it must be quoted in every prompt. But `ai.image_to_video` in Phase 8 carries `**Outranks:** the requirement to quote ident.frozen_sentence in full`, because an approved keyframe is a closed shot: the identity is already *in the picture*, and re-describing the face in words fights the frame. The field is right and the tier reading is right — they are about different situations, and the field names its one. Outside that situation, on a prompt with no approved keyframe behind it, the tier answer stands. --- ## 5. What this file does not do - It does not delete cards. A losing card is not a wrong card; it is a card whose situation did not win this time, and it will win the next time the other card is absent. - It does not rank phases, files or authors. - It does not decide a same-tier collision (§3). It does record one — §6. - It does not license breaking a tier 1 or tier 2 rule for a strong enough craft reason. There is no strong enough craft reason; that is what the order means. --- ## 6. Where a same-tier collision is recorded §3 told the reader to record a same-tier choice and, until this section existed, gave them nowhere to record it. The place is [`COLLISIONS.md`](./COLLISIONS.md), at the package root beside this file. **A row holds seven things:** the date, the two card ids with the phase each lives in, the tier both of them read at and why, the case — named narrowly enough that another reader can tell whether their shot is the same shot — what was chosen and the reason *in the piece*, and who chose it. The last cell matters more than it looks: a choice with no name attached cannot be asked about later, and the whole point of collecting a collision is that somebody can be asked. **It is a log and not a rule file.** Nothing in it outranks anything, and a row is never cited the way a tier or a `**Yields to:**` field is cited. A row records that one person chose one way, once. The next project may choose the other way and add its own row, and two opposite rows are not a contradiction in the package — they are the finding that the case has not yet been named finely enough. **When a row becomes a card field instead.** The same pair, in the same case, chosen the same way, **three times**. At that point the judgement has hardened into a rule: it stops being a choice made on a project and becomes something the cards themselves should say. Whoever maintains the package writes the settled answer as the `**Outranks:**` / `**Yields to:**` fields of §4 with the case in the card's prose as well. The rows stay in the log afterwards, as the evidence the field was earned rather than assumed — which is exactly what §4 means when it says those fields record collisions that have actually been found and settled, and are not to be added speculatively. A pair decided *differently* each time is never promoted. Three inconsistent rows mean the case needs naming more finely — package maintenance, never a question put to the user during a run.
SHA-256: cb72b5b0c058cce4ebe4acf680f5ed51f73b5e1081b8357157f342e9aa1b9e55