Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add dongshuyan/compass-skills --skill user-profile-keepergit clone --depth 1 https://github.com/dongshuyan/compass-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dongshuyan/compass-skills/user-profile-keeper)<a href="https://agentmods.dev/skills/dongshuyan/compass-skills/user-profile-keeper"><img src="https://agentmods.dev/badge/skills/dongshuyan/compass-skills/user-profile-keeper/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dongshuyan/compass-skills/user-profile-keeper"><img src="https://agentmods.dev/badge/skills/dongshuyan/compass-skills/user-profile-keeper.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00129 | $0.01987 |
| Opus 5 | $0.00064 | $0.00993 |
| Sonnet 5 | $0.00026 | $0.00397 |
| Haiku 4.5 | $0.00013 | $0.00199 |
Grade A, and why
user-profile-keeper scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 127 lines — stays where its author put it; the contents beside it link to each section on GitHub.
User Profile Keeper
Language Policy
All output directed at the user — profile summaries, proposals, exports, questions, and confirmations — must be written in the user's language. Detect the user's language from their message. Default to Chinese when unknown. Skill instructions are written in English; that does not affect the language of user-facing output.
Role
Maintain a local-only user profile. The default user is default. Create or switch to another user only when the user explicitly names another identity.
Portability
This skill is agent-agnostic. Resolve paths from the directory that contains this SKILL.md. Use the available Python command on the host (python3, python, or py -3). The scripts are intended for macOS, Windows, and Linux with Python 3 and the standard library.
Core Contract
- Use this skill only when the user explicitly invokes
$user-profile-keeper. - Store profile data in the host user's local home directory under
.compass-skills/user-profiles/v1by default. UseCOMPASS_USER_PROFILE_HOMEto set another local directory. - Do not upload profile data. Do not read browser cookies, tokens, passwords, private keys, verification codes, or credentials.
- Treat the store as local plaintext. Before first initialization, tell the user that local files can be read by local processes, users, or backups with sufficient permission.
- Every profile assertion must include source type, confidence, sensitivity, status, and evidence. Avoid untraceable conclusions.
- Low-sensitivity explicit facts with no conflict may be sent through
--auto-apply-safe; the script decides whether they become active. Inferred, private, sensitive, high-impact, or conflicting facts must become pending proposals. - Profile scope includes collaboration preferences, requirement-expression habits, capability boundaries, risk confirmation, privacy boundaries, anti-bubble rules, typical events, and user-provided background such as age range, education, field, role, experience stage, and long-term goals.
- Treat background information as
privateby default unless the user explicitly asks for a low-sensitivity summary. Keep it out of cross-skill summaries by default. - Let the user view, correct, retract, delete, and export profile data at any time.
- Read the full profile only inside this skill. Other skills may read only low-sensitivity views such as
clarification_summary. - Current session instructions, AGENTS rules, repository constraints, and skill operating rules constrain the current task. They do not initialize a durable user profile by themselves.
- If the user asks for the onboarding questionnaire or first-run WebUI, run
scripts/onboarding_webui.py --user <id>.
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- agents/openai.yaml 285 B
- references/examples.md 4.7 KB
- references/privacy-boundary.md 3.4 KB
- references/profile-schema.md 4.6 KB
- references/questionnaire.md 3.8 KB
- references/task-clarifier-integration.md 2.4 KB
- references/update-policy.md 4.9 KB
- scripts/onboarding_webui.py 24 KB runs code
- scripts/profile_store.py 42 KB runs code
- scripts/smoke_test_onboarding.py 8.2 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 127 lines · 129 tokens per session scan A 321326fe0a5b
user-profile-keeper is a skill published in the GitHub repository dongshuyan/compass-skills (724 stars, last pushed 15d ago), licensed MIT. It adds 129 tokens to every session and 1,987 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
install-memu
Install or uninstall memU for whatever agent you are — identify your host, print its packaged guide, and follow it to wire (or unwire) both seams (record and inject). Use when the user asks to install, set up, integrate, remove, or uninstall memU.
lore
Long-term Markdown project memory for AI coding agents. Use when the user wants to record, recall, audit, sync, or compress project decisions, architecture, conventions, monorepo scopes, or .lore/ entries, including natural-language requests like "remember this decision" or explicit lore…
brigade-handoffs
Use when setting up, checking, writing, linting, or troubleshooting Brigade memory handoffs for a repo or agent workspace, especially when a user wants durable agent memory, handoff inboxes, cross-harness memory routing, or a safe first Brigade setup.
memory-handoff
Use at the end of any session that discovered durable knowledge (architecture decisions, root causes, setup gotchas, workflow changes, security findings, reusable patterns), or when the user says "hand off", "write a handoff", or "save this for the memory system".
handoff
Create a structured session handoff when context is running low or work is pausing. Deep context mining, self-validation, multi-file splitting. Captures everything the next session needs.
end
Close a work session — log what happened, update state and the decision log, propose durable memory updates, and check for uncommitted or unpushed work.