The writer of the my-AI suite. An LLM interviews you about what you
want, then keeps writing until it can pass a pure-Python score — and only then emits a
validated ProductionSpec (for my-AI-scene)
or SongSpec (for my-AI-beats).
A vague brief is useless to a renderer. my-AI-script does the hard part — pinning a loose idea down into a complete, structured spec — and it refuses to emit one until that spec would actually pass the downstream validator. The interview manufactures the rigor up front; a deterministic scorer holds the line. The model proposes; Python disposes.
spec_validate checks structure, spec_score checks quality. Below 75, the breakdown
feeds back and the model rewrites. The scorer is never an LLM.The interview is the constraint-gathering phase. The chosen target's schema defines every field that must be filled — the LLM's questions serve the schema. The scoring rubric is in the system prompt before the model writes a word, so it knows the bar it's aiming for.
Once the model is confident it can score well, it generates the full spec from the conversation — every beat and narration line for a video, or every section, prompt, and energy value for a song. Reference-quality detail, on demand.
A target-specific pure-Python judge scores out of 100 — video on narration/footage/grade, music on prompt specificity and the energy arc. Below 75 the breakdown feeds back and the model revises. The scorer is never an LLM.
my-AI-script is the universal front door to the suite: it routes a brief to VIDEO → a
ProductionSpec (my-AI-scene) or MUSIC → a SongSpec (my-AI-beats), via one Target
abstraction. Proven end to end: a synthwave interview drove a local model to a 98/100 SongSpec,
validated and rendered.