Agent skill

Nav Profile

by qf-studio in qf-studio/navigator

Manage user preferences and corrections for bilateral modeling.

MITAuto-check: notes

Install Nav Profile

skills CLI
$ npx skills add qf-studio/navigator --skill nav-profile -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install qf-studio/navigator nav-profile --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/qf-studio/navigator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/nav-profile .claude/skills/nav-profile && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
nav-profile
GitHub stars
355
Token cost
~3.1k tokens
SKILL.md length
645 words
Files
5
Skills in repo
32
Repo updated
First seen
Licence
MIT

At a glance

Manage user preferences and corrections for bilateral modeling.

  • Works in 4 steps: Determine Action → Load or Initialize Profile → Update Goals (Optional) → …
  • User says save my preferences
  • SKILL.md covers Why This Exists (Theory of Mind), When to Invoke, Profile Location and Execution Steps, plus 6 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Nav Profile is an agent skill from qf-studio/navigator. 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.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `functions/preference_extractor.py`, `functions/profile_manager.py` and `functions/test_profile_manager.py`).

The repository describes itself as: Finish What You Start — Context engineering for Claude Code. Sessions last 20+ exchanges instead of crashing at 7. The licence is MIT.

When your agent uses it

  • User says save my preferences
  • Remember I like...
  • Auto-triggers after corrections

Example prompts

  • “save my preferences”
  • “remember I like...”
  • “/nav-profile”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Determine Action
  2. Load or Initialize Profile
  3. Update Goals (Optional)
  4. Confirm Action

What it can do on your machine

Read from SKILL.md and the folder at commit 3bb9eac. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Nav Profile loads about 3.1k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 645 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~53
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from qf-studio/navigator at commit 3bb9eac, republished under its MIT licence (© qf-studio). 645 words, ~3,123 tokens.

Download SKILL.mdSave it as .claude/skills/nav-profile/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
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:

bash
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):

json
{
  "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 SaysCategoryFieldValue
"concise", "brief", "short"communicationverbosityconcise
"detailed", "thorough"communicationverbositydetailed
"always confirm"communicationconfirmation_thresholdalways
"skip confirmations"communicationconfirmation_thresholdnever
"functional style"technicalcode_stylefunctional
"OOP style"technicalcode_styleoop
"prefer React"technicalpreferred_frameworks[append "react"]
"prefer Express"technicalpreferred_frameworks[append "express"]

Update and save:

json
// 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:

python
correction = {
  "date": "{YYYY-MM-DD}",
  "context": "{what we were doing}",
  "original": "{what I said/generated}",
  "corrected_to": "{what user wanted}",
  "pattern": "{generalized rule}",
  "confidence": "high|medium|low"
}

Add to corrections list:

json
profile.corrections.push(correction);

// Keep last 20 corrections (rolling window)
if (profile.corrections.length > 20) {
  profile.corrections.shift();
}

Silently acknowledge (don't interrupt flow):

[Internal log: Correction saved to profile]

Sync to Knowledge Graph (if enabled in config):

bash
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$(cat "${NAVIGATOR_CONFIG_HOME:-${XDG_CONFIG_HOME:-$HOME/.config}/navigator}/plugin-root" 2>/dev/null)}"
[ -d "$PLUGIN_DIR/skills" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
# Check if knowledge graph integration is enabled
if [ -f ".agent/knowledge/graph.json" ]; then
  # Convert correction to memory
  python3 "$PLUGIN_DIR/skills/nav-graph/functions/correction_to_memory.py" \
    --action convert-one \
    --correction-json '{"pattern": "{pattern}", "context": "{context}", "confidence": "{confidence}"}' \
    --graph-path .agent/knowledge/graph.json

  # [Internal log: Correction synced to knowledge graph as memory]
fi

This creates a pitfall/pattern/learning memory in the knowledge graph, making the correction available via "What do we know about X?" queries.

Periodically surface learnings (every 5 corrections):

📚 I've learned from your corrections:
- REST endpoints should use plural nouns
- You prefer functional components over class components
- TypeScript strict mode is required

These will be applied in future sessions.
Show full SKILL.md (258 more words)Show less
Step 3D: Reset Profile (If RESET Action)

Confirm before delete:

⚠️  This will delete your Navigator profile:
- {X} saved preferences
- {Y} learned corrections
- {Z} active goals

This cannot be undone.

Delete profile? [y/N]

If confirmed:

bash
rm .agent/.user-profile.json

Confirm deletion:

✅ Profile deleted

Future sessions will start fresh.
To rebuild, use "Save my preferences" as you work.
Step 4: Update Goals (Optional)

If user mentions a goal:

User: "I'm working on the OAuth feature"
→ Add/update goal in profile

Goal structure:

json
{
  "name": "oauth-feature",
  "started": "{YYYY-MM-DD}",
  "context": "OAuth implementation for user login",
  "status": "in-progress",
  "last_mentioned": "{YYYY-MM-DD}"
}

Goal cleanup (auto-archive goals not mentioned in 7 days):

json
// Move to completed if not mentioned recently
goals.forEach(goal => {
  if (daysSince(goal.last_mentioned) > 7) {
    goal.status = "completed-or-abandoned";
  }
});
Step 5: Confirm Action

For explicit actions (SHOW, UPDATE, RESET): Show confirmation message.

For auto-learn (LEARN): Silent acknowledgment, periodic summaries.


Profile Schema Reference

json
{
  "version": "1.0",
  "created": "2025-12-09",
  "last_updated": "2025-12-09",

  "preferences": {
    "communication": {
      "verbosity": "concise|balanced|detailed",
      "confirmation_threshold": "always|high-stakes|never",
      "explanation_style": "examples|theory|both"
    },
    "technical": {
      "preferred_frameworks": ["react", "express", "etc"],
      "code_style": "functional|oop|mixed",
      "testing_preference": "tdd|bdd|manual"
    },
    "workflow": {
      "autonomous_commits": true|false,
      "auto_compact_threshold": 70-90,
      "marker_before_risky": true|false
    }
  },

  "corrections": [
    {
      "date": "2025-12-09",
      "context": "creating API endpoint",
      "original": "Created /user endpoint",
      "corrected_to": "Should be /users (plural)",
      "pattern": "REST endpoints use plural nouns",
      "confidence": "high"
    }
  ],

  "goals": [
    {
      "name": "oauth-feature",
      "started": "2025-12-07",
      "context": "OAuth implementation for user login",
      "status": "in-progress",
      "last_mentioned": "2025-12-09"
    }
  ]
}

Integration with Other Skills

nav-start (Session Start)

Loads profile automatically:

markdown
### Step 3.5: Load User Profile

If `.agent/.user-profile.json` exists:
- Load preferences into context
- Apply confirmation threshold
- Note active goals
- Show: "Loaded preferences from profile"
nav-marker (Context Markers)

Preserves profile reference:

markdown
## Profile State
- Preferences loaded: ✅
- Corrections this session: {count}
- Goals active: {goal_names}
All ToM Checkpoints

Respect profile settings:

markdown
// Before showing verification checkpoint
if (profile.preferences.communication.confirmation_threshold === "never") {
  // Skip verification
} else if (profile.preferences.communication.confirmation_threshold === "high-stakes") {
  // Only verify for complex operations
}

Auto-Learn Triggers

Correction patterns to detect:

User PatternExtracted Learning
"No, I meant..."Direct correction
"Actually, prefer..."Preference correction
"Not X, use Y"Substitution correction
"Always do X"Rule establishment
"Never do Y"Anti-pattern
"I like when you..."Positive preference
"Stop doing X"Negative preference

Confidence scoring:

  • High: Explicit correction with reasoning
  • Medium: Correction without explanation
  • Low: Implicit preference from behavior

Privacy & Data

Profile is:

  • Git-ignored (.agent/.user-profile.json)
  • Local only (not synced)
  • User-controlled (can delete anytime)
  • Session-persistent (survives context clears)

Profile does NOT store:

  • Code snippets
  • File contents
  • Conversation history
  • Sensitive data

Success Criteria

Profile management succeeds when:

  • Profile loads at session start
  • Preferences affect behavior (verbosity, confirmations)
  • Corrections persist across sessions
  • Auto-learn captures patterns silently
  • Goals track user's current focus
  • Reset cleanly removes all data

Best Practices

Good profile usage:

  • "Remember I prefer concise explanations" (clear preference)
  • "Save that I use functional components" (specific)
  • "Show my profile" (verify what's stored)

Avoid:

  • Storing sensitive information
  • Over-correcting (let auto-learn work)
  • Resetting frequently (defeats purpose)

This skill enables bilateral Theory of Mind - Claude understanding you as well as you understanding Claude 🧠

© qf-studio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in skills/nav-profile of qf-studio/navigator.

  • SKILL.md
  • functions/preference_extractor.py
  • functions/profile_manager.py
  • functions/test_profile_manager.py
  • templates/profile-template.json

Open the folder on GitHubat commit 3bb9eac

Compare with similar skills

Nav Profile next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Nav Profile compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nav Profile this skillqf-studio/navigator355—~3.1kAutomated safety check: NotesMIT
Learning to Learn (OpenMAIC)THU-MAIC/OpenMAIC40k—~502Automated safety check: PassMIT
Adapting Transfer Learning Modelsjeremylongshore/tons-of-skills-marketplace2.8k—~1.1kAutomated safety check: PassMIT
Optimizing Deep Learning Modelsjeremylongshore/tons-of-skills-marketplace2.8k—~989Automated safety check: PassMIT
Evaluating Machine Learning Modelsforyourhealth111-pixel/Vibe-Skills3.6k—~390Automated safety check: PassMIT
Explaining Machine Learning Modelsforyourhealth111-pixel/Vibe-Skills3.6k—~383Automated safety check: PassMIT

Similar skills

  • A Chinese-language skill that embeds learning strategies like retrieval practice and self-explanation as a parallel goal inside an OpenMAIC subject lesson, without making study skills the topic.

    40k GitHub stars~502 tokensUpdated today
    EducationAuto-check passed
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Optimizing Deep Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Optimize deep learning models using Adam, SGD, and learning rate scheduling to improve accuracy and reduce training time.

    2.8k GitHub stars~989 tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Evaluating Machine Learning Models

    foryourhealth111-pixel/Vibe-Skills

    Evaluate trained machine learning models with the right metrics and comparison logic.

    3.6k GitHub stars~390 tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed
  • Explaining Machine Learning Models

    foryourhealth111-pixel/Vibe-Skills

    Explain trained machine learning models through feature attribution, local explanations, and behavior summaries.

    3.6k GitHub stars~383 tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed
  • Training Machine Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build train machine learning models with automated workflows.

    2.8k GitHub stars~1k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed

More from qf-studio/navigator

All 32 skills in this repo
  • Nav Start

    qf-studio/navigator

    Load Navigator documentation navigator when starting development session, resuming work, or beginning new feature.

    355 GitHub stars~4.7k tokensUpdated 2 days ago
    Auto-check: notes
  • Backend Endpoint

    qf-studio/navigator

    Create REST/GraphQL API endpoint with validation, error handling, and tests.

    355 GitHub stars~4.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Backend Test

    qf-studio/navigator

    Generate backend tests (unit, integration, mocks) for existing code.

    355 GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Database Migration

    qf-studio/navigator

    Create database migration with schema changes and rollback. An agent skill from qf-studio/navigator.

    355 GitHub stars~3.7k tokensUpdated 2 days ago
    Auto-check: notes
  • Frontend Component

    qf-studio/navigator

    Create React/Vue component with TypeScript, tests, and styles.

    355 GitHub stars~4.5k tokensUpdated 2 days ago
    Auto-check: notes
  • Frontend Test

    qf-studio/navigator

    Generate frontend component tests (React Testing Library, Vue Test Utils, snapshot) for existing components.

    355 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check: notes

Questions about Nav Profile

What does Nav Profile do?

Manage user preferences and corrections for bilateral modeling. Nav Profile is an agent skill from qf-studio/navigator. Manage user preferences and corrections for bilateral modeling.

When should I use Nav Profile?

Nav Profile fits situations like: user says save my preferences; remember I like..; auto-triggers after corrections.

How do I install Nav Profile in Claude Code?

Run `npx skills add qf-studio/navigator --skill nav-profile -a claude-code`. Or copy the skill folder (skills/nav-profile in qf-studio/navigator) into .claude/skills/nav-profile in your project. Claude Code loads it when a task matches its description.

How do I install Nav Profile in Codex?

Run `npx skills add qf-studio/navigator --skill nav-profile -a codex`. Or copy the skill folder (skills/nav-profile in qf-studio/navigator) into .agents/skills/nav-profile in your project. Codex loads it when a task matches its description.

Can I use Nav Profile in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add qf-studio/navigator --skill nav-profile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nav-profile, .gemini/skills/nav-profile, .github/skills/nav-profile and .opencode/skills/nav-profile in your project.

What does Nav Profile need to run?

Going by SKILL.md and its folder, Nav Profile needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash.

Does Nav Profile access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Nav Profile safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Nav Profile use?

Nav Profile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Nav Profile use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Nav Profile?

Skills that share tags, products or a category with Nav Profile: Learning to Learn (OpenMAIC) (THU-MAIC/OpenMAIC, 40k stars), Adapting Transfer Learning Models (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Optimizing Deep Learning Models (jeremylongshore/tons-of-skills-marketplace, 2.8k stars) and Evaluating Machine Learning Models (foryourhealth111-pixel/Vibe-Skills, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Nav Profile?

qf-studio (a GitHub organization) maintains it in qf-studio/navigator, which has 355 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 8, 2026.

Source: qf-studio/navigator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.