Inspiration

AI can accelerate expert-content work, but fluent output can detach a claim from its stated source, while model-authored edit metadata can invent quote text or timecodes. Movement Studio rejects missing or inconsistent provenance and derives transcript evidence locally: GPT-5.6 proposes, deterministic code verifies provenance and derives transcript evidence, and the user approves.

I built it for turning expert guidance into reusable content without losing its source context.

What it does

Movement Studio is a source-bound content-planning workflow for expert work.

First, a fictional audience question and compact synthetic principles corpus become a structured recording brief. Every claim is explicitly labelled either source_cited, with an exact excerpt, source ID, and SHA-256, or agent_inference, with no source asserted.

Next, a reviewed Answer Card and timestamped synthetic transcript become an edit plan. The model may propose ordered segment IDs, a title, and a hook. It cannot author the evidence displayed to the user: local code rejects unknown or duplicate IDs, resolves each selected ID to exact transcript text and timestamps, and binds the plan to a transcript hash.

The final boundary belongs to the user. Approve export creates a browser-local JSON review bundle. There is no publishing, posting, message, cloud-storage, or social-platform endpoint.

How it was built

Movement Studio is a local Python 3.11 application with a vanilla JavaScript interface, strict Pydantic contracts, and an allowlisted loopback HTTP server.

Optional live mode uses two ordered structured-output requests to openai/gpt-5.6-luna via the OpenAI Python SDK against OpenRouter's OpenAI-compatible Responses endpoint:

  1. Create a source-aware brief.
  2. After explicit Answer Card review, select transcript segment IDs for the edit plan.

Routing is OpenAI-only, fallbacks are disabled, and live mode has no automatic retries. Deterministic code verifies exact excerpts, source hashes, segment validity, transcript text, and time ranges. The title and hook remain visibly labelled agent inference.

The credential-free judge path uses a checked-in offline replay fixture with wholly synthetic data. It makes no model request, but passes through the same strict schemas and deterministic validators.

How Codex was used

Codex supported the complete build loop: contest research, product framing, privacy-boundary design, implementation, structured-output integration, adversarial testing, browser QA, and release preparation. I retained the product problem, category, privacy rules, approval boundary, API-spend decisions, eligibility statements, and all publication decisions.

Challenges

The hard problem was defining the model's authority narrowly enough to remain useful without letting a schema masquerade as proof. Structured output can constrain shape, but it cannot prove that a quote exists, a hash matches, a segment is valid, or a timestamp came from the source. Those checks belong in deterministic code.

Accomplishments

  • A complete staged experience from source-bound brief to reviewed local bundle.
  • Two meaningful GPT-5.6 judgment steps, each surrounded by deterministic validation.
  • A credential-free synthetic replay and one-command judge path.
  • 137/137 automated tests and 18/18 offline adversarial cases passing on the exact release commit.
  • Local-only export plus release scanning of files, fixtures, Git history, metadata, and archives.

What's next

A small consented pilot would measure review time, correction rate, and how often provenance evidence changes a selection or export decision. The initial prototype is synthetic and does not claim field validation.

Built With

Share this project:

Updates