tail
Set, read, or reset the end card/bumper that plays after the last frame of a project.
Instructions
Read or change the finishing pass this project plays after its last frame.
An end card or a bumper, applied by export itself rather than glued on
afterward with ffmpeg — the fix for a defect that has already shipped: a
finishing pass applied downstream of export is dropped by every
derivation at exit 0, silently, because nothing in the project ever knew
it existed (HISTORY.md § The bumper the teaser never had, § The end card).
Call it with no arguments to read what is in force.
asset must be card:name, never a clip_id — verify diffs a render's
own transcription against the timeline's words, and silence adds none of
its own, which is exactly what a card behind it guarantees and a media
clip would not. seconds is the tail's whole length, card included, not
a hold with fade added on top of it (the known trap: xfade finishes
exactly at the length it is given). fade is recorded and echoed but not
yet drawn — this build cuts to the card hard, at seconds.
Setting asset or seconds for the first time needs both together;
either alone after that updates just that field, the same partial-update
shape caption_style has. reset drops the tail entirely.
Needs an existing picture cue lane covering the whole film — add cues
first (cue_add) if the project does not have one; export names why
otherwise. plan resolves and validates without writing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fade | No | Recorded and echoed, not yet drawn: this build cuts to the card hard, at `seconds`. | |
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| plan | No | Resolve the whole call and report what it would do, writing nothing. Prefer it over doing the thing and undoing it. | |
| asset | No | The end card or bumper, as `card:name` — never a clip id. `verify` diffs the render's own transcription against the timeline's words, and a card behind silence adds none of its own, which a media clip would. | |
| reset | No | Drop the tail entirely. Note a derivation inherits none of it anyway and reports `tail_dropped`. | |
| seconds | No | The tail's **whole** length, card included — not a hold with `fade` added on top of it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||