listen
About
The `listen` skill enables Claude to perform deep intent extraction by applying active listening principles, parsing multiple layers of meaning beyond literal words. It should be used when requests are ambiguous, context contradicts the literal text, or before major tasks to prevent misunderstandings. This helps ensure responses accurately integrate the full signal, including emotional, contextual, and unstated elements.
Quick Install
Claude Code
Recommendednpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/listenCopy and paste this command in Claude Code to install this skill
Documentation
Listen
Structured deep listening session. Clear assumptions. Attend with full reception. Parse multiple signal layers. Reflect understanding back. Notice what is unsaid. Integrate complete picture of user's intent.
When Use
- User's request feels ambiguous. Rushing to action risks solving wrong problem
- User's words say one thing but context suggests something else (mismatch between literal and implied)
- Previous responses have missed mark — user keeps clarifying or rephrasing
- Complex request arrives with multiple layers: technical needs, emotional context, unstated constraints
- Before beginning large task where misunderstanding intent would waste significant effort
- After
meditateclears internal noise,listendirects cleared attention outward toward user
Inputs
- Required: User message(s) to attend to (available implicitly from conversation)
- Optional: Conversation history providing context for current request
- Optional: MEMORY.md or CLAUDE.md with user preferences and project context
- Optional: Specific concern about what might be misunderstood
Steps
Step 1: Clear — Release Assumptions
Before receiving user's signal, release preconceptions about what they want.
- Notice any pre-formed responses already forming — label them, set aside
- Check for pattern-matching: "This sounds like request I have seen before" — that match may be wrong
- Release assumption that user's first sentence contains complete request
- Release assumption that technical request is only request
- Approach user's words as if hearing them for first time, even if similar requests handled before
Got: Receptive state where attention is open rather than already narrowing toward solution. Impulse to immediately respond paused in favor of fully receiving.
If fail: Assumptions cannot be released (strong pattern match persists)? Acknowledge match explicitly: "This looks like X — but let me check if that is actually what is being asked." Naming assumption weakens its grip.
Step 2: Attend — Full Reception
Read user's message with complete attention, holding all parts in awareness at once.
- Read entire message before processing any part of it
- Note structure: single request, multiple requests, question, correction, narrative?
- Mark key nouns and verbs — concrete elements user has specified
- Note what is emphasized: what did they elaborate on? What did they state briefly?
- Note ordering: what came first (often priority), what came last (often afterthought — or real request buried at end)
- Read second time, this time attending to tone and framing rather than content
Got: Complete reception of message — no words skipped, no sentences glossed over. Message held as whole rather than immediately decomposed into actionable parts.
If fail: Message very long? Break into sections, still read each section completely. Attention pulled toward one part (usually most technical)? Deliberately attend to parts that are not technical — often contain intent.
Step 3: Layer — Parse Signal Types
User's message contains multiple simultaneous signals. Parse each layer separately.
Signal Layer Taxonomy:
┌──────────────┬──────────────────────────────┬──────────────────────────┐
│ Layer │ What to Extract │ Evidence │
├──────────────┼──────────────────────────────┼──────────────────────────┤
│ Literal │ What the words explicitly │ Direct statements, │
│ │ say — the surface request │ specific instructions │
├──────────────┼──────────────────────────────┼──────────────────────────┤
│ Procedural │ What they want done — the │ Verbs, action words, │
│ │ desired action or output │ "I want," "please," │
│ │ │ "can you" │
├──────────────┼──────────────────────────────┼──────────────────────────┤
│ Emotional │ How they feel about the │ Frustration ("I keep │
│ │ situation — frustration, │ trying"), urgency ("I │
│ │ curiosity, urgency, delight │ need this now"), delight │
│ │ │ ("this is cool") │
├──────────────┼──────────────────────────────┼──────────────────────────┤
│ Contextual │ The situation surrounding │ Mentions of deadlines, │
│ │ the request — why now, │ other people, projects, │
│ │ what prompted it │ prior attempts │
├──────────────┼──────────────────────────────┼──────────────────────────┤
│ Constraint │ Boundaries on the solution │ "Without changing X," │
│ │ — what must be preserved, │ "keep it simple," │
│ │ what cannot change │ "compatible with Y" │
├──────────────┼──────────────────────────────┼──────────────────────────┤
│ Meta │ The request about the │ "Am I asking the right │
│ │ request — are they asking │ question?", "Is this │
│ │ whether they are asking │ even possible?", │
│ │ the right thing? │ "Should I be doing X?" │
└──────────────┴──────────────────────────────┴──────────────────────────┘
For each layer, note what is present and what is absent. Absent layers as informative as present ones.
Got: Multi-layered reading of message. Literal and procedural layers usually clear. Emotional, contextual, constraint, meta layers require more careful attention. At least one non-literal layer identified.
If fail: Only literal layer visible? Message may genuinely be straightforward — not all communication is layered. But check: is message unusually short for its complexity? Are there hedging words ("maybe," "I think," "if possible")? Often indicate unstated layer.
Step 4: Reflect — Mirror Understanding
Before acting, reflect back what was heard to verify alignment.
- Paraphrase request in different words than user used — reveals whether meaning was captured, not just words
- Name layers explicitly if non-literal layers significant: "It sounds like you want X, and urgency suggests this is blocking other work"
- State what you understood as priority: "The most important part seems to be..."
- Multiple possible interpretations? Name them: "This could mean A or B — which is closer?"
- Request contains apparent contradictions? Surface gently: "You mentioned X and also Y — how do these relate?"
Got: User confirms reflection or corrects it. Either outcome valuable — confirmation = intent aligned. Correction = intent now clearer. Reflection should feel like mirror, not judgment.
If fail: User impatient with reflection ("just do it")? May value speed over alignment — honor preference but note risk of misalignment. Reflection was wrong? Do not defend it — accept correction, update understanding immediately.
Step 5: Notice Silence — Read Gaps
Attend to what user did not say. Can be as important as what they did say.
- What topic related to request did they not mention? (missing context)
- What constraint did they not state? (assumed knowledge or unstated preference)
- What emotional tone is missing? (calmness in situation that usually causes stress, or urgency without explanation)
- What alternative approaches did they not consider? (tunnel vision or deliberate exclusion)
- What question did they not ask? (question behind question)
Got: At least one significant gap identified. Gap may not need to be addressed — awareness prevents blind spots. Most useful gaps: missing constraints (user assumed something not stated) and missing context (why they need this now).
If fail: No gaps apparent? User may have been thorough — more likely gaps in areas AI also blind to. Consider: what would different person working on this project want to know that user has not stated? Lateral perspective often surfaces hidden gaps.
Step 6: Integrate — Synthesize Complete Understanding
Combine all layers and gaps into unified picture of user's actual need.
- State complete understanding: literal request + implied intent + emotional context + constraints + gaps
- Identify core need: if everything else fell away, what is one thing user most needs?
- Determine appropriate response: does user want action, understanding, validation, exploration?
- Integrated understanding differs from literal request? Decide whether to address deeper need or stated request (usually both)
- Set intent for next action: "Based on what I heard, I will..."
Got: Complete, nuanced understanding of user's need going beyond surface request. Understanding specific enough to guide action, honest enough to acknowledge uncertainty.
If fail: Integration produces confused picture? Signals may genuinely conflict. Ask one focused question that would resolve ambiguity: "The most important thing for me to understand is..." Do not ask multiple questions — single well-chosen question reveals more than list of clarifications.
Checks
- Assumptions cleared before attending to user's message
- Full message read before any part acted on
- At least one non-literal signal layer identified (emotional, contextual, constraint, or meta)
- Understanding reflected back to user before action taken
- Gaps and silences noticed, factored into understanding
- Integrated understanding addresses user's core need, not just surface request
Pitfalls
- Listening to respond: Forming response while still receiving message. Response shapes what is heard, filtering out signals that do not fit pre-formed answer
- Literal-only listening: Taking words at face value, missing intent, emotion, or context behind them
- Projection: Hearing what user would say if they were AI, rather than what they actually said. Their priorities and context are different
- Over-interpretation: Finding layers not there. Sometimes request for bug fix is just request for bug fix — not every message has hidden emotional content
- Reflecting too much: Turning every interaction into reflective conversation when user wants quick action. Match reflection depth to request complexity
- Neglecting literal: So focused on subtext that explicit request not fulfilled. Literal layer still matters — address it even when deeper layers present
See Also
listen-guidance— human-guidance variant for coaching person in developing active listening skillsobserve— sustained neutral pattern recognition feeding listening with broader contextteach— effective teaching requires listening first to understand learner's needsmeditate— inward attention clearing space for outward listeningheal— self-assessment revealing whether AI's listening capacity is impaired by drift
GitHub Repository
Related Skills
release-standards
DocumentsThis skill provides semantic versioning (semver) guidelines and changelog formatting standards for software releases. Use it when preparing releases to correctly increment version numbers (major/minor/patch) and structure changelog entries. It includes rules for pre-release identifiers and clear examples for developers.
commit-standards
DocumentsThis skill formats Git commit messages according to the Conventional Commits standard. It provides templates and type definitions (like `feat`, `fix`, `refactor`) to ensure consistency when writing or reviewing commits. Use it during the commit process to create clear, structured commit history.
huggingface-tokenizers
DocumentsThis skill provides high-performance tokenization using HuggingFace's Rust-based library, processing 1GB of text in under 20 seconds. It supports BPE, WordPiece, and Unigram algorithms while enabling custom tokenizer training and alignment tracking. Use it when you need production-fast tokenization or to build custom tokenizers integrated with the transformers ecosystem.
nano-pdf
Documentsnano-pdf is a CLI tool that lets developers edit PDFs using natural-language instructions, like changing text or fixing typos on specific pages. It's ideal for quick, programmatic PDF modifications directly from the terminal. Always verify the output, as page numbering can vary between versions.
