Generalize meeting-record sourcing: Plaud is one option, not the assumption
Bryan's correction: transcript source shouldn't be Plaud-specific. Google Meet, Teams, or no transcript at all (fall back to notes/task registry) are all real cases. Reworked Prerequisites and steps 3-5 so the skill asks which source applies instead of defaulting to Plaud and treating an empty result as 'no record exists.' Plaud-specific mechanics (official connector, id resolution via list_files, of_ prefix, pagination) kept as documented detail for when Plaud is the actual source, not as the only path.
This commit is contained in:
1 parent
0358d78c01
commit
2c6fa0da03
1 file changed
+39
-18
@@ -18,17 +18,36 @@ contract for what this skill's output actually contains.
|
|||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
This skill uses, but does not own, the following connected tools — confirm they're
|
This skill uses, but does not own, the following connected tools — confirm they're
|
||||||
reachable before starting, and degrade gracefully (see Hard Rules) if one isn't:
|
reachable before starting, and degrade gracefully (see Hard Rules) if one isn't.
|
||||||
- **Plaud** — meeting transcripts (recap: current meeting; agenda: previous meeting).
|
|
||||||
Use the official `Plaud` connector (`get_current_user`, `list_files`, `get_file`,
|
**Meeting record — the source varies. Ask, don't assume Plaud.** Recap mode needs
|
||||||
`get_transcript`, `get_note`) — **not** the older `Plaud MCP` connector, which
|
*some* record of what was discussed; which kind depends on how MPM actually recorded
|
||||||
predates Plaud's own official one and should be treated as deprecated. Resolve a
|
that particular meeting, which isn't fixed. In rough order of how much structure they
|
||||||
recording's `file_id` via `list_files` (filter by `query`/`date_from`/`date_to`) —
|
give you, and check whichever plausibly applies rather than defaulting to the first one
|
||||||
never assume a Plaud web-app URL's slug is the API `file_id` directly; the API id
|
tried before:
|
||||||
carries an `of_` prefix the web URL does not show. `get_transcript` paginates
|
- **Plaud** — if used, the official `Plaud` connector (`get_current_user`,
|
||||||
(`next_cursor`) — loop until it's null before treating the transcript as complete.
|
`list_files`, `get_file`, `get_transcript`, `get_note`) — **not** the deprecated
|
||||||
`get_note` returns the AI summary/action items tab separately from the raw
|
`Plaud MCP` connector. Resolve a recording's `file_id` via
|
||||||
transcript — worth pulling alongside `get_transcript`, not instead of it.
|
`list_files(query=...)` — never assume a Plaud web-app URL's slug is the API
|
||||||
|
`file_id` directly; the real id carries an `of_` prefix the web URL doesn't show.
|
||||||
|
`get_transcript` paginates (`next_cursor`) — loop until null. `get_note` returns the
|
||||||
|
AI summary/action-items tab separately — worth pulling alongside the transcript.
|
||||||
|
- **Google Meet transcript** — typically lands as a Google Doc in Drive (often in a
|
||||||
|
"Meet Recordings" folder or attached to the Calendar event) — search Drive/Calendar,
|
||||||
|
don't assume it doesn't exist just because Plaud has nothing.
|
||||||
|
- **Teams transcript**, or any other recording tool MPM starts using — same principle:
|
||||||
|
ask where it lives before concluding no record exists.
|
||||||
|
- **No transcript at all** — perfectly valid. Fall back to whatever does exist for that
|
||||||
|
meeting: the person's own notes, a task registry, prior emails/Chat about it. State
|
||||||
|
plainly in Notes & Flags that no transcript was available and the brief is built from
|
||||||
|
secondary sources — this is the never-fabricate rule applying to the *source*, not
|
||||||
|
just the content.
|
||||||
|
|
||||||
|
If it's not obvious which source applies, **ask the person** rather than trying each
|
||||||
|
connector in sequence and treating empty results as "nothing exists here." An empty
|
||||||
|
result from one source is not evidence the meeting has no record at all.
|
||||||
|
|
||||||
|
Other tools this skill uses:
|
||||||
- **Odoo** (MCP) — linked Project/tasks, Sales/Purchase Orders, Knowledge Base,
|
- **Odoo** (MCP) — linked Project/tasks, Sales/Purchase Orders, Knowledge Base,
|
||||||
Helpdesk tickets
|
Helpdesk tickets
|
||||||
- **Google Workspace** (MCP) — Gmail, Google Chat, Drive, Sheets
|
- **Google Workspace** (MCP) — Gmail, Google Chat, Drive, Sheets
|
||||||
@@ -61,17 +80,18 @@ table for cross-referencing other MPM document types about the same real-world t
|
|||||||
principle; don't merge their content into this ledger, just reference them).
|
principle; don't merge their content into this ledger, just reference them).
|
||||||
|
|
||||||
### 3. Determine mode: Agenda or Recap
|
### 3. Determine mode: Agenda or Recap
|
||||||
Agenda mode (pre-meeting prep) pulls the *previous* meeting's transcript and any
|
Agenda mode (pre-meeting prep) pulls the *previous* meeting's record and any updates
|
||||||
updates since. Recap mode (post-meeting) pulls the *current* meeting's transcript. Ask
|
since. Recap mode (post-meeting) pulls the *current* meeting's record. Ask if not
|
||||||
if not specified by the request.
|
specified by the request. "Record" — see Prerequisites above — is whatever source
|
||||||
|
actually applies for that meeting, not necessarily Plaud.
|
||||||
|
|
||||||
### 4. Capture and normalize attendees
|
### 4. Capture and normalize attendees
|
||||||
- **First run for this topic:** ask who's attending / who attended.
|
- **First run for this topic:** ask who's attending / who attended.
|
||||||
- **Recurring topic:** pre-fill from the manifest's last attendee list and ask "same as
|
- **Recurring topic:** pre-fill from the manifest's last attendee list and ask "same as
|
||||||
last time, or any changes?" — not a blank-slate interview.
|
last time, or any changes?" — not a blank-slate interview.
|
||||||
- **Recap mode with a Plaud transcript available:** prefer *actual* attendance from the
|
- **Recap mode with a transcript available (any source):** prefer *actual* attendance
|
||||||
transcript's speaker attribution over the pre-meeting expected list — someone who
|
from the transcript's speaker attribution over the pre-meeting expected list —
|
||||||
showed up unexpectedly and spoke shouldn't be treated as absent.
|
someone who showed up unexpectedly and spoke shouldn't be treated as absent.
|
||||||
- **Normalize into two groups:**
|
- **Normalize into two groups:**
|
||||||
- Internal MPM attendees — record by name for the brief; no further resolution
|
- Internal MPM attendees — record by name for the brief; no further resolution
|
||||||
needed (no external allowlist implications for this brief type).
|
needed (no external allowlist implications for this brief type).
|
||||||
@@ -85,7 +105,8 @@ if not specified by the request.
|
|||||||
### 5. Pull data, scoped to what this brief type actually needs
|
### 5. Pull data, scoped to what this brief type actually needs
|
||||||
Not a monolithic "pull everything" — internal-meeting-brief's real needs, based on the
|
Not a monolithic "pull everything" — internal-meeting-brief's real needs, based on the
|
||||||
first run, are:
|
first run, are:
|
||||||
- Plaud transcript (per mode, above) — the primary source
|
- The meeting record (per mode, above) — the primary source, whichever tool it
|
||||||
|
actually lives in
|
||||||
- Gmail / Google Chat: updates since the manifest's last-meeting date, scoped by
|
- Gmail / Google Chat: updates since the manifest's last-meeting date, scoped by
|
||||||
project/topic keywords, never a blanket search
|
project/topic keywords, never a blanket search
|
||||||
- Odoo Project tasks, if a linked project exists (expect this to be sparse or absent —
|
- Odoo Project tasks, if a linked project exists (expect this to be sparse or absent —
|
||||||
|
|||||||
Reference in new issue
Block a user