343 lines
10 KiB
Markdown
343 lines
10 KiB
Markdown
---
|
|
name: nav-start
|
|
description: Load Navigator documentation navigator when starting development session, resuming work, or beginning new feature. Use when user mentions starting work, beginning session, resuming after break, or checking project status.
|
|
allowed-tools: Read, Bash
|
|
version: 1.0.0
|
|
---
|
|
|
|
# Navigator Navigator Skill
|
|
|
|
Load the Navigator documentation navigator to start your development session with optimized context.
|
|
|
|
## When to Invoke
|
|
|
|
Invoke this skill when the user:
|
|
- Says "start my session", "begin work", "start working"
|
|
- Says "load the navigator", "show me the docs"
|
|
- Asks "what should I work on?"
|
|
- Mentions "resume work", "continue from where I left off"
|
|
- Asks about project structure or current tasks
|
|
|
|
**DO NOT invoke** if:
|
|
- User already ran `/nav:start` command this conversation
|
|
- Navigator already loaded (check conversation history)
|
|
- User is in middle of implementation (only invoke at session start)
|
|
|
|
## Execution Steps
|
|
|
|
### Step 1: Check Navigator Version
|
|
|
|
Check if user is running latest Navigator version:
|
|
|
|
```bash
|
|
# Run version checker (optional - doesn't block session start)
|
|
if [ -f "scripts/check-version.sh" ]; then
|
|
bash scripts/check-version.sh
|
|
|
|
# Note: Exit code 1 means update available, but don't block session
|
|
# Exit code 0 means up to date
|
|
# Exit code 2 means cannot check (network issue)
|
|
fi
|
|
```
|
|
|
|
**Version check behavior**:
|
|
- If update available: Show notification, continue session
|
|
- If up to date: Show ✅, continue session
|
|
- If cannot check: Skip silently, continue session
|
|
|
|
**Never block session start** due to version check.
|
|
|
|
### Step 2: Check Navigator Initialization
|
|
|
|
Check if `.agent/DEVELOPMENT-README.md` exists:
|
|
|
|
```bash
|
|
if [ ! -f ".agent/DEVELOPMENT-README.md" ]; then
|
|
echo "❌ Navigator not initialized in this project"
|
|
echo ""
|
|
echo "Run /nav:init to set up Navigator structure first."
|
|
exit 1
|
|
fi
|
|
```
|
|
|
|
If not found, inform user to run `/nav:init` first.
|
|
|
|
### Step 3: Load Documentation Navigator
|
|
|
|
Read the navigator file:
|
|
|
|
```
|
|
Read(
|
|
file_path: ".agent/DEVELOPMENT-README.md"
|
|
)
|
|
```
|
|
|
|
This is the lightweight index (~2k tokens) that tells you:
|
|
- What documentation exists
|
|
- When to load specific docs
|
|
- Current task focus
|
|
- Project structure overview
|
|
|
|
### Step 4: Check for Active Context Marker
|
|
|
|
Check if there's an active marker from previous `/nav:compact`:
|
|
|
|
```bash
|
|
if [ -f ".agent/.context-markers/.active" ]; then
|
|
marker_file=$(cat .agent/.context-markers/.active)
|
|
echo "🔄 Active context marker detected!"
|
|
echo ""
|
|
echo "Marker: $marker_file"
|
|
echo ""
|
|
echo "This marker was saved during your last /nav:compact."
|
|
echo "Load it to continue where you left off?"
|
|
echo ""
|
|
echo "[Y/n]:"
|
|
fi
|
|
```
|
|
|
|
If user confirms (Y or Enter):
|
|
- Read the marker file: `Read(file_path: ".agent/.context-markers/{marker_file}")`
|
|
- Delete `.active` file: `rm .agent/.context-markers/.active`
|
|
- Show confirmation: "✅ Context restored from marker!"
|
|
|
|
If user declines (n):
|
|
- Delete `.active` file
|
|
- Show: "Skipping marker load. You can load it later with /nav:markers"
|
|
|
|
### Step 5: Load Navigator Configuration
|
|
|
|
Read configuration:
|
|
|
|
```
|
|
Read(
|
|
file_path: ".agent/.nav-config.json"
|
|
)
|
|
```
|
|
|
|
Parse:
|
|
- `project_management`: Which PM tool (linear, github, jira, none)
|
|
- `task_prefix`: Task ID format (TASK, GH, LIN, etc.)
|
|
- `team_chat`: Team notifications (slack, discord, none)
|
|
|
|
### Step 6: Check PM Tool for Assigned Tasks
|
|
|
|
**If PM tool is Linear**:
|
|
```bash
|
|
# Check if Linear MCP available
|
|
# Try to list assigned issues
|
|
```
|
|
|
|
**If PM tool is GitHub**:
|
|
```bash
|
|
gh issue list --assignee @me --limit 10 2>/dev/null
|
|
```
|
|
|
|
**If PM tool is none**:
|
|
Skip task checking.
|
|
|
|
### Step 7: Display Session Statistics (OpenTelemetry)
|
|
|
|
Run the OpenTelemetry session statistics script:
|
|
|
|
```bash
|
|
# Get the skill's base directory (passed via SKILL_BASE_DIR)
|
|
SKILL_DIR="${SKILL_BASE_DIR:-$HOME/.claude/plugins/marketplaces/jitd-marketplace/skills/nav-start}"
|
|
python3 "$SKILL_DIR/scripts/otel_session_stats.py"
|
|
```
|
|
|
|
This script:
|
|
- **If OTel enabled**: Shows real-time metrics from Claude Code
|
|
- Real token usage (input/output/cache)
|
|
- Cache hit rate (CLAUDE.md caching performance)
|
|
- Session cost (actual USD spent)
|
|
- Active time (seconds of work)
|
|
- Context availability
|
|
- **If OTel disabled**: Shows setup instructions
|
|
- **If no metrics yet**: Shows "waiting for export" message
|
|
|
|
**Benefits of OTel integration**:
|
|
- Real data (not file-size estimates)
|
|
- Cache performance validation
|
|
- Cost tracking for ROI measurement
|
|
- Official API (won't break on updates)
|
|
|
|
### Step 8: Display Session Summary
|
|
|
|
Show this formatted summary:
|
|
|
|
```
|
|
╔══════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ 🚀 Navigator Session Started ║
|
|
║ ║
|
|
╚══════════════════════════════════════════════════════╝
|
|
|
|
📖 Documentation Navigator: Loaded
|
|
🎯 Project Management: [PM tool or "Manual"]
|
|
✅ Token Optimization: Active
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
📊 DOCUMENTATION LOADED (MEASURED)
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
Navigator (.agent/DEVELOPMENT-README.md):
|
|
Size: [nav_bytes] bytes = [nav_tokens] tokens
|
|
|
|
CLAUDE.md (auto-loaded):
|
|
Size: [claude_bytes] bytes = [claude_tokens] tokens
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
Total documentation: [total_tokens] tokens
|
|
Available for work: [available] tokens ([percent]%)
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
💡 On-demand loading strategy:
|
|
Load task doc when needed: +3-5k tokens
|
|
Load system doc if needed: +4-6k tokens
|
|
Load SOP if helpful: +2-3k tokens
|
|
|
|
Total with all docs: ~[total + 15]k tokens
|
|
|
|
vs Traditional (all upfront): ~150k tokens
|
|
Savings: ~[150 - total - 15]k tokens
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
🔹 Navigator WORKFLOW REMINDER
|
|
|
|
1. Navigator-first loading
|
|
- ✅ Loaded: .agent/DEVELOPMENT-README.md
|
|
- Next: Load ONLY relevant task/system docs
|
|
|
|
2. Use agents for research
|
|
- Multi-file searches: Use Task agent (saves 60-80% tokens)
|
|
- Code exploration: Use Explore agent
|
|
- NOT manual Read of many files
|
|
|
|
3. Task documentation
|
|
- After features: Use nav-task-manager skill
|
|
- After bugs: Use nav-sop-creator skill
|
|
|
|
4. Context management
|
|
- Run nav-compact skill after isolated sub-tasks
|
|
- Context markers save your progress
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
[MULTI-CLAUDE WORKFLOWS CHECK - v4.3.0+]
|
|
|
|
Check if multi-Claude workflows installed:
|
|
```bash
|
|
if ! command -v navigator-multi-claude.sh &> /dev/null; then
|
|
echo ""
|
|
echo "⚡ Multi-Claude Workflows Available (v4.3.0+)"
|
|
echo ""
|
|
echo " Enable parallel AI execution for complex tasks."
|
|
echo " Status: Not installed"
|
|
echo ""
|
|
echo " Install: 'Install multi-Claude workflows'"
|
|
echo " Learn more: See RELEASE-NOTES-v4.3.0.md"
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
fi
|
|
```
|
|
|
|
Only show this prompt:
|
|
- If plugin version >= 4.3.0
|
|
- If scripts not installed
|
|
- Once per session (set flag in memory)
|
|
|
|
Do NOT show if:
|
|
- Scripts already installed
|
|
- Plugin version < 4.3.0
|
|
- User explicitly dismissed before
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
[If tasks found from PM tool, list them here]
|
|
|
|
[If no tasks found:]
|
|
No active tasks found. What would you like to work on?
|
|
```
|
|
|
|
## Predefined Functions
|
|
|
|
### scripts/otel_session_stats.py
|
|
|
|
**Purpose**: Display real-time session statistics via OpenTelemetry
|
|
|
|
**When to call**: After loading navigator, before presenting session summary
|
|
|
|
**Requirements**:
|
|
- CLAUDE_CODE_ENABLE_TELEMETRY=1 (optional - shows setup if disabled)
|
|
- Metrics available from current session (shows waiting message if not)
|
|
|
|
**Execution**:
|
|
```bash
|
|
SKILL_DIR="${SKILL_BASE_DIR:-$HOME/.claude/plugins/marketplaces/jitd-marketplace/skills/nav-start}"
|
|
python3 "$SKILL_DIR/scripts/otel_session_stats.py"
|
|
```
|
|
|
|
**Output**: Formatted statistics with:
|
|
- Token usage breakdown (input/output/cache)
|
|
- Cache hit rate percentage
|
|
- Session cost in USD
|
|
- Active time
|
|
- Context availability
|
|
|
|
**Error Handling**:
|
|
- If OTel not enabled: Shows setup instructions
|
|
- If no metrics yet: Shows "waiting for export" message
|
|
- Never crashes - always displays helpful guidance
|
|
|
|
## Reference Files
|
|
|
|
This skill uses:
|
|
- **otel_session_stats.py**: Real-time session stats via OpenTelemetry
|
|
- **.agent/DEVELOPMENT-README.md**: Navigator content
|
|
- **.agent/.nav-config.json**: Configuration
|
|
- **.agent/.context-markers/.active**: Active marker check
|
|
|
|
## Error Handling
|
|
|
|
**Navigator not found**:
|
|
```
|
|
❌ Navigator not initialized
|
|
|
|
Run /nav:init to create .agent/ structure first.
|
|
```
|
|
|
|
**PM tool configured but not working**:
|
|
```
|
|
⚠️ [PM Tool] configured but not accessible
|
|
|
|
Check authentication or run setup guide.
|
|
```
|
|
|
|
**Config file malformed**:
|
|
```
|
|
⚠️ .agent/.nav-config.json is invalid JSON
|
|
|
|
Fix syntax or run /nav:init to regenerate.
|
|
```
|
|
|
|
## Success Criteria
|
|
|
|
Session start is successful when:
|
|
- [ ] Navigator loaded successfully
|
|
- [ ] Token usage calculated and displayed
|
|
- [ ] PM tool status checked (if configured)
|
|
- [ ] User knows what to work on next
|
|
- [ ] Navigator workflow context set
|
|
|
|
## Notes
|
|
|
|
This skill provides the same functionality as `/nav:start` command but with:
|
|
- Natural language invocation (no need to remember `/` syntax)
|
|
- Auto-detection based on user intent
|
|
- Composable with other Navigator skills
|
|
|
|
If user prefers manual invocation, they can still use `/nav:start` command (both work in hybrid mode).
|