name: whoami
description: >
A short, conversational interview that builds a portable profile of the
user — who they are and how they want to be collaborated with — so the
agent can tailor its responses. Triggers on /whoami, "get to know me",
"set up my profile", "personalize how you work with me", "calibrate how
you respond", the user mentioning they are new to AI or switching agent
vendors, or a request for their collaboration "character sheet" or player
profile. Produces six collaboration dials, an RPG-style class + subclass
with a character portrait, a memory profile, and a self-contained HTML
character sheet. When a profile exists, bare /whoami reviews it and
offers to correct or re-run; /whoami rerun restarts the interview. Does
NOT trigger for project- or task-specific work calibration (use
handshake), routine memory edits or CRUD (use memory-management), or
brand-voice work. whoami is person-level and broad; handshake is
project-level and feeds from it.
metadata:
tier: draft
whoami
whoami builds a profile of the user — who they are and how they want to be
collaborated with — and stores it so every future response can be tailored. The
profile is a revisable prior, not a verdict: a snapshot the user owns and can
correct any time.
Sibling skill: handshake calibrates one project; whoami is the broad,
person-level profile and feeds handshake.
Core principles
- Everything converges on the six dials (Initiative, Depth, Breadth, Rationale, Warmth, Challenge). Memory, background, MBTI, prior profile, and scenario questions are all inputs to those six numbers.
- Nothing is stored without explicit confirmation. Every inferred value is shown before it lands.
- Skip what you already know. Only ask a scenario question for a dial you cannot fill confidently.
- Hold the profile lightly — surface drift, don't absorb it. It calibrates the starting point; it never overrides what the user does now. When live behavior contradicts a dial or trait, follow the live behavior, say so ("that runs against your profile — update it?"), and revise on confirmation. A profile silently deferred to is worse than no profile.
- The knowing is the point; the character sheet is the delight. Calibrate behavior from the six dial values, never from the class label.
Invocation
| Invocation | Profile exists? | Behavior |
|---|---|---|
/whoami |
No | Run the full flow (Steps 1–9). |
/whoami |
Yes | Show mode — present the summary + class, offer: correct / re-run / looks good. |
/whoami rerun |
Yes | Re-run — show the profile, ask "start from current and confirm/adjust, or fresh?", then run the flow. |
/whoami rerun |
No | Same as /whoami with no profile. |
/whoami is the primary entry point. Suggest whoami unprompted only when user
memory is sparse and tailored help would clearly benefit — never mid-task.
The flow itself adapts: no prior data → runs cold (Fresh); existing user memory → pre-fills and confirms (Review-and-correct); the user offers an MBTI type or prior profile → pre-fills from it (Import); a re-run → the existing profile pre-fills everything (Re-run).
Three flows, kept distinct. Fresh and Rerun both run the interview and
write the profile — and a rerun resets: it re-derives everything (dials,
class, specializations, anti-patterns, summary) and overwrites the profile
with the new results. Regenerate runs no interview — it re-renders the artifacts from
the saved whoami-profile.md, mirroring the stored values exactly. See
references/persistence.md → "Regeneration vs. rerun" for the contract.
The flow
Step 1 — Open. Briefly say what this is: a short conversational setup so you can tailor how you work together; it ends in a character sheet they keep; any question is skippable, everything changeable later.
Step 2 — Review what you know. Read runtime memory. Prior whoami profile →
Re-run. Other user memory, no profile → summarize what you already know in plain
language. Nothing in memory → before going cold, offer to import an existing
profile (Step 5's fast-input shortcut): the user may have run whoami in
another runtime or workspace and can hand over the result. A full
whoami-profile.md import skips Steps 4 and 6 — go straight to Step 7. If the
user has nothing to import, say "We're starting fresh" and go to Step 4.
Step 3 — Correct. Let the user fix anything stale or wrong before continuing.
Step 4 — Background. Ask the background questions
(references/background-questions.md), one at a time, conversational, every item
opt-out. Follow the data-handling rules below. Answers set the domain bucket and
tone for adaptive phrasing; the anti-patterns question captures 2–3 named agent
failure modes to avoid.
Step 5 — Optional fast input. Offer the shortcuts: an MBTI type, or an
existing whoami profile to import — pasted in, or handed over as a file in a
reachable folder. Two profile formats are accepted: a full whoami-profile.md
(full fidelity) or the condensed <!-- whoami:start -->…<!-- whoami:end -->
block from a ~/.claude/CLAUDE.md (the prose summary is re-authored from the
dials, since the block omits it). The skill cannot autonomously reach another
runtime's memory store or ~/.claude/CLAUDE.md — cross-runtime transfer is
always user-mediated. Map MBTI per references/mbti-mapping.md; parse a profile
per references/persistence.md → "Importing an existing profile". Treat results
as estimates, never final.
Step 6 — Infer dial estimates. From memory + background + MBTI/profile, estimate each of the six dials; tag each high / medium / low confidence.
Step 7 — Confirm and fill gaps. Per dial: high-confidence → state it
conversationally, ask the user to confirm or nudge; medium/low → ask that dial's
scenario question(s) from references/question-bank.md, one at a time, in your
own voice, with adaptive phrasing (references/adaptive-phrasing.md). Every dial
ends explicitly user-confirmed.
Step 8 — Finalize. Score per references/question-bank.md; derive class +
subclass from references/class-map.md. Then derive the user's
specializations (flexible traits — up to five, each a short name + 0–10
strength) from the background, runtime memory, and the working preferences
surfaced during the interview; confirm them with the user. If nothing
distinctive surfaced, leave specializations empty rather than invent. A rerun
re-derives and re-confirms specializations; it does not silently carry old
traits forward.
Step 9 — Persist and report. Per references/persistence.md:
- Optionally offer a cosmetic color-theme pick (or use the class default).
- Generate the character portrait — capability-gated: if
pixel-art+ an image generator are available, generate a class-anchored pixel character and base64-embed it; otherwise base64-embed the bundled hi-density class PNG fromassets/characters/<class>.png. - Write the portable
whoami-profile.mdfirst (templates/profile-template.md) — it is the source of truth and must carry the summary, the specializations, and the anti-patterns. Then render the self-contained HTML character sheet (templates/character-sheet.html) from those persisted values — for the values it displays, the sheet never shows data the profile lacks nor drops data it holds. - Write runtime memory (capability-gated) + a dated snapshot.
- Offer global persistence — a confirmed, condensed whoami block in
~/.claude/CLAUDE.mdso the profile calibrates every session, not just this workspace (written directly where reachable, otherwise handed to the user to paste). Opt-in, one confirmation; seereferences/persistence.md→ "Global persistence". A decline ends it. - Show the user the result and where it lives.
Show mode & the correction path
When bare /whoami finds an existing profile, present the prose summary +
class/subclass (offer to open the HTML sheet), then offer:
- Correct something → the user describes the change in free text. Interpret
it → map to the affected dial(s), background, or trait → show the proposed
change → confirm → persist (new dated snapshot; canonical, memory, and any
~/.claude/CLAUDE.mdblock updated in place). If the correction is ambiguous, ask one targeted question rather than guessing. This does not re-run the interview. - Re-run → enter Re-run mode.
- Regenerate the sheet → the Regenerate flow: re-render the HTML
character sheet from the saved
whoami-profile.mdwith no interview — a pure render of the stored summary, dials, class, and specializations. Useful after a template update. Precondition: ifwhoami-profile.mddoes not exist, Regenerate stops and directs the user to/whoamior/whoami rerun— it never renders from the memory entry or a partial source (seereferences/persistence.md→ "Regeneration vs. rerun"). - Looks good → done; nothing written.
Data-handling rules
- Never solicit protected attributes. Background questions stay scoped to collaboration-relevant facts; the free-text field is the only entry point for volunteered sensitive info.
- Volunteered sensitive info: keep only with explicit per-item confirmation;
store as a separate standard
user-type memory — never in the whoami profile, never scored, never on shareable artifacts. - Secrets (SSNs, bank/account numbers, passwords, government IDs): never store; if volunteered, drop them and say so once.
- Defer to the host runtime's data policy; never override it.
handshake integration
handshake reads whoami-profile.md to pre-fill its core questions. whoami
is upstream and one-directional — it never reads or depends on handshake.
References & assets
references/dials.md— the six dial definitions (canonical pole labels)references/question-bank.md— 9 scenario questions, domain variants, scoringreferences/class-map.md— 12-class taxonomy, Wildcard, derivationreferences/subclass-blurbs.md— the 120 class/subclass combination blurbsreferences/background-questions.md— background set + data-handling policyreferences/adaptive-phrasing.md— tone + domain-skinning rulesreferences/mbti-mapping.md— MBTI → dial priorsreferences/persistence.md— profile schema, memory contract, import, snapshotstemplates/profile-template.md,templates/character-sheet.htmlassets/characters/*.png— 13 hi-density pixel-art class portraits (512×512), one per classcommands/whoami.md— slash-command entry point (/whoami,/whoami rerun)
When to use this skill
Load when the user wants to set up, view, or update a personal collaboration
profile. Primary entry point is /whoami; /whoami rerun forces a
re-interview. Auto-triggering is conservative — only suggest whoami when user
memory is sparse and tailored help would clearly benefit, never mid-task.
Out of scope — route elsewhere. whoami is a person-level, portable, point-in-time profile. It deliberately does not absorb:
- Project- or task-level calibration, including per-task modes (greenfield vs.
debugging) →
handshake. - A code "definition of done" — what clears the bar, commit-vs-propose →
handshakefor project defaults,cerby(external, if installed) for coding discipline. - Accruing corrections over time → the runtime's
feedback-type memory; whoami only seeds the first few anti-patterns. - Routine memory edits or CRUD → memory-management. Content generation → a content skill.
Tags: personalization, onboarding, user-profile, memory, gamification