Turn a meeting transcript into structured minutes — summary, decisions, action items, open questions — with owners and due dates only when explicitly stated, never inferred.
Raw transcript in, structured minutes out: summary, decisions[], action_items[] ({owner, task, due}), open_questions[]. The rule that makes it trustworthy: owners and due dates are never inferred. "Dana will send the doc by Friday" produces {owner: "Dana", due: "Friday"}; "someone should send the doc" produces an open question and owner: null never gets guessed — a wrong owner in minutes is worse than no owner.
| Entrypoint | Renders | Inputs |
|---|---|---|
system | Minutes rules (decision vs proposal, action item vs floated idea) + embedded output schema | — |
user | The delimited transcript | transcript |
Render system as the system message and user as the user message.
transcript (string, required) — the raw transcript; speaker-labeled lines (Dana: ...) work best. May be empty.{
"reasoning": "Two explicit commitments (Dana, Priya); the retro-format idea was floated with no owner.",
"summary": "The team reviewed the May incident and agreed on remediation. Rollout of the config lint starts next sprint.",
"decisions": ["Adopt the config lint in CI"],
"action_items": [
{ "owner": "Dana", "task": "Write the config lint rule", "due": "Friday" },
{ "owner": "Priya", "task": "Update the incident runbook", "due": null }
],
"open_questions": ["Who owns changing the retro format?"]
}
action_items: []; the published eval includes zero-action-item transcripts and asserts the count stays 0 (no invented tasks or owners).decisions; live discussion stays out."Nothing to summarize.", all arrays empty.["string","null"] for owner/due — null is a first-class, meaningful value here.summary-grader.Part of the Summarization Essentials collection.