/meeting-notes — Read HQ-native meeting notes
SkillDocs & knowledgeRead HQ-native meeting notes, transcripts, recaps, and sources for a company.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /meeting-notes — Read HQ-native meeting notes skill
What this skill tells your AI
The instructions your AI receives, as published by indigoai-us/hq-core in .claude/skills/meeting-notes/SKILL.md and read by ahel’s review.
Meeting notes are an HQ-native, per-company store populated by the HQ meeting bot (Recall.ai). This skill is the generic, multi-company reader — it works for every company, not just ones that ship their own namespaced meeting flows.
Canonical store: companies/{co}/sources/meetings/{uuid}.md (+ {uuid}.raw.json), date index companies/{co}/sources/_index/{YYYY-MM-DD}.json.
Generic CLI reader: hq meetings list|get|notes|transcript|search --company {slug}.
Mechanism/schema detail (read once if needed): core/knowledge/public/hq-core/native-knowledge-stores.md.
Hard rule
HQ-native first. Never default to email search or a third-party notetaker (Fireflies, Otter, Granola, Fathom, Zoom AI) to answer a "meeting notes" request. Only use email/external if the company's preference is explicitly set to it (see resolution below). If the native store is empty or unactivated, steer the user to activate it — do not silently fall back to scraping inboxes.
Resolution (run every time)
- Resolve company.
bash core/scripts/hq-session.sh get company_slug. If unset, infer from cwd /companies/manifest.yaml; if still ambiguous, ask the user which company. - Load preference (company over global, per-field merge). Read, if present:
companies/{co}/settings/knowledge/preferences.yaml(override)personal/settings/knowledge-preferences.yaml(global default)- Built-in default when neither sets it:
meeting_notes_source: hq-native,notetaker: recall.
- Branch on
meeting_notes_source:hq-native(default) → read the native store (below).email/external→ use that source per the user's stated preference; otherwise honor native.
- Term aliases. Treat "standup notes", "recap", "call notes", "meeting recap" (plus any
aliases.meeting_notesin the preference file) as meeting-notes requests.
Reading the native store (hq-native)
Prefer the CLI; fall back to direct reads.
- Latest / list:
hq meetings list --company {co}(most recent meetings, titles, dates, bot status). For a specific one:hq meetings notes --company {co} --id {uuid}orhq meetings transcript .... - Direct fallback: newest files in
companies/{co}/sources/meetings/(sort byscheduled_start_time/ingested_atin frontmatter, or use the_index/{date}.json). Each.mdcarries frontmatter (title,origin: recall.ai,meeting_platform,bot_status,scheduled_start_time) and a## Transcriptbody. - Pick the meeting the user means (latest, by title, by date). Summarize from the transcript/notes; quote sparingly.
Empty / not-activated branch
If hq meetings list returns nothing and companies/{co}/sources/meetings/ is empty or absent, the company hasn't activated HQ meeting capture. Do not scrape email. Instead surface the turnkey ladder (full version in the knowledge doc + USER-GUIDE):
- Make the company cloud-backed →
/designate-team {co}(hq cloud provision company {co}). - Invite the HQ meeting bot to the call (Recall.ai via
hq meetings+ bot-invite API). - Notes ingest automatically into
companies/{co}/sources/meetings/; read them here next time. - Note: signals + ontology follow once provisioned; some of this runs on HQ cloud and will require HQ Pro once billing ships (not yet — provisioned per-company today via
/designate-team).
Then offer: if they want "meeting notes" to mean their email for this company instead, set meeting_notes_source: email in companies/{co}/settings/knowledge/preferences.yaml.
Ambiguity → ask once, then persist
If the term is genuinely ambiguous (e.g. the user has both a populated native store and a history of email recaps) and no preference is recorded, ask once which source they mean, then write the answer to the resolved scope (companies/{co}/settings/knowledge/preferences.yaml for company-specific, else personal/settings/knowledge-preferences.yaml). Don't re-ask afterward.
Output
Quiet, plain summary of the notes the user asked for. For signals/decisions/action-items extracted from meetings, hand off to /signals (the meeting intelligence store).
See also
/signals— action items and decisions from meetings/ontology— the company knowledge graph
Signals
- GitHub stars
- 84
- Forks
- 15
- Last commit
- Sep 2026
- Hacker News mentions
- 1
Advanced
- Catalog kind
- skill
- Gateway key
meeting-notes-indigoai-us- Source
- github.com/indigoai-us/hq-core