// Analyze codebase patterns and create custom skills for repetitive workflows. Use when project needs automation or pattern enforcement. Auto-invoke when user says "create a skill for...", "automate this workflow", or "we keep doing X manually".
| name | nav-skill-creator |
| description | Analyze codebase patterns and create custom skills for repetitive workflows. Use when project needs automation or pattern enforcement. Auto-invoke when user says "create a skill for...", "automate this workflow", or "we keep doing X manually". |
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash, Task |
| version | 1.0.0 |
Create project-specific skills by analyzing codebase patterns and automating repetitive workflows.
Auto-invoke when user mentions:
Ask clarifying questions:
Example dialogue:
User: "Create a skill for adding React components"
Assistant: "I'll analyze your codebase to understand React component patterns.
- What directory are components in?
- Do you use TypeScript or JavaScript?
- Do you want tests generated automatically?
- Are there style files (CSS/SCSS) per component?"
Use Task agent to explore (saves 60-80% tokens):
Use Task agent with subagent_type=Explore:
"Find existing [pattern type] in codebase:
- Locate all [files matching pattern]
- Identify common structure
- Extract best practices
- Find configuration files
- Return summary of findings"
What to look for:
Example for React components:
Task agent finds:
- Components in src/components/
- PascalCase naming (UserProfile.tsx)
- Co-located tests (UserProfile.test.tsx)
- Props interfaces defined above component
- Export default at bottom
Determine skill metadata:
name: [project]-[pattern-type]
description: [When to auto-invoke + what it does]
allowed-tools: [Read, Write, Edit, Grep, Glob, Bash, Task]
version: 1.0.0
Plan directory structure:
skills/[skill-name]/
āāā SKILL.md # Main instructions
āāā functions/ # Python helper scripts
ā āāā [generator].py
āāā examples/ # Reference implementations
ā āāā [example].[ext]
āāā templates/ # Output format templates
āāā [template].[ext]
Design predefined functions:
Example functions for frontend-component skill:
component_generator.py - Generate component boilerplatetest_generator.py - Generate test filestyle_generator.py - Generate style filename_validator.py - Validate component naming4.1 Create SKILL.md
---
name: [skill-name]
description: [Auto-invocation triggers + purpose]
allowed-tools: [List of tools]
version: 1.0.0
---
# [Skill Title]
[Brief description of what this skill does]
## When to Invoke
Auto-invoke when user says:
- "[trigger phrase 1]"
- "[trigger phrase 2]"
- "[trigger phrase 3]"
## What This Does
1. [Step 1 overview]
2. [Step 2 overview]
3. [Step 3 overview]
## Execution Steps
### Step 1: [Step Name]
[Detailed instructions for this step]
**Use predefined function**: `functions/[function-name].py`
4.2 Create Predefined Functions
# functions/[generator].py
def generate_[output](name, config):
"""
Generate [output type] based on project patterns.
Args:
name: [Description]
config: [Description]
Returns:
[output]: [Description]
"""
# Implementation based on codebase analysis
pass
4.3 Create Examples
examples/
āāā [reference-implementation].[ext]
- Real example from codebase (best practice)
- Shows expected structure
- Demonstrates conventions
4.4 Create Templates
templates/
āāā [output-template].[ext]
- Skeleton structure with placeholders
- ${VAR_NAME} for substitution
- Comments explaining sections
5.1 Verify skill loads:
# In project root
grep -r "name: [skill-name]" skills/
5.2 Test auto-invocation:
In Claude Code conversation:
"[Use one of the auto-invoke trigger phrases]"
Expected: Skill should be detected and loaded
5.3 Test execution:
5.4 Iterate if needed:
Update project documentation:
#### [Skill Name]
**Auto-invoke**: "[trigger phrase]"
**Purpose**: [What it does]
**Generates**: [Output type]
- **[skill-name]**: [Brief description]
### [Skill Name]
**Created**: [Date]
**Pattern**: [What pattern it enforces]
**Functions**: [List of predefined functions]
Register in plugin.json (if applicable):
{
"skills": [
{
"name": "[skill-name]",
"path": "skills/[skill-name]/SKILL.md"
}
]
}
User: "Create a skill for adding REST API endpoints"
Execution:
Clarify:
Analyze (via Task agent):
Find existing API endpoints:
- Routes in api/routes/
- Controllers in api/controllers/
- Middleware in api/middleware/
- Tests in tests/api/
Design:
name: backend-api-endpoint
description: Add new REST API endpoint following project conventions. Use when user says "add endpoint", "create API", or "new route".
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
Generate:
skills/backend-api-endpoint/
āāā SKILL.md
āāā functions/
ā āāā endpoint_generator.py
ā āāā route_validator.py
āāā examples/
ā āāā user-endpoint.ts
āāā templates/
āāā route-template.ts
āāā test-template.spec.ts
Test:
User: "Add a POST /posts endpoint"
Skill: Auto-invoked, generates route + controller + test
Verify: Files follow project conventions
Document: Update CLAUDE.md, README.md, plugin-patterns.md
User: "Automate creating new React components"
Execution:
Clarify:
Analyze (via Task agent):
Find React components:
- Components in src/components/
- PascalCase naming
- TypeScript (.tsx)
- CSS modules (.module.css)
- Tests with RTL
Design:
name: frontend-component
description: Create new React component with TypeScript, styles, and tests. Use when user says "create component", "add component", or "new React component".
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
Generate:
skills/frontend-component/
āāā SKILL.md
āāā functions/
ā āāā component_generator.py
ā āāā test_generator.py
ā āāā style_generator.py
āāā examples/
ā āāā Button.tsx
ā āāā Button.test.tsx
āāā templates/
āāā component-template.tsx
āāā test-template.test.tsx
āāā style-template.module.css
Test:
User: "Create a UserProfile component"
Skill: Auto-invoked, generates component + test + styles
Verify: Props interface, exports, naming correct
Document: Update project docs
After generating skill, show summary:
ā
Skill Created: [skill-name]
Structure:
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
š skills/[skill-name]/
āāā SKILL.md
āāā functions/
ā āāā [N functions created]
āāā examples/
ā āāā [N examples added]
āāā templates/
āāā [N templates created]
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Auto-Invocation Triggers:
- "[trigger 1]"
- "[trigger 2]"
- "[trigger 3]"
Next Steps:
1. Test the skill: "[example trigger phrase]"
2. Iterate if needed
3. Documentation updated
Try it now: "[example usage]"
Problem: Skill created but doesn't trigger automatically
Solutions:
plugin.json includes skill registrationProblem: Predefined functions throw errors
Solutions:
Problem: Generated code doesn't match project conventions
Solutions:
Problem: Skill tries to do too much
Solutions:
This skill succeeds when:
The skill-creator is Navigator's self-improving engine - it learns your patterns and automates them š