T2 chain · podcasts / meetings:nika:readloads the raw transcript, ONEinfer:with a strictschema:extracts chapters + pull-quotes + summary as typed data,nika:jqshapes the sections, andnika:writerenders the publishable page. The model is called exactly once, and its output is schema-validated before anything downstream touches it.
The job
Show-notes are the chore between “episode recorded” and “episode published”: an hour of scrubbing for chapter marks and quotes. This workflow does the extraction in one bounded model call — bounded in shape (the schema rejects free-form prose) and in count (one infer, so the cost of an episode is the cost of one call, visible innika check before you run).
The shape
The file
transcript-shownotes.nika.yaml
The model choice is part of the lesson
The envelope pinsollama/llama3.2:3b — deliberately NOT the
showcase’s usual qwen3.5 — because this is a strict-schema job and a
thinking model can burn the whole max_tokens budget inside its
think block before emitting the first JSON token (engine issue #428:
the output arrives empty yet the schema demanded content). The rule of
thumb this file encodes: reasoning showcases pick a thinking model;
strict-schema extraction picks a non-thinking one.
The typed seam is the other half: because notes is schema-shaped,
the jq step reads .chapters[] and .quotes[] as data — no regex
over model prose, no “hopefully it used the same markdown headings
this time”.