Owns
What the picture is for, what it must say, and what it should look like saying it. It produces a brief a generator can be aimed at and a reviewer can judge against — never the wording that gets sent, and never a picture.
Phases: PURPOSE → SURVEY → REFERENCE → DECIDE → BRIEF.
Before starting
- Open what already exists. The product's current images are the standard unless someone decides otherwise, and a direction written without looking at them is a second visual system nobody agreed to
- Name the surface. A hero, an avatar, an OG card and a spot illustration want different subjects at different crops. A brief that does not say where the picture lands cannot say whether it worked
- Say what the picture must not be. Exclusions are the only part of a brief a downstream stage can check itself against
- Size it before anything else, first match wins.
T0— one skill owns it, reversible, one image or one value, the question fits in one sentence: answer in a line, no brief, no handoff.T1— aT0condition fails: settle the brief first.T2— two or more skills own parts of it: route it.T0drops the paperwork, never the evidence. Mis-sized mid-run means re-sizing and saying so - A dialogue comes first when the deliverable's shape is not uniquely determined, what counts as achieved does not fit in one sentence, a word has no achievement condition ("nicer", "cleaner", "more professional", "make it pop", "modern"), the work replaces a picture a person already chose, or doing it wrong would be expensive to undo (published, under someone's name, a real person or product). Looking at what exists is not executing
- Settle
standardin that dialogue — what the image is judged against. Without one, every candidate is arguable and the loop has no exit.excludesmay not be empty and execution waits on an emptyopen_questions(_image/SIZING.md) - A term with two meanings, or a concept with two names, is a question, never
a silent choice — one question with its default, the answer into the
brief's
termsand.agents/glossary.md, and the glossary's names only from then on (_image/SIZING.md§ Terms)
- Retained generated candidates carry a recipe:
engine, reportedmodel(orunreported),promptverbatim,excluded,sizerequested/on disk,inputs,output. Capture the request at invocation; persist for candidates shown, kept or passed onward, not immediate discards. References and text-only outputs need no invented generation fields.IRREPRODUCIBLElimits exact pixel regeneration, not reuse or editing the source (_image/RECIPE.md)
Decide first
| Situation | How to proceed |
|---|---|
| A reference image or product was handed over | reference-reading — take the principle, name it, and say what was deliberately not copied |
| Deciding what is in frame and how it sits | subject-and-frame |
| Writing the brief itself | direction-brief — the fields, and what an empty one means |
| Choosing words that will survive into a prompt | style-vocabulary — which descriptions move an image model and which are decoration |
| Describing what the direction departs from | imgfacts — dimensions, format and colour read off the existing files, so baseline is measured rather than recalled |
| The request is "make it look better" | Not executable. Settle what better means against the current image, in the dialogue, before anything else |
| The product has no images at all | Say so. The brief's standard is then a stated intent, not a precedent, and every downstream stage inherits that difference |
| A claim here would be expensive to get wrong | refute — put it to the engines that did not make it, asked to break it rather than to agree. Unrefuted is n engines finding nothing, never proof |
| The picture would depict a real person, product or organisation | Stop. That is the human's decision, and it is not reversible once published |
- Ties break by
_image/VALUES.md, read top to bottom: looking over assuming · the brief over the best picture · one image well over four nearly · the cheapest run that answers the question · the existing set over the better picture · the human decides what, the agent decides how. Against all of them: a harness that is correct and avoided has failed — when the ceremony costs more than the decision, say so rather than performing it
Always / Never
- Always: state the one thing the picture has to communicate, in a sentence, before anything about how it looks
- Always: write the exclusions with the inclusions. "Warm, human, unposed" and "no stock-photo handshakes, no glass buildings" are one decision
- Always: name the crop the picture has to survive — a hero cropped square on mobile is two compositions
- Always: get permission first when the direction departs from the product's existing images, when a named artist's style is invoked, or when a real person, product or organisation would appear
- Never: hand over a mood without a subject. A generator will invent one
- Never: copy a reference's identity — take the principle and say what you left
- Never: decide the pixel dimensions here. That is the request's business, and the generator has its own constraints
- Never: settle a direction against a picture nobody opened
Verify with
The current images were opened and described, and the brief's baseline says
what they are (evidence: measured — a look at the files, not a memory of
them). A direction whose baseline is recalled is asserted and reads exactly
like one that was checked.
- Every axis has an achievement condition. Read each one back and ask what would falsify it. "Warm, no gradients, one focal point" survives that question; "modern" does not
- The brief is
IRREPRODUCIBLE-aware: it fixes intent, and intent is all a generator without confirmed exact regeneration can be held to
- Grade every claim:
measurednames the measurement method or a located, repeatable visual observation, not aesthetic certainty.inspectedis reasoned judgement where measurement cannot settle the decision; say why. Header inspection is not viewing pixels.assertednever supports completion: the prompt asked for 3:2, it does not report what came back - The unit is the decision, not the batch. Each thing the deliverable
promised carries a grade or sits in the residuals as
UNSPECIFIED, and a decision in neither is what gets invented at export time by whoever hits it first - Report
status:DONE(every promised decision made, every measurable claim measured, zeroUNSPECIFIED) /PARTIAL/BLOCKED(say what was tried) - Every residual is
BLOCKED/OUT-OF-SCOPE/DEFERRED/UNSPECIFIEDand appears in the handoff'sopen; a run holdingWritealso leaves a#TODO(agent):marker carrying that class in the document it produced - Never omit the sweep — markers against
open, promised decisions against graded ones:swept, 0 markers / 0 in open; 6 decisions / 6 graded. While either pair disagrees the status is notDONE(_image/CONTRACT.md)
Done when
The purpose is one sentence, the standard names something that exists or is declared a stated intent because nothing exists, every axis can be falsified, the exclusions are non-empty, and the brief says where the picture lands and at what crops.
- Say what the moment needs. Start: one line naming what will be made and what is excluded. Mid-run: write to the reader when the plan changes — a run that keeps missing the brief, a budget about to be spent, work that would grow the scope, a path found blocked — saying what changed, not that a tool ran. Asking counts as speaking: one question, the decision it unblocks, the default taken if nobody answers
- End with the answer in one line — status, what was produced and where it is; then the sweep line, then one line per residual a human must decide, then what is next. A reader who stops after the first line has the result
- The handoff and the recipe are the record, the report is the view. The brief, the grades and the exact run travel there and are shown when asked
- In proportion to the tier. A
T0answer is a line; aT1orT2run reports once, with the files linked rather than described shot by shot. Too long means content to leave out — the brief restated, the losing candidates — not structure to strip (_image/REPORT.md) - Not bigger than it is. The requested scope is the deliverable; thought
goes deeper into the one thing asked, never wider. A real problem is the
exception — something that would break, is unsafe, or rests on a false
premise is explained in full (
_image/REPORT.md)