# Word deletion → deforming outline finish

One standalone dual-toolkit for `agent-wordmark-outline-finish`. Both supplied
movies are new Remotion replays of the accepted **original authored geometry**:
Origin/compass and Orchid/beacon. Neither movie is the OpenAI source film.

## What is delivered

- Unmodified selected core: one recipe, its bounded typography builder, vector
  renderer, timing/validation dependencies and licensed Geist font. Nineteen
  archive members, rather than a copy of the publication stage.
- Two 1920×1080, 60/1 fps, 151-frame silent replays. The native local clock is
  `[0,151)`, or 2.516666667 seconds. No lead-in, retime, music or narration.
- 226 self-contained SVG states: 113 per identity, with state 112 held for 39
  frames. Typography embeds the hash-bound licensed font; outline surfaces are
  original editable paths. No source bitmap, source artwork or screenshot input.
- `RESOLVE.md`, `resolve-plates.csv` and `resolve-parameters.csv`: exact still
  durations, track placement and native code parameters, plus explicit limits.
- Real all-frame measurements and fail-closed inventory/provenance tests.

The **source-only ZIP** contains code, JSON/CSV/docs, original SVG and the original
licensed font. It contains no movies, PNGs, JPEGs, caches, dependencies or research
source frames. Replays, generated PNG plates and the short source research clip
are separate external artifacts. `DELIVERY.json` binds their hashes.

## Status, without implied approval

This is a working editable transport, **not source-fidelity completion**.
The inherited material density/topology and finishing-deformation findings, and
the minor lone-O optics finding, remain open. The source has six interlaced
lobes; these original identities have four and three. See `INHERITED_FINDINGS.json`.

The SVG preparation is **not pixel-identical** to Remotion: 32/151 exact RGB
frames per identity. The other frames include typography/subpixel and outline
raster differences; the lone O has a one-row ink-bound difference. Maximum
full-frame RGB mean absolute error is 0.110830 for Origin and 0.116192 for Orchid
on an 8-bit 0–255 scale. Those measurements are not a perceptual acceptance
threshold. Do not label the Resolve plate route a bit-exact Remotion equivalent.

The research movie is **960×540**, 151 frames, silent. The full 1920×1080 source
film was not available for this build. The historical native archive has only
111/151 PNGs per role; missing local intervals are `[3,17)`, `[116,124)` and
`[129,147)`. No upscaling or fresh decoding is credited as closing those gaps.
No native Resolve run, moving-quality approval, or separate fresh critic result
is claimed. The early sealed `critic-inputs.json` names the actual three movies
and is ready for a separate review; it is not itself a review.

## Source and bounded research window

Source ID `2wzGS_WUZYQ`, **A Look at ChatGPT agent**, OpenAI. Official publication
date: **July 17, 2025**, inside the inclusive September 5, 2024–September 5, 2026
window. The direct official watch response and saved official metadata agree on
channel and date. A search-index title differs; identity is bound by ID, channel
and metadata rather than the search title. `SOURCE.json` records that distinction.

Inspected source mapping: absolute native frames `[2650,2801)` at 60/1 fps,
44.166666667–46.683333333 seconds. The clip and any research comparison stay
outside the editable ZIP. Research attribution does not grant production rights
to the source brand, footage or demonstration data.

## Reproduce from the source-only ZIP

Unpack it into a new directory. Supply an **existing**, read-only dependency
directory with the exact versions in `build/core/package.json`; no installation,
copy or dependency symlink is part of this workflow. Supply the pinned full
Chrome ELF and its existing runtime libraries. Commands below run from the ZIP
root, not the original publication stage.

```bash
export WORDMARK_SHARED_NODE_MODULES="$EXISTING_NODE_MODULES"
export LD_LIBRARY_PATH="$EXISTING_CHROME_LIBRARY_PATH"
export TMPDIR="$AUTHORIZED_BROWSER_TMP"
export WORDMARK_BROWSER="$PINNED_FULL_CHROME_ELF"
export WORDMARK_WORK="$PWD"

node run.mjs --action check --project build/core --pins build/core-pins.json \
  --browser "$WORDMARK_BROWSER"
node run.mjs --action render --project build/core --pins build/core-pins.json \
  --browser "$WORDMARK_BROWSER" --out replays --encoder-lock "$SHARED_ENCODER_LOCK"
node run.mjs --action prepare --project build/core --pins build/core-pins.json \
  --browser "$WORDMARK_BROWSER" --svg svg --out prepared
node run.mjs --action check-prepared --project build/core --pins build/core-pins.json \
  --browser "$WORDMARK_BROWSER" --svg svg --out prepared
node --experimental-strip-types --test test_contract.mjs
"$PYTHON_WITH_PILLOW" -B test_verify.py
"$PYTHON_WITH_PILLOW" -B verify.py --work . --code . --out new-proof \
  --browser "$WORDMARK_BROWSER" --encoder-lock "$SHARED_ENCODER_LOCK"
```

Outputs must be new directories. Do not put generated movies, PNGs or browser
bundles in a code repository. Check the authorized storage guard before any
allocation; the original build uses an 80 MiB aggregate ceiling. Delete only
your own transient `replays/bundle/` after a successful render if space is tight.
No dependency or browser download is performed. `run.mjs` rejects an unexpected
browser hash/version, dependency version, core byte change, font change, missing
plate, duplicate inventory, wrong identity/dwell or empty input.

To regenerate SVG, run `--action export --out new-svg` with the same project,
pins and browser arguments. The included SVG inventory is already generated and
hash-bound; do not overwrite it while testing. Text uses embedded font data,
not a page font or a globally installed typeface. These SVG exports are not
passed back through the core renderer's separate, outlined-glyph media-input API.

Research checks are optional, never silently counted: `verify.py --stage` adds
the read-only accepted-stage comparisons; `--critic` adds the exact sealed source
movie comparison. Without those arguments their report status is `not-run`.
The ordinary replay/SVG/clock verification has no stage or source-media dependency.

## Edit original content

`CONTROLS.md` gives the actual bounded `buildWordmarkContent(WordmarkDesign)` API.
The two-fixture runner intentionally refuses to call altered content a replay of
the frozen pair. Use `design.mjs` to generate new validated Remotion input props;
then render those props through the supplied `build/core/src/Root.tsx` / Treatment
component in your Remotion application. New copy still needs the native browser
font-width gate and a new visual review. Do not edit 365 pose slots by hand.

This task does not change a shared registry, deploy anything, commit code, or
approve an all-hands presentation.
