TEST: narrate and check in the claude-code-action job, the second job only publishes

2 hours ago

This pull request splits the pull request explainer workflow in two. In the first job, Claude writes the presentation, runs the checks, and narrates it on the runner with Kokoro. In the second job, a fresh runner publishes that folder and posts the watch link. It's a test harness for a branch in another repository, so it isn't meant to merge.

Ask about this presentation

Chapters

  1. 0:00Claude now writes and narrates the explainer, and a second job only publishes it
  2. 0:21Claude's session can't publish, so publishing moves out of it
  3. 0:44Job one writes, checks, and narrates
  4. 1:09Job two publishes the audio exactly as Claude judged it
  5. 1:38The same diff adds judging, missing-key notes, and private visibility
  6. 2:04Review the handoff first, the rest is docs and tests
Show transcript
  1. This pull request splits the pull request explainer workflow in two. In the first job, Claude writes the presentation, runs the checks, and narrates it on the runner with Kokoro. In the second job, a fresh runner publishes that folder and posts the watch link. It's a test harness for a branch in another repository, so it isn't meant to merge.

    Slide text
    • Job one: write, check, narrate
    • Job two: publish, nothing else
  2. The reason comes from the workflow's own comment. The Claude Code action removes the variables that mint the run's GitHub identity before Claude starts. That means Claude can write and fix its work, but it can't publish. So the identity lives in a separate job, the same split that PyPI trusted publishing and GitHub Pages use between building and publishing.

    Slide text

    Claude's session can't publish, so publishing moves out of it

    • claude-code-action strips the variables that mint the GitHub identity
    • So the publish needs its own job
  3. In job one, Claude has read access only. It fetches the spec, writes the slides and the context file, and reads the plan. Then it runs the pronunciation report and narrates, judges what the narration reports, and fixes problems before running both again. Because it narrates here, a bad pronunciation gets fixed by the author instead of shipping. The folder, audio included, goes up as an artifact.

    Slide text
    • Spec, slides, plan
    • Pronunciation report, then narrate with Kokoro
    • Fix and re-run until clean
    • Upload the folder with its audio
  4. Job two downloads the artifact and runs the action with a new presentation input. Only this job holds the permission to mint the identity, and it posts the comment. A new step reads the voice and speed from the sidecar file beside each audio clip, so publishing reuses the narration instead of making it again. If the slides disagree on voice or speed, or there's no audio, it warns and narrates the missing slides itself. Publishing also retries once after thirty seconds.

    Slide text
    • Only this job holds id-token: write
    • Voice and speed are read from the audio sidecars
    • Mixed voices: narrate again
  5. The diff carries more than the split. A new when input lets the model skip a dependency bump or a typo fix, and it only applies to automatic runs, never to a mention. A missing, expired, or out-of-quota key now ends green, with a note that names the secret to add. Private repositories publish as private instead of unlisted. Content problems at publish time become warnings, so the last step doesn't lose the run.

    Slide text
    • when: judged skips changes not worth explaining
    • A missing or refused key leaves one note, not a red check
    • Private repositories now publish as private
  6. If you review this, start with the handoff: the workflow, the action file, and the step that reads the audio sidecars. The tests for judging, key refusal, and that step are the evidence. This walkthrough doesn't cover the large skill script change or the README rewrite. And again, this is a harness branch, so the thing to do is review, not merge.

    Slide text
    • Check the artifact handoff in take-presentation
    • The skill and README edits are unread here

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️