Meeting Brief
Prepare daily meeting briefs by checking the operator's calendar, filtering out internal attendees, researching each external participant, and generating concise context for upcoming conversations. This runbook converts the original Meeting Brief skill into a Jetty programmatic w
8 steps · start to finish.
- 1Step 1
Environment Setup
▶- Create
/app/resultsand ensure it is writable. - Confirm
config.jsonexists in the skill directory; if it does not, copyconfig.json.exampleand fill in team filters, timezone, destination email, and delivery preferences. - Verify calendar access with
gcalcli agenda today tomorrow. - Verify optional integrations only when enabled:
gh auth statusfor GitHub lookup, Gmail sender credentials for email, andslack_webhookfor Slack. - Write a setup stage to
/app/results/validation_report.json.
- Create
- 2Step 2
Load Configuration
▶Read `config.json` and validate `team_members`, `team_domains`, `schedule`, `timezone`, `your_email`, `send_email`, `send_slack`, `include_calendar_details`, and `research_depth`. Fail fast if both `send_email` and `send_slack` are false and no file-output mode is configured. Nor
- 3Step 3
Fetch Today's Meetings
▶Run `scripts/check_calendar.sh` or the equivalent `gcalcli` command for today's agenda in the configured timezone. Parse meeting title, time, location, description, and attendees into JSON. Store the normalized meeting data under the skill data directory and include a count in `/
- 4Step 4
Filter External Attendees
▶For each attendee, skip exact matches from `team_members` and any email ending in a configured `team_domains` entry. De-duplicate attendees across meetings and check `data/sent/YYYY-MM-DD.json` so the run does not resend a brief for a person already handled today.
- 5Step 5
Research Each Person
▶For every remaining external attendee, run `node scripts/research_person.js "<name>" "<email>" "<company>"`. Use web search for LinkedIn, company information, recent news, and professional background. If `research_depth` is `standard` or `deep`, use GitHub lookup for likely engin
- 6Step 6
Generate and Deliver Briefs
▶Run `node scripts/generate_brief.js research_output.json meeting_context.json` for each researched attendee. Produce email-style concise bullets and Slack-style narrative context. When enabled, send email via the Gmail skill and Slack via `scripts/send_slack.sh`; otherwise retain
- 7Step 7
Iterate on Errors (max 3 rounds)
▶If calendar fetch, research, generation, or delivery fails, retry the failing stage with a targeted fix for max 3 rounds. Common fixes include refreshing `gcalcli` authentication, lowering `research_depth` from `deep` to `standard`, disabling a failed delivery channel, or re-runn
- 8Step 8
Persist Logs and Personal CRM Entries
▶Save each researched person to `supernotes/people/` with research data, meeting context, and run date. Update `data/sent/YYYY-MM-DD.json` only after a brief is generated and the selected delivery path succeeds or a file-only brief is intentionally retained. Copy the de-duplicatio