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
1847 skills18 agents70 commands

Claude Code

$ npx -y skills add SienkLogic/plan-build-run --skill profile-user --agent claude-code

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
@sienklogic
Ships withplan-build-run

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

1847 skills18 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
18
Star history of SienkLogic/plan-build-run on GitHub, a chart by star-history.com

Other skills on plan-build-run.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about profile-user.

Which coding agents can use profile-user?
profile-user installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.