backend-endpoint
Create REST/GraphQL API endpoint with validation, error handling, and tests. Auto-invoke when user says "add endpoint", "create…
Sync project CLAUDE.md to the installed Navigator version, preserving customizations. Use when user says "sync CLAUDE.md", "update CLAUDE.md", or when detecting outdated Navigator configuration.
Claude Code
$ npx -y skills add qf-studio/navigator --skill nav-sync-claude --agent claude-code
Codex
$ npx skills add qf-studio/navigator --skill nav-sync-claude -a codex -y
Cursor
$ npx skills add qf-studio/navigator --skill nav-sync-claude -a cursor -y
Gemini CLI
$ npx skills add qf-studio/navigator --skill nav-sync-claude -a gemini-cli -y
GitHub Copilot
$ npx skills add qf-studio/navigator --skill nav-sync-claude -a github-copilot -y
OpenCode
$ npx skills add qf-studio/navigator --skill nav-sync-claude -a opencode -y
Windsurf
$ npx skills add qf-studio/navigator --skill nav-sync-claude -a windsurf -y
name: nav-sync-claude description: Sync project CLAUDE.md to the installed Navigator version, preserving customizations. Use when user says "sync CLAUDE.md", "update CLAUDE.md", or when detecting outdated Navigator configuration. allowed-tools: Read, Write, Edit, Bash version: 1.0.0
Update project's CLAUDE.md to latest Navigator version (v3.1) while preserving project-specific customizations.
Invoke this skill when the user:
**DO NOT invoke** if:
Check if CLAUDE.md exists and detect version:
if [ ! -f "CLAUDE.md" ]; then echo "❌ No CLAUDE.md found in current directory" echo "" echo "Run 'Initialize Navigator in this project' first." exit 1 fi
Use `version_detector.py` to analyze CLAUDE.md:
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"
python3 "$PLUGIN_DIR/skills/nav-sync-claude/functions/version_detector.py" CLAUDE.mdThis script checks for:
**Outputs**:
**If `current`**:
✅ CLAUDE.md is already up to date (v3.1) No migration needed.
Exit successfully.
**If `unknown`**:
⚠️ CLAUDE.md doesn't appear to be a Navigator file This might be a custom configuration. Manual review recommended. Proceed with migration anyway? [y/N]
If user declines, exit. If accepts, continue.
Always create backup before modifying:
cp CLAUDE.md CLAUDE.md.backup echo "📦 Backup created: CLAUDE.md.backup"
Use `claude_updater.py` to parse current CLAUDE.md:
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"
python3 "$PLUGIN_DIR/skills/nav-sync-claude/functions/claude_updater.py" extract CLAUDE.md > /tmp/nav-customizations.jsonThis records the file's layout verbatim, with fenced code blocks kept whole (a `# comment` inside a bash block is not a header):
` - Claude Code Configuration` when the title has that shape, else the whole title
(`###` subsections, fences and `---` rules included)
the section whose body carries the `**Navigator runtime**` paragraph; empty when none
the liveness guard)
The flat lists stay for readers of the JSON and for hand-written customizations without a `sections` layout: **description**, **core_principle** and **tech_stack** (from Context), **code_standards** and **forbidden_actions** (every bullet, template defaults included; a default the project removed stays removed), **pm_tool**, and **custom_sections** with **custom_section_anchors** (every `##` header the lists do not render, with the standard section each one precedes).
Apply latest template with extracted customizations:
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"
# Template fetching now automatic via get_template_path():
# 1. Tries GitHub (version-matched)
# 2. Falls back to bundled if offline
python3 "$PLUGIN_DIR/skills/nav-sync-claude/functions/claude_updater.py" generate \
--customizations /tmp/nav-customizations.json \
--template "$PLUGIN_DIR/templates/CLAUDE.md" \
--output CLAUDE.mdGenerate stamps `**Last Updated**` with today's date and `**Navigator Version**` with the installed plugin version (`--stamp-date` / `--stamp-version` override them). A dry run writes anywhere: `--output /tmp/CLAUDE.preview.md`. The hook-liveness guard checks the project root, never the output directory: `--project-root DIR`, else the `source_dir` that extract recorded, else the current directory. It exits 3 and leaves CLAUDE.md untouched when `.agent/.nav-runtime-state.json` is absent or older than 7 days.
**Template Source Priority**: 1. **GitHub** (version-matched): Fetches from `https://raw.githubusercontent.com/qf-studio/navigator/v{version}/templates/CLAUDE.md`
2. **Bundled** (fallback): Uses `templates/CLAUDE.md` from installed plugin
**What this does**: 1. Loads template (GitHub or bundled) 2. Replaces placeholde
Create REST/GraphQL API endpoint with validation, error handling, and tests. Auto-invoke when user says "add endpoint", "create…
Generate backend tests (unit, integration, mocks) for existing code. Auto-invoke when user says "write test for", "add test",…
Create database migration with schema changes and rollback. Auto-invoke when user says "create migration", "add table", "modify…
Create React/Vue component with TypeScript, tests, and styles. Auto-invoke when user says "create component", "add component",…
Generate frontend component tests (React Testing Library, Vue Test Utils, snapshot) for existing components. Auto-invoke when…
Render a one-screen intent brief (Goal/Scope/Approach/Limits/Verify/Won't-do/Contradiction) before implementing ambiguous…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration