{"id":71992,"plugin_id":"plugin_asdk_app_6ae1fbfde930819188d2ae80dcfc0bce","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-30T00:06:34.415Z","digest":"2c3c756d9a24582b5c49a536ce9b5639da22a48a6bb4b74eabdf71fdecd7e2f5","against":null,"payload":{"description":"Builds a quick prep note before an upcoming call. Shows the biggest risk, and 2-3 things to do. Only works for your own upcoming meetings.","included_files":[{"relative_path":"assets/sample-meeting-context.txt","size_in_bytes":748},{"relative_path":"assets/sample-past-call.txt","size_in_bytes":1937},{"relative_path":"references/call-prep-format.md","size_in_bytes":4428}],"name":"call-prep","skill_md_contents":"---\nname: call-prep\ndescription: \"Builds a quick prep note before an upcoming call. Shows the biggest risk, and 2-3 things to do. Only works for your own upcoming meetings.\"\nlicense: MIT\nmetadata:\n  zime:skill-id: dfeec687-3057-43fb-abc0-bb0c46256665\n  zime:tag: workflow\n  zime:roles: ae,se\n  zime:visibility: global\n  zime:skill-version: \"1\"\n  zime:marketplace-version: 0.1.20\n---\n\n# Call Prep\n\nBefore anything else, call the Zime connector tool `skill_used` with skill_id `dfeec687-3057-43fb-abc0-bb0c46256665`, skill_version `1` and skill_slug `call-prep`. It records which skill ran for Zime usage analytics. If the Zime connector is not available, skip this step and continue.\n\nGets a rep up to speed before a customer call. The prep-note agent builds the\nnote from the meeting's CRM deal and account, its external attendees, and the\nrelevant past calls — context no chat history can match. This skill's job is\nto resolve the right meeting and deliver what the agent returns.\n\n## How It Works\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│                          CALL PREP                               │\n├─────────────────────────────────────────────────────────────────┤\n│  STEP 1 — RESOLVE (this skill)                                   │\n│  ✓ list_meetings, forward-looking window                         │\n│  ✓ Ambiguous → show candidates, ask, pin meeting_id              │\n├─────────────────────────────────────────────────────────────────┤\n│  STEP 2 — DELEGATE (Zime prep-note agent)                        │\n│  + prep_note builds the note from deal, account, attendees,      │\n│    and past calls — grounded in real workspace data              │\n│  + Returns the finished note; this skill does not rewrite it     │\n├─────────────────────────────────────────────────────────────────┤\n│  LOCAL FALLBACK (no zime-mcp)                                    │\n│  ~ Assemble from a meeting-context file + past transcripts       │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n## Usage\n\n```\n@call-prep <company or meeting> [+ when]\n```\n\nIn the ChatGPT desktop app you can also type `/call-prep`.\n\nPrep for the call the user named.\n\n## Routing\n\n- Anything about PAST calls (recaps, \"what objections came up\") →\n  `review-call`.\n- Deal strategy not tied to one upcoming call (\"how do I win this\") →\n  `review-account`.\n- \"What meetings do I have?\" is a schedule listing → `daily-briefing`.\n- Use this skill only when there is an upcoming, scheduled call AND the user\n  wants to prepare for it.\n\n## What I Need From You\n\nThe company or person, and a time hint if you have one (\"tomorrow\", \"my\n3pm\"). If several upcoming meetings match, I'll show them and ask.\n\nThis only preps **your own** meetings — ones you organize or attend. If you\nask to prep someone else's call, I'll say so rather than guessing.\n\n## MCP mode (required when zime-mcp is connected)\n\n**Required tools:** `list_meetings` (resolve) and `prep_note` (generate).\n\nHand-building the note while `prep_note` is available is a failure of this\nskill, even when the user gave you enough context to write something\nplausible — the agent grounds every claim in the workspace's real calls and\nCRM.\n\n### Step 1 — resolve the meeting\n\nCall `list_meetings` with a **forward-looking** window (an upcoming meeting\nis by definition in the future; a past-only window will find nothing).\n\n```json\n{ \"query\": \"Meridian\", \"start_date\": \"2026-08-13\", \"end_date\": \"2026-08-27\" }\n```\n\n- `resolved` → take its `meeting_id` and go to Step 2.\n- `multiple_matches` → show the candidates with their times, ask which one,\n  then use the chosen `meeting_id`. Never pick for the user.\n- `no_match` → say there's no matching upcoming meeting in that window and\n  offer to widen it. Don't fall through to prepping a past call.\n\n### Step 2 — delegate to the prep-note agent\n\nCall `prep_note` with the resolved id.\n\n```json\n{ \"query\": \"prep me for my Meridian call tomorrow\", \"calendar_event_id\": \"<meeting_id>\" }\n```\n\nKeep `query` as the user's request, minimally rewritten, with the company and\nany time hint intact. Unlike other Zime skills, time words BELONG in this\nquery — the agent uses them too. Never invent a company or time that wasn't\nsaid.\n\n### Outcomes\n\n- **A prep note** (markdown) — deliver per Output below. If the same meeting\n  was prepped recently, Zime returns the stored note quickly instead of\n  regenerating; that reuse is by design, not staleness.\n- **A candidate list** — if `prep_note` re-offers its own candidates (a\n  pinned id can be stale or not the rep's own meeting), show the fresh list\n  and pick again from it.\n- **\"You have no upcoming external meetings\"** — nothing to prep; say so.\n- **\"Prep notes aren't configured for your workspace yet\"** — generation\n  needs workspace setup; tell the user to ask their Zime admin.\n- **\"A prep note for this call is already being generated\"** — another\n  request is mid-flight; wait a few seconds and call again once.\n- **An error** — `{\"error\": \"<CODE>\", \"message\": \"<sentence>\"}`. Show the\n  user the message. `INTERNAL_ERROR` retry once; `CREDIT_LIMIT` stop and relay\n  the message; `UNAUTHORIZED` means reconnect. If it still fails, say plainly the\n  prep-note service couldn't be reached and offer the local fallback — never\n  silently substitute a hand-written note and present it as agent-backed.\n\n## Output\n\nThe agent's note **is** the deliverable. This skill adds only a thin\nenvelope so the rep knows which meeting was prepped:\n\n```markdown\n**Prep — [meeting title]** · [date, time] · [attendees]\n\n[the agent's returned note, relayed as-is]\n```\n\nRules:\n\n- Relay the returned markdown **as-is**. Every claim traces to the\n  workspace's calls and CRM, so don't rewrite, re-rank, condense, or\n  supplement it from other tools or memory.\n- Keep every link it returns. An item without a link is presented without\n  one — silently, never with a \"link unavailable\" note.\n- Don't append your own extra sections (agenda, discovery questions,\n  objection handling). If the agent didn't return it, it isn't grounded.\n- If the resolved meeting isn't the one the user meant, re-resolve rather\n  than editing the note to fit.\n\n## Tips\n\n1. **Name the company and the time** — \"Meridian tomorrow\" resolves in one\n   step.\n2. **Only your own meetings** — the agent can't prep a colleague's call.\n3. **Recently prepped calls return instantly** — that's cached by design.\n4. **Want a past call instead?** That's `review-call`.\n\n## Local mode (only when no zime-mcp server is connected)\n\nBuild the note from files the user provides — a meeting-context block or\npasted calendar invite, optional past-call transcripts (`.txt`, `.vtt`,\n`.json`, `.md`), and an optional CRM export (`.csv`). Follow\n[references/call-prep-format.md](references/call-prep-format.md) exactly:\nseven sections, skimmable in a minute, every claim sourced, gaps marked as\ngaps (\"No prior calls provided — ask the rep what's already been discussed\")\ninstead of plausible filler. Open with one line saying the note was built\nfrom provided files only, without live workspace data.\n\nSample inputs to try first: `assets/sample-meeting-context.txt` and\n`assets/sample-past-call.txt` (both synthetic).\n\n## What this sends where\n\nMCP mode sends the query words and date range (to `list_meetings`), then the\nuser's request wording and a `calendar_event_id` (to `prep_note`). Local mode\nreads only the files the user points at — nothing leaves the machine. At the\nstart, the skill calls the Zime connector tool `skill_used`, which records the\nskill's id, version and name with your user and session in Zime's usage log.\n\n## Related Skills\n\n- **review-call** — the same account's past calls: record, recap or exact\n  words\n- **review-account** — the deal behind this meeting\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}