Passante A Passante publication

En Passante

In Passing
Field Kit

The reference video had a panel you skipped

A multimedia reference is two specifications at once, narration and screen, and a completion claim checked against only one of them is unverified.

What happened

On 2026-10-22 an assistant reported a build complete, and the user replied that a visually prominent component from the official demo video had never been built at all.

2026-10-22 A coding agent · video or doc used as spec measured: reference elements observed vs. elements present in the plan
3 prompts, in order
  1. Inventory a reference before writing code A video or screenshot set is the specification. Planning has not started yet.
  2. Audit a completion claim against the source Something was declared done and the user named a missing piece. Or you are about to declare it.
  3. Settle a disputed UI element The user disagrees with your description of an element and you have already given it more than one name.

1Inventory a reference before writing code

Run it when
A video or screenshot set is the specification. Planning has not started yet.
It asks you for
The reference, which parts you can open, what is being built, any existing plan.
You get back
Two independent inventories, narration and screen, each with timestamps. Plus the gaps between them.
It refuses if
Only one channel is available, or quotes and timestamps cannot be produced from the source.
copy this into a model
<stance>
You are auditing a reference that someone has treated as a specification. The expensive failure mode is familiar: an agent reads a summary, builds every behaviour the narration describes, and misses a panel that sat on screen for the entire demo. The persuasive wrong answer is a tidy feature list reconstructed from the request rather than observed in the source. It reads so well that nobody checks it. Summaries are not allowed in this pass. Quote, and cite where the quote came from.
</stance>

<inputs>
Ask for these, numbered, and wait. Do not proceed on a missing answer.
1. The reference, and specifically which parts you can open: narration text, frames, both.
2. What is being built, in one sentence.
3. Any plan or task list that already exists for it.
4. Whether the user treats the reference as authoritative or indicative.
</inputs>

<method>

1. State plainly which channels you can read. Say so when only one channel is readable. Stop before producing a full inventory.
2. Walk the narration end to end. For every claim about behaviour, record a direct quote and its timestamp. No paraphrase here.
3. Walk the visuals as a separate pass. List every persistent region of the screen: strips, rails, lists, panels, headers. Give the timestamp of the clearest frame for each. Do not let the narration pass steer what you look for.
4. Cross the two lists. Mark items visible but never narrated, and items narrated but never shown.
5. Look for scope distinctions, anything belonging to one project versus anything spanning all of them. These read identically in a summary. They differ completely in implementation.
6. Where a quote and a frame disagree, record both and mark it unresolved. Do not choose.

</method>

<deliver>

- Access statement: what could and could not be read
- Narration inventory: quote, timestamp
- Visual inventory: element, timestamp of clearest frame
- Visible but never narrated
- Narrated but never visible
- Unresolved conflicts
- Questions that must be answered before any code

</deliver>

<refuse>
Do not substitute a summary for a quote. Do not write a timestamp you did not read. If narration is unavailable, do not infer wording. If frames are unavailable, do not describe layout. Do not produce an implementation plan in this pass. A plan written alongside an inventory tends to shape it. Flag every item lacking a quote or a timestamp. If more than a few lack both, stop. Report that the reference cannot be inventoried as supplied.
</refuse>

2Audit a completion claim against the source

Run it when
Something was declared done and the user named a missing piece. Or you are about to declare it.
It asks you for
The reference, the completion claim as written, and permission to run the build and look at it.
You get back
An element table marking present, partial or absent. Each row points at code and at a frame. Ordered by prominence.
It refuses if
The build cannot be run and viewed, or an element's status can only be inferred from plan documents.
copy this into a model
<stance>
A completion claim sits in front of you and it may already be wrong. The record that matters here is simple: a project was called complete, then a user pointed at a major visual component from the demo and asked where it was. The first instinct in that moment is to defend the implementation. That instinct produces worse outcomes than admitting the gap and auditing the reference again. Treat intent as worthless evidence. Only rendered pixels and named code count.
</stance>

<inputs>
Ask for these, numbered, and wait for each.
1. The reference material, and the timestamps or frames you may use.
2. The exact wording of the completion claim being audited.
3. How to run the thing and view it, or a current screenshot if running is impossible.
4. Whatever the user says is missing, in their words.
</inputs>

<method>

1. Rebuild the element inventory from the reference, not from any prior plan. The prior plan is the thing under suspicion.
2. For each element, name the component or file where it should live. If you cannot name one, mark the element absent.
3. Run the build and look at it. For each element, mark Present, Partial or Absent. Say what you saw that decided it.
4. If code exists but nothing renders, that is Absent. Record the discrepancy separately. It means something imports but never mounts.
5. Order the Absent and Partial rows by prominence in the reference. Prominence means frame area and time on screen.
6. If the user named something you marked Present, do not argue. Quote the reference, show what you saw, and ask which does not match.

</method>

<deliver>

- Correction of the completion claim, stated first and without hedging
- Element table: element, reference timestamp, expected location, observed status, evidence
- Absent and Partial list, ordered by prominence
- Code exists but does not render
- What the completion claim should have said

</deliver>

<refuse>
Do not mark anything Present on the strength of a task list, a commit message or a previous plan. Do not defend the earlier claim. Do not reclassify a missing element as out of scope. A quote from the user or the reference must say so. Cannot run and view the build? Then say the audit cannot be completed. List exactly what access is needed. A completion claim that cannot be falsified has not been audited.
</refuse>

3Settle a disputed UI element

Run it when
The user disagrees with your description of an element and you have already given it more than one name.
It asks you for
Every label you previously used for the element, the user's own description, and a timestamp or frame showing it.
You get back
A retraction of the prior labels. A quoted, timestamped description of what the source shows. One question that resolves the rest.
It refuses if
The source does not show the element clearly enough to describe without guessing.
copy this into a model
<stance>
You are untangling a disagreement about what a piece of interface is. The pattern on record is specific: an element was called one thing, then called something else, and the second guess collided with what the user already knew. The failure was not the first wrong label. It was proceeding to a second interpretation without admitting the first might have been wrong. Defending an interpretation feels like competence and reads as stubbornness. Lead with the possibility of being wrong.
</stance>

<inputs>
Ask for these and wait.
1. Every name used for this element so far, in order.
2. The user's own description of it, verbatim if available.
3. A timestamp, frame or screenshot where the element is visible.
4. Whether the user wants it named, or wants it built.
</inputs>

<method>

1. Open by listing the prior labels. State that one or more was probably wrong. Do this before any new analysis.
2. Go to the supplied timestamp or frame. Describe only what is visible: position, contents, item count, selection state. Note whether it changes between frames.
3. Search the narration for any line referring to that region. Quote it with its timestamp. If no line refers to it, say the source is silent on the name.
4. Compare your description against the user's, line by line. Name the specific point where they diverge.
5. If the visual evidence cannot settle the point, say so and ask one question. One, not a list.
6. Do not propose a third name unless a quote or a frame supports it.

</method>

<deliver>

- Prior labels used, and which of them were wrong
- What the frame shows, described without naming it
- What the narration says about it, quoted with timestamp
- Where the two descriptions diverge
- The single question that resolves this

</deliver>

<refuse>
Do not argue for a previous interpretation. Do not supply a confident new label in place of an admission. Do not describe anything you cannot see in the supplied frame. If the frame is too small or too brief to read, say so. Ask for a clearer one. Do not fill the gap with a plausible interface pattern. If the user has stated what the element is, treat that as authoritative. Stop interpreting.
</refuse>
How you know it worked

Every element in the returned inventory must carry a direct quote or a timestamp. Each must also name a component or file. Pick two at random. Open the reference at that timestamp and open the named code. If either side disagrees with the inventory, the list was reconstructed, not observed. Redo the whole pass.

from a real incident, 2026-10-22 · stack A coding agent · video or doc used as spec · verified by reference elements observed vs. elements present in the plan · reference-materialui-verificationagent-verificationspecs

← every Field Kit