Repository navigation
feat(newsletter-reels): add a skill for issue and post motion reels - #176
Merged
Merged
Conversation
…eferences SKILL.md walks the run end to end: prepare inputs and SVG logos, five directions per topic, a staggered launch explained to the owner first, the gallery gate, revision rounds resumed on the same worker, stock or composed music, and one export at the end. The briefs carry the rules issue 409 converged on (frame 0 is a brand-and-topic thumbnail, logos transform through their own anatomy, HTML builds only), and the references keep the 409 directions with the picks marked plus the learnings.
The owner uploads the reels by hand, and tmp/ inside the repo is too hard to reach from a file picker. export.py now also copies every pick, named by its topic folder, to ~/Desktop/newsletter-<N>-reels/ (overridable with --desktop), and the skill opens that folder at hand-over.
…ake reels step 10 of the issue briefs.py turns tmp/reels/<N>/directions.md into one brief per direction from briefs/worker.md, appending the issue-reel brief and the 1920x1080 format for topic 0, keeping existing briefs unless --force. A Sonnet test run rendered all 30 for issue 409 with no placeholders left and the right format per topic. The worker brief's time-budget line no longer tells workers to export, and it reads every facts*.md. newsletter-issue now proposes reels in its step-1 plan and runs them as numbered step 10, after the owner signs off the text; events and post-publication shift to 11 and 12. The reels SKILL.md notes that launch.sh and resume.sh are unproven on real workers and says what tracks the music library needs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a
newsletter-reelsskill that turns a newsletter issue into motion-graphics reels: one 1920x1080 reel for the issue itself and one 1080x1350 reel per article post, 20-30 s each with music, built as five competing directions per topic by parallel headless Opus workers and reviewed in a local gallery before anything is rendered.It is the distilled version of the issue 409 run. The first pass there was rough in ways that are now baked into the briefs: frame 0 has to work as the feed thumbnail with the brand and the topic on it, logos are SVG vectors that transform through their own pieces rather than dissolving into particles (the Mistral pixel-M reel is the reference), every revision resumes the worker that built the reel, and the mp4s are exported once at the end instead of every round.
The motion engine is a vendored copy of the portrait-adapted
z-motion-reelfrom the marketplace, with its marketplace update and issue-report steps removed so it never calls out. Around it are the scripts:prepare.pybuilds the per-topic inputs from the issue and its grounding notes,logos.pycollects brand SVGs and rejects anything with scripts or external references,launch.shandresume.shrun the workers staggered and capped at 10,gallery.pyserves the review page with per-topic picks and score/m1/m2 audio choices,swap_music.pylays a stock track under a reel cut to the film's exact length, andexport.pyrenders the picks into the issue's post folders. The stock-music library lives in a gitignored.music/in the main checkout, so nothing licensed or third-party is committed.Codex verified the scripts against the real 409 data: prepare reproduced the topic folders (0-issue byte-for-byte), the gallery served the six picks with the right formats and no page errors, one stock-music variant came out at exactly the film's duration, and one real export produced a valid h264+aac mp4. The launch and resume scripts were only exercised with
CLAUDE_BIN=echo, not with real workers; the real worker runs happened from the prototype scripts intmp/reels/409. Lint,check:ratchetandbuildpass.Two things I'm not sure about. The engine still keeps its shared Python venv under
~/.config/slt-agentic-marketplace/motion-reel/venv, which works on this machine but is an odd home for a repo skill; moving it is a small follow-up. And the skill leans on one owner's taste notes from a single run, soreferences/learnings.mdis meant to grow each issue rather than be read as settled.