Create Developer Profile
This skill interviews the user and writes ~/.claude/PROFILE.md. Other skills read this file to tailor their output without re-asking these questions.
If ~/.claude/PROFILE.md already exists, read it first so you can show current values and let the user update rather than start fresh.
Interview
Ask these questions one at a time using AskUserQuestion, waiting for each answer before continuing. Tailor follow-up questions based on what you learn — the goal is a profile that feels like it was written by the person, not a form they filled out.
1. Role
Header: "What's your role?"
Options (allow free-form "Other"):
- Full-stack — works across frontend and backend
- Designer — UX, component design, design systems
- Non Technical — PM, product, ops, etc
2. Primary Stack
Header: "What frameworks and languages are you most familiar with? And how long have you been using them?"
DO NOT USE AskUserQuestion options for this — let them answer in their own words.
3. Domain Experience
Header: "Which of these domains are you most familiar with?"
DO NOT USE AskUserQuestion options for this — let them answer in their own words.
4. Tools
Header: "What tools and editors do you use day-to-day?"
DO NOT USE AskUserQuestion options for this — let them answer in their own words. (e.g. VS Code, Neovim, GitHub, Linear, Figma, etc.)
5. Learning Style
Header: "How do you learn best?"
Options (allow free-form, allow multi-select):
- Concrete examples first — show me the code, then explain why
- Theory first — explain the concept before showing code
- Diagrams and visual representations help me most
- Step-by-step walkthroughs with reasoning at each step
- I learn by doing — keep explanations minimal, let me experiment
- Be thorough — I'd rather have too much than miss something
- Be concise — skip the preamble, get to the point
- Use analogies and plain language — avoid jargon when possible
- Other (please specify)
6. Working Style
Header: "How do you prefer to work?"
Options (allow free-form, allow multi-select):
- Plan thoroughly before starting — I like to know the full approach upfront
- Start fast and iterate — I'd rather learn by doing and adjust as I go
- Work independently and check in at key milestones
- Collaborate frequently — I like to talk through decisions as they come up
- Prefer async written context over real-time discussion
- Ask me one question at a time — don't front-load decisions
- Other (please specify)
7. Open-ended preferences (plain text, not AskUserQuestion)
Ask as plain text: "Anything else you'd like me to know? For example: areas you're focused on, things you find confusing, topics you want me to go deeper on, or anything I should avoid."
Wait for the response. If the user says "no" or "nothing", that's fine — skip it in the profile.
Writing the Profile
After collecting answers, write ~/.claude/PROFILE.md with this structure (adapt the content to what the user actually said — do not copy options verbatim if their free-form answer is more expressive):
# Developer Profile
## Role
<their role, in their words or the selected option>
## Primary Stack
<their experience level and any context they gave>
## Domain Experience
<domains they selected or described, as a short prose sentence or bullet list>
## Tools
<their day-to-day tools, as they described them>
## Learning Style
<how they absorb and process information — rewrite as natural prose>
## Working Style
<how they prefer to approach and structure their work — rewrite as natural prose>
## Additional Preferences
<their open-ended answer, or omit this section entirely if they had nothing to add>
After writing the file, confirm to the user: "Your profile has been saved. Skills like /explain will now use it to tailor output to you. You can run /create-profile again any time to update it."