熊貓博士 — the chengyu selector, explainer, crystalizer, and auditor (panda-doctor)
The canonical chengyu-pedagogy character from 成語動畫廊 (Stories from Chinese Proverbs, TVB 1987–). In the show, YY (the kid) describes a situation and 熊貓博士 says "啊,呢個就係 [chengyu]!" — naming the chengyu first. Etymology and story follow ONLY if YY didn't recognize it. The pedagogy is progressive-disclosure, not lecture-by-default.
This skill is the agentic translation: the meta-companion to the chengyu skills with four modes — three user-facing (selector / explainer / crystalizer) and one reflexive (auditor).
The four modes
Mode 1: SELECTOR (default — covers three input types)
The SELECTOR job is "name the chengyu" — applied to three input types (all variations of the same skill, per 大智若愚 discipline that anti-pattern + pre-flight aren't separate modes):
1a — Current situation (default). User describes what's happening. Agent names the chengyu in one line. "This is 抛磚引玉." or "圍魏救趙 territory." Stop and wait. If user asks "what does that mean?" → enter EXPLAINER mode.
1b — Pre-flight plan mapping. User presents a multi-step plan (or invokes writing-plans / executing-plans superpowers). Agent tags each step with its most likely chengyu — front-loads SELECTOR onto the plan so the executing agent has handles pre-loaded for the right moments. Output shape: terse list, one chengyu per step (or "no chengyu fits" honestly).
1c — Anti-pattern detection (inverse-chengyu). Agent (or user) notices the current action is the INVERSE of a chengyu's discipline — patching symptoms (anti-釜底), polishing past 80% (anti-適可而止), claiming done without verification (anti-眼見), winging it without scope (anti-隨機應變 Step-0). Same SELECTOR job, naming a violation instead of a fit. Output: "This is anti-[chengyu] — the discipline says [Y], current action is doing [opposite of Y]."
Default behavior across all three sub-modes is name-and-stop. Don't auto-explain.
Mode 2: EXPLAINER (on-demand — chengyu-level OR catalog-level)
2a — Single chengyu (default trigger: "explain" / "remind me" / "what's that one again"). Four-beat pattern from the show, executed tightly (per chengyu-words-concise-meaning-complete):
- Acknowledge the situation in one sentence
- Tell the classical story in 2-3 sentences (character + plot + outcome)
- Map back to current situation in one sentence
- Warm-and-brief close, repeating the chengyu
Total target: 4-6 sentences.
2b — Catalog tour (trigger: "what's in this repo?" / "tour the chengyu" / "I'm new — show me the catalog"). Produce a guided narrative of the catalog grouped by failure-mode (debugging / planning / iteration / communication / retreat / sampling), not alphabetical. 2-3 sentences per group; one or two key chengyu cited per group. Total: a couple of paragraphs, not a wall.
The repo-level explainer subsumes the use case "agent onboarding to chengyu-skills" without requiring its own mode — a separate onboarding mode isn't needed; the existing EXPLAINER handles it when asked.
Mode 3: CRYSTALIZER (catalog-changing actions — add NEW or edit EXISTING)
CRYSTALIZER handles ALL catalog-changing actions (the mis-fire postmortem is consolidated here rather than as a separate mode):
3-new — add new chengyu (trigger: pattern emerges in chat that doesn't fit any existing chengyu; user says "this should be a chengyu" / "we keep doing this, name it"; agent proactively notices a recurring unnamed pattern).
3-edit — fix existing chengyu (trigger: user pushes back on a SELECTOR pick — "that wasn't the right one" / "the description misled me"). Agent opens a short post-mortem: which trigger language in SKILL.md misled? Edit the description on the spot, commit, push. Closes the tight feedback loop that 3-new doesn't cover (3-new adds; 3-edit fixes).
Both sub-modes use the standard candidate-card shape (for 3-new) or diff-card shape (for 3-edit):
**Candidate**: [Chinese chars] ([pinyin]) — "[literal English]"
**Schema**: [one sentence — what's the agentic behavioural pattern]
**Operator evidence**: [where this pattern was observed — quote from chat or session reference]
**Cultural-shift audit**: [classical reading + modern reading + judgment on whether they align with the agentic translation]
**Recall-test**: [does the user's cultural fluency with this chengyu activate the right schema, or would the body mismatch the handle? per the 反客為主 case study below]
**Pairs with**: [existing chengyu in catalog that this complements or contrasts]
**Source**: [Analects / Zhuangzi / 三十六計 / Tang dynasty / user-coined / etc.]
Then BRANCH based on context:
Sub-mode 3a: PR path (for non-owner contexts) When the crystallization happens in a session that's not the catalog owner's, or when the owner explicitly says "draft as PR":
- Don't push directly to main
- Draft the candidate card + write a starter SKILL.md
- Open a PR with title
chore: candidate [chengyu] from [context] - Body includes the candidate card content; the catalog owner decides ship-or-skip
Sub-mode 3b: Direct-add path (for the catalog owner's own contexts, with approval) When the owner of the catalog explicitly approves the crystallization:
- Create dir, write SKILL.md, update README, commit, push, install
- Owner approves, agent ships
Default is 3a unless the owner explicitly approves direct add. Throw-the-brick discipline — surface the candidate, let the owner pick.
Mode 4: AUDITOR (reflexive — session-level OR catalog-level)
AUDITOR handles BOTH timeframes (drift detection is consolidated here rather than as a separate mode):
4a — Session audit (trigger: user asks "audit this session" / "what chengyu should we have used"; OR end-of-session reflexive pass for long/high-stakes turns; OR user suspects a specific decision wants the chengyu lens applied).
Two findings to surface:
Finding type A: TIME WASTED because chengyu wasn't invoked
The session contained a situation where an existing chengyu would have caught the failure mode earlier. Examples:
- Agent kept patching symptoms; 釜底抽薪 would have caught the root-cause-first principle and saved iterations
- Agent over-engineered a solution; 大智若愚 would have caught it
- Agent shipped without empirical verification and was wrong; 眼見為實 would have caught it
- Agent winged it without scope negotiation; 隨機應變 Step-0 would have caught it
Report shape: "At turn N, [agent did X]. [chengyu] would have caught this — its discipline says [Y]. Cost: [estimated iterations / time wasted]."
Finding type B: CHENGYU WAS APPLIED but not NAMED
The session implicitly applied a chengyu's discipline without invoking the handle. The work was good but the handle wasn't activated — naming it strengthens future recall and user-side legibility.
Report shape: "At turn N, [agent did X]. This was [chengyu] in action; naming it would have made the principle legible and reusable."
Naming-after-the-fact is valuable because:
- Reinforces the chengyu's recall pattern (user sees handle → action mapping)
- Surfaces which chengyu are user-organically-used vs only invoked when explicitly named
- Builds the user's evidence base for which chengyu actually do work in practice
4b — Catalog drift detection (trigger: user asks "audit the catalog" / "any stale chengyu" / "what needs upstreaming"; OR periodic maintenance). Cross-session, on the catalog itself.
Diff each chengyu's stated trigger conditions in SKILL.md against where it actually fired (or should have but didn't) across the user's session archive. Output:
- Drifted entries: SKILL.md says "use when X" but in practice the chengyu fires for "Y" — user decides whether to update the description or correct usage going forward
- Unused entries: chengyu hasn't fired in N sessions — candidate for retirement OR for stronger triggering language (description needs sharpening)
- Over-fired entries: chengyu fires for