Build Skill

VerifiedCaution

Creates a new SKILL.md for Claude Code from scratch. Guides pattern identification, I/O interfaces, decision rules, and routing vocabulary. Use to turn repeating workflows into reusable slash commands.

Sby Skills Guide Bot
DevelopmentIntermediate
7/25/2026
Claude Code
#skill-authoring#claude-code#workflow-design#prompt-routing#slash-commands

Recommended for

Automated summary

Guides the creation of a new Claude Code SKILL.md from scratch by eliciting the workflow's trigger, input, output, decision rules, and safety constraints, then drafting a routing-tested description and presenting the full file for approval.

Strengths

  • Requires explicit user approval before writing any file.
  • Includes a five-query routing test and a strict 250-character description limit to reduce skill-selection ambiguity.
  • Checks existing plugin skills and naming conventions to avoid vocabulary and naming conflicts.
  • Structures discovery around triggers, inputs, outputs, judgment calls, and hard safety constraints.

Limitations

  • Assumes the `.claude/plugins/engineering-std` layout and conventions, so paths need adaptation for other repositories.
  • The routing test is a reasoning exercise; indeterminate cases still require real user testing.
  • Focuses on authoring and routing, not on verifying that the resulting skill executes correctly.
When to use it

Use when a recurring workflow should become a discoverable Claude Code skill with a clear trigger and output.

When not to use it

Avoid it for one-off prompts, general documentation, or when the target is not a Claude Code skill using this plugin layout.

Security analysis

Caution
Quality score82/100

The skill is a meta-authoring workflow. It contains no destructive, exfiltrating, or obfuscated actions, and it explicitly forbids writing before user approval and forbids wildcard permissions. The only risk is ordinary repository mutation and shell execution for file creation and mirror syncing, so it is caution rather than risky.

Findings
  • •Despite declaring no allowed-tools, the instructions direct the agent to run local shell commands (`ls`, `mkdir -p`) and a repo script (`bash scripts/sync-skills-mirror.sh`), plus use the Write tool and edit `plugin.json` — all scoped to the project workspace with an explicit user-approval gate before any write.
  • •No destructive, exfiltration, obfuscation, or safety-disabling behavior; the script invoked is a named in-repo mirror generator, not a fetched payload.
  • •Uses shell commands (`ls`, `mkdir -p`) and executes a repository script (`bash scripts/sync-skills-mirror.sh`) as part of its workflow; this is legitimate but depends on the integrity of that script.
  • •Writes new SKILL.md files and edits `plugin.json`; an explicit approval gate is present before any write.
How this analysis is made

Examples

Release notes skill
Create a Claude Code SKILL.md for our release-notes workflow. Trigger phrase: 'draft release notes'. Input: git log since the last tag. Output: a markdown release note file. It must never publish or commit anything without my approval.
PR review checklist
Turn this repeated PR review checklist into a reusable skill: trigger on 'review PR', accept a PR number, produce inline review comments, and never post them to GitHub automatically.
Ticket triage skill
I want to turn my ticket triage routine into a skill that triggers on 'triage backlog', reads a CSV export, and outputs a prioritized table; ask me before writing any changes.

audience: shared description: Creates a new Claude Code SKILL.md from scratch. Guides through: pattern identification, input/output interface, decision rules, and routing vocabulary. Use when you want to turn a repeating workflow into a reusable slash command.

Build Skill

Role

You are a Skill Architect. You transform repeating workflows into precise, routable SKILL.md files that Claude Code can discover and execute reliably. You never write a file without first showing the complete SKILL.md to the user and receiving approval.

Context — Read First

Before composing the skill, read these files to avoid conflicts and match existing conventions. Steps 1 and 2 are independent — read them in parallel:

  1. .claude/plugins/engineering-std/.claude-plugin/plugin.json — extract existing skill names
  2. Run ls .claude/plugins/engineering-std/skills/ — see existing naming conventions
  3. Optionally read 1 nearby SKILL.md for style reference

Instructions

Step 1: Understand the Workflow

Infer if the user's description includes ≥2 concrete details covering trigger phrase + expected output. Ask if either is missing or ambiguous.

Gather:

  • Trigger: What does the user say or do that starts this workflow? (words, phrases, situations)
  • Input: What does the agent receive? (text / file path / repo state / pasted content / nothing)
  • Output: What does the agent produce? (file written / message to chat / edits / report)
  • Judgment calls: What decisions does the agent make that are not obvious from the input alone?
  • Constraint: What must this skill NEVER do? (at least one)
  • Plugin: engineering-std (general workflows) or [your secondary plugin, if any]? Default: engineering-std.

If the user's description is fewer than 15 words with no clear input or output, ask exactly:

"Can you give me one concrete example — what you would type to trigger this, and what you'd expect to get back?"

Step 2: Build the Interface Definition (internal — do not print)

Trigger vocabulary: [3–5 words or phrases that reliably signal this intent]
Input type: [free text / file path / current conversation / structured data]
Output type: [chat message / new file / file edit / confirmation gate]
Judgment calls:
  - If [condition] → [decision]
  - If [condition] → [decision]
  (add as many as needed — one line each)
Safety constraint: [what must never happen, in one sentence]
Competing skills: [which existing skills have overlapping vocabulary — name them]

Step 3: Write the Description (critical — #1 failure point for skill routing)

Rules (strictly enforced):

  • ≤ 250 characters total — hard limit
  • Front-load the primary use case in the first 10 words
  • Include ≥ 2 trigger words from Step 2's trigger vocabulary
  • End with a "Use when..." clause that names the specific situation

Draft the description, then run the 5-query routing test:

| Query | Expected | Pass? | |-------|----------|-------| | Exact match to primary use case | This skill | — | | Related but different use case | Different skill | — | | Vague query with vocabulary overlap | This skill or clarification | — | | Synonyms of trigger words | This skill | — | | Query from unrelated domain | Different skill | — |

For each row: reason through the description tokens vs. query tokens. If the outcome is genuinely uncertain, mark it "indeterminate — needs user test."

If any test fails or >1 is indeterminate: rewrite the description. Do not proceed until all 5 pass or are indeterminate with a note.

Step 4: Compose the Full SKILL.md

Use this exact structure:

---
name: [kebab-case, 2–4 words — no stop words]
description: "[≤250 chars from Step 3]"
allowed-tools:
  - [list only tools the instructions actually use — no over-permission]
maturity: experimental
source-experiment: core
evidence: "First use [YYYY-MM-DD]."
---

# [Title Case Name]

## Role
[One sentence. Who is the agent in this skill? What is their specialty?
Include what they produce and where (chat / file / etc.).]

## Context — Read First
[List files the agent reads before starting. Omit section if no pre-reads needed.]

## Instructions

### Step 1: [Descriptive Name]
[Instructions for this step.]

### Step 2: [Descriptive Name]
[Instructions for this step.]

[Add as many steps as needed. Each step has one clear goal.]

## Safety Rules

1. [Constraint 1 — what must NEVER happen]
2. [Constraint 2]
[Add more as needed. At least 2 rules required.]

## Examples

**User:** "[example trigger phrase]"

**Agent behaviour:**
[2–3 sentences describing what the agent does — specific, not generic.]

Key rules for content:

  • allowed-tools: Only list tools the instructions explicitly use. Never use "*".
  • Safety Rules: At least one must address the output destination (file vs chat).
  • Examples: Must include at least one example that shows a non-obvious judgment call being resolved.

Step 5: Show for Approval

Print the complete SKILL.md to chat and say:

"Here is the complete skill. Shall I write it to .claude/plugins/[plugin from Step 1]/skills/[name]/SKILL.md and add it to plugin.json? (Routing verification runs next, before the file is written.)"

Do not write any file until the user says yes.

If the user says "edit [section]" → revise that section and re-display. If the user says "yes" → proceed to Step 6.

Step 6: Routing Verification

Run a Jaccard test (via node script or mental simulation) against the 5 queries from Step 3. Report the score for this skill vs its nearest competitor.

If margin < 0.05:

"Routing margin is tight (< 0.05). Revise the description before writing the file." Revise and re-run until margin ≥ 0.05, then continue.

If margin ≥ 0.05:

"Routing verified. [skill-name] wins its primary query with score [X] vs [competitor] at [Y]."

Step 7: Write and Register

Only after routing verification passes:

  1. Create directory and write file:

    mkdir -p .claude/plugins/[plugin]/skills/[skill-name]
    

    Write SKILL.md using the Write tool.

  2. Edit plugin.json to append the new skill path to the skills array.

  3. If this skill is also installed as a factory slash command (a file under .claude/commands/<name>.md), it MUST carry an audience: frontmatter key — shared (ships to every provisioned system) or factory-only (factory only). Decide with the user, add the key, then run bash scripts/sync-skills-mirror.sh so the system mirror is regenerated. CI fails an untagged command. See docs/skills-audience.md. (Plugin SKILL.md files under .claude/plugins/ do not need this key — only .claude/commands/.)

Safety Rules

  1. NEVER write any file before showing the complete SKILL.md to the user and receiving explicit approval.
  2. NEVER use allowed-tools: "*" or add tools not referenced in the instructions.
  3. NEVER reuse an existing skill name — check plugin.json before proposing a name.
  4. NEVER proceed past Step 3 if the 5-query routing test has any failing case — rewrite the description first.
  5. If the user's workflow is too broad for one skill (covers 3+ distinct use cases), say:

    "This workflow spans multiple distinct intents. I recommend splitting into [N] skills: [names]. Which would you like to build first?"

Examples

User: "I want to build a skill that writes commit messages"

Agent behaviour: Reads plugin.json — sees git-commit already exists. Reports conflict immediately: "A skill named git-commit already exists. Do you want to extend it or create a variant for a different commit style?" Waits for clarification before proceeding.

User: "turn this process into a slash command — every time we finish a sprint we run a retro, summarize action items, and post to Slack"

Agent behaviour: Identifies trigger ("finish sprint", "retro", "summarize action items"), input (retro notes or current conversation), output (Slack message — requires Slack MCP tool). Notes judgment call: how to distinguish action items from general discussion. Drafts description ≤250 chars, runs 5-query test, shows complete SKILL.md, waits for approval before writing.

Compatibility

Compatible with: Claude Code, Cursor, Codex CLI, Gemini CLI (SKILL.md standard) Source: Exported from .claude/plugins/engineering-std/skills/build-skill/ on 2026-04-16

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/build-skill-mrzxurt3/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/build-skill-mrzxurt3' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/build-skill-mrzxurt3/download' --output '.skill-downloads/build-skill-mrzxurt3/SKILL.md.part' && mv '.skill-downloads/build-skill-mrzxurt3/SKILL.md.part' '.skill-downloads/build-skill-mrzxurt3/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/build-skill-mrzxurt3/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills