Agent skill
aish-add-skills
Create new skills from documents, tutorials, or examples. Use when user wants to create a skill from learning materials or existing content.
Install this agent skill to your Project
npx add-skill https://github.com/AI-Shell-Team/aish/tree/main/debian/skills/aish-add-skills
SKILL.md
AISH Create Skills
Create reusable skills by extracting methodologies from learning materials or examples.
Quick Example
User: "根据这篇 Docker 教程创建一个 skill"
AI: 读取文档 → 提取步骤 → 生成 skill 结构 → 保存到 ~/.config/aish/skills/
Create Mode Overview
Extract actionable methodologies from learning materials or examples to generate reusable Skills.
When to Use
Use Create Mode when:
- User provides a document/article/tutorial
- User provides an example to learn from
- User says "根据这篇文章创建一个 skill"
- User says "从这个示例学习并创建 skill"
Step 0: Identify Input Type
Critical first step - determine which processing path:
User Input
│
├─ Has teaching intent? ("how to", "steps", "guide")
│ └─ YES → Path A: Methodology Document
│
├─ Is a finished work? (article, design, code, proposal)
│ └─ YES → Path B: Example (Reverse Engineering)
│
└─ Neither? → Tell user this content is not suitable
Path A indicators (Methodology Document):
- Contains "how to", "steps", "method", "guide"
- Has numbered lists or step sequences
- Written with teaching intent
Path B indicators (Example/Output):
- Is a complete work/artifact
- No teaching intent
- Is "the thing itself" rather than "how to make the thing"
Path A: Extract from Methodology Document
A1: Validate Document Suitability
Check if suitable for skill generation (must meet at least 2):
- Has clear goal/outcome
- Has repeatable steps/process
- Has quality criteria
- Has context/scenario description
If not suitable: Tell user honestly and explain why.
A2: Identify Skill Type
| Type | Characteristics | Examples |
|---|---|---|
| How-to | Clear step sequence, input→output | Deploy Docker, Configure CI/CD |
| Decision | Conditions, trade-offs, choices | Choose database, Select framework |
| Framework | Mental model, analysis dimensions | SWOT, 5W1H, First Principles |
| Checklist | Verification list, pass/fail criteria | Code review checklist, Launch checklist |
A3: Extract Structure by Type
For How-to: Prerequisites → Step sequence → Expected result → Common errors
For Decision: Decision factors → Options with pros/cons → Decision tree → Recommended default
For Framework: Core concepts → Analysis dimensions → Application method → Limitations
For Checklist: Check items with criteria → Priority levels → Commonly missed items
A4: Generate Skill Directory
File naming principles:
- Use descriptive names that reflect actual content
- Avoid generic names like
template.mdorsample.md
Create structure based on skill needs:
{skill-name}/
├── SKILL.md # Main instructions (required)
├── {descriptive-name}.md # Reference docs (name by content)
├── examples/ # Example outputs (descriptive names)
│ └── {example-description}.md
└── scripts/ # Helper scripts (name by purpose)
└── {script-purpose}.{py|sh}
Example for blog-post-writer skill:
blog-post-writer/
├── SKILL.md
├── structure-template.md # Blog post structure template
├── examples/
│ ├── technical-post.md # Example technical blog post
│ └── tutorial-post.md # Example tutorial post
└── scripts/
└── word-count.py # Word counter script
A5: Write SKILL.md
Use this template:
---
name: {skill-name}
description: {What it does and when to use it}
---
# {Skill Name}
{Brief description}
## When to Use
Use this skill when:
- {Scenario 1}
- {Scenario 2}
## Prerequisites
- {Prerequisite 1}
- {Prerequisite 2}
## Steps
1. **{Step 1}** - {Expected outcome}
- {Detail}
2. **{Step 2}** - {Expected outcome}
- {Detail}
## Quality Checkpoints
- [ ] {Checkpoint 1}
- [ ] {Checkpoint 2}
## Common Pitfalls
- **{Pitfall 1}**: {How to avoid}
## Source
- Document: {name/URL}
- Extracted: {timestamp}
Reference supporting files:
## Additional Resources
- For detailed template, see [structure-template.md](structure-template.md)
- For examples, see [examples/](examples/)
A6: Save to Disk
SKILL_DIR=~/.config/aish/skills/{skill-name}
# Create directories only if needed
# mkdir -p "$SKILL_DIR/examples"
# mkdir -p "$SKILL_DIR/scripts"
# Write SKILL.md (required)
cat > "$SKILL_DIR/SKILL.md" << 'EOF'
{SKILL.md content}
EOF
# Write optional files with descriptive names
Path B: Reverse Engineer from Example
B1: Identify Output Type
What kind of artifact is this?
- Technical blog post
- Product proposal/PRD
- Academic paper
- Code architecture
- Design document
- Other: [specify]
B2: Analyze Structure
Structure Analysis:
├── [Part 1]: [Function] - [Proportion %]
├── [Part 2]: [Function] - [Proportion %]
└── [Part N]: [Function] - [Proportion %]
Questions:
- How many parts?
- What's the function of each part?
- What's the order and proportion?
B3: Extract Quality Characteristics
| Dimension | Questions |
|---|---|
| Structure | How is content organized? |
| Style | Tone, word choice, expression? |
| Technique | What methods make it effective? |
| Logic | How does information flow? |
| Details | Small but important touches? |
B4: Reverse Engineer Process
## Deduced Production Steps
1. [Step 1]: [What to do] - [Key point]
2. [Step 2]: [What to do] - [Key point]
## Key Decisions
- [Decision 1]: [Options] - [Chose X because...]
## Reusable Techniques
- [Technique 1]: [How to apply]
B5: Generate Skill Directory
Example for technical-blog-writer skill:
technical-blog-writer/
├── SKILL.md
├── blog-post-template.md # Template for blog posts
├── examples/
│ └── react-hooks-post.md # The analyzed example
└── scripts/
└── readability.py # Readability checker
B6: Write SKILL.md
---
name: {skill-name}
description: {What it does}
---
# {Skill Name}
{Brief description}
## Output Type
{What kind of artifact this produces}
## When to Use
Use this skill when:
- {Scenario 1}
- {Scenario 2}
## Structure Template
1. [Part 1]: [Function] - [~X%]
2. [Part 2]: [Function] - [~X%]
## Quality Characteristics
Learned from example:
- [Characteristic 1]: [How it manifests]
- [Characteristic 2]: [How it manifests]
## Production Steps
1. **{Step 1}**: [What to do] - [Tips]
2. **{Step 2}**: [What to do] - [Tips]
## Checklist
- [ ] [Check item 1]
- [ ] [Check item 2]
## Reference Example
- Source: [name/URL]
- Analyzed: [timestamp]
## Additional Resources
- For template, see [blog-post-template.md](blog-post-template.md)
- For reference example, see [examples/react-hooks-post.md](examples/react-hooks-post.md)
B7: Save to Disk
SKILL_DIR=~/.config/aish/skills/{skill-name}
# Write SKILL.md
cat > "$SKILL_DIR/SKILL.md" << 'EOF'
{SKILL.md content}
EOF
# Write optional files with descriptive names
Skill Best Practices
File Naming
Good naming:
api-reference.md(notreference.md)blog-post-template.md(nottemplate.md)examples/react-hooks-post.md(notexamples/sample.md)scripts/validate-readability.py(notscripts/helper.py)
Avoid generic names like: template.md, sample.md, original.md, helper.py
SKILL.md Guidelines
- Keep under 500 lines
- Focus on essentials in SKILL.md
- Move detailed reference to separate files
- Reference supporting files with markdown links
Frontmatter (Optional)
---
name: my-skill
description: What this skill does and when to use it
disable-model-invocation: true # Only user can invoke
user-invocable: false # Hide from / menu
allowed-tools: Read, Grep # Restrict tool access
argument-hint: [filename] # Autocomplete hint
---
Types of Skills
Reference content: Knowledge, conventions, patterns (runs inline)
- Example: API conventions, coding standards
Task content: Step-by-step instructions (often user-invoked)
- Example: Deploy, commit, code generation
Installation Path
Skills are saved to: ~/.config/aish/skills/
aish automatically hot-reloads skills from this directory.
Important Notes
- Always validate content suitability before extracting
- Take time to truly understand the content
- Preserve sources - always credit where knowledge came from
- Use descriptive file names that reflect actual content
- Keep SKILL.md under 500 lines - move detailed reference to supporting files
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
prompt-designer
Design and customize prompts for aish shell. Use when user wants to modify their shell prompt, describe desired prompt style, or switch between prompt themes. Triggers on keywords like "prompt", "提示符", "主题".
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Ethical Hacking Methodology
This skill should be used when the user asks to "learn ethical hacking", "understand penetration testing lifecycle", "perform reconnaissance", "conduct security scanning", "exploit vulnerabilities", or "write penetration test reports". It provides comprehensive ethical hacking methodology and techniques.
Red Team Tools and Methodology
This skill should be used when the user asks to "follow red team methodology", "perform bug bounty hunting", "automate reconnaissance", "hunt for XSS vulnerabilities", "enumerate subdomains", or needs security researcher techniques and tool configurations from top bug bounty hunters.
Shodan Reconnaissance and Pentesting
This skill should be used when the user asks to "search for exposed devices on the internet," "perform Shodan reconnaissance," "find vulnerable services using Shodan," "scan IP ranges with Shodan," or "discover IoT devices and open ports." It provides comprehensive guidance for using Shodan's search engine, CLI, and API for penetration testing reconnaissance.
SMTP Penetration Testing
This skill should be used when the user asks to "perform SMTP penetration testing", "enumerate email users", "test for open mail relays", "grab SMTP banners", "brute force email credentials", or "assess mail server security". It provides comprehensive techniques for testing SMTP server security.
Didn't find tool you were looking for?