Interactive onboarding for Navigator - learn by doing...
Interactive, hands-on learning experience for Navigator. Users complete actual tasks to learn workflows, not just read documentation.
Invoke this skill when the user:
DO NOT invoke if:
.completed exists in their personal onboarding
dir ā see Step 1; state is per person, never in the repo, since v7.8.0 / GH-31)For users who want to be productive fast:
For users who want comprehensive understanding:
Onboarding state (progress, workflow guide, completion marker) is per person and per
repo, stored under ~/.config/navigator/onboarding/<repo-id>/ (or
$NAVIGATOR_ONBOARDING_HOME/<repo-id>/), never inside the repository. Two contributors on
the same repo each get their own run; nothing lands in tracked paths (GH-31).
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
NAV_ONBOARD_DIR=$(python3 "$PLUGIN_DIR/skills/nav-onboard/functions/onboarding_paths.py" .)
if [ -f "$NAV_ONBOARD_DIR/.completed" ]; then
echo "COMPLETED"
else
echo "NOT_COMPLETED"
fi
If completed: Ask if user wants to re-do onboarding or just view their workflow guide
($NAV_ONBOARD_DIR/MY-WORKFLOW.md).
If the project has its own setup skill (e.g. .claude/skills/onboard/ or a
SKILL.md whose name contains "onboard"/"setup"), mention it and suggest running it
first; Navigator onboarding teaches the workflow, not the project.
Legacy state: a pre-v7.8.0 .agent/onboarding/ in the repo is ignored (nav-init
gitignores it now). Do not read .completed from there.
Run project analyzer to detect tech stack:
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
python3 "$PLUGIN_DIR/skills/nav-onboard/functions/project_analyzer.py"
Output structure:
{
"project_name": "my-app",
"project_type": "fullstack",
"frontend_framework": "Next.js",
"backend_framework": "Express",
"database": "PostgreSQL",
"testing_framework": "Jest",
"has_navigator": true
}
Run skill recommender based on project analysis:
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
python3 "$PLUGIN_DIR/skills/nav-onboard/functions/skill_recommender.py"
Output structure:
{
"essential_skills": ["nav-start", "nav-marker", "nav-task", "nav-sop", "nav-compact"],
"recommended_skills": ["frontend-component", "backend-endpoint"],
"optional_skills": ["visual-regression", "product-design"],
"workflow_order": ["nav-start", "nav-task", "frontend-component", "nav-sop", "nav-marker", "nav-compact"]
}
Show detection results and ask user to choose flow:
Navigator Onboarding
I've analyzed your project:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Project: [project_name]
Type: [project_type]
Stack: [tech_stack]
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Based on your project, I recommend these skills:
Essential (all projects):
1. nav-start - Start sessions efficiently
2. nav-marker - Save progress checkpoints
3. nav-task - Document what you build
4. nav-sop - Capture solutions for reuse
5. nav-compact - Clear context without losing work
For your [project_type] project:
6. [recommended_skill_1] - [description]
7. [recommended_skill_2] - [description]
Choose your learning path:
[Q] Quick Start (~15 min)
Learn 4 essential skills with hands-on practice
Get productive immediately
[F] Full Education (~45 min)
Complete Navigator mastery
Philosophy + all relevant skills + practice
Your choice [Q/F]:
Create the personal onboarding directory and progress file ($NAV_ONBOARD_DIR from
Step 1; the functions below create it themselves):
mkdir -p "$NAV_ONBOARD_DIR"
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
# Run progress_tracker.py init
python3 "$PLUGIN_DIR/skills/nav-onboard/functions/progress_tracker.py" init [flow_type] [project_type]
Creates $NAV_ONBOARD_DIR/PROGRESS.md:
# Navigator Onboarding Progress
**Started**: [date]
**Flow**: Quick Start | Full Education
**Project**: [name] ([type])
---
## Essential Skills
| # | Skill | Status | Completed | Notes |
|---|-------|--------|-----------|-------|
| 1 | nav-start | pending | - | - |
| 2 | nav-marker | pending | - | - |
| 3 | nav-task | pending | - | - |
| 4 | nav-sop | pending | - | - |
| 5 | nav-compact | pending | - | - |
## Development Skills
| # | Skill | Status | Completed | Notes |
|---|-------|--------|-----------|-------|
| 6 | [skill] | pending | - | - |
---
**Progress**: 0/[total] (0%)
**Next Task**: nav-start
*Last Updated: [timestamp]*
For each skill in the curriculum, follow this pattern:
Read the learning task file and present to user:
cat skills/nav-onboard/learning-tasks/[task-file].md
Present in this format:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
TASK [N]/[TOTAL]: [Skill Name]
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
[Task description and context]
DO THIS NOW:
āāāāāāāāāāā
Type: "[exact command to type]"
WHAT SHOULD HAPPEN:
āāāāāāāāāāāāāāāāāāā
[Expected output description]
Ready? Type the command above, then say "done" when complete.
User types the command (e.g., "Start my Navigator session").
The relevant skill executes automatically.
User says "done" or similar when ready to continue.
Run task validator:
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
python3 "$PLUGIN_DIR/skills/nav-onboard/functions/task_validator.py" [skill_name]
Validation checks per skill:
nav-start: User confirmation (session displayed)nav-marker: File exists in .agent/.context-markers/nav-task: File exists in .agent/tasks/nav-sop: File exists in .agent/sops/nav-compact: .active file exists in .context-markers/PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
python3 "$PLUGIN_DIR/skills/nav-onboard/functions/progress_tracker.py" update [skill_name] completed "[notes]"
ā
Task Complete: [skill_name]
Progress: [N]/[TOTAL] ([percentage]%)
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
[progress bar visualization]
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
PRO TIP:
[Skill-specific best practice]
Next up: [next_skill_name]
Continue? [Y/n]
After all tasks complete, generate workflow guide:
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/cache/navigator-marketplace/navigator}"
[ -d "$PLUGIN_DIR" ] || PLUGIN_DIR="$HOME/.claude/plugins/marketplaces/navigator-marketplace"
python3 "$PLUGIN_DIR/skills/nav-onboard/functions/workflow_generator.py"
Creates $NAV_ONBOARD_DIR/MY-WORKFLOW.md with:
Mark onboarding complete and show summary:
date -u +%Y-%m-%dT%H:%M:%SZ > "$NAV_ONBOARD_DIR/.completed"
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
š NAVIGATOR ONBOARDING COMPLETE!
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
You've learned:
ā
nav-start - Start sessions efficiently
ā
nav-marker - Save progress checkpoints
ā
nav-task - Document implementations
ā
nav-sop - Capture solutions
ā
nav-compact - Manage context
ā
[dev skills] - Build [project_type] features
Your personalized workflow:
š $NAV_ONBOARD_DIR/MY-WORKFLOW.md (personal, outside the repo)
Quick Reference:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
| Action | Say This |
|---------------------|----------------------------------|
| Start session | "Start my Navigator session" |
| Save progress | "Create checkpoint [name]" |
| Document feature | "Create task doc for [feature]" |
| Capture solution | "Create SOP for [issue]" |
| Clear context | "Clear context and preserve" |
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
What's Next?
1. Start your first real session: "Start my Navigator session"
2. Keep MY-WORKFLOW.md open as reference
3. Create markers before breaks
4. Document what you build
Happy coding! š
| Order | Skill | Task File | What User Does | Validation |
|---|---|---|---|---|
| 1 | nav-start | 01-nav-start.md | "Start my Navigator session" | Session summary displayed |
| 2 | nav-marker | 02-nav-marker.md | "Create checkpoint learning-test" | File in .context-markers/ |
| 3 | nav-task | 03-nav-task.md | "Create task doc for learning-feature" | File in .agent/tasks/ |
| 4 | nav-sop | 04-nav-sop.md | "Create SOP for learning-debugging" | File in .agent/sops/ |
| 5 | nav-compact | 05-nav-compact.md | "Clear context and preserve markers" | .active file created |
| Project Type | Skill | Task File |
|---|---|---|
| Frontend | frontend-component | 06-frontend-component.md |
| Frontend | frontend-test | 07-frontend-test.md |
| Backend | backend-endpoint | 06-backend-endpoint.md |
| Backend | backend-test | 07-backend-test.md |
| Fullstack | Both frontend + backend skills | Sequential |
Tasks 1-4 only:
Total: ~15 minutes
.agent/philosophy/CONTEXT-EFFICIENCY.mdTotal: ~45 minutes
Extends nav-init/functions/project_detector.py with:
Maps project analysis to skill recommendations:
Resolves the per-person onboarding directory for a repo (onboarding_dir,
repo_id, completed_marker); CLI prints it. Every other function routes through it.
Manages PROGRESS.md in the personal onboarding dir:
Validates task completion:
Generates MY-WORKFLOW.md in the personal onboarding dir:
ā ļø Navigator not initialized in this project.
Run nav-init first, then come back to onboarding.
Would you like to initialize Navigator now? [Y/n]
ā ļø Couldn't verify task completion.
Expected: [what should exist]
Found: [what was found]
Options:
1. Retry the task
2. Skip this task
3. Mark as complete anyway
Your choice [1-3]:
Skipping [skill_name].
Note: You can always learn this skill later by saying:
"Teach me [skill_name]"
Continuing to next task...
Onboarding is successful when:
$NAV_ONBOARD_DIR/PROGRESS.md shows progress$NAV_ONBOARD_DIR/MY-WORKFLOW.md generated$NAV_ONBOARD_DIR/.completed marker createdgit status shows no onboarding files (state is outside the repo)~/.config/navigator/onboarding/<repo-id>/
(<repo-id> = dirname + 8-char hash of the checkout path; NAVIGATOR_ONBOARDING_HOME
overrides the base)