Guide users through creating AdaL skills by clarifying the skill type (personal, project, or public plugin) and scaffolding the appropriate structure.
Use this skill when the user asks to create a skill, make a skill, add a new skill, or similar requests.
Trigger when user mentions:
Always ask the user which type of skill they want to create:
| Type | Location | Visibility | Use Case |
|------|----------|------------|----------|
| Personal | ~/.adal/skills/<name>/ | Only you | Custom workflows, personal preferences |
| Project | .adal/skills/<name>/ | Team (via git) | Team conventions, project-specific patterns |
| Plugin | GitHub repo | Public | Community-shareable, reusable across projects |
Example prompt:
What type of skill would you like to create?
- Personal skill (
~/.adal/skills/) - Just for you, not shared- Project skill (
.adal/skills/) - Shared with your team via git- Plugin skill (GitHub repo) - Public, shareable with the community
Which type? (1/2/3)
Ask for:
my-workflow, team-conventions)~/.adal/skills/)mkdir -p ~/.adal/skills/<skill-name>
Create SKILL.md with required YAML frontmatter:
---
name: <skill-name>
description: <Brief description>
author: <your-name or org>
version: 1.0.0
---
# <Skill Title>
## When to Use
<Describe trigger scenarios>
## Instructions
<Step-by-step guidance for the agent>
⚠️ REQUIRED: The
---YAML frontmatter block is mandatory. Skills without it will fail to load. At minimum, includenameanddescription.
.adal/skills/)mkdir -p .adal/skills/<skill-name>
Same SKILL.md format. Remember to commit to git for team sharing.
Create a GitHub repository with this structure:
<repo>/
├── .claude-plugin/
│ └── marketplace.json # Required location for Claude Code compatibility
├── skills/
│ └── <skill-name>/
│ └── SKILL.md
└── README.md
marketplace.json (MUST be in .claude-plugin/ directory):
{
"name": "my-marketplace-name",
"owner": {
"name": "Your Name or Org",
"email": "contact@example.com"
},
"metadata": {
"description": "My collection of skills",
"version": "1.0.0"
},
"plugins": [
{
"name": "my-plugin",
"description": "Plugin description",
"source": "./",
"skills": ["./skills/skill-name"]
}
]
}
Critical fields:
owner: Object with name and email (required by Claude Code)metadata: Wrapper for description and versionplugins[].source: Path to skills root (use "./" for repo root)plugins[].skills: Two formats supported:
["./skills/xlsx", "./skills/docx"] - list specific skill directories"skills" or "./" - recursively scan for SKILL.md filesInstallation commands:
# Add marketplace
/plugin marketplace add <owner>/<repo>
# Direct install (marketplace-name from marketplace.json "name" field)
/plugin install <plugin-name>@<marketplace-name>
IMPORTANT: Keep marketplace.json in sync!
Every time you add a new skill to the plugin, update the skills array in marketplace.json:
"skills": ["./skills/create-skill", "./skills/new-skill-name"]
Without this, the skill won't be discoverable via /skills command after plugin installation.
After creating:
/skills to verify the skill appearsIf the user wants multi-file skills, guide them on:
User: "Create a skill for our API conventions"
Agent: "What type of skill would you like?
User: "Project"
Agent: "I'll create .adal/skills/api-conventions/. What conventions should it include?"
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer