Skip to content
Back to skills

User Profile

ASecurity

Use to create or update the user's anchor profile — one private file (~/haku-work-reflections/profile.md) capturing who they are and the context other skills need. Read automatically by other skills when present, so the user doesn't re-explain themselves every session. Triggers: "set up my profile", "update my profile", "I changed roles, refresh my profile". Explain yourself once, get tailored output forever.

  • 7 stars
  • 0 votes
  • 1 copy
  • 4 views
  • Added September 22, 2026
toolsgogit

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add shrwnsan/vibekit-claude-plugins --skill user-profile --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of User Profile?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for User Profile
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shrwnsan-user-profile/badge)](https://www.skillsdirectory.com/skills/shrwnsan-user-profile)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: user-profile
description: Use to create or update the user's anchor profile — one private file (~/haku-work-reflections/profile.md) capturing who they are and the context other skills need. Read automatically by other skills when present, so the user doesn't re-explain themselves every session. Triggers: "set up my profile", "update my profile", "I changed roles, refresh my profile". Explain yourself once, get tailored output forever.
---

# User Profile

Most skills work better when they know who the user is. This skill creates a **single anchor file** carrying standing context that other skills read automatically when present — the user explains themselves once and gets tailored output every session.

The file lives at `~/haku-work-reflections/profile.md` (configurable via `$HAKU_WORK_REFLECTIONS_HOME`) — same private root and privacy posture as the rest of the bundle.

## Root directory ownership

`user-profile` owns creation of the reflections root, its `.gitignore`, and the privacy warning — other skills hand off here rather than duplicating the ceremony. On first run, if the root doesn't exist, create it and the `.gitignore`, then issue the warning before writing:

> I'm about to create `~/haku-work-reflections/`, which will hold your profile and any candid reflections you log over time. This directory lives on your local machine only. Confirm the location, or set `$HAKU_WORK_REFLECTIONS_HOME` if you'd prefer a different one (e.g. an encrypted volume).

Wait for confirmation; if the root exists, skip the ceremony — it happens once. If `~/haku-work-reflections/` doesn't exist but `~/bettersense-work-reflections/` does (a pre-rename root), surface it first and offer `mv` to the new name — or `$HAKU_WORK_REFLECTIONS_HOME` pointed at the old path — before creating anything fresh; a second root silently forks the user's memory.

## When to apply

Trigger when the user is setting up the bundle for the first time; changed roles, teams, or scope; notices another skill producing generic output that context would sharpen; wants to see or update their profile; or wants an alternate "hat." Skip for one-off questions — don't suggest setup mid-flow.

## File format

Single markdown file, frontmatter + sections, hand-editable — the user owns it.

```markdown
---
name: [optional]
last_updated: 2026-05-03
default_hat: pm
---

# Default profile

## Role
[One paragraph: title, level, time in role, reporting shape.]

## Org and product context
[Company stage/size, what you own, team size, key cross-functional partners.]

## Current strategic focus (next 1-2 quarters)
[2-4 bullets — the narrative arc, not a backlog.]

## Communication style preferences
["Concise, direct over diplomatic, push back on me if my framing is off."]

## What I'm working on as a leader
[1-2 personal growth areas.]

## Stack and tools (if relevant)

## Cross-references
- Stakeholder files, wins log, self-reflections (paths under the same root)

# Alternate hats (optional)

## Hat: [mode]
[What differs from default — stakeholders, KPIs, communication register.]
```

## Exit signals

If the user says "stop", "exit", "skip this", or similar — stop immediately, summarize what was captured, offer to save a partial profile if enough was gathered, and end cleanly. Announce once in the opening: *"Say 'stop' at any time — we'll wrap up with whatever we have."*

## Interview flow

Walk through in order; keep each step short — this is a doorway, not an interrogation. Detail fills in over time.

1. **Name** (optional; skip if the user prefers).
2. **Role** — title, level, time in role, reporting shape.
3. **Org and product context** — two or three sentences.
4. **Current strategic focus** — the arc, not the backlog.
5. **Communication style** — capture verbatim where possible.
6. **Personal growth area** — optional but high value.
7. **Stack and tools** — only if relevant to their work.
8. **Alternate hats** — only if indicated.

Render the result, confirm with the user, then write.

## Update flow

**Show** the current profile; **edit a specific section** on request ("update my strategic focus"); or **refresh** by re-running the interview pre-populated from the file. Always bump `last_updated`. Past ~90 days, surface it gently — *"last updated [date] — anything material changed?"* — once.

## How other skills use it

> **If `profile.md` exists, read it before doing your work.** Tailor output to role, level, communication style, current focus, and stack; don't repeat questions the profile already answers.

`the-spec-writer` uses it for scope assumptions and stack defaults; installed pack skills (translator, explainer, coaching, reporting) read it for audience and calibration. If the profile is missing, everything still works — output is just more generic.

## Operating principles

- **The user owns the file.** Plain markdown, direct edits welcome; this skill is a doorway and a periodic refresher, not a gatekeeper.
- **Keep it short.** ~30 lines of content; a two-page profile doesn't get read.
- **Standing context only.** Stakeholders, reflections, and wins have their own homes — cross-reference, don't duplicate.
- **Privacy is non-negotiable.** Local file, gitignored, never auto-shared. If pointed at a hosted model, the contents go through that provider — disclose this on first run.
- **Hats are opt-in.** Most users have one mode; default to `default_hat` unless the user signals otherwise.

## Anti-patterns to flag

Résumé language ("spearheaded transformative AI initiatives") — signaling, not standing context; listing reports or stakeholders in the profile (that's what the stakeholder registry is for); weekly updates (it's a semi-static anchor — update on real role/scope changes); suggesting hats unprompted; and a profile contradicting recent stakeholder or wins entries — surface the gap, let the user resolve it.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.