-
Load related recap
Parse frontmatter to extract meeting context, decisions, actions, outcomes. If no recap provided, accept raw meeting notes with a lower input-quality flag.
-
Detect thread continuation
Scan same directory for prior
artifacts with matching
/
. If found, reference the prior update in the frontmatter
field.
-
Present go-mode inference summary
Show inferred channel (if not specified), detected audience, proposed CTA, thread continuation status, translation candidates (flagged jargon or acronyms that may not land).
-
Distill key outcomes
From the recap or notes, select 3-5 outcomes that matter to the target audience. Do not include everything from the recap. filter by audience relevance.
-
Frame the CTA
If action is needed: lead with it, not bury it
If FYI-only: state explicitly in the TL;DR
-
Translate technical-to-business
Flag jargon and acronyms unlikely to land with the audience. Provide plainer alternatives. Keep a translations-applied log for user verification in the output's Generation context.
-
Build the channel-tailored variant
- Slack / Teams: headline (one action-oriented line, optionally one emoji), TL;DR 3 bullets, context sentence, "what this means for [audience]", CTA (bold with marker if action needed; italic "FYI-only" if not), thread-continuation link, more-links footer
- Email: subject line (topic + outcome), greeting ("Hi [audience]"), opening sentence (headline + why they are receiving this), TL;DR, context 2-3 sentences, what was decided / advanced, what this means for your team, what I need from you (with by-when), thread reference, sign-off
- Notion: rich H1/H2/H3 structure, longer context block, collapsible sections for detail, table for decisions and actions
- Exec-memo: TL;DR first (3-4 lines), supporting detail in 3 sections max, asks section upfront, formal tone, no emoji
-
Render TEMPLATE.md with the selected variant as primary
Other variants may be included as collapsible alternates for user flexibility. Remove all guidance blockquotes from the final artifact.
-
Validate
- is in enum
- is in enum
- is non-empty (use "FYI-only" if no action needed)
- is a valid filename reference or flagged as raw-notes input