668 lines
14 KiB
Markdown
668 lines
14 KiB
Markdown
---
|
|
name: nav-upgrade
|
|
description: Automates Navigator plugin updates. Detects current version, updates plugin, verifies installation, updates project CLAUDE.md, and validates new features. Auto-invoke when user mentions upgrading Navigator or getting new features.
|
|
allowed-tools: Bash, Read, Write, Edit, TodoWrite
|
|
version: 1.0.0
|
|
---
|
|
|
|
# Navigator Upgrade Skill
|
|
|
|
Automate Navigator plugin updates with version detection, conflict resolution, and post-update validation.
|
|
|
|
## When to Invoke
|
|
|
|
Auto-invoke when user says:
|
|
- "Update Navigator"
|
|
- "Upgrade Navigator plugin"
|
|
- "Get latest Navigator version"
|
|
- "Update to Navigator v3.3.0"
|
|
- "Install new Navigator features"
|
|
- "Check for Navigator updates"
|
|
|
|
## What This Does
|
|
|
|
**5-Step Workflow**:
|
|
1. **Version Detection**: Check current Navigator version vs latest
|
|
2. **Plugin Update**: Execute `/plugin update navigator`
|
|
3. **Verification**: Confirm update succeeded
|
|
4. **CLAUDE.md Update**: Update project configuration (via nav-update-claude)
|
|
5. **Feature Discovery**: Show new features available
|
|
|
|
**Time Savings**: Manual update (10-15 min) → Automated (2 min)
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
- Navigator plugin installed
|
|
- Project initialized with Navigator
|
|
- Internet connection for plugin update
|
|
|
|
---
|
|
|
|
## Workflow Protocol
|
|
|
|
### Step 1: Version Detection
|
|
|
|
**Execute**: `version_detector.py`
|
|
|
|
**Check both stable and pre-release versions**:
|
|
```bash
|
|
# Current installed version
|
|
grep '"version"' .claude-plugin/plugin.json
|
|
|
|
# Get all releases (including pre-releases)
|
|
curl -s https://api.github.com/repos/alekspetrov/navigator/releases
|
|
|
|
# Parse:
|
|
# - Latest stable (prerelease: false)
|
|
# - Latest pre-release (prerelease: true)
|
|
# - Compare with current version
|
|
```
|
|
|
|
**Output scenarios**:
|
|
|
|
**Scenario 1: Stable update available**
|
|
```json
|
|
{
|
|
"current_version": "4.0.0",
|
|
"latest_stable": "4.2.0",
|
|
"latest_prerelease": null,
|
|
"recommendation": "update_to_stable"
|
|
}
|
|
```
|
|
|
|
**Scenario 2: Pre-release available (user on stable)**
|
|
```json
|
|
{
|
|
"current_version": "4.0.0",
|
|
"latest_stable": "4.0.0",
|
|
"latest_prerelease": "4.3.0",
|
|
"recommendation": "offer_prerelease_option"
|
|
}
|
|
```
|
|
|
|
**Present choice**:
|
|
```
|
|
✅ You're on the latest stable version (v4.0.0)
|
|
|
|
⚡ Experimental version available: v4.3.0
|
|
|
|
New in v4.3.0 (Experimental):
|
|
• Multi-Claude agentic workflows
|
|
• 30% success rate (use for simple features)
|
|
• PM integration with ticket closing
|
|
|
|
Options:
|
|
[1] Stay on stable v4.0.0 (recommended)
|
|
[2] Try experimental v4.3.0 (early adopter)
|
|
|
|
Your choice [1-2]:
|
|
```
|
|
|
|
**Scenario 3: Already on latest (stable or pre-release)**
|
|
```
|
|
✅ You're on v4.3.0 (latest experimental)
|
|
|
|
Latest stable: v4.0.0
|
|
Status: You're ahead of stable (testing experimental features)
|
|
|
|
New features in your version:
|
|
- Multi-Claude workflows
|
|
- Task agents in sub-Claude phases
|
|
```
|
|
|
|
Skip to Step 5 (Feature Discovery).
|
|
|
|
**Scenario 4: On pre-release, newer stable available**
|
|
```
|
|
⚠️ You're on v4.3.0 (experimental)
|
|
Latest stable: v4.5.0
|
|
|
|
Recommendation: Update to stable v4.5.0
|
|
Experimental features from v4.3.0 are now stable.
|
|
```
|
|
|
|
---
|
|
|
|
### Step 2: Plugin Update
|
|
|
|
**Scenario-based update strategy**:
|
|
|
|
#### Scenario 2: Pre-release Available (User on Stable)
|
|
|
|
When pre-release detected, present choice using AskUserQuestion tool:
|
|
|
|
```markdown
|
|
✅ You're on latest stable version (v4.0.0)
|
|
|
|
⚡ Experimental version available: v4.3.0
|
|
|
|
New in v4.3.0 (Experimental):
|
|
• Multi-Claude agentic workflows
|
|
• 30% success rate (use for simple features)
|
|
• PM integration with ticket closing
|
|
|
|
**Question**: Which version would you like?
|
|
|
|
**Options**:
|
|
[1] **Stay on stable v4.0.0** (recommended)
|
|
- Production-ready
|
|
- No experimental features
|
|
- Most reliable
|
|
|
|
[2] **Try experimental v4.3.0** (early adopter)
|
|
- Multi-Claude workflows
|
|
- Latest features
|
|
- 30% completion rate
|
|
- Help test new functionality
|
|
|
|
Your choice?
|
|
```
|
|
|
|
**If user chooses [1] (Stay stable)**:
|
|
```
|
|
✓ Staying on v4.0.0 (latest stable)
|
|
|
|
No action needed. Run nav-upgrade again when you're ready to try experimental features.
|
|
```
|
|
|
|
**If user chooses [2] (Try experimental)**:
|
|
```bash
|
|
# Uninstall current version
|
|
/plugin uninstall navigator
|
|
|
|
# Add marketplace (if not already added)
|
|
/plugin marketplace add alekspetrov/navigator
|
|
|
|
# Install specific pre-release version
|
|
# Note: /plugin update only fetches stable, must install specific version
|
|
git clone https://github.com/alekspetrov/navigator.git /tmp/navigator-v4.3.0
|
|
cd /tmp/navigator-v4.3.0
|
|
git checkout v4.3.0
|
|
|
|
# Install from local checkout
|
|
/plugin install /tmp/navigator-v4.3.0
|
|
```
|
|
|
|
**Then verify installation**:
|
|
```bash
|
|
/plugin list | grep navigator
|
|
# Should show: navigator (v4.3.0)
|
|
```
|
|
|
|
#### Scenario 1: Stable Update Available
|
|
|
|
**Execute**: `/plugin update navigator`
|
|
|
|
**Monitor output**:
|
|
```
|
|
Updating navigator...
|
|
✅ Navigator updated to v4.2.0
|
|
```
|
|
|
|
**If update fails**:
|
|
```
|
|
❌ Update failed: [error message]
|
|
|
|
Troubleshooting:
|
|
1. Restart Claude Code
|
|
2. Try: /plugin uninstall navigator && /plugin install navigator
|
|
3. Check internet connection
|
|
4. Report issue: https://github.com/alekspetrov/navigator/issues
|
|
```
|
|
|
|
**Automatic retry** (once):
|
|
If update fails, try uninstall/reinstall automatically:
|
|
```bash
|
|
/plugin uninstall navigator
|
|
/plugin marketplace add alekspetrov/navigator
|
|
/plugin install navigator
|
|
```
|
|
|
|
---
|
|
|
|
### Step 3: Verification
|
|
|
|
**Execute**: `plugin_verifier.py`
|
|
|
|
**Verify**:
|
|
1. Plugin version matches latest
|
|
2. New skills registered in plugin.json
|
|
3. Skills are invokable
|
|
|
|
**Test new skills** (v3.3.0 example):
|
|
```bash
|
|
# Test that visual-regression skill exists
|
|
ls ~/.config/claude/plugins/navigator/skills/visual-regression/SKILL.md 2>/dev/null || echo "Skill not found"
|
|
```
|
|
|
|
**Output**:
|
|
```
|
|
✅ Update Verification
|
|
|
|
Version: v3.3.0 ✅
|
|
New Skills Registered: visual-regression ✅
|
|
Skills Invokable: ✅
|
|
|
|
Update successful!
|
|
```
|
|
|
|
**If verification fails**:
|
|
```
|
|
⚠️ Update completed but verification failed
|
|
|
|
Issue: visual-regression skill not found
|
|
Fix: Restart Claude Code to reload skills
|
|
|
|
After restarting, verify:
|
|
"Set up visual regression for Button"
|
|
```
|
|
|
|
Prompt user to restart Claude Code.
|
|
|
|
---
|
|
|
|
### Step 4: Update Project CLAUDE.md (Automatic)
|
|
|
|
**After plugin update, automatically invoke**: `nav-update-claude` skill
|
|
|
|
```
|
|
🔄 Syncing project CLAUDE.md with updated plugin...
|
|
|
|
✓ Using template from GitHub (v4.3.0)
|
|
✓ Extracted customizations
|
|
✓ Generated updated CLAUDE.md
|
|
```
|
|
|
|
**What happens automatically**:
|
|
1. Detects new plugin version (e.g., v4.3.0)
|
|
2. Fetches matching template from GitHub
|
|
3. Preserves project customizations
|
|
4. Updates CLAUDE.md in current project
|
|
5. Shows diff for review
|
|
|
|
**Template sync benefits**:
|
|
- ✅ CLAUDE.md always matches installed plugin version
|
|
- ✅ No template drift (v4.0 templates with v4.3 plugin)
|
|
- ✅ Pre-release templates accessible
|
|
- ✅ Offline fallback to bundled templates
|
|
|
|
**User action required**:
|
|
```
|
|
Review changes and commit:
|
|
|
|
git add CLAUDE.md
|
|
git commit -m "chore: update CLAUDE.md to Navigator v4.3.0"
|
|
```
|
|
|
|
**See**: `nav-update-claude` skill for details.
|
|
|
|
---
|
|
|
|
### Step 5: Post-Upgrade Setup Check
|
|
|
|
**Check if new features require setup**:
|
|
|
|
```bash
|
|
# Check for skills with setup requirements
|
|
if [ -f "$NAVIGATOR_PATH/skills/product-design/setup.sh" ]; then
|
|
# Check if venv exists
|
|
if [ ! -d "$NAVIGATOR_PATH/skills/product-design/venv" ]; then
|
|
echo "⚠️ product-design skill requires setup"
|
|
NEEDS_SETUP=true
|
|
fi
|
|
fi
|
|
```
|
|
|
|
**If setup needed, show instructions**:
|
|
|
|
```markdown
|
|
⚠️ New Feature Requires Setup
|
|
|
|
The product-design skill (v3.4.0+) requires Python dependencies:
|
|
|
|
**One-time setup** (30 seconds):
|
|
```bash
|
|
cd ~/.claude/plugins/marketplaces/jitd-marketplace/skills/product-design
|
|
./setup.sh
|
|
```
|
|
|
|
**What this installs**:
|
|
- Python MCP SDK for direct Figma connection
|
|
- 95% orchestration reduction
|
|
- 92% token savings
|
|
|
|
**After setup, use**:
|
|
"Review this Figma design: [URL]"
|
|
```
|
|
|
|
**Record setup needed in TodoWrite** for tracking.
|
|
|
|
---
|
|
|
|
### Step 6: Feature Discovery
|
|
|
|
**Show new features** available in updated version.
|
|
|
|
**For v3.3.0 update**:
|
|
````markdown
|
|
🎉 Navigator v3.3.0 Update Complete!
|
|
|
|
## New Features Available
|
|
|
|
### visual-regression Skill (NEW)
|
|
Set up Storybook + Chromatic in 5 minutes instead of 2-3 hours.
|
|
|
|
**Usage**:
|
|
```
|
|
"Set up visual regression for ProfileCard"
|
|
"Add Chromatic to Button component"
|
|
"Configure visual tests for Input, Card, Modal"
|
|
```
|
|
|
|
**What it does**:
|
|
✅ Generates Storybook stories with all variants
|
|
✅ Configures Chromatic/Percy/BackstopJS
|
|
✅ Creates CI workflows (GitHub Actions, GitLab CI)
|
|
✅ Adds accessibility tests
|
|
|
|
**Complete Design Pipeline** (v3.2 + v3.3):
|
|
1. "Review this design from Figma" (v3.2)
|
|
2. Implement components
|
|
3. "Set up visual regression" (v3.3 NEW)
|
|
4. Automated visual testing in CI
|
|
|
|
### Updated Skills Count
|
|
- **17 total skills** (was 16)
|
|
- 10 core Navigator skills
|
|
- 7 development skills
|
|
|
|
### Integration
|
|
visual-regression integrates with product-design skill for complete design→code→testing workflow.
|
|
|
|
## Try It Now
|
|
|
|
If you have Storybook in this project:
|
|
```
|
|
"Set up visual regression for [ComponentName]"
|
|
```
|
|
|
|
If you don't have Storybook:
|
|
```bash
|
|
npx storybook init
|
|
```
|
|
|
|
Then:
|
|
```
|
|
"Set up visual regression for [ComponentName]"
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- Release Notes: https://github.com/alekspetrov/navigator/releases/tag/v3.3.0
|
|
- Skill Docs: skills/visual-regression/SKILL.md
|
|
- Examples: skills/visual-regression/examples/
|
|
- SOP: .agent/sops/testing/visual-regression-setup.md (created in your project)
|
|
````
|
|
|
|
---
|
|
|
|
## Predefined Functions
|
|
|
|
### functions/version_detector.py
|
|
|
|
**Purpose**: Detect current and latest Navigator versions
|
|
|
|
**Usage**:
|
|
```bash
|
|
python3 functions/version_detector.py
|
|
```
|
|
|
|
**Output**:
|
|
```json
|
|
{
|
|
"current_version": "3.2.0",
|
|
"latest_version": "3.3.0",
|
|
"update_available": true,
|
|
"release_url": "https://github.com/alekspetrov/navigator/releases/tag/v3.3.0",
|
|
"changes": {
|
|
"new_skills": ["visual-regression"],
|
|
"updated_skills": ["product-design"],
|
|
"new_features": ["Multi-tool VR support", "CI workflows"],
|
|
"breaking_changes": []
|
|
}
|
|
}
|
|
```
|
|
|
|
### functions/plugin_updater.py
|
|
|
|
**Purpose**: Execute plugin update with retry logic
|
|
|
|
**Usage**:
|
|
```bash
|
|
python3 functions/plugin_updater.py --target-version 3.3.0
|
|
```
|
|
|
|
**Actions**:
|
|
1. Execute `/plugin update navigator`
|
|
2. If fails, retry with uninstall/reinstall
|
|
3. Verify update succeeded
|
|
4. Return status
|
|
|
|
### functions/plugin_verifier.py
|
|
|
|
**Purpose**: Verify update completed successfully
|
|
|
|
**Usage**:
|
|
```bash
|
|
python3 functions/plugin_verifier.py --expected-version 3.3.0
|
|
```
|
|
|
|
**Checks**:
|
|
- Plugin version matches expected
|
|
- New skills exist in filesystem
|
|
- Skills registered in plugin.json
|
|
- Skills are invokable (test invocation)
|
|
|
|
---
|
|
|
|
## Error Handling
|
|
|
|
### Update Failed: Network Error
|
|
|
|
```
|
|
❌ Update failed: Could not connect to plugin marketplace
|
|
|
|
Fix:
|
|
1. Check internet connection
|
|
2. Try again in a few minutes
|
|
3. Manual update: /plugin uninstall navigator && /plugin install navigator
|
|
```
|
|
|
|
### Update Failed: Permission Denied
|
|
|
|
```
|
|
❌ Update failed: Permission denied
|
|
|
|
Fix:
|
|
1. Close Claude Code
|
|
2. Check ~/.config/claude/plugins/ permissions
|
|
3. Restart Claude Code
|
|
4. Try update again
|
|
```
|
|
|
|
### Verification Failed: Skills Not Found
|
|
|
|
```
|
|
⚠️ Update completed but new skills not found
|
|
|
|
Fix:
|
|
1. Restart Claude Code (required for skill reload)
|
|
2. Verify: /plugin list
|
|
3. Test: "Set up visual regression for Button"
|
|
```
|
|
|
|
Automatically prompt user to restart.
|
|
|
|
### CLAUDE.md Update Conflicts
|
|
|
|
```
|
|
⚠️ CLAUDE.md update has conflicts with your customizations
|
|
|
|
Options:
|
|
[1] Keep my customizations (merge new features)
|
|
[2] Use new template (lose customizations)
|
|
[3] Show me the diff first
|
|
|
|
Reply with choice
|
|
```
|
|
|
|
Let user decide how to handle conflicts.
|
|
|
|
---
|
|
|
|
## Upgrade Paths
|
|
|
|
### From v3.0.x to v3.3.0
|
|
|
|
**Changes**:
|
|
- +2 skills (nav-markers in v3.1, visual-regression in v3.3)
|
|
- OpenTelemetry integration (v3.1)
|
|
- Product design skill (v3.2)
|
|
- Visual regression skill (v3.3)
|
|
|
|
**Breaking changes**: None (fully backward compatible)
|
|
|
|
### From v3.1.x to v3.3.0
|
|
|
|
**Changes**:
|
|
- Product design skill (v3.2)
|
|
- Visual regression skill (v3.3)
|
|
- Updated skills count (17 total)
|
|
|
|
**Breaking changes**: None
|
|
|
|
### From v3.2.x to v3.3.0
|
|
|
|
**Changes**:
|
|
- Visual regression skill
|
|
- Integration with product-design workflow
|
|
- Updated skills count (17 total)
|
|
|
|
**Breaking changes**: None
|
|
|
|
---
|
|
|
|
## Post-Update Checklist
|
|
|
|
After upgrade, verify:
|
|
|
|
- ✅ `/plugin list` shows new version
|
|
- ✅ CLAUDE.md updated with new patterns
|
|
- ✅ New skills auto-invoke on natural language
|
|
- ✅ Existing skills still work
|
|
- ✅ No conflicts in project configuration
|
|
|
|
**If all checked**: Update successful!
|
|
|
|
---
|
|
|
|
## Rollback
|
|
|
|
If update causes issues:
|
|
|
|
```
|
|
"Rollback Navigator to v3.2.0"
|
|
```
|
|
|
|
This will:
|
|
1. Uninstall current version
|
|
2. Install specific version from marketplace
|
|
3. Update CLAUDE.md to match
|
|
4. Verify rollback succeeded
|
|
|
|
---
|
|
|
|
## Integration Points
|
|
|
|
### With nav-update-claude
|
|
|
|
After plugin update, automatically invokes `nav-update-claude` to sync project configuration.
|
|
|
|
### With nav-start
|
|
|
|
After update, `nav-start` shows new features available in session statistics.
|
|
|
|
### With nav-init
|
|
|
|
If upgrading before project initialization, suggests running `nav-init` with latest features.
|
|
|
|
---
|
|
|
|
## Examples
|
|
|
|
### Example 1: Simple Update
|
|
|
|
```
|
|
User: "Update Navigator"
|
|
|
|
→ Detects: v3.2.0 → v3.3.0 available
|
|
→ Updates plugin
|
|
→ Updates CLAUDE.md
|
|
→ Shows: "visual-regression skill now available"
|
|
→ Suggests: "Set up visual regression for [Component]"
|
|
```
|
|
|
|
### Example 2: Already on Latest
|
|
|
|
```
|
|
User: "Update Navigator"
|
|
|
|
→ Detects: Already on v3.3.0
|
|
→ Shows new features available
|
|
→ Suggests trying visual-regression if not used yet
|
|
```
|
|
|
|
### Example 3: Update with Restart Required
|
|
|
|
```
|
|
User: "Update Navigator"
|
|
|
|
→ Updates plugin
|
|
→ Verification: Skills not found (needs restart)
|
|
→ Prompts: "Please restart Claude Code to complete update"
|
|
→ After restart: Verification succeeds
|
|
```
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
1. **Update regularly**: Check for updates monthly
|
|
2. **Read release notes**: Understand new features before using
|
|
3. **Test new skills**: Try new features in test project first
|
|
4. **Report issues**: File GitHub issues for update problems
|
|
5. **Backup CLAUDE.md**: Keep backup before update (auto-created)
|
|
|
|
---
|
|
|
|
## Version History
|
|
|
|
- **v1.0.0**: Initial nav-upgrade skill (Navigator v3.3.1)
|
|
|
|
---
|
|
|
|
## Future Enhancements
|
|
|
|
- Auto-update check on `nav-start` (opt-in)
|
|
- Changelog display in CLI
|
|
- Update notifications for major versions
|
|
- Automated migration scripts for breaking changes
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-10-21
|
|
**Skill Type**: Core Navigator
|
|
**Auto-Invocation**: Yes
|