Skip to content
Development
Skill

/profile-user

Analyze Claude Code session history to generate a developer behavioral profile across 8 dimensions.

From plugin
plan-build-run
1747 skills18 agents70 commands
Install
$ npx -y skills add SienkLogic/plan-build-run --skill profile-user --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/profile-user

Context preview

The summary Claude sees to decide when to auto-load this skill.

Analyze Claude Code session history to generate a developer behavioral profile across 8 dimensions.

SKILL.md

profile-user.SKILL.md
name: profile-user
description: "Analyze Claude Code session history to generate a developer behavioral profile across 8 dimensions."
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
argument-hint: "[--sessions N]"

**STOP -- DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Using the Read tool on this SKILL.md file wastes tokens. Begin executing Step 0 immediately.**

Step 0 -- Banner

**Before ANY tool calls**, display this banner:

╔══════════════════════════════════════════════════════════════╗
║  PLAN-BUILD-RUN ► USER PROFILE                              ║
╚══════════════════════════════════════════════════════════════╝

Then proceed to Step 1.

/pbr:profile-user -- Developer Behavioral Profiling

You are running the **profile-user** skill. Your job is to analyze the user's Claude Code session history across 8 behavioral dimensions and generate a `.planning/USER-PROFILE.md` file with actionable insights. If insufficient session data exists, fall back to a short interactive questionnaire.

---

Step 1 -- Config Gate

Check if the developer profiling feature is enabled:

pbr-tools config get developer_profile.enabled
  • If the result is `false`, empty, or the key is missing: tell the user to enable it first with `/pbr:config set developer_profile.enabled true` and **STOP**.
  • If `true`: proceed to Step 2.

---

Step 2 -- Locate Session Logs

Find the Claude Code session log directory for this project:

# List ~/.claude/projects/ to find the encoded project path
ls -la ~/.claude/projects/

The directory name is the project root path with path separators replaced by `-`. For example, `D:\Repos\plan-build-run` becomes something like `D--Repos-plan-build-run` or `D-Repos-plan-build-run`.

Once found, list JSONL files sorted by modification time:

ls -lt ~/.claude/projects/{encoded-path}/*.jsonl 2>/dev/null | head -20

Count the files that are larger than 1KB:

find ~/.claude/projects/{encoded-path}/ -name "*.jsonl" -size +1k 2>/dev/null | wc -l

---

Step 3 -- Analysis or Fallback Decision

  • If **>= 3** session JSONL files found (each > 1KB): proceed to **Step 4** (session analysis mode).
  • If **< 3** usable session files: proceed to **Step 5** (questionnaire fallback).

---

Step 4 -- Session Analysis Mode

Read the **5 most recent** session JSONL files. For each file, parse the JSON lines and extract behavioral signals.

What to look for

For each session, scan `type: "human"` messages (user inputs) and `type: "assistant"` messages (responses) to detect patterns:

1. **Communication style** -- Are user messages terse (1-2 words, commands) or detailed (paragraphs with context)? Do they use technical jargon freely? 2. **Decision speed** -- When presented with options or checkpoints, how quickly does the user respond? Do they accept suggestions or counter-propose alternatives? 3. **Debugging approach** -- When errors occur, does the user provide stack traces, ask for root cause analysis, or direct Claude to specific files? 4. **UX philosophy** -- Does the user focus on functionality first, or request UI polish, formatting, and user-facing details early? 5. **Code style** -- Does the user request tests, mention linting, prefer functional vs OOP patterns, ask for type safety? 6. **Review thoroughness** -- Does the user examine diffs carefully, request changes, or approve quickly? 7. **Risk tolerance** -- Does the user approve force operations, skip verification steps, use `--auto` flags? 8. **Domain expertise** -- What technologies, frameworks, and languages appear most frequently?

Scoring

Score each dimension on a 3-point scale:

| Dimension | Low | Medium | High | |-----------|-----|--------|------| | Communication style | terse | balanced | detailed | | Decision speed | fast | measured | deliberate | | Debugging approach | delegation | intuitive | systematic | | UX philosophy | function-first | balanced | polish-first | | Code style | pragmatic | balanced | perfectionist | | Review thoroughness | light | standard | deep | | Risk tolerance | conservative | moderate | adventurous | | Domain expertise | (list top 3-5 domains) | | |

After scoring, proceed to **Step 6**.

---

Step 5 -- Questionnaire Fallback

When insufficient session data is available, use `AskUserQuestion` to ask these 4 questions **one at a time**:

**Question 1:** > How do you prefer Claude to communicate? > (a) Brief and direct > (b) Balanced -- concise but with enough context > (c) Detailed with thorough explanations

**Question 2:** > When you encounter a bug, do you prefer to: > (a) Get a fix immediately -- just make it work > (b) Understand the root cause first, then fix > (c) Have Claude investigate and report back before changing anything

**Question 3:** > How important is code quality vs shipping speed? > (a) Ship fast, refactor later > (b) Balance both -- good enough quality, reasonable speed > (c) Quality first, take the time needed

**Question 4:** > What is your primary domain? (e.g., backend, frontend, DevOps, data, mobile, full-stack)

Mapping answers to dimensions

| Answer | Dimension mappings | |--------|-------------------| | Q1=a | communication_style: terse, review_thoroughness: light | | Q1=b | communication_style: balanced, review_thoroughness: standard | | Q1=c | communication_style: detailed, review_thoroughness: deep | | Q2=a | debugging_approach: delegation, decision_speed: fast | | Q2=b | debugging_approach: systematic, decision_speed: measured | | Q2=c | debugging_approach: systematic, decision_speed: deliberate | | Q3=a | code_style: pragmatic, risk_tolerance: adventurous, ux_philosophy: function-first | | Q3=b | code_style: balanced, risk_tolerance: moderate, ux_philosophy: balanced | | Q3=c | code_style: perfectionist, risk_tolerance: conservative, ux_philosophy: balanced | | Q4 | domain_expertise: [user'

Read more
Ships withplan-build-run

Plan it. Build it. Run it. A Claude Code plugin for structured development with context-engineered agents.

Get the whole plugin

Other skills on plan-build-run.