phase-meeting¶
The /meeting command manages structured meetings โ distinct from /notes which captures unstructured live input. Meetings have schema (attendees, agenda, decisions, action items), optional calendar integration, and task creation from action items.
Meeting levels¶
| Level | Storage | Git-tracked in | Who sees it |
|---|---|---|---|
project (default) |
.neuroflow/meetings/YYYY-MM-DD-{slug}.md |
Project repo | All collaborators |
flowie |
~/.neuroflow/flowie/meetings/YYYY-MM-DD-{slug}.md |
Flowie repo | Owner only |
hive |
{hive-repo}/meetings/YYYY-MM-DD-{slug}.md |
Hive org repo | Whole team |
Meeting file format¶
---
title: {title}
date: {YYYY-MM-DDTHH:MM:00}
duration: {minutes}
location: {Zoom link / room / online}
attendees:
- name: {name}
email: {email}
level: {project|flowie|hive}
tags: [{tag1}, {tag2}]
linked_tasks: []
calendar_event_id: ""
template: {slug of recurring template, or omit}
---
## Agenda
## Notes
## Decisions
## Action Items
Recurring meeting templates¶
Templates live in:
- .neuroflow/meetings/config.json โ project-level (shared with collaborators)
- ~/.neuroflow/flowie/meetings/config.json โ personal (flowie level)
- {hive-repo}/meetings/config.json โ team-level (hive, synced with --sync)
{
"recurring": [
{
"name": "Weekly Lab Meeting",
"slug": "weekly-lab",
"duration": 60,
"location": "Room 301",
"level": "hive",
"default_attendees": ["all-hive-members"],
"default_tags": ["lab-meeting"],
"agenda_template": "## Updates\n\n## Papers\n\n## Action Items"
},
{
"name": "Supervisor 1:1",
"slug": "supervisor-1on1",
"duration": 30,
"location": "Zoom",
"level": "flowie",
"default_attendees": ["supervisor@example.com"],
"default_tags": ["1on1"],
"agenda_template": "## Progress\n\n## Blockers\n\n## Next steps"
}
]
}
default_attendees can be:
- An explicit email string
- "all-hive-members" โ resolved from hive.md members table
- "all-project-collaborators" โ resolved from project_config.md collaborators list
Mode: --new¶
-
Check for templates: read all
config.jsonfiles at the relevant level(s). If any recurring templates exist, show a picker: -
If template selected: pre-fill title, duration, location, level, tags, and agenda from the template. Ask only for date and time.
-
If custom: ask all fields:
- Title?
- Date and time? (YYYY-MM-DD HH:MM)
- Duration? (minutes, default 60)
- Location? (optional)
- Level? [project / flowie / hive] (default: project)
-
Tags? (comma-separated, optional)
-
Resolve attendees:
- For
default_attendees: ["all-hive-members"]โ readhive.mdmembers table โ extract name + email for each row - For
default_attendees: ["all-project-collaborators"]โ readcollaborators:fromproject_config.md - For explicit email strings โ use as-is
-
For custom meeting: ask "Who should attend? (names or emails, comma-separated)" โ look up emails from hive members and collaborators by name if given
-
Write meeting file to the appropriate storage location (see levels table above). Filename:
YYYY-MM-DD-{slug}.mdwhere slug is derived from the title. -
Calendar invite (optional): ask "Create Google Calendar event and send invites? [Y/n]"
If yes:
- Use mcp__claude_ai_Google_Calendar__create_event with:
- summary: meeting title
- start: ISO 8601 datetime
- end: start + duration
- location: as given
- attendees: list of email strings
- description: the agenda from the meeting file
- Store the returned event ID in calendar_event_id in the meeting frontmatter
- Confirm:
Mode: --prepare \<slug>¶
Prepopulate the ## Agenda section with context from the project and team.
- Read the meeting file by slug (search across all levels)
- Read
.neuroflow/project_config.mdfor current phase - Read
.neuroflow/tasks/active/and.neuroflow/tasks/review/โ list active and under-review tasks - If hive is connected: read
hive.mddirections for relevant team context - If any tasks are tagged with the meeting slug, include them under a dedicated heading
Compose an agenda draft:
## Agenda
### Project status
- Phase: {current phase}
- Active tasks: {list slugs with titles}
- In review: {list slugs with titles}
### Team context
{relevant hive directions if any}
### Items
{blank or template sections}
Show the draft and ask "Does this look right? Edit inline or confirm."
Write the updated ## Agenda section back to the meeting file (preserve other sections).
Mode: --view \<slug>¶
- Find meeting file by slug
- Read all
linked_tasksfrom frontmatter โ for each, check current column in.neuroflow/tasks/(or hive tasks) - Display meeting file with task statuses inline:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Weekly Lab Meeting โ 2026-04-20 10:00
Location: Room 301 ยท Duration: 60 min
Attendees: Stan, Jana, Petr (3)
Calendar: https://calendar.google.com/...
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
## Agenda
...
## Linked tasks
[active] fix-rt-glasses RT_DES
[review] grant-draft AlphaModulation
[done] eeg-param-sweep AlphaModulation โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Mode: --list¶
Show all meetings at the active level, sorted by date (newest first):
[project] 2026-04-20 Weekly Lab Meeting weekly-lab-2026-04-20
[project] 2026-04-13 Weekly Lab Meeting weekly-lab-2026-04-13
[flowie] 2026-04-17 Supervisor 1:1 supervisor-1on1-2026-04-17
If --level not given: show project and flowie levels together.
Mode: --invite \<slug>¶
Re-send or send calendar invites for a meeting that doesn't have a calendar_event_id yet.
- Read meeting file
- If
calendar_event_idis already set: ask "Invites were already sent (event ID: {id}). Re-send? [y/N]" - Call
mcp__claude_ai_Google_Calendar__create_event(orupdate_eventif re-sending) with attendees from the meeting file - Update
calendar_event_idin frontmatter
Mode: --close \<slug>¶
Finalize the meeting and convert action items to tasks.
- Read meeting file
- Parse
## Action Itemssection โ find all checkboxes: โ @personis optional โ used to assign the task'sprojecttag[level/column]is optional โ defaults to[project/inbox]-
Unformatted items default to
[project/inbox] -
For each unchecked item: create a task file at the specified level and column. Task frontmatter:
-
Update
linked_tasksin the meeting frontmatter with the new task slugs. -
Report:
-
Push all changes (meeting file + task files).
Mode: --init¶
Set up recurring meeting templates for the current level.
- Ask for level: [project / flowie / hive]
- Walk through template creation:
- Name? (e.g. "Weekly Lab Meeting")
- Slug? (auto-suggested from name, editable)
- Duration (minutes)?
- Location?
- Default attendees? (emails, "all-hive-members", "all-project-collaborators")
- Default tags?
- Agenda template? (section headings, freeform)
- Write to
config.jsonat the appropriate location - Confirm:
Template saved: {slug} - Ask "Add another template? [y/N]"
Attendee resolution rules¶
When resolving attendees for any mode:
"all-hive-members"โ read~/.neuroflow/hives/{org-repo}/hive.md## Memberstable โ return all rows as{name, email}"all-project-collaborators"โ read.neuroflow/project_config.mdcollaborators:list โ return all entries- Plain email string โ use as-is, name = email prefix
- Name string (no
@) โ search hive members and collaborators by name โ use matched email; if ambiguous, ask
If Google Calendar MCP is not authenticated: skip the calendar step and note "Google Calendar not configured โ run /setup to connect."