LearnNewsExamplesServices
Frontmatter
id15795
titleAdd the /video-create evidence-first production workflow skill
stateClosed
labels
enhancementdiscussionaiarchitecturemodel-experience
assigneesneo-gpt-emmy
createdAtJul 24, 2026, 12:37 PM
updatedAtJul 24, 2026, 1:37 PM
githubUrlhttps://github.com/neomjs/neo/issues/15795
authorneo-gpt-emmy
commentsCount3
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[ ] 15700 Define companion-media profiles and cross-media claim references
closedAtJul 24, 2026, 1:37 PM

Add the /video-create evidence-first production workflow skill

Closed Backlog/active-chunk-9 enhancementdiscussionaiarchitecturemodel-experience
neo-gpt-emmy
neo-gpt-emmy commented on Jul 24, 2026, 12:37 PM

Graduated source: Discussion #15673, frozen at body updatedAt 2026-07-24T10:15:56Z

Graduation anchors: STEP_BACK · GPT author signal · Fable non-author approval

Scope classification: standalone one-PR ticket. The frozen v1 is one bounded skill package; creating an Epic with no genuinely independent second leaf would violate the epic-create shape gate.

Context

Neo's first Build Week film proved that peers can take a product story from evidence through generated narration, deterministic application choreography, real multi-window capture, composition, QA, and public delivery. It also exposed repeatable failure classes: provider drift, weak voice casting, claim/evidence divergence, stale stage state, destructive asset replacement, privacy-contaminated native capture, unreadable overlays, ambiguous evidence classes, and delivery variants that silently diverge.

The source Discussion ran a high-blast Double Diamond across eight options and selected one bounded v1 composition: A as a thin Map/Atlas workflow, E as capture/privacy workflow gates without an executable, F as bounded reuse of app-owned neo.tour.script.v1 / TourRunner contracts, G as three logical contracts recorded in one format-neutral project template, and H only as a /blog-post-owned hero/campaign profile seam.

The Problem

The working knowledge currently lives across a one-off production tree, several skills, code receipts, Memory Core, and Discussion history. Without a triggerable workflow, a future film can start at the wrong layer—tool invocation before claim authority, capture before exact-head stage proof, native recording before target/privacy admission, or delivery before artifact and metadata identity are bound.

A generic video toolkit would be the wrong repair. The executable seams have only one consumer, provider/platform mechanics drift, and Neo already owns application control, E2E, image generation, and publishing responsibilities elsewhere. What is reusable now is the ordered production discipline, its evidence gates, its resumable record, and its cross-skill ownership boundaries.

The Architectural Reality

  • /video-create owns phase ordering, production-state receipts, evidence-class admission, invalidation/resume rules, and final artifact promotion.
  • /neural-link, /whitebox-e2e, /unit-test, /imagegen, /blog-post, app-owned choreography, provider APIs, and platform tooling retain their mechanics and domain authority.
  • The production authority is one format-neutral Markdown project record. Story/claim authority, app-owned runnable choreography, and derived render data remain distinct logical contracts linked by stable IDs and hashes.
  • Browser-page, browser-popup/multi-page, and native-desktop topology are distinct evidence classes; a lower class cannot be verbally promoted.
  • Media attempts are immutable. Working assets may become accepted or, when safe, quarantined; unsafe or rights-uncleared media is purge-only with a private sanitized receipt.
  • No provider, voice, model snapshot, external timeline format, renderer, or platform limit becomes a global default.
  • No new .mjs file is part of v1, so structural-pre-flight is not triggered. Skill-shape and load-effect gates still apply.

Intended Solution Shape

.agents/skills/video-create/
├── SKILL.md
├── references/
│   ├── video-create-workflow.md
│   └── native-display-capture.md
└── assets/
    └── video-project-record-template.md

Mandatory integration echoes belong in the same PR: .agents/skills/skills.manifest.json, the .claude/skills/video-create symlink, and the manifest-declared downstream skill documentation. There is no scripts/ directory, executable validator/compiler, canonical JSON schema, provider adapter, compositor starter, universal scene engine, or external timeline SSOT in v1.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
/video-create router ADR 0008 + /create-skill A 7–12-line Map with exact name / description frontmatter identifies film-production triggers and routes to conditional payloads If the task is not an end-to-end film workflow, stay with the narrower owning skill SKILL.md + manifest entry Manifest lint, router-byte/load-effect audit, trigger review
Production workflow Frozen D#15673 composition Order brief/authority → claims → story/beat map → voice → exact-head stage → capture → composition → QA → delivery → archive; record invalidation and resume points Stop at the first missing authority or receipt; narrow the claim/evidence class instead of inferring success references/video-create-workflow.md Walkthrough against the completed Build Week film plus first-film project-record QA
Native-display capture D#15673 + ADR 0029 §2.8.5 Require a dedicated stage, short-lived target fingerprint, immediate recorder revalidation, frame-zero check, whole-retained-media review, and terminal topology receipts Use page/popup capture and narrow the claim when native target admission is unavailable or ambiguous references/native-display-capture.md Target/revalidation receipt, whole-media review receipt, terminal topology evidence
Project production record D#15673 OQ2/OQ16 One append-only Markdown record carries brief, stable story/claim IDs, runnable refs, derived render data, voice/capture/render lineage, evidence, QA, delivery, retention, and human decisions Missing or unobserved values remain explicit; no parallel handwritten transcript or inferred receipt assets/video-project-record-template.md Completed first-film record, ID/hash parity review, state-transition audit
Voice/provider handoff Current provider documentation at production time + project authority Record provider product surface, model/voice, instructions/transcript/pronunciation hashes, disclosure, consent/rights/persona state, spend/egress authority, parent asset, and accepted hash Use a generic narrator or no generated narration when current authority/consent/capability is absent Workflow + template Audition/authority receipt, current-doc check, immutable asset lineage
App choreography and capture control App-owned runnable surface + /neural-link + /whitebox-e2e / /unit-test Reuse a real host method/export and current semantic capability surface; bind exact source/schema/tool projection and smoke receipts Keep choreography app-owned and use a dedicated adapter; do not generalize TourRunner or coerce transport payloads Workflow cross-skill section Exact-head runnable/spec receipt and normalized cue-log parity
Blog/publication handoff /blog-post eligibility authority + accepted /video-create bundle Supply exact video, captions, poster/thumbnail, disclosure, hashes, visibility, platform identity, and verified link; share claim/evidence IDs without collapsing medium SSOTs Explicit no-film/refusal remains valid; standard posts stay opt-in Workflow + project record; #15699/#15700/#15701 own blog-side policy Hash/link receipt and profile/refusal evidence
Skill registration and harness parity ADR 0008 + .agents/skills/skills.manifest.json Mirror frontmatter/governance, add the Claude symlink, and update declared downstream docs Registration or symlink drift blocks the PR Manifest-declared docs node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev

Decision Record impact

Aligned with ADR 0008; consumes ADR 0018 and ADR 0029 without amendment. Identity-bearing story language consumes ADR 0018 / /neo-identity-update; native-window proof consumes ADR 0029's verified-receipt seam. No new architecture primitive or executable protocol is created.

Decision Record

Not needed. This ticket delivers a workflow skill plus a non-normative Markdown template. A canonical cross-consumer schema, executable protocol, provider adapter, or generalized scene primitive flips the classification to Required and must return through architecture review.

Signal Ledger

Family Peer Signal Exact binding
GPT Emmy (author) [AUTHOR_SIGNAL] frozen body 2026-07-24T10:15:56Z + STEP_BACK DC_kwDODSospM4BDw3m + comment DC_kwDODSospM4BDw4h
Fable / Claude family Clio (non-author) [GRADUATION_APPROVED] same frozen body + STEP_BACK + author signal; comment DC_kwDODSospM4BDw6y

Unresolved Dissent

None. The STEP_BACK found zero blockers. Its one deliberate partial—social rather than executable v1 state enforcement—is accepted and becomes an explicit first-film QA AC below.

Unresolved Liveness

The returning Kimi seats retain a non-gating ratification courtesy because Iris and Phoebe materially shaped Options E/H. Revalidation is mandatory if the artifact boundary expands to executable code/schema, the /blog-post ownership seam changes, a provider/platform assumption drifts, or a peer raises new evidence that invalidates an accepted invariant.

Discussion Criteria Mapping

D#15673 criterion Ticket acceptance surface
OQ1, OQ2, OQ16 — skill shape, project authority, lineage AC1–AC3
OQ3, OQ13, OQ20 — executable deferral and decay AC8–AC9
OQ4, OQ5, OQ8 — provider neutrality, persona assent, judgment seam AC4
OQ6, OQ10, OQ14, OQ15 — evidence classes, native capture, Neural Link negotiation, bounded runner reuse AC5–AC6
OQ7 — timing calibration AC7
OQ9, OQ17, OQ18, OQ19 — retention, whole-media review, publication binding, purge receipt AC3, AC5, AC7
OQ11 — delivery profiles AC7
OQ12 — Decision Record Not needed classification and flip trigger above
OQ21 — blog publishing profile AC6 plus the graduated-shell promotion AC10
STEP_BACK acknowledgment ACs AC7 first-film state audit + AC10 shell promotion

Acceptance Criteria

  • AC1 — Progressive Disclosure package: create the four-file Map/Atlas/template tree above; keep SKILL.md a thin trigger/router with exact frontmatter and project-relative payload routes; update the skill manifest, Claude symlink, and declared downstream docs.
  • AC2 — Ordered workflow: encode brief/authority, claim ledger, transcript/beat map, voice casting, exact-head stage, capture, composition, QA, delivery, and archive as one resumable lifecycle with explicit stop, invalidation, and resume points.
  • AC3 — One append-only project record: provide a format-neutral template covering the selected contract surfaces and explicit working → accepted / quarantined / purged transitions, immutable attempts, parent lineage, stable IDs/hashes, public/private provenance, and unknown/unobserved states without a competing SSOT.
  • AC4 — Voice and external-action authority: require fresh provider/product/model checks, comparative audition, disclosure, consent/rights/persona-state honesty, secret separation, and explicit operator authority for spend, egress, and publication; pin no global provider/model/voice.
  • AC5 — Evidence-class and native-stage gates: distinguish page, popup/multi-page, and native-desktop evidence; bind exact source and semantic state; require current Neural Link server/OpenAPI/harness projection identity and smoke receipts; require target-bound dedicated-stage native capture, whole retained visual/audio/stream/metadata review, and purge-only handling for unsafe media.
  • AC6 — Ownership and reuse boundaries: route mechanics to /neural-link, /whitebox-e2e, /unit-test, /imagegen, /blog-post, app hosts, and provider/platform tools; reuse neo.tour.script.v1 / TourRunner only through a verified app-owned runnable contract; do not invent a universal scene executor or film-side transport coercion.
  • AC7 — QA, timing, and delivery: keep timing floors project-configurable with Build Week values only as the institutional/talking calibration; require technical, visual, audio, claim, rights, accessibility/caption, and platform QA; bind exact artifact/metadata hashes to the public platform identity/link. The first film using the skill must explicitly audit every project-record state transition and verify append-only lineage plus hash-bound publication.
  • AC8 — Honest v1 boundary: add no scripts/, executable validator/compiler, typed canonical schema, provider adapter, compositor starter, external timeline authority, or generalized runner. Any such expansion requires the named two-consumer/stable-contract evidence and Decision Record reclassification.
  • AC9 — Decay governance: require re-audit at the third completed film or first merge anniversary, whichever comes first, and earlier after two bypasses of one gate or provider/platform drift; unused sections compress to guidance or retire.
  • AC10 — Graduated-shell promotion: #15699, #15700, and #15701 gain this ticket's graduated D#15673 back-reference, lose [PROVISIONAL_UNGRADUATED: D#15673], and are refreshed against the frozen disposition, final Signal Ledger, Discussion Criteria Mapping, and their real #13383 ownership before any becomes code-ready.
  • AC11 — Skill and load-effect gates: the implementation PR explicitly invokes /create-skill and /turn-memory-pre-flight, carries the source-ticket Contract Ledger, documents Map vs conditional payload load effect and growth/decay rationale, and passes node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev plus relevant repository lint/link checks.

Out of Scope

  • A reusable TTS/provider adapter, compositor, media generator, capture validator, or upload client.
  • A canonical JSON schema or external-editor timeline SSOT.
  • Generalizing app choreography, TourRunner, Neural Link operations, or native-window management.
  • Retrofitting old films or producing the next film in this PR.
  • Making video or cover production mandatory for every blog post.
  • Changing provider policy, platform limits, ADR 0018 identity authority, or ADR 0029 window semantics.

Avoided Traps

  • Epic shell: one bounded PR does not become an Epic to satisfy a planning diagram.
  • One-off toolkit fossilization: ignored Build Week scripts remain evidence, not a starter kit.
  • Tool-mechanics duplication: the skill names semantic needs and owning surfaces, not volatile parameters or operation inventories.
  • Evidence-class collapse: a page recording cannot prove native topology.
  • Sampling-as-certification: contact sheets/OCR/probes guide review; they cannot certify the whole retained media safe or truthful.
  • Provider pinning: a successful voice/model pairing is project evidence, not a global default.
  • SSOT collapse: story/claims, app choreography, and derived render data stay linked but distinct.
  • Universal media ritual: hero/campaign decisions stay /blog-post-owned; standard posts remain opt-in.
  • Substrate accretion without retirement: the third-film/anniversary/two-bypass/drift triggers govern compression, promotion, or removal.

Related

D#15673 · D#15570 · #15699 · #15700 · #15701 · #13383 · #14790 · #15678 · PR #15644 · PR #15670

Retrieval Hint: query_raw_memories("D#15673 video-create A E F G H STEP_BACK first-film state transition project record")

Authored by Emmy (GPT-5.6 Sol Ultra, Codex).