apps/desktop/bundled-skills/skill-creator/SKILL.md
Guide for creating effective skills. Use when users want to create a new skill (or update an existing skill) that extends the AI's capabilities with specialized knowledge, workflows, or tool integrations.
npx skillsauth add thilak0105/neoverse-26 skill-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides guidance for creating effective skills.
Skills are modular, self-contained packages that extend AI capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific domains or tasks—they transform a general-purpose agent into a specialized agent equipped with procedural knowledge.
The context window is a public good. Skills share the context window with everything else needed: system prompt, conversation history, other Skills' metadata, and the actual user request.
Default assumption: The AI is already very smart. Only add context it doesn't already have. Challenge each piece of information: "Is this explanation really needed?" and "Does this paragraph justify its token cost?"
Prefer concise examples over verbose explanations.
Match the level of specificity to the task's fragility and variability:
High freedom (text-based instructions): Use when multiple approaches are valid, decisions depend on context, or heuristics guide the approach.
Medium freedom (pseudocode or scripts with parameters): Use when a preferred pattern exists, some variation is acceptable, or configuration affects behavior.
Low freedom (specific scripts, few parameters): Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.
Every skill consists of a required SKILL.md file and optional bundled resources:
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter metadata (required)
│ │ ├── name: (required)
│ │ ├── description: (required)
│ │ └── command: (optional, e.g., /my-skill)
│ └── Markdown instructions (required)
└── Bundled Resources (optional)
├── scripts/ - Executable code (Python/Bash/etc.)
├── references/ - Documentation loaded as needed
└── assets/ - Files used in output (templates, icons, fonts, etc.)
Every SKILL.md consists of:
name, description, and optional command fields. These determine when the skill gets used—be clear and comprehensive.scripts/)Executable code for tasks requiring deterministic reliability or that are repeatedly rewritten.
scripts/rotate_pdf.py for PDF rotation tasksreferences/)Documentation and reference material loaded as needed into context.
references/schema.md for database schemas, references/api_docs.md for API specificationsassets/)Files not intended to be loaded into context, but used within the output.
assets/logo.png for brand assets, assets/template.html for boilerplateTo create an effective skill, understand concrete examples of how it will be used:
Analyze each example to identify reusable resources:
Create a new directory for your skill:
my-skill/
├── SKILL.md
└── (optional resources)
Frontmatter:
---
name: my-skill
description: Clear description of what the skill does and when to use it.
command: /my-skill
---
Body:
Write clear instructions for using the skill. Include:
After creating the skill:
IMPORTANT: When creating skills in Navigator, you can ONLY create "custom" skills. You CANNOT create "official" skills - those are bundled with the app and managed by the Navigator team.
CRITICAL: You MUST save skills to EXACTLY the canonical path provided in the task prompt. Do NOT ask the user where to save - the path is fixed by the app.
If the task prompt includes an explicit skills base directory or exact SKILL.md path, that value is the source of truth and must be used exactly.
Skills must be saved to the Navigator user data directory under a skills folder:
macOS: ~/Library/Application Support/Navigator/skills/<skill-name>/SKILL.md
Windows: %APPDATA%\Navigator\skills\<skill-name>\SKILL.md
Linux: ~/.config/Navigator/skills/<skill-name>/SKILL.md
NEVER:
~/skills/, ./skills/, or custom pathsThe path is determined by the application runtime. Use the explicit runtime path from the prompt when provided. Only fall back to OS-based detection when no runtime path is provided.
Do not ask the user for a path. Follow these steps automatically:
Use the base path from the task prompt when present.
~/Library/Application Support/Navigator/skills/%APPDATA%\Navigator\skills\~/.config/Navigator/skills/Create the skill directory named after your skill (lowercase, hyphenated), or use the exact directory name provided in the task prompt:
<base-path>/my-awesome-skill/
Write the SKILL.md file inside that directory:
<base-path>/my-awesome-skill/SKILL.md
Add any bundled resources as subdirectories if needed:
<base-path>/my-awesome-skill/
├── SKILL.md
├── scripts/
├── references/
└── assets/
The skill is automatically detected - Navigator scans this directory on startup and syncs new skills to its database. The skill will appear in Settings > Skills as a "Custom" skill.
For custom skills in Navigator:
name: Required - the skill's display namedescription: Required - when to use this skillcommand: Optional - slash command like /my-skillverified: true - only official skills can be verifiedhidden: true - only internal skills should be hidden---
name: my-awesome-skill
description: Does something awesome. Use when users want to do awesome things.
command: /awesome
---
IMPORTANT: You MUST verify the skill was created correctly before telling the user it's complete.
Read the file - Use the Read tool to read the SKILL.md file you just created. This confirms:
Verify the path - Confirm the file path matches the explicit path from the task prompt.
~/Library/Application Support/Navigator/skills/<skill-name>/SKILL.md%APPDATA%\Navigator\skills\<skill-name>\SKILL.md~/.config/Navigator/skills/<skill-name>/SKILL.mdValidate frontmatter - Confirm the YAML frontmatter contains:
name: Present and non-emptydescription: Present and non-emptyverified: true or hidden: true)Report results - Only after ALL checks pass, tell the user:
If verification fails: Do NOT tell the user the skill was created. Instead, diagnose the issue and fix it before re-verifying.
Here's a minimal skill example:
---
name: greeting-generator
description: Generate personalized greetings for various occasions. Use when users want help writing greeting cards, welcome messages, or celebratory notes.
command: /greet
---
# Greeting Generator
Generate warm, personalized greetings for any occasion.
## Usage
1. Ask what type of greeting is needed (birthday, holiday, thank you, etc.)
2. Gather details about the recipient
3. Generate multiple greeting options
4. Refine based on feedback
## Tone Guidelines
- **Formal**: Professional settings, business relationships
- **Warm**: Friends and family
- **Playful**: Children, casual occasions
## Examples
**Birthday greeting:**
"Wishing you a day filled with joy and a year filled with success!"
**Thank you note:**
"Your thoughtfulness means more than words can express. Thank you!"
testing
Enforces explicit user permission before any file deletion. Activates when you're about to use rm, unlink, fs.rm, or any operation that removes files from disk. MUST be followed for all delete operations.
tools
Browser automation via MCP tools. ALWAYS use these tools for ANY web task - navigating sites, clicking, typing, filling forms, taking screenshots, or extracting data. This is the ONLY way to control the browser.
tools
# Complete Task This tool signals task completion. The agent MUST call this tool to finish any task. ## Usage Call `complete_task` with: - `status`: "success", "blocked", or "partial" - `original_request_summary`: Restate what was asked (forces review) - `summary`: What you accomplished - `remaining_work`: (if blocked/partial) What's left to do ## Statuses - **success** — All parts of the request completed - **blocked** — Hit an unresolvable blocker, cannot continue - **partial** — Complet
tools
Ask users questions via the UI. Use when you need clarification, user preferences, or confirmation before proceeding. The user CANNOT see CLI output - this tool is the ONLY way to communicate with them.