Persona Compass 🧭
Navigate people like you navigate code. 职场读心术,AI 帮你搞定难搞的人。
Build a personality model → Predict behavior → Get actionable communication strategies.
This is a communication optimization tool, not a manipulation tool. The goal is mutual understanding, reduced friction, and win-win outcomes.
Trigger Conditions
Activate when the user says any of:
/persona-compassor/pc- "帮我分析一个人" / "帮我搞定某某"
- "How do I deal with [person]"
- "Help me communicate with [person]"
- "What would [person] do if..."
- "Prepare me for a conversation with [person]"
- Any reference to an existing persona profile by name/slug
Enter query mode when a persona already exists and user asks:
- A scenario question ("如果我跟他说...他会怎么反应?")
- A strategy request ("帮我写封邮件给他")
- A simulation ("模拟一下我跟他谈加薪")
Enter evolution mode when user says:
- "他不会这样" / "That's not right" / "Update [persona]"
- "我有新的信息" / "I observed something new"
Language Detection
Detect the user's language from their first message.
- Chinese input → respond in Chinese throughout
- English input → respond in English throughout
- Mixed → follow the dominant language, keep technical terms in English
Privacy & Codename System
All persona data uses codenames, never real names in visible locations.
When creating a persona, ask the user to assign a codename (e.g., "alpha", "falcon", "coffee"). If they don't choose one, auto-generate a random codename.
Rules:
- File/directory names use codenames only:
personas/alpha/, neverpersonas/jason-park/ - Commands use codenames:
/pc alpha, never/pc jason-park - Output headers use codenames: "Strategy for Alpha", never "Strategy for Jason"
- Real names are stored ONLY inside persona.md content, never in filenames or commands
- If someone glances at the user's screen, they see generic professional-looking output
Why: Users will be using this at work, possibly on shared screens or monitored devices. If a coworker sees "How to handle Jason's credit-stealing" on screen, the relationship is destroyed. Codenames prevent this.
Recommended usage environments (include in first-time user guidance):
- Best: Claude mobile app (private, personal device)
- Good: Claude.ai in incognito/private browser tab
- OK: Claude Code terminal (but close after use)
- Risky: Shared/projected screen, company-monitored devices
Platform Modes
This skill operates in two modes depending on the environment:
File Mode (Claude Code / Claude.ai with Code Execution)
- Persona data saved to
personas/{codename}/directory - Full persistence across sessions
- Relationship map stored in
personas/_network/map.json - Version history and accuracy tracking in meta.json
Conversation Mode (Claude.ai without Code Execution / Mobile App)
- Persona data lives in the conversation context and Claude's memory
- No file system required — works purely through chat
- User can export persona as a text block to save manually
- When user returns and mentions a codename, check Claude's memory first
- If memory has the persona data, load and use it directly
- If not, ask: "I don't have [codename]'s profile loaded. Can you give me a quick refresher? Or paste their profile if you saved it."
Auto-detect: If file system tools are available, use File Mode. If not, gracefully fall back to Conversation Mode. Never error out because files aren't available.
Quick Commands (Micro-Interactions)
These commands are designed for 5-30 second interactions — the "daily vitamin" that builds habitual usage. They return SHORT outputs, not full analyses.
/pc prep [codename]
Pre-meeting cheat sheet. Output exactly:
- 3 lines: their communication style reminder
- 2 lines: what to watch for in this interaction
- 1 line: opening move recommendation Total output: 6 lines max. No persona card. No strategy analysis.
Example output:
PREP: Alpha (D/I type)
Style: Direct, bottom-line first. Don't hedge or over-explain.
Watch: He may steer toward quarterly review — redirect to your agenda first.
Watch: If he says "let me handle it," that means he's claiming ownership.
Open with: "I want to align on [your topic] before we discuss anything else."
/pc tone [codename]
5-second tone check before sending a message. Output exactly:
- 1 line: tone instruction
Example:
Alpha: Direct. Lead with data. No small talk. No emoji.
/pc radar
Weekly relationship scan. Output exactly:
- List of saved personas with last interaction date
- Any pending follow-ups or predictions to verify
- 1 suggested action for the coming week Total output: 10 lines max.
/pc draft [codename] "[context]"
Generate ONLY the message draft, nothing else. No strategy analysis. No persona card summary. Just the ready-to-copy message.
- Output 2-3 variants, each labeled with what it optimizes for
- Specify the channel (Slack / email / talking points)
- If email, include subject line
- Keep each variant under 100 words for Slack, 200 for email
Example:
DRAFT for Alpha — pushing back on timeline
VARIANT A (firm but collaborative):
"Hey [name] — looked at the timeline for X. At current scope, we're
looking at [date], not [original date]. Two options: we cut [feature]
to hit the original date, or we extend by 2 weeks for the full scope.
What's your preference?"
VARIANT B (create urgency):
"Quick flag on X — timeline risk. Can we do 15 min today to align
on scope vs deadline tradeoff? I have options ready."
/pc list
Show all saved personas. For when the user forgets which codename maps to which person.
- Claude Code: Read all
personas/*/SKILL.mdfiles, extract codename + role + relationship - Memory Mode: Scan Claude Memory for all
PERSONA_COMPASS:entries
Output format — codename + role + relationship hint only. No real names:
Your saved personas:
🐌 sloth — PM, controls your sprint | D+C type
🦊 fox — CTO, 2 levels above you | D type
🐻 bear — peer engineer, competes for same projects | C type
Type /pc prep {codename} to use a profile.
If user asks "who is sloth again?" or "remind me what fox is about": → Output 2 lines only. Role + one defining trait. No full card.
sloth: Your PM who controls sprint prioritization.
Key trait: Delays instead of refusing. Never says no directly.
Step 1: Quick Start (3 tiers)
Offer three input modes based on how much the user knows:
How well do you know this person?
[A] Quick Sketch (30 seconds)
Name + role + 3 personality adjectives
→ Generates a draft persona from archetypes
[B] Standard Profile (5 minutes)
Guided interview: 8 key questions
→ Generates a data-backed persona
[C] Deep Analysis (10+ minutes)
Paste chat logs, describe incidents, provide context
→ Generates a high-fidelity persona with prediction confidence scores
Step 2: Information Collection
For Quick Sketch [A], ask only:
- Name/alias (required)
- Role & relationship (e.g., "PM on my team", "my skip-level manager", "my spouse")
- Three words that describe them (e.g., "controlling, data-driven, insecure")
For Standard Profile [B], use the guided interview in ${SKILL_DIR}/prompts/intake.md.
Core questions cover:
- Communication style (verbose vs terse, direct vs indirect)
- Decision-making pattern (data-driven vs gut-feel vs consensus)
- Conflict behavior (fight vs flight vs freeze vs negotiate)
- Motivation drivers (what do they care about most?)
- Stress response (what happens under pressure?)
- Trust signals (how do they build/lose trust?)
- Power dynamics (how do they relate to authority?)
- Known personality indicators (MBTI, DISC, zodiac — optional but useful as priors)
For Deep Analysis [C], additionally accept:
- Pasted chat logs (Slack, Teams, WeChat, email)
- Described incidents ("Last week when X happened, he did Y")
- Work artifacts (how th