JasonLo

ss-user-profile

0
0
# Install this skill:
npx skills add JasonLo/skill-sommelier --skill "ss-user-profile"

Install specific skill from multi-skill repository

# Description

>-

# SKILL.md


name: ss-user-profile
description: >-
Analyze Claude Code user history to build a rich profile: interests, tech stack, work patterns,
preferences, and personality traits. Use when the user wants to understand their coding habits,
generate a developer profile, or review how they use Claude Code. Also used by discover-skills
for personalized ranking. Triggers on "my profile", "who am I", "analyze my usage",
"developer profile", "coding habits", "how do I use Claude".
allowed-tools:
- Read
- Bash
- Glob
- Grep
- Agent


Analyze the user's Claude Code history and project data to build a comprehensive personal profile. This helps Claude understand who the user is across sessions.

When to Use

  • Understanding your coding habits and patterns
  • Generating a developer profile for personalization
  • Informing other skills (discover-skills uses this for relevance ranking)

When NOT to Use

  • Shared machines where history contains multiple users' data
  • When you need real-time stats — this is a point-in-time snapshot

Step 1 — Gather data from all sources (parallelize)

Spawn an Agent to analyze prompt history while reading other sources in parallel. Skip any source that doesn't exist.

1a — Prompt history (delegate to Agent)

Spawn a general-purpose Agent to read and analyze ~/.claude/history.jsonl. Each line is JSON with keys: display (the user's prompt), timestamp, project (working directory path), sessionId.

The agent should produce a structured report covering:

Projects: All unique project paths with prompt counts, sorted by frequency.

Timestamps:
- Date range (earliest to latest), total active days
- Detect timezone by finding the sleep gap (hours with near-zero activity) and mapping to the most likely UTC offset. Report all times in the inferred local timezone, not UTC.
- Activity by time of day (morning/afternoon/evening/night in local time)
- Day of week distribution
- Top 10 most active days

Prompts:
- Total count, questions vs instructions ratio
- Prompt length distribution (short <50 chars, medium 50-200, long 200+)
- Slash commands used (with counts)
- Bang/shell commands used (with counts)
- Top words and bigrams (excluding stopwords)
- Communication style observations (verbosity, tone, politeness, casing)

Sessions:
- Total sessions, average/median prompts per session
- Session size distribution and duration stats
- Top 5 longest sessions with project and first prompt

Technology mentions: Languages, frameworks, tools, platforms mentioned in prompts with counts.

1b — /insights report (if available)

Check for ~/.claude/usage-data/report.html. If it exists, read it and extract:
- Interaction style observations
- Friction patterns and what works well
- Suggested improvements and features to try
- Impressive workflows identified

Also check ~/.claude/usage-data/facets/ for structured JSON data. These provide richer personality and style analysis than raw history alone.

1c — Project memory files

Glob for ~/.claude/projects/*/memory/MEMORY.md and read each one. These contain curated notes about per-project preferences and context.

1d — CLAUDE.md files across projects

For each unique project path found in history (top 10 by frequency), check if {project}/CLAUDE.md exists and read it. These describe project purpose and conventions.

1e — Settings and configuration

Read ~/.claude/settings.json for tool preferences, model settings, and plugins.

1f — Git contribution stats

For each project that is a git repo, run in a single bash command:

git -C {project} remote -v 2>/dev/null | head -1
git -C {project} log --oneline -3 2>/dev/null
git -C {project} shortlog -sn --all --no-merges 2>/dev/null | head -3

This reveals the user's commit patterns and whether they're the sole contributor or part of a team.

Step 2 — Analyze and synthesize

Once all data is gathered, synthesize into these dimensions:

Tech Stack

  • Languages — inferred from project types, CLAUDE.md toolchains, and prompt mentions
  • Frameworks & Libraries — from CLAUDE.md dependencies and prompt context
  • Dev Tools — package managers, linters, editors, CLI tools (pay attention to uv, bun, ruff, etc.)
  • Infrastructure — cloud, HPC, CI/CD, containers, databases

Project Portfolio

For each project, determine:
- Domain (web dev, ML, data engineering, DevOps, tooling, etc.)
- Work vs personal (GitHub org repos = work, personal handle = side projects)
- Activity level (prompt count and recency)
- Solo vs team (from git shortlog)

Work Patterns

  • Schedule — when they work, in inferred local timezone
  • Session style — quick bursts vs deep sessions
  • Project focus — concentrated or scattered
  • Weekday vs weekend — work/life separation or blended

Communication Style

  • Verbosity (median prompt length, short/long ratio)
  • Tone (imperative vs conversational, formal vs casual)
  • Autonomy preference (do they confirm or just say "go"?)
  • Slash command power-user level (count and variety)

Personality Indicators

  • Risk tolerance — bold experiments or careful steps?
  • Tool builder — do they create skills/tools or just use them?
  • Learning style — "why" questions vs "how" instructions?
  • Customization depth — CLAUDE.md complexity, memory files, settings

Step 3 — Build the profile

Compose the profile in this format:

# User Profile

> TLDR: A single sentence capturing who this person is.

## Quick Summary
2-3 sentences: role, primary domains, what makes them distinctive.

## Tech Identity
| Dimension | Details |
|-----------|---------|
| Languages | ... |
| Frameworks | ... |
| Dev Tools | ... |
| Infrastructure | ... |

## Project Portfolio
| Project | Domain | Type | Activity |
|---------|--------|------|----------|
| name | domain | work/personal | prompt count |

Brief narrative about portfolio shape (what connects the projects).

## Work Patterns
- Schedule summary (timezone, peak hours, weekday/weekend)
- Session style (burst vs marathon, median duration)
- Project focus pattern

## Communication Style
- How they talk to Claude (with specific examples from prompts)
- Autonomy level and confirmation style
- Notable habits (slash commands, bang commands, typo tolerance)

## Personality Sketch
A short narrative paragraph synthesizing personality indicators
into a human portrait. What drives this person, how they think,
what kind of developer/creator they are.

## Raw Stats
- Total prompts: N
- Unique projects: N
- Date range: X to Y (N active days)
- Sessions: N (median M prompts, median D minutes)
- Most active project: name (N prompts)
- Slash commands: N distinct
- Inferred timezone: TZ

Step 4 — Save and present

Auto-save the profile to ~/.claude/user-profile.md without asking. This file is outside the repo and not git-tracked.

Display the full profile, then offer refinement options only if the user asks:
- Refine — User corrects or adds context, regenerate
- Deep dive — Expand any section with more analysis

Privacy notes

  • All analysis is local, no data leaves the machine
  • Only reads existing Claude Code metadata (history, memory, settings)
  • Does not read conversation transcripts or tool outputs, only user prompts
  • The profile can be deleted at any time by removing ~/.claude/user-profile.md

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.