/nav-profile
Manage user preferences and corrections for bilateral modeling. Auto-learns from session corrections. Use when user says "save my preferences", "remember I like...", or auto-triggers after corrections.
$ npx -y skills add alekspetrov/navigator --skill nav-profile --agent claude-codeHow 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
/nav-profile
Context preview
The summary Claude sees to decide when to auto-load this skill.
Manage user preferences and corrections for bilateral modeling. Auto-learns from session corrections. Use when user says "save my preferences", "remember I like...", or auto-triggers after corrections.
SKILL.md
nav-profile.SKILL.mdname: nav-profile
description: Manage user preferences and corrections for bilateral modeling. Auto-learns from session corrections. Use when user says "save my preferences", "remember I like...", or auto-triggers after corrections.
allowed-tools: Read, Write, Edit, Bash
version: 1.0.0
Navigator Profile Skill
Manage user preferences for bilateral modeling - enabling Claude to understand and adapt to your working style, technical preferences, and past corrections.
Why This Exists (Theory of Mind)
Based on Riedl & Weidmann 2025 research on Human-AI Synergy:
- Theory of Mind (ToM) is the key differentiator in human-AI collaboration success
- Users with higher ToM achieve 23-29% performance boost
- **Bilateral modeling** completes the ToM loop: Claude models you, you model Claude
This skill enables Claude to:
- Remember your preferences across sessions
- Learn from corrections without you repeating them
- Adapt communication style to your level
- Build a persistent mental model of YOU
When to Invoke
**Auto-invoke when**:
- User says "save my preferences", "remember I like..."
- User says "update my profile", "change my preference for..."
- After detecting a correction pattern (auto-learn mode)
- User says "show my profile", "what do you know about me?"
**DO NOT invoke if**:
- User is creating a context marker (use nav-marker)
- User wants session-specific preferences only
- User explicitly says "just for this session"
Profile Location
`.agent/.user-profile.json` (git-ignored, session-persistent)
Execution Steps
Step 1: Determine Action
**SHOW** (viewing profile):
User: "Show my profile", "What do you remember about me?"
→ Display current profile
**UPDATE** (explicit preference):
User: "Remember I prefer functional style", "Save that I like concise explanations"
→ Update specific preference
**LEARN** (auto-detect correction):
[Internal trigger after correction detected]
→ Extract and save correction pattern
**RESET** (clear profile):
User: "Reset my profile", "Clear my preferences"
→ Confirm and delete profile
Step 2: Load or Initialize Profile
**Check if profile exists**:
if [ -f ".agent/.user-profile.json" ]; then
echo "Profile exists"
else
echo "No profile found, will create new"
fi
**Initialize new profile** (if not exists):
{
"version": "1.0",
"created": "{YYYY-MM-DD}",
"last_updated": "{YYYY-MM-DD}",
"preferences": {
"communication": {
"verbosity": "balanced",
"confirmation_threshold": "high-stakes",
"explanation_style": "examples"
},
"technical": {
"preferred_frameworks": [],
"code_style": "mixed",
"testing_preference": "tdd"
},
"workflow": {
"autonomous_commits": true,
"auto_compact_threshold": 80,
"marker_before_risky": true
}
},
"corrections": [],
"goals": []
}Step 3A: Show Profile (If SHOW Action)
**Display current profile**:
Your Navigator Profile
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Communication Preferences:
- Verbosity: {verbosity}
- Confirmation: {confirmation_threshold} (when to verify understanding)
- Explanations: {explanation_style}
Technical Preferences:
- Preferred frameworks: {frameworks or "none set"}
- Code style: {code_style}
- Testing: {testing_preference}
Workflow Preferences:
- Autonomous commits: {autonomous_commits}
- Auto-compact at: {auto_compact_threshold}% context
- Markers before risky changes: {marker_before_risky}
Learned Corrections ({count}):
{recent_corrections_list}
Active Goals ({count}):
{active_goals_list}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Last updated: {last_updated}Step 3B: Update Profile (If UPDATE Action)
**Parse preference from user input**:
User: "Remember I prefer functional style"
→ Category: technical
→ Field: code_style
→ Value: functional
User: "I like concise explanations"
→ Category: communication
→ Field: verbosity
→ Value: concise
**Map common expressions to profile fields**:
| User Says | Category | Field | Value | |-----------|----------|-------|-------| | "concise", "brief", "short" | communication | verbosity | concise | | "detailed", "thorough" | communication | verbosity | detailed | | "always confirm" | communication | confirmation_threshold | always | | "skip confirmations" | communication | confirmation_threshold | never | | "functional style" | technical | code_style | functional | | "OOP style" | technical | code_style | oop | | "prefer React" | technical | preferred_frameworks | [append "react"] | | "prefer Express" | technical | preferred_frameworks | [append "express"] |
**Update and save**:
// Update specific field
profile.preferences[category][field] = value;
profile.last_updated = "{YYYY-MM-DD}";
// Write to file
Write(".agent/.user-profile.json", JSON.stringify(profile, null, 2));**Confirm update**:
✅ Profile updated!
Changed: {category}.{field}
From: {old_value}
To: {new_value}
This will affect future sessions.Step 3C: Auto-Learn Correction (If LEARN Action) [AUTO-TRIGGER]
**IMPORTANT**: This action triggers automatically - no explicit skill invocation needed.
**When to detect corrections** (monitor ALL conversations):
- User says "No, I meant...", "Actually...", "Not X, use Y"
- User repeats a correction they gave before
- User shows frustration at repeated mistake
**Trigger patterns to watch for**:
"No, ..." → Direct correction
"I said ..." → Repeated instruction
"Actually, ..." → Clarification
"Not X, Y" → Substitution
"Always use ..." → Rule establishment
"Never do ..." → Anti-pattern
"I prefer ..." → Preference
**When detected**:
User: "No, I meant plural /users not /user"
→ Correction detected: REST naming convention preference
→ Auto-save to profile (silent)
**Extract correction pattern**:
correction = {
"date": "{YYYY-MM-DD}",
"context": "{what we were doing}",
"original": "{what I sRead more
name: nav-profile description: Manage user preferences and corrections for bilateral modeling. Auto-learns from session corrections. Use when user says "save my preferences", "remember I like...", or auto-triggers after corrections. allowed-tools: Read, Write, Edit, Bash version: 1.0.0
Navigator Profile Skill
Manage user preferences for bilateral modeling - enabling Claude to understand and adapt to your working style, technical preferences, and past corrections.
Why This Exists (Theory of Mind)
Based on Riedl & Weidmann 2025 research on Human-AI Synergy:
- Theory of Mind (ToM) is the key differentiator in human-AI collaboration success
- Users with higher ToM achieve 23-29% performance boost
- **Bilateral modeling** completes the ToM loop: Claude models you, you model Claude
This skill enables Claude to:
- Remember your preferences across sessions
- Learn from corrections without you repeating them
- Adapt communication style to your level
- Build a persistent mental model of YOU
When to Invoke
**Auto-invoke when**:
- User says "save my preferences", "remember I like..."
- User says "update my profile", "change my preference for..."
- After detecting a correction pattern (auto-learn mode)
- User says "show my profile", "what do you know about me?"
**DO NOT invoke if**:
- User is creating a context marker (use nav-marker)
- User wants session-specific preferences only
- User explicitly says "just for this session"
Profile Location
`.agent/.user-profile.json` (git-ignored, session-persistent)
Execution Steps
Step 1: Determine Action
**SHOW** (viewing profile):
User: "Show my profile", "What do you remember about me?" → Display current profile
**UPDATE** (explicit preference):
User: "Remember I prefer functional style", "Save that I like concise explanations" → Update specific preference
**LEARN** (auto-detect correction):
[Internal trigger after correction detected] → Extract and save correction pattern
**RESET** (clear profile):
User: "Reset my profile", "Clear my preferences" → Confirm and delete profile
Step 2: Load or Initialize Profile
**Check if profile exists**:
if [ -f ".agent/.user-profile.json" ]; then echo "Profile exists" else echo "No profile found, will create new" fi
**Initialize new profile** (if not exists):
{
"version": "1.0",
"created": "{YYYY-MM-DD}",
"last_updated": "{YYYY-MM-DD}",
"preferences": {
"communication": {
"verbosity": "balanced",
"confirmation_threshold": "high-stakes",
"explanation_style": "examples"
},
"technical": {
"preferred_frameworks": [],
"code_style": "mixed",
"testing_preference": "tdd"
},
"workflow": {
"autonomous_commits": true,
"auto_compact_threshold": 80,
"marker_before_risky": true
}
},
"corrections": [],
"goals": []
}Step 3A: Show Profile (If SHOW Action)
**Display current profile**:
Your Navigator Profile
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Communication Preferences:
- Verbosity: {verbosity}
- Confirmation: {confirmation_threshold} (when to verify understanding)
- Explanations: {explanation_style}
Technical Preferences:
- Preferred frameworks: {frameworks or "none set"}
- Code style: {code_style}
- Testing: {testing_preference}
Workflow Preferences:
- Autonomous commits: {autonomous_commits}
- Auto-compact at: {auto_compact_threshold}% context
- Markers before risky changes: {marker_before_risky}
Learned Corrections ({count}):
{recent_corrections_list}
Active Goals ({count}):
{active_goals_list}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Last updated: {last_updated}Step 3B: Update Profile (If UPDATE Action)
**Parse preference from user input**:
User: "Remember I prefer functional style" → Category: technical → Field: code_style → Value: functional User: "I like concise explanations" → Category: communication → Field: verbosity → Value: concise
**Map common expressions to profile fields**:
| User Says | Category | Field | Value | |-----------|----------|-------|-------| | "concise", "brief", "short" | communication | verbosity | concise | | "detailed", "thorough" | communication | verbosity | detailed | | "always confirm" | communication | confirmation_threshold | always | | "skip confirmations" | communication | confirmation_threshold | never | | "functional style" | technical | code_style | functional | | "OOP style" | technical | code_style | oop | | "prefer React" | technical | preferred_frameworks | [append "react"] | | "prefer Express" | technical | preferred_frameworks | [append "express"] |
**Update and save**:
// Update specific field
profile.preferences[category][field] = value;
profile.last_updated = "{YYYY-MM-DD}";
// Write to file
Write(".agent/.user-profile.json", JSON.stringify(profile, null, 2));**Confirm update**:
✅ Profile updated!
Changed: {category}.{field}
From: {old_value}
To: {new_value}
This will affect future sessions.Step 3C: Auto-Learn Correction (If LEARN Action) [AUTO-TRIGGER]
**IMPORTANT**: This action triggers automatically - no explicit skill invocation needed.
**When to detect corrections** (monitor ALL conversations):
- User says "No, I meant...", "Actually...", "Not X, use Y"
- User repeats a correction they gave before
- User shows frustration at repeated mistake
**Trigger patterns to watch for**:
"No, ..." → Direct correction "I said ..." → Repeated instruction "Actually, ..." → Clarification "Not X, Y" → Substitution "Always use ..." → Rule establishment "Never do ..." → Anti-pattern "I prefer ..." → Preference
**When detected**:
User: "No, I meant plural /users not /user" → Correction detected: REST naming convention preference → Auto-save to profile (silent)
**Extract correction pattern**:
correction = {
"date": "{YYYY-MM-DD}",
"context": "{what we were doing}",
"original": "{what I sFinish What You Start Sessions that last. AI that learns. Features that ship.
Repo: alekspetrov/navigator
Other skills on navigator.
- /backend-endpoint
Create REST/GraphQL API endpoint with validation, error handling, and tests. Auto-invoke when user says "add endpoint", "create API", "new route", or "add route".
Open skill - /backend-test
Generate backend tests (unit, integration, mocks) for existing code. Auto-invoke when user says "write test for", "add test", "test this", or "create test".
Open skill - /database-migration
Create database migration with schema changes and rollback. Auto-invoke when user says "create migration", "add table", "modify schema", or "change database".
Open skill - /frontend-component
Create React/Vue component with TypeScript, tests, and styles. Auto-invoke when user says "create component", "add component", "new component", or "build component".
Open skill - /frontend-test
Generate frontend component tests (React Testing Library, Vue Test Utils, snapshot) for existing components. Auto-invoke when user says "test this component", "write component test", or "add component test".
Open skill - /nav-brief
Render a one-screen intent brief (Goal/Scope/Approach/Limits/Verify/Won't-do) before implementing ambiguous task-shaped prompts, triggered by the nav_brief.py UserPromptSubmit hook. Confirms scope with max 2 open questions before touching files; detects brief drift mid-task.
Open skill

