consult-info-session · git:20260907.364596e · 2026-09-07 · sha256 481523777a3d6d8b

consult-info-session git:20260907.364596eA

Immutable. This exact content never changes and is served at /api/v1/blob/481523777a3d6d8b.

---
name: consult-info-session
sheetId: "2.43"
description: >-
  Run a client info session (說明會) for a consulting engagement end to end on
  the D-14 → D+3 checklist — schedule and invite, prep, run and record, then
  produce the client-facing five-section recap — with every artifact filed in
  the client's numbered [N] Drive folder and noted on the CRM deal. Re-entrant:
  each run shows the checklist with today's position and advances the due
  stage. Trigger on /consult-info-session or when Peter says
  "幫客戶辦說明會", "導入說明會", "說明會回顧", "安排 kickoff 說明會", "run the
  client info session", "prep the rollout session", "write the session recap".
  Distinct from guest-lecturer-program (PUBLIC ticketed lecturer events with
  contracts, settlement and revenue splits — none of that applies to a free,
  internal, contract-less client 說明會), from training-lecture-recap (recaps
  for the TRAINING business's students), from consult-launch-comms (DRAFTS the
  invite this skill sends through the checklist — drafting lives there, event
  ops live here), and from consult-transcriber (D+1 transcription delegates to it).
category: sales-consultant
project: consult-info-session
platform: claude
status: Done
author: Peter Tu
input: "The engagement (deal URL / company name) + session facts (date, audience, 現場/線上) — or just 'advance the checklist' for an in-flight session"
process: "Resolve engagement → position on the D-14→D+3 checklist → execute the due stage (invites/prep/run as drafts + gates) → D+1 delegate transcription to consult-transcriber → fill the five-section recap → recap approval gate → file [Recap] Doc + CRM note → report"
output: "Checklist state per stage, filed session artifacts, and the approved five-section [Recap] Doc in the [N] folder, linked on the deal"
synergy:
  - "consult-launch-comms"
  - "consult-transcriber"
  - "guest-lecturer-program"
  - "training-lecture-recap"
---

# Consult Info Session

```bash
npx skills add https://github.com/peter-tu-zynkr/zynkr-skill-builder --skill consult-info-session
```

When an engagement's build goes live, the client's staff hear about it in one
room, once: the 說明會. This skill runs that session end to end on a
**D-14 → D+3 checklist** — invite, prep, sponsor alignment, the session run
and recorded, and a client-facing **five-section recap** approved and filed —
every artifact in the numbered `[N]` Drive folder, breadcrumbed on the deal.

It is **re-entrant by design**: a session spans three weeks, so each invocation
shows the checklist with today's position and executes whatever stage is due —
"run the D-7 prep" jumps straight there.

**Source:** checklist adapted from `guest-lecturer-program` (3.15, author Jane
Liao) · recap structure from `training-lecture-recap` (4.08).

## How this differs from its neighbours

- **guest-lecturer-program** — PUBLIC ticketed lecturer events: contracts,
  Accupass, attendance thresholds, settlement, withholding. A client 說明會 is
  free, internal and contract-less — this fork keeps only the ops timeline
  (compressed to D-14) and drops the rest, including `program-config.md`.
- **training-lecture-recap** — the five-section recap for the TRAINING
  business's students. This skill re-aims the same structure at CLIENT STAFF:
  Theme becomes "how your daily work changes", Tools becomes logins + help.
- **consult-launch-comms** — DRAFTS the canonical 說明會 invite (the `[Comms]`
  Doc); this skill's checklist SENDS it (as drafts) and runs everything around it.
- **consult-transcriber** — owns transcription mechanics; the D+1 stage delegates to it wholesale.

## Fixed facts (don't re-derive these)

- **Google account** for all Gmail/Drive/Docs/Calendar tools: `peter_tu@zynkr.ai`
- **Drive parent folder** (`[2.2] 業務與顧問部門:專案`, home of the numbered `[N]` folders): `1hkXPX7OXPFOU0BcloPbJSFp8O0zArM8t` — orientation only; this skill never creates anything in it
- **CRM deal URL** for the report/backlink: `https://platform.zynkr.ai/deals/{deal_id}`

## Hard rules

1. **Never create the `[N]` folder.** No folder → STOP and route to
   /consult-intake (inbound lead) or /consult-project-specialist (meeting debrief).
2. **Client-facing email is ALWAYS a Gmail draft** —
   `mcp__google-workspace__draft_gmail_message` for invites, sponsor mails,
   D-1 confirmations, and the recap send. Never send.
3. **No recording without notice.** The D-1 confirmation must carry the
   告知錄影 line; if it never went out, D-0 runs unrecorded and the recap
   leans on live notes.
4. **The recap goes nowhere before the step-6 gate** — no Doc, no draft, no
   pasted preview to anyone at the client, until Peter approves the full text.

---

## Workflow

### 1 · Resolve the engagement and the session facts

**Deal** — from a `…/deals/{id}` URL or a company name. Preferred:
`mcp__zynkr__get_deal` / `mcp__zynkr__list_deals`. 
**Folder** — the deal's `notes` carry a `專案資料夾:<url>` backlink (written by
consult-intake / consult-project-specialist); extract the `[N]` folder id. If
the line is missing, list the parent (`mcp__google-workspace__list_drive_items`,
folder_id `1hkXPX7OXPFOU0BcloPbJSFp8O0zArM8t`) and match `[N] Company(…)` by
name. **No folder at all → STOP** (hard rule 1).

**Session facts** — date, audience (affected teams or 全員), mode (現場/線上),
scope (what's being introduced — usually the engagement's live deliverables,
per the deal notes). Ask one question only for what can't be inferred.

**Invite text** — check the `[N]` folder for a `[Comms]` 說明會邀請 Doc
(`mcp__google-workspace__list_docs_in_folder`) — consult-launch-comms files it
there; if present, that text IS the invite. If absent, draft inline following
its pattern (why this session · what changes for you · when/where · what to
bring) and note the canonical drafting path: this skill's install command with
`--skill` swapped to `consult-launch-comms`.

### 2 · Position on the checklist

Read `./references/session-checklist.md` and place today against the session
date. Reconstruct stage state from artifacts, not memory (invite draft in
Gmail? calendar event? transcript in the folder?) and render the full
D-14 → D+3 checklist with done / **due** / upcoming markers. Each run advances
what's due; Peter saying "run the D-7 prep" overrides the derived position.

### 3 · Execute the due stage

Work the due stage's table from the checklist. Stage-specific mechanics:

- **D-14** — invite as a Gmail DRAFT (default: one draft to the sponsor for
  internal forwarding). Calendar event via
  `mcp__google-workspace__manage_event` — **ask first when external attendees
  are involved** (the event invite reaches client mailboxes the moment it's
  created); Meet link included for 線上.
- **D-7** — materials pack: demo 流程 (walked on the client's own data),
  常見問題, 上手三步; sponsor 對稿 mail as a DRAFT.
- **D-1** — 設備測試 per the checklist; the confirmation DRAFT **must** carry
  the 告知錄影 line (hard rule 3).
- **D-0** — 簽到 / 錄影 / demo / QA 收集. Capture live questions verbatim;
  mark unanswered ones 追蹤中 — they feed step 5.

### 4 · D+1 — delegate transcription to /consult-transcriber

Check that `/consult-transcriber` is installed. If missing, **STOP** and print
its install snippet — this skill's one-line command with the `--skill`
argument swapped to `consult-transcriber` — never inline transcription
mechanics here. Invoke it on the session recording: it produces the clean
zh-TW transcript, files it into the `[N]` folder, and links it on the deal.

### 5 · Fill the five-section recap

From the transcript + the D-0 QA list, fill
`./references/session-recap-template.md` (delete its placeholder-guide
comment): 摘要 / 主題 / Q&A / 工具 / 行動呼籲 — aimed at client staff, zh-TW.
Detail comes only from the transcript and QA list; unanswered questions stay
listed, marked 追蹤中. No transcript → build from live notes and say so.

### 6 · GATE — recap approval

Present the **full recap text** and wait. Peter approves or adjusts; re-gate
only if section content changed materially. Only after approval (hard rule 4):

1. Create the Doc via the reliable two-step (creating a Doc directly in a
   folder via `create_drive_file` returns HTTP 400):

```
mcp__google-workspace__create_doc(
  user_google_email = "peter_tu@zynkr.ai",
  title   = "[Recap] {{COMPANY}} — 說明會 {{DATE}}",
  content = "<approved recap>"
)
mcp__google-workspace__update_drive_file(
  user_google_email = "peter_tu@zynkr.ai",
  file_id     = "<doc id>",
  add_parents = "<the [N] folder id from step 1>"
)
```

2. On request only: a send-to-attendees Gmail DRAFT — never sent (hard rule 2).

### 7 · CRM note — log the session on the deal

Preferred: `mcp__zynkr__update_deal`, appending to the existing notes (read
first, append, write back — never overwrite):

```
說明會({{DATE}}·{{MODE}})已舉行 — 出席 {{COUNT}} 人 · 追蹤中問題 {{OPEN_COUNT}} 個
回顧:[Recap] {{COMPANY}} — 說明會 {{DATE}}(<doc url>)
```

`mcp__zynkr__update_deal` REPLACES `notes` wholesale, so append in three steps:

1. `mcp__zynkr__get_deal(id="<deal_id>")` — read the current `notes`
2. build the new value: the existing notes, then a blank line, then the block below
3. `mcp__zynkr__update_deal(id="<deal_id>", notes="<combined>", confirm=true)`

Call it once without `confirm` to preview, then again with `confirm=true`. Never
send `notes` without the existing text in front of it — the field is overwritten,
not appended, and skipping the read loses every earlier backlink.

Escape single quotes by doubling them (`O'Brien` → `O''Brien`).

### 8 · Report + checklist state

```
說明會 checklist:宏宇精密 — 2026-08-20(線上)

| 階段 | 狀態 |
|------|------|
| D-14 邀請 | ✅ 邀請草稿已出(sponsor 轉發)· 名單確認 · Meet 連結已入日曆 |
| D-7 準備 | ✅ 材料包 · sponsor 對稿草稿 |
| D-1 行前 | ✅ 設備測試 · 確認信草稿(含告知錄影) |
| D-0 執行 | ✅ 簽到 12 人 · 錄影 · QA 收集 7 題(2 題追蹤中) |
| D+1 整理 | ✅ 逐字稿(/consult-transcriber)· 回顧初稿 |
| D+3 收尾 | ⏳ [Recap] Doc 已建 · 寄送草稿待 Peter · CRM 已記 |
```

Below the table: what this run advanced, the next due stage and its date, and
any drafts sitting in Gmail waiting on Peter.

---

## Why it's built this way

- **A slimmed timeline, not a new one.** The D-30 → D+3 lecturer SOP earns its
  length from tickets, contracts and go/no-go thresholds; a client 說明會 has
  none, so the checklist starts at D-14 — and dropping that machinery also
  removed the source's out-of-repo `program-config.md`: no config file here.
- **Re-entrant over one-shot.** The work arrives in bursts across three weeks;
  a stage tracker derived from artifacts (drafts, events, filed docs) survives
  between sessions without a state file that could drift.
- **The recap gates because it's client-visible.** Same reasoning as
  consult-brd-writer's outline gate: anything client staff will read gets
  Peter's eyes while a wrong sentence is still cheap.
- **Five sections survive the retarget.** The training-lecture-recap structure
  forces an answer to "so what do I do now" — only the audience changed, so
  each section's brief changed, not the skeleton.
- **Transcription is delegated, not copied.** consult-transcriber already
  files and CRM-links engagement transcripts; a second copy here would drift.

## Inference defaults (Peter overrides by just saying so)

- **Checklist position** → derived from session date + artifacts; an explicit
  "run D-7" always wins.
- **Invite text** → the `[Comms]` Doc when one exists; inline pattern-draft otherwise.
- **Invite routing** → one draft to the sponsor for internal forwarding;
  per-attendee drafts only on request.
- **Mode** → 線上 (Google Meet) unless Peter says 現場.
- **Recap language** → zh-TW; English tool names kept as-is.
- **Session scope** → the engagement's live deliverables per the deal notes.
- **Send-to-attendees recap draft** → OFF; offered after the step-6 gate only.

## Provenance

Forked from `guest-lecturer-program` (3.15) and `training-lecture-recap`
(4.08) @ e35a1f57 (2026-08-03) — consult adaptation; diverges by design.
Re-sync check: `git log --oneline e35a1f57..origin/main --
skills/3-operations/guest-lecturer-program/ skills/4-training/training-lecture-recap/`
→ review hits → port or waive with a dated line here.

## Reference files

- `./references/session-checklist.md` — the D-14 → D+3 checklist, one checkbox
  table per stage; step 2 renders it with today's position, step 3 executes it.
- `./references/session-recap-template.md` — the five-section recap re-aimed
  at client staff (fill every `{{PLACEHOLDER}}`, then delete its
  placeholder-guide comment).

## Limitations

- Runs the ops timeline only: it neither writes the canonical invite
  (consult-launch-comms) nor transcribes (consult-transcriber must be
  installed for D+1 — it stops rather than improvise).
- Free internal sessions only — anything ticketed, paid, or with an external
  lecturer under contract is guest-lecturer-program's territory.
- One session per run; a multi-site rollout with several 說明會 is one run each.
- Stage state is derived from artifacts; a session organized entirely
  off-tooling (no drafts, no calendar event) needs Peter to state the stage.
- Recap detail comes only from the transcript + collected QA — thin sources
  yield a thin recap, flagged as such, never padded.