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 ...
Scanned 9/19/2026
Install to Claude Code
npx -y skills add peter-tu-zynkr/zynkr-skill-builder --skill consult-info-session --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Consult Info Session?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/peter-tu-zynkr-consult-info-session)More formats (shields.io, HTML) on the badges page.
---
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"
house-style: bound
---
# 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.
## House style
Writing style is **not owned by this file**. The house voice lives in two Google Docs under
`[@] 寫作指南` (`12DBdFz3SK22ie9im_ThFMI7IBRXsTZsV`), read at runtime:
- 《[2.0] Zynkr 通用風格指南 House Voice》 `10bOIQwRm9Pxwgct4hlwCwK_B4Pipai1HqBPZKzyRHSE` —
the universal core, plus the addendum for this surface
- 《[3.2] 禁用詞清單 Forbidden Words》 `1N5sHLP4qzmmhpCGsi6KElxi1z0MFe4QZ0Q_35T10Uyg`
Read both before producing client- or reader-facing text, and scan the draft against 《[3.2]》
before handing it over. If Drive is unreachable, say so in the output rather than proceeding
unchecked. Never re-implement either list inside this file.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!