Fieldnotes · first 20Published for review · 0 completed examples

Proposed library contract — review batch

This extends the approved five-treatment benchmark without replacing its files. Nothing in this directory is approved for publication. A rendered recipe is a draft until its source comparison and independent reuse have passed review.

What constitutes one example

A recipe owns one materially distinct observed treatment, or a source passage whose shot-to-shot choreography is itself distinct. A different source URL, copy, color, duration, or parameter preset does not create another example. Each recipe supplies a mechanism description and states which similar recipes it must not be confused with. A multi-shot passage cannot be used to count the same component recipes again without a distinct continuity/editing mechanism.

The completed count is computed from evidence, not from the number of JSON files. A counted record requires two different original-content renders, source-synchronized comparison, source-native consecutive-frame evidence, fresh-context moving-source review with no unresolved fidelity finding, and hashes binding those artifacts to the shipped implementation and inputs. Any retained discrepancy, including a minor one, requires an explicit user acceptance reference; an agent cannot accept its own work on the user's behalf.

Comparison-tool revisions are retained by their SHA-256 under evidence/tools/. Changing a diagnostic or resource limit must not relabel an earlier comparison as having run with new code. Source/recipe/render files are checked before and after evidence generation, and comparisons retain their native PTS mapping.

Reuse boundary

project/src/types.ts is the typed authoring contract. JSON recipes contain source observations, geometry, exact native-frame tracks, input constraints, and default/adapted original content. project/src/library.ts exports the shared renderer and validation API. Recipes share timeline sampling, layered groups, camera transforms, typography, masks, identity paths, overlays and media layers. They do not each ship an unrelated animation engine.

Camera groups can use temporal transform exposure (the cumulative-alpha sampling method also used by the preserved benchmark) rather than substituting isotropic CSS blur for directional travel. Shutter length and sample count are explicitly implementation fits, not recovered source settings. Child content keeps its native-frame state while the outer camera is sampled. Source motion that needs per-object exposure or other unsupported mechanisms must be flagged, not faked.

Frames are zero-based, with exclusive ends. All layer tracks use the recipe's local native-frame clock, including children of groups. Source frame equals source.startFrame + localFrame. Layer order is back-to-front. Group transforms affect all children; captions outside a group stay in screen space. Coordinates are pixels in the declared canvas, not CSS viewport units.

Source fps is a rational number. Its recorded value is not rounded to 24 or 30. The source-timed default uses exactly the inspected interval. Optional explicit opening/closing holds freeze its first/last state; they are editorial adaptations, not measurements. Changing active movement timing, smoothing a source cut, or reducing the number of visible layers is not an input substitution. A new aspect ratio needs a reviewed re-layout, not an implicit center crop.

Text slots specify character/word/line limits. Native-frame word, character and line reveals remain different operations. Geometric text fit is measured after the bundled licensed font loads. Overflow throws; the renderer never shrinks type or inserts automatic wrapping. The bundled Geist is a licensed substitute, not a claim that OpenAI used that font. A recipe must disclose material metric differences and retain them as review findings until resolved or accepted.

Oversized typography can also constrain each line's measured advance and require descending line widths. These are typed, enforced adaptation limits. They retain the source crop's blank margins without inserting a content-specific mask or changing the camera. Their numerical ranges are disclosed implementation fits, not measurements of an unidentified source font.

Reveals can retain units from the start or end. An end-retaining, right-aligned word deletion keeps the last word anchored without requiring duplicate text inputs or a mask fitted to one particular word. Exact line counts, per-line lengths and glyph-family patterns are typed constraints where source geometry depends on them; their rejection tests are separate from visual acceptance.

Image/video inputs are local assets under public/, with dimensions and a rights declaration. Media dimensions and hashes are verified before rendering. Footage must be conformed explicitly to the native cadence; narration is muted. Vector identity inputs have declared viewboxes. Original interface specimens are illustrations, not real product demos. Actual Poe captures require the applicable Poe2 instructions and behavior checks; no private Poe data belongs in this kit.

Retrieval and evidence

The index exposes compact records, not all implementation data at once. An agent filters by intent, family, source, duration, input type or neighboring shot, then opens the selected recipe. Every recipe names its source film/URL, exact frame interval/rate/hash, component/API, runnable input files, invariant properties, entry/exit states, limitations and verification artifacts.

Observations are typed measured, estimate, implementation-choice or unresolved. Existing research samples do not become frame measurements merely because the recipe uses integer keyframes. Measurements must point to inspected evidence. Interpolated paths/easing between measured states remain implementation fits unless consecutive evidence resolves them.

The verifier distinguishes mechanical validity from fidelity. Decoding a video, having no type errors, and matching duration are necessary but cannot approve motion. Reviewers identify exact source/render frames, discrepancies and limits of their playback method. Contact sheets do not prove continuous playback, and automated playback counters do not prove that a person watched a film.

Approval gates

The first consolidated review contains coverage, this reuse contract, and 20 new source-mapped examples. Further production waits for feedback at that gate. Any unresolved example is shown as a draft and excluded from completion totals. Publication is a separate explicit approval, only to the existing openai-film-fieldnotes-100 Cloudflare Pages project. No Gsites or replacement site is authorized. The approved benchmark and all existing public downloads must remain intact. This work is not the final all-hands presentation.