AI skill: build personality models of colleagues, predict behavior, get ready-to-use communication scripts. Privacy-first codename system. Works on Claude Code & Claude.ai. Zero dependencies.
SaferSkills independently audited persona-compass (Agent Skill) and scored it 83/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 4 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 4 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
Activate when the user says any of:
/persona-compass or /pcEnter query mode when a persona already exists and user asks:
Enter evolution mode when user says:
Detect the user's language from their first message.
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:
personas/alpha/, never personas/jason-park//pc alpha, never /pc jason-parkWhy: 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):
This skill operates in two modes depending on the environment:
personas/{codename}/ directorypersonas/_network/map.jsona 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.
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:
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:
Example: Alpha: Direct. Lead with data. No small talk. No emoji.
/pc radarWeekly relationship scan. Output exactly:
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.
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 listShow all saved personas. For when the user forgets which codename maps to which person.
personas/*/SKILL.md files, extract codename + role + relationshipPERSONA_COMPASS: entriesOutput 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.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 scoresFor Quick Sketch [A], ask only:
For Standard Profile [B], use the guided interview in ${SKILL_DIR}/prompts/intake.md. Core questions cover:
For Deep Analysis [C], additionally accept:
Read the full question sequences from ${SKILL_DIR}/prompts/intake.md.
Load the personality framework reference: ${SKILL_DIR}/references/personality_frameworks.md
Map collected information to a multi-dimensional model:
Layer 1 — Core Traits (Big Five / OCEAN) Score each dimension 0-100 based on observed evidence. Flag dimensions with low confidence (insufficient data).
Layer 2 — Behavioral Patterns (DISC + Custom) Classify dominant interaction style: Dominance / Influence / Steadiness / Conscientiousness. Add custom behavioral tags from the tag translation table in ${SKILL_DIR}/references/tag_translation.md.
Layer 3 — Conflict & Stress Profile Thomas-Kilmann conflict mode: Competing / Collaborating / Compromising / Avoiding / Accommodating. Stress response pattern: fight / flight / freeze / fawn. Trigger points: what specifically sets them off.
Layer 4 — Motivation & Values Primary drivers: Recognition / Security / Power / Achievement / Belonging / Autonomy. What they protect: reputation, territory, relationships, process.
Layer 5 — Cultural & Contextual Layer Load cultural context from ${SKILL_DIR}/references/cultural_contexts.md. Load async communication calibration from ${SKILL_DIR}/references/async_communication.md. Load gender dynamics overlay from ${SKILL_DIR}/references/gender_dynamics.md (when relevant). Apply cultural overlays based on:
Output a structured persona card containing:
# [Name] — Persona Compass Card
## Quick Profile
- Role: [role & relationship to user]
- DISC Type: [type] | Conflict Style: [style]
- Primary Motivator: [motivator]
- Trust Level: [low/medium/high with user]
## Big Five Scores
- Openness: [score]/100 [confidence: high/medium/low]
- Conscientiousness: [score]/100
- Extraversion: [score]/100
- Agreeableness: [score]/100
- Neuroticism: [score]/100
## Behavioral Predictions
### Under Pressure
[specific predicted behaviors]
### When Receiving Bad News
[specific predicted behaviors]
### Trigger Points
[list of specific triggers with predicted reactions]
## Communication Playbook
### DO
[3-5 specific actionable tactics]
### DON'T
[3-5 specific things to avoid]
### Magic Phrases
[3-5 phrases calibrated to this person's psychology]
### Optimal Timing & Channel
[when and how to approach them]
## Confidence Assessment
- Overall model confidence: [percentage]
- Areas needing more data: [list]Do NOT just save data. Generate a fully self-contained SKILL.md for this person. This file IS the memory — the CLI agent can load it directly with /{slug}. No re-entry of information will ever be needed again.
Follow the template exactly: ${SKILL_DIR}/prompts/persona_skill_template.md
Determine Write Path based on your environment:
~/.openclaw/workspace/skills/{slug}/SKILL.md./.claude/skills/{slug}/SKILL.md (if exists) OR ./personas/{slug}/SKILL.md./personas/{slug}/SKILL.mdAlso write: observations.md in the same directory as the SKILL.md — raw data log (gitignored, real name may appear here).
After writing, confirm to the user with the success message from the template.
Why this architecture? Like colleague-skill, the file itself is the memory layer. One person = one loadable skill. Zero token overhead for context re-entry. OpenClaw and Claude Code natively support this.
For users without file system access (Claude.ai web, mobile app):
After completing a persona analysis, ALWAYS ask:
要把 [codename] 的画像存入 Claude Memory 吗?
存了之后你在任何对话里提到 "[codename]",我都能直接用这份画像,不用再重新描述。
[Yes / No]If user says Yes, use the memory tool to save a compact persona card:
PERSONA_COMPASS:[codename]
role:[role] | rel:[relationship_to_user]
disc:[disc_type] | conflict:[conflict_style] | stress:[stress_pattern]
motivator:[primary_motivator] | trigger:[top_trigger_point]
do:[top_2_tactics] | dont:[top_2_avoids]
magic:"[single_best_phrase_calibrated_to_them]"
culture:[cultural_context_if_relevant]
confidence:[percent]% | updated:[YYYY-MM-DD]Example saved memory:
PERSONA_COMPASS:sloth
role:PM | rel:direct-manager-controls-sprint
disc:D+C | conflict:avoider-delay | stress:more-control
motivator:credit+visibility | trigger:bypassed-or-surprised
do:data-first,give-credit-outlet | dont:oral-approvals,emotion
magic:"frame everything as affecting your KPI"
culture:big-tech-CN | confidence:72% | updated:2026-03-31In future conversations, when user mentions "[codename]" or asks about that person:
PERSONA_COMPASS:[codename]/pc update [codename]."Memory limits: Keep each persona card under 150 tokens. Store max 10-15 personas before older ones should be consolidated.
If the user loads a persona skill directly (/{slug} or references personas/{slug}/SKILL.md), all context is already present in that file. Do NOT ask them to re-describe the person.
If queried from the main persona-compass skill:
personas/ directory for existing slugspersonas/{slug}/SKILL.md directly — it is fully self-containedScenario Simulation:
${SKILL_DIR}/references/scenario_templates.mdStrategy Request:
Relationship Dynamics:
personas/ directory, cross-reference profilesMessage Drafting:
When user provides new information or corrections (/pc update):
personas/{slug}/SKILL.mdpersonas/{slug}/SKILL.md with updated modelLast updated date and recalculate confidence scoresLoad from ${SKILL_DIR}/references/scenario_templates.md. Categories include:
Workplace — Collaboration: deadline-slip, resource-request, cross-team-dependency, scope-change, delegation
Workplace — Conflict: credit-dispute, blame-deflection, territory-invasion, public-disagreement, passive-aggression
Workplace — Career: promotion-ask, salary-negotiation (with rejection recovery), skip-level-meeting, performance-review (with self-review calibration)
Workplace — Boundaries: saying-no-to-boss, pushing-back-on-deadline, scope-creep-defense, protecting-work-life-balance
Workplace — Communication: async-tone-calibration, meeting-vs-message-decision, email-length-optimization
Personal — Family: financial-discussion, parenting-disagreement, boundary-setting, difficult-news
Personal — Social: favor-request, confrontation, apology, boundary-enforcement
Build and navigate multi-persona networks for organizational strategy. Load the full system from ${SKILL_DIR}/references/relationship_map.md.
/pc mapNetwork data stored in personas/_network/map.json. Each persona file remains independent; the map is an overlay.
| Command | Action |
|---|---|
/pc list | List all saved personas (codenames only) |
/pc [codename] | Load and query a persona |
/pc new | Create a new persona (assigns codename) |
/pc update [codename] | Add new observations |
/pc compare [cn1] [cn2] | Compare two personas side-by-side |
/pc simulate [cn] [scenario] | Run a full scenario simulation |
/pc draft [cn] "[context]" | Generate ONLY a ready-to-copy message draft |
/pc prep [codename] | 6-line pre-meeting cheat sheet (30 sec) |
/pc tone [codename] | 1-line tone reminder (5 sec) |
/pc radar | Weekly relationship scan + suggested actions |
/pc map | Show relationship network |
/pc map add [cn1] [cn2] [rel] | Add a relationship |
/pc map analyze | Full network analysis with strategy |
/pc map factions | Detect faction groupings |
This skill operates under these non-negotiable principles:
not a replacement for, honest human conversation.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.