Claude Code Plugins

Community-maintained marketplace

Feedback

learning-about-you

@designnotdrum/brain-jar
1
0

Proactively learn about the user through onboarding and ongoing observation. Use at session start and when you notice potential preferences.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name learning-about-you
description Proactively learn about the user through onboarding and ongoing observation. Use at session start and when you notice potential preferences.
allowed-tools mcp__shared-memory__get_user_profile, mcp__shared-memory__update_user_profile, mcp__shared-memory__propose_profile_inference, mcp__shared-memory__confirm_profile_update, mcp__shared-memory__reject_profile_update, mcp__shared-memory__get_onboarding_questions, mcp__shared-memory__analyze_codebase_for_profile, mcp__shared-memory__add_memory, Bash, Read

Learning About You

This skill helps me remember who you are, what you prefer, and how you like to work. The goal is to make our interactions more personalized over time, while keeping you in control of what I learn.

When to Use This Skill

  • Session start: Check profile, ask onboarding questions if incomplete
  • New project context: Analyze codebase for tech preferences
  • Preference signals: When user expresses likes/dislikes, expertise, or goals
  • Periodically: Every few sessions, fill in profile gaps

Onboarding Flow

First Interaction (Profile Empty)

  1. Call get_user_profile to check current state
  2. If identity is empty, warmly introduce and ask 2-3 quick questions:
    • "What name should I use for you?"
    • "What's your timezone?" (helps with greetings!)
    • "What's your primary role?" (developer, founder, student, etc.)
  3. Store answers with update_user_profile

Subsequent Sessions

  • Check meta.lastOnboardingPrompt - don't ask new questions if < 3 days
  • Gradually fill gaps over sessions:
    • Session 2-3: Technical preferences (languages, frameworks, editor)
    • Session 4-5: Working style (verbosity, communication)
    • Later: Personal context (interests, goals) - only if user seems open

Question Guidelines

  • Never more than 2-3 questions at once
  • Frame as helpful: "Knowing X helps me Y"
  • Always offer skip: "Feel free to skip if you'd rather not say"
  • Be conversational, not form-like
  • Respect "I'd rather not say" - don't ask again

Ongoing Learning

Detecting Preferences from Conversation

Watch for signals:

Explicit statements:

  • "I prefer TypeScript" → technical.languages
  • "I use VS Code" → technical.editors
  • "I'm learning Rust" → knowledge.learning
  • "Keep it brief" → workingStyle.verbosity: concise

Implicit signals:

  • Verbose code comments → workingStyle may be 'detailed'
  • Lots of "why" questions → learningPace may be 'thorough'
  • Quick, terse responses → verbosity likely 'concise'

Confirmation Protocol

When you detect a preference with medium+ confidence:

  1. Call propose_profile_inference with evidence
  2. Present naturally in conversation:
    • "I noticed you seem to prefer TypeScript - should I remember that?"
    • "You mentioned you're learning Rust. Want me to keep that in mind?"
  3. Wait for user response
  4. If confirmed → confirm_profile_update
  5. If rejected → reject_profile_update (won't ask again)

Codebase Analysis

When starting work in a new project:

  1. Call analyze_codebase_for_profile with the project directory
  2. Review detected preferences
  3. Present high-confidence inferences naturally for confirmation
  4. Skip low-confidence ones unless highly relevant

Using Profile Data

When responding to the user:

  • Adjust explanation depth based on knowledge.expert vs knowledge.learning
  • Match verbosity to workingStyle.verbosity
  • Reference their timezone for time-related suggestions
  • Use their name occasionally (not every message)
  • Remember their goals when suggesting solutions

Profile Structure

identity:
  name, pronouns, timezone, location, role, organization

technical:
  languages[], frameworks[], tools[], editors[], patterns[]

workingStyle:
  verbosity (concise|detailed|adaptive)
  learningPace (fast|thorough|adaptive)
  priorities[]

knowledge:
  expert[], proficient[], learning[], interests[]

personal:
  interests[] (hobbies)
  goals[] (personal/professional)
  context[] (life context, freeform)

Privacy Principles

  • All data stays local unless user enables Mem0 sync
  • Never store sensitive info (passwords, API keys, financial)
  • User can view/edit profile anytime
  • Respect "I'd rather not say" responses
  • Don't infer age, health, politics, religion

Example Interactions

First Session

Agent: Hi! I'd love to personalize our interactions. Quick questions:
       - What name should I use for you?
       - What's your timezone?
       - What's your primary role?

       (Feel free to skip any you'd rather not answer)

Detecting a Preference

User: I always use TypeScript for new projects
Agent: Got it! Should I remember that you prefer TypeScript?
User: Yes
Agent: [calls confirm_profile_update] Perfect, I'll keep that in mind.

Using Profile Context

User: How should I structure this?
Agent: [checks profile: user is expert in React, learning Go]
       Since you're experienced with React, you might appreciate
       a component-based approach. For the Go backend, I'll explain
       the patterns in more detail since you mentioned you're learning it.