skill-creator
Create new skills or refactor existing skills to follow the standard directory structure.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create new skills or refactor existing skills to follow the standard directory structure.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Read a business card image, extract contact details (name, phone, email, company, etc.), append them to a Google Sheet, then send a welcome email and WhatsApp message to the contact.
>-
Fetch and summarize YouTube video transcripts using a residential IP proxy to bypass cloud IP blocks.
Create, inspect, and edit Microsoft PowerPoint presentations and PPTX decks with reliable layouts, templates, placeholders, notes, charts, and visual QA.
Perform JIRA operations using the MCP server as primary, with automatic fallback to REST API for operations that don't work via MCP (e.g., story points via Agile estimation endpoint, epic linking via parent field). Includes sprint workflow helpers.
Produce thoughtful design artifacts (slide decks, prototypes, mockups, landing pages, dashboards) using HTML/CSS/JS/SVG as the medium.
| name | skill-creator |
| description | Create new skills or refactor existing skills to follow the standard directory structure. |
| version | 1.1.2 |
| author | main |
| tools | ["filesystem"] |
| icon | 🛠️ |
You help the user create new skills or refactor existing skills in your workspace to follow the 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
└── tools/ # Binary tools and their docs (optional)
├── {binary} # Executable/binary files
└── *.md or *.txt # Usage documentation for the tools
tools/ folder. No binaries in the root folder or credentials/ folder.credentials/ folder may ONLY contain text files (json, txt, env, yaml, properties).SKILL.md and the two subfolders.web-scraper, slack-notifier).Every skill MUST declare the exact tools it needs in a tools: YAML list in its frontmatter. 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.
Separate from 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 a commands: YAML list in the frontmatter. 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.
commands: fieldcommands: [wacli, wacli-setup].tools/ folder. No paths, no arguments, no wildcards. ./tools/wacli on disk becomes wacli in the list.commands: []. Prompt-only skills, document generators, and reasoning-only skills all fall here.tools/. Declared-but-missing binaries fail the promotion malware scan and the install snapshot.tools/ MUST appear in commands:. Undeclared binaries are dormant — the agent can see them on disk but can't run them because they're not in its shell allowlist.wacli, not WACLI or wacli.sh.Every skill MUST include an author: field in its frontmatter. 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 (the line beginning Agent:). 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.
Agent: main, write author: main. If it says Agent: research-bot, write author: research-bot.author: main (no list, no object).author: value alone — it records the original creator. Only edit it if the user explicitly asks to reassign authorship.Every skill MUST include an icon: field in its frontmatter — a single emoji that visually represents the skill.
🛠️, 📺, 🍽️). Never use text, ASCII art, or multiple emojis.🛠️ for general utility skills.📺 for video/movie skills, 🍽️ for restaurant skills, 📇 for contact/ business-card skills).icon:, leave it alone unless it's clearly wrong (e.g. a restaurant skill using 💀).## Tool Catalog section 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.
tools: [] (empty list). Do NOT invent tools for tasks the LLM can answer on its own. Example: "compute 2+2" or "rephrase this sentence" need zero tools.tools/, list every binary's basename in the commands: field. If the skill ships no binaries, use commands: []. See the Commands Catalog section above for rules. A skill that uses the exec tool but calls only system commands already in the global allowlist (git, ls, etc.) still ships zero commands — commands: only covers binaries the skill itself contributes.name, description, author (your own agent name — see the Author field section), tools: (the exact list from step 2), commands: (the exact list from step 3), and icon (a single emoji; see Icon field below)version: is system-managed — you never hand-write it (the filesystem tool injects it; see the version note below). It has no slot in the authored order above precisely because you don't author it; when the system adds it, it sits directly after description.commands:, reference each bundled binary by its path in the body (e.g., tools/wacli) so the reader can find itOutputs are written to \{skill-name}/` at the root of the agent's workspace (e.g., `my-skill/`).`version: field 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 at 1.0.0. Set an explicit version: only 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, add version: X.Y.Z to the frontmatter with 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 alpha 0.0.6 → 1.0.0. A version-only promotion (no other content changes) can be done with a single editFile that replaces the existing version: line.skills/{skill-name}/skills/{skill-name}/SKILL.md with writeFile (brand-new files use writeFile; existing files should use editFile — see the Refactoring section).credentials/ with placeholder filestools/ with documentation. Every binary dropped here MUST also appear in the frontmatter commands: list, and every name in commands: MUST correspond to a file in tools/.applyPatch to 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.tools: and commands: lists 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.tools: fieldtools: [tool_a, tool_b] — substitute real names from the Tool Catalog.tools: []readFile instead of filesystem, shell instead of exec, http instead of web_fetch.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.
When asked to refactor or update an existing skill, or when you notice a skill that doesn't follow the standard structure:
credentials/ → must move to tools/credentials/icon: key in frontmatter → add it. Pick a single emoji relevant to the skill.commands: key in frontmatter → add it. Populate from binaries in tools/ (basenames), or commands: [] if none.tools/ that aren't listed in commands: → either add them to the list (if they're intended for execution) or delete them (if they're leftovers). No dormant binaries.author: key in frontmatter → add it. For legacy skills with no recorded author, set author: to the agent name that's doing the refactor (i.e., your own agent name from your Environment section). Do NOT invent a historical author.tools/wacli instead of ./wacli).editFile, not writeFile. For any refactor that touches an existing SKILL.md, use editFile with 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 single writeFile argument. Each oldText must 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 into tools/ AND updating SKILL.md to reference the new path), use applyPatch to do both changes atomically in one tool call. Leave the version: field alone by default — the filesystem tool auto-bumps the patch component on every material write. Only set an explicit version: when 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 a version: 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.whatsapp-notifier/
├── SKILL.md
├── credentials/
│ └── api-config.json # WhatsApp API credentials
└── tools/
├── wacli # WhatsApp CLI binary
└── README.md # Usage docs for the binary
Note: the version: line is omitted from the frontmatter you write — the filesystem tool injects it deterministically when the file is saved. The author: line uses your own agent name (the example below assumes the main agent is creating this skill).
Output Location: If this skill generates files (HTML, documents, etc.), store them in {skill-name}/ at the root of the agent's workspace (e.g., my-skill/) so users can easily find and download them.
---
name: whatsapp-notifier
description: Send WhatsApp messages using the wacli tool
author: main
tools: [exec, filesystem]
commands: [wacli]
icon: 💬
---
# WhatsApp Notifier
When asked to send a WhatsApp message:
1. Read credentials from `credentials/api-config.json` using the `filesystem` tool
2. Use the `exec` tool to run `tools/wacli` to send the message
3. Confirm delivery status to the user
Compare with a prompt-only skill (no binaries, no file I/O):
---
name: sentence-rephraser
description: Rephrase a sentence in a different tone
author: main
tools: []
commands: []
icon: ✍️
---
# Sentence Rephraser
Rephrase the user's sentence in the requested tone. No tool calls needed — reply directly.
Skills that generate files (HTML diagrams, courses, reports, etc.) MUST store output in a directory matching the skill name at the root of the agent's workspace:
{skill-name}/ # e.g., visual-explainer/
└── {output-files} # e.g., black-hole-guide.html
{skill-name}/ at the root of the agent's workspace (e.g., visual-explainer/)filesystem tool to create the directory if it doesn't existblack-hole-guide.html).agent/ or other hidden directories[filename](<relative/path>) so the user can download itA visual-explainer skill generating an architecture diagram:
1. Create directory `visual-explainer/` at the root of the workspace if it doesn't exist
2. Write the HTML file to `visual-explainer/jclaw-architecture.html`
3. Report: `[jclaw-architecture.html](visual-explainer/jclaw-architecture.html)`