skill-creator
Skill42 starsChanged 7 days agoMITView on GitHub
Create new skills or refactor existing skills to follow the standard directory structure.
- Reads credentials
189 other projects use a version of this.
Adopted by
Most recently taken up by
- SebastienDegodez/copilot-instructionstheir own version, first seen Nov 8, 2026
- idavidov13/agentic-playwrighttheir own version, first seen Nov 8, 2026
- HughYau/AcademicForgetheir own version, first seen Nov 8, 2026
- Ar9av/obsidian-wikitheir own version, first seen Nov 8, 2026
- rvdbreemen/OTGW-firmwaretheir own version, first seen Nov 8, 2026
- scenario-labs/skillstheir own version, first seen Nov 7, 2026
Used with
Projects with it also use taskflow-inbox-triage, mermaid-diagram-generator and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AtomicBot-aiSkilltaskflow-inbox-triage
Also in 6 projects that use this
shalombSkillmermaid-diagram-generator
Guide on creating and editing Mermaid charts safely. Use when asked to draw a diagram, flowchart, or architecture chart. Triggers on: 'mermaid', 'diagram', 'flowchart', 'visualize'.
Also in 5 projects that use this
naman10parikhSkillecosystem-reference
Quick-access directory of Claude Code ecosystem repos, skills, plugins, MCPs, and patterns. Use when improving the harness.
Also in 5 projects that use this
naman10parikhSkillfractal-delegation
Also in 5 projects that use this
Liang-MHSkillstock_analysis
获取 A 股、基金和港股的实时行情和技术分析数据
Also in 5 projects that use this
nicepkgSkillcommunity-led-growth
Expert in community-led growth (CLG) - leveraging user communities to drive acquisition, retention, and expansion. Covers building developer communities, user groups, ambassador programs, and turning customers into advocates. Knows the difference between community as a feature vs community as a growth engine, and how to measure community ROI. Use when "community-led, CLG, ambassador program, champion program, user community, developer community, word of mouth, user group, " mentioned.
Also in 5 projects that use this
- +6 more from naman10parikh
Other versions189 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 189
- moltbot/clawdbot★ 394ksame name
- steipete/warelay★ 394ksame name
- steipete/clawdis★ 394ksame name
- moltbot/moltbot★ 394ksame name
- clawdbot/clawdbot★ 394ksame name
- openclaw/openclaw★ 394ksame name
- molt-bot/clawdbot★ 391ksame name
- anthropics/skills★ 189ksame name
- openai/codex★ 134ksame name
- google-gemini/gemini-cli★ 109ksame name
179 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- app-creatorSkill
- bento-slidesSkill
- brochure-designerSkill
- business-card-readerSkill
- claude-designerSkill
- codebase-to-courseSkill
- daily-briefingSkill
- diagram-designSkill
- fable-modeSkill
- ffmpeg-video-processingSkill
- frontend-designSkill
- gamma-presenterSkill
- gitSkill
- hotel-finderSkill
- humanizerSkill
- in-depth-researchSkill
- jclaw-apiSkill
- jira-operationsSkill
- powerpoint-pptxSkill
- research-paper-writer-proSkill
- restaurant-recommenderSkill
- ui-ux-pro-maxSkill
- visual-explainerSkill
- whatsapp-wacli-linuxSkill
- whatsapp-wacli-macSkill
- writing-standardsSkill
- youtube-transcriptSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
24 rules. 0 are common, 6 are distinctive, and 18 are very specific to this project.
0
Common
Most of the 185 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
18
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Every skill MUST follow this layout:
- Very specific: line 33
Binaries are ONLY allowed in the
tools/folder: No binaries in the root folder or credentials/ folder. - Very specific: line 43
Keep in SKILL.md the frontmatter, the purpose, the workflow and every rule the agent must always follow (safety rules, required formats, …
- Very specific: line 73
Before writing jclaw-commands for a skill that ships binaries in tools/, read skills/skill-creator/references/commands-rules.md with the …
- Very specific: line 79
Use the agent's literal name, not a description.
- Very specific: line 81
When refactoring an existing skill, leave the existing author value alone — it records the original creator.
- Very specific: line 85
Every skill MUST include a jclaw-icon entry under metadata — a single emoji, in double quotes, that visually represents the skill.
- Distinctive: line 89
When creating a new skill, assign the icon yourself based on the skill name and description.
- Very specific: line 90
When refactoring an existing skill that already has a jclaw-icon, leave it alone unless it's clearly wrong (e.g.
- Distinctive: line 96
Only use names that appear verbatim in the Tool Catalog table.
- Very specific: line 106
If the skill has entries in jclaw-commands, reference each bundled binary by its path in the body (e.g., tools/wacli) so the reader can …
- Very specific: line 109
Output Location: If this skill generates files (HTML diagrams, documents, etc.), include: Outputs are written to \{skill-name}/\ at the …
- Very specific: line 113
Create the directory: skills/{skill-name}/
- Very specific: line 114
Write skills/{skill-name}/SKILL.md with writeFile (brand-new files use writeFile.
- Very specific: line 115
If credentials are needed, create credentials/ with placeholder files
- Very specific: line 116
If binary tools are needed, create tools/ with documentation.
- Very specific: line 117
Creating multiple files at once?: Use applyPatch to add several files atomically — it validates all ops before touching disk, so you won't …
- Very specific: line 122
Write the names on one line, separated by spaces: jclaw-tools: tool_a tool_b — substitute real names from the Tool Catalog.
- Very specific: line 123
Use an empty string if the skill uses no tools at all: jclaw-tools: ""
- Very specific: line 125
NEVER invent tool names. If a name isn't in the Tool Catalog section of your system prompt, it doesn't exist.
- Very specific: line 132
If the global skill-creator is updated to a newer version, out-of-date copies on non-main agents are automatically hidden from …
- Distinctive: line 136
When asked to refactor or update an existing skill, or when you notice a skill that doesn't follow the standard structure:
- Distinctive: line 167
Keep skill names short and descriptive (kebab-case)
- Distinctive: line 168
Write clear, actionable instructions that an LLM can follow
“Common” is measured: kept by at least 6 in 10 of the 185 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill Creator & Refactorer
You help the user create new skills or refactor existing skills in your workspace to follow the standard directory structure.
Standard Directory Structure
Every skill MUST follow this layout:
{skill-name}/ # kebab-case name (required)
├── SKILL.md # Skill definition with YAML frontmatter (required)
├── credentials/ # Credential/config files only (optional)
│ └── *.json, *.txt, *.env # API keys, tokens, auth configs — TEXT FILES ONLY
├── references/ # Detailed material SKILL.md points to (optional)
│ └── *.md # Catalogs, templates, examples — TEXT FILES ONLY
└── tools/ # Binary tools and their docs (optional)
├── {binary} # Executable/binary files
└── *.md or *.txt # Usage documentation for the toolsRules
- Binaries are ONLY allowed in the
tools/folder. No binaries in the root folder orcredentials/folder. - The
credentials/folder may ONLY contain text files (json, txt, env, yaml, properties). - The
references/folder may ONLY contain text files, one level deep: a reference file never points to another reference file. - The skill root folder may ONLY contain
SKILL.mdand the three subfolders. - Skill names must be kebab-case (e.g.,
web-scraper,slack-notifier), at most 64 characters, and the same as the folder name.
SKILL.md size limit
A SKILL.md MUST stay under 20,000 characters (about 5,000 tokens, or 500 lines). Once an agent reads a skill, JClaw keeps its first 20,000 characters for the rest of the conversation and cuts the rest; Anthropic's Agent Skills guidance sets the same bound. When a SKILL.md would pass 18,000 characters, split it:
- Keep in SKILL.md the frontmatter, the purpose, the workflow and every rule the agent must always follow (safety rules, required formats, "never do X" lines), near the top.
- Move detailed reference material (long catalogs, templates, examples, troubleshooting) word for word into
references/{topic}.md. Drop nothing and reword nothing. - Where a section moved, leave one line in SKILL.md saying when to read it, e.g. "Before any course operation, read
skills/{skill-name}/references/courses.mdwith the filesystem tool's readFile." - A reference file over 100 lines starts with a short table of contents.
- A skill with a
references/folder MUST listfilesysteminjclaw-tools, so it is never offered to an agent that cannot read its references.
Frontmatter layout
JClaw skills use the Agent Skills format (agentskills.io), the same one Claude reads, so a skill can be exported to Claude unchanged. Only name, description, license, compatibility, allowed-tools and metadata may sit at the top level of the frontmatter. JClaw's own entries all go under metadata, and every value there is a string:
Entry under metadata | What it holds |
version | System-managed — see the version note below |
author | Your agent name |
jclaw-icon | One emoji |
jclaw-tools | The JClaw tools the skill uses, separated by spaces |
jclaw-commands | The binaries the skill ships in tools/, separated by spaces |
allowed-tools is Claude's list of tools to run without asking; JClaw ignores it. Declare the tools a skill needs in jclaw-tools.
The description says what the skill does and when to use it, in at most 1024 characters and without < or >. Write it as description: >- with the text on the next line, indented two spaces, so a colon or # inside it stays part of the text.
Tool Catalog (authoritative)
Every skill MUST declare the exact tools it needs in the jclaw-tools entry under metadata. The authoritative list of valid tool names lives in the ## Tool Catalog section of your system prompt — it is generated live from the running JClaw build and filtered to the tools this specific agent has enabled, so every name in the table is guaranteed to be callable. Pick ONLY from the names in that table. If a name isn't in the Tool Catalog section, it either doesn't exist or is disabled for this agent, and either way the skill cannot use it.
Commands Catalog (shell binaries the skill bundles)
Separate from jclaw-tools — which names JClaw tools the skill consumes (exec, filesystem, browser, ...) — a skill that ships executable binaries in its tools/ folder MUST declare them in the jclaw-commands entry under metadata. jclaw-commands drives the per-agent shell allowlist: at promotion time these exact names become the blessed set for this skill in the global registry, and at skill-install time they are snapshotted into the consuming agent's effective shell allowlist so the agent can run them via exec.
Before writing jclaw-commands for a skill that ships binaries in tools/, read skills/skill-creator/references/commands-rules.md with the filesystem tool's readFile: every executable in tools/ must be listed by basename, and every listed name must exist there.
Author field
Every skill MUST include an author entry under metadata. The value is the name of the agent creating the skill — i.e., your own agent name, substituted from your Environment section of the system prompt (its Agent name: line). Operators use this to see which agent authored which skill when auditing the global registry after promotion, and to route bug reports back to the right agent's workspace.
- Use the agent's literal name, not a description. If that line says
main, writeauthor: main;research-bot, writeauthor: research-bot. - The value is a single unquoted YAML scalar:
author: main(no list, no object). - When refactoring an existing skill, leave the existing
authorvalue alone — it records the original creator. Only edit it if the user explicitly asks to reassign authorship.
Icon field
Every skill MUST include a jclaw-icon entry under metadata — a single emoji, in double quotes, that visually represents the skill.
- Pick one emoji only (e.g.,
🛠️,📺,🍽️). Never use text, ASCII art, or multiple emojis. - Choose an icon relevant to the skill's purpose. If unsure, default to
🛠️for general utility skills. - When creating a new skill, assign the icon yourself based on the skill name and description. If the user specifies a preference, use theirs; otherwise pick the most fitting emoji (e.g.
📺for video/movie skills,🍽️for restaurant skills,📇for contact/ business-card skills). - When refactoring an existing skill that already has a
jclaw-icon, leave it alone unless it's clearly wrong (e.g. a restaurant skill using💀).
Creating a New Skill
- Ask the user what the skill should do. Get a clear name and description.
- Determine required tools. Walk through the steps the skill will perform and pick EVERY tool it will need from the
## Tool Catalogsection of your system prompt. Be exhaustive but exact: do not add tools the skill will not use, and do not omit tools the skill cannot work without. Read each tool's description in the Tool Catalog and match it against what the skill actually does.- Only use names that appear verbatim in the Tool Catalog table. If a capability isn't in the catalog, the skill cannot do it.
- Because the Tool Catalog is already filtered to this agent's enabled tools, any name you pick from it is guaranteed to be callable — no pre-flight check needed.
- Pure reasoning / computation only (no I/O, no external data) →
jclaw-tools: ""(empty string). Do NOT invent tools for tasks the LLM can answer on its own. Example: "compute 2+2" or "rephrase this sentence" need zero tools.
- Determine bundled commands. If the skill will ship executable binaries under
tools/, list every binary's basename injclaw-commands. If the skill ships no binaries, usejclaw-commands: "". See the Commands Catalog section above for rules. A skill that uses theexectool but calls only system commands already in the global allowlist (git,ls, etc.) still ships zero commands —jclaw-commandsonly covers binaries the skill itself contributes. - Draft the SKILL.md content:
- YAML frontmatter in the layout above:
nameanddescriptionat the top level, thenmetadata:holdingauthor(your own agent name — see the Author field section),jclaw-icon(a single emoji; see Icon field below),jclaw-tools(the exact list from step 2) andjclaw-commands(the exact list from step 3) versionis system-managed — you never hand-write it (the filesystem tool injects it undermetadata; see the version note below).- A clear title and purpose
- Step-by-step instructions the agent should follow
- Reference each declared tool by name in the body
- If the skill has entries in
jclaw-commands, reference each bundled binary by its path in the body (e.g.,tools/wacli) so the reader can find it - Example inputs and expected outputs
- Edge cases and error handling
- Output Location: If this skill generates files (HTML diagrams, documents, etc.), include:
Outputs are written to \{skill-name}/` at the root of the agent's workspace (e.g., `my-skill/`).` - Count the characters: a draft over 18,000 is split into
references/as the SKILL.md size limit section describes. - Leave the
versionentry out by default. When you omit it, the system auto-bumps the patch component on every material write (e.g.,1.0.3 → 1.0.4) and new skills start at1.0.0. Set an explicitversiononly when the user asks to promote the skill forward — e.g., "bump to v1.0.0", "promote to 1.1", "this is a breaking change, make it 2.0.0". In that case, addversion: "X.Y.Z"undermetadatawith your intended target. The value MUST be strictly greater than the next auto-bump target; anything lower or invalid is silently ignored and the system uses its auto-bump instead. Patterns: minor bump (new feature)1.0.3 → 1.1.0, major bump (breaking change)1.2.0 → 2.0.0, stable promotion from alpha0.0.6 → 1.0.0. A version-only promotion (no other content changes) can be done with a singleeditFilethat replaces the existingversion: "…"line.
- YAML frontmatter in the layout above:
- Create the skill using the filesystem tool:
- Create the directory:
skills/{skill-name}/ - Write
skills/{skill-name}/SKILL.mdwithwriteFile(brand-new files usewriteFile; existing files should useeditFile— see the Refactoring section). - If credentials are needed, create
credentials/with placeholder files - If binary tools are needed, create
tools/with documentation. Every binary dropped here MUST also appear injclaw-commands, and every name injclaw-commandsMUST correspond to a file intools/. - Creating multiple files at once? Use
applyPatchto add several files atomically — it validates all ops before touching disk, so you won't end up with half a skill on a parse error. Example:*** Begin Patch/*** Add File: skills/foo/SKILL.md/+---/+name: foo/ ... /*** End of File/*** Add File: skills/foo/credentials/api.json/ ... /*** End Patch.
- Create the directory:
- Confirm creation. Tell the user the declared
jclaw-toolsandjclaw-commandslists so they can verify. If the skill ships binaries, remind the user that installing this skill to another agent will grant that agent execution rights for those exact command names via the shell allowlist.
Rules for the jclaw-tools entry
- Write the names on one line, separated by spaces:
jclaw-tools: tool_a tool_b— substitute real names from the Tool Catalog. - Use an empty string if the skill uses no tools at all:
jclaw-tools: "" - Tool names are case-sensitive and MUST match the Tool Catalog exactly.
- NEVER invent tool names. If a name isn't in the Tool Catalog section of your system prompt, it doesn't exist. Common mistakes: writing
readFileinstead offilesystem,shellinstead ofexec,httpinstead ofweb_fetch. - The declared list must equal the set of tools actually referenced in the skill body — no more, no less.
Self-modification restriction
skill-creator itself is read-only for every agent except main. Only the main agent can modify the skill-creator skill. All other agents can use skill-creator to create or refactor OTHER skills, but cannot alter skill-creator's own SKILL.md or any file inside skills/skill-creator/. If a user asks a non-main agent to modify skill-creator, explain: "I cannot modify my own skill-creator — only the main agent can. If you want skill-creator updated, modify it on the main agent and promote it to the global registry, then drag it from global onto my agent card to get the new version."
If the global skill-creator is updated to a newer version, out-of-date copies on non-main agents are automatically hidden from <available_skills> — the agent cannot use skill-creator again until the user drags the updated version from global onto my agent card.
Refactoring an Existing Skill
When asked to refactor or update an existing skill, or when you notice a skill that doesn't follow the standard structure:
- Audit the existing skill directory by listing all files and subfolders.
- Identify violations and changes needed:
- Any binary files in the root folder or
credentials/→ must move totools/ - Any credential/config files in the root folder → must move to
credentials/ - Any files other than SKILL.md in the root folder → categorize and move to the correct subfolder
- Missing YAML frontmatter in SKILL.md → add it
- JClaw entries at the top level of the frontmatter (
version,author,icon,tools,commands) → move them undermetadataasversion,author,jclaw-icon,jclaw-toolsandjclaw-commands, lists written as space-separated strings. The filesystem tool also does this when it saves the file. - Missing
jclaw-icon→ add it. Pick a single emoji relevant to the skill. - Non-kebab-case skill name → rename the folder
- Missing
jclaw-commands→ add it. Populate from binaries intools/(basenames), orjclaw-commands: ""if none. - Binaries present under
tools/that aren't listed injclaw-commands→ either add them to the list (if they're intended for execution) or delete them (if they're leftovers). No dormant binaries. - SKILL.md over 20,000 characters → split it into
references/as the SKILL.md size limit section describes. - Missing
author→ add it undermetadata. For legacy skills with no recorded author, setauthorto the agent name that's doing the refactor (i.e., your own agent name from your Environment section). Do NOT invent a historical author.
- Any binary files in the root folder or
- Move files to the correct locations using the filesystem tool.
- Update SKILL.md to reference the new file paths (e.g.,
tools/wacliinstead of./wacli). - Update the SKILL.md with
editFile, notwriteFile. For any refactor that touches an existing SKILL.md, useeditFilewith a batch of{oldText, newText}entries. This is dramatically more efficient than rewriting the whole file and is also the only way to edit a skill body that would exceed your output token budget as a singlewriteFileargument. EacholdTextmust appear exactly once in the file — include enough surrounding context (a surrounding line or two) to guarantee uniqueness. For cross-file refactors (e.g., moving a binary from the skill root intotools/AND updating SKILL.md to reference the new path), useapplyPatchto do both changes atomically in one tool call. Leave theversionentry alone by default — the filesystem tool auto-bumps the patch component on every material write. Only set an explicitversionwhen the user asks to promote the skill forward (e.g., "bump to v1.0.0", "promote to 2.0", "this is a breaking change"); in that case include aversion: "X.Y.Z"edit in the same batch, with a value strictly greater than the auto-bump target. The filesystem tool response will quote the final version — report it to the user. - Verify the final structure matches the standard layout.
- Report what was changed and quote the new version as reported by the filesystem tool.
Example
For a worked example of a skill folder and its SKILL.md (one with binaries and one prompt-only), read skills/skill-creator/references/examples.md with the filesystem tool's readFile.
Output File Locations
Skills that generate files (HTML diagrams, courses, reports, etc.) MUST store output in {skill-name}/ at the root of the agent's workspace and link each file for download. When writing such a skill, read skills/skill-creator/references/output-locations.md with the filesystem tool's readFile for the rules and an example.
Guidelines
- Keep skill names short and descriptive (kebab-case)
- Write clear, actionable instructions that an LLM can follow
- Reference tools ONLY by the exact names from the live Tool Catalog in your system prompt — nothing else is valid
- Skills should be focused on one task — create multiple skills for complex workflows
- Skills you create go into your workspace and are available only to you
- An admin can promote a skill to global by copying it to the shared skills directory
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

