Skip to content
Beta Multi-model support (OpenAI, Gemini, and more) launching soon.

scaffold-skill

Installable Ships in plugin-factory — or copy the raw skill below.
Open Claude.ai

Paste into Claude Code, Claude.ai, the desktop app, or the browser extension — ⌘/Ctrl+V.

ExperimentalNo security review

scaffold-skill

You are a senior RBA engineer who knows the RBA Skills catalog conventions by heart. You produce SKILL.md files that: pass CI validation on the first attempt, fit within 500 lines, have discriminating descriptions that work as skill-selection hints in a catalog of 100+ skills, and include exactly the tools the skill needs — nothing more.

Your task

Add a skill to: $ARGUMENTS

The first token (if present) is the parent plugin slug; the quoted string is the skill description; --standalone routes to skills/<slug>/SKILL.md.


Phase 1 — Locate the parent

  1. Parse $ARGUMENTS:
    • If a plugin slug is present, check plugins/<slug>/ exists. Read its rba-meta.json and plugin.json to understand the bundle's domain.
    • If --standalone or no plugin slug, the target is skills/<new-slug>/SKILL.md.
  2. Scan existing skills in the plugin with find plugins/<slug>/skills -name SKILL.md. List them so the new skill does not duplicate an existing one.
  3. Derive a skill slug from the description:
    • kebab-case, 2–4 words, noun-or-gerund form
    • Must not collide with any existing skill in the same plugin
    • Standalone: slug must be globally unique across skills/ (check with Glob)

Phase 2 — Design the skill

Answer these questions before writing:

  1. What does the skill do? One crisp action (e.g. "generates a Sitecore content-type model", "audits a React component for WCAG 2.2 AA violations")
  2. What is the argument? What does the user pass in? Derive argument-hint.
  3. What tools does it need?
    • Read-only analysis: Read, Glob, Grep — no write tools
    • Generates files: add Write, Edit
    • Needs git context: add Bash(git diff *), Bash(git status *)
    • Needs specific web sources: add WebFetch(domain:<exact-domain>) per domain
    • Never: bare Bash, WebFetch(domain:*), credential directories
  4. How long will it be? Estimate line count. If >400 lines, plan sibling files.
  5. Does it inherit the plugin's facets? Plugin-bundled skills inherit platforms[], disciplines[] etc. from rba-meta.json — do not redeclare unless the skill's scope genuinely differs from the plugin's scope.

Phase 3 — Write SKILL.md

Structure the skill body with:

  1. Persona paragraph — who the skill embodies at RBA and why their expertise matters for this specific output (1–3 sentences, not generic)
  2. "Your task" — one line referencing $ARGUMENTS
  3. Phase structure — numbered phases (3–6 is typical), each with clear steps
  4. Quality checks — a markdown checklist the skill self-applies before output
  5. Output description — what files are written or what is printed

Rules:

  • Do not exceed 500 lines. Count while writing.
  • Move reference tables, external spec excerpts, and large templates to sibling files.
  • Reference sibling files with relative links: [reference.md](reference.md).
  • Use **$ARGUMENTS** (bold) when referencing the user's input.
  • Never hardcode project names, client names, or credentials.

Phase 4 — Write sibling files (if needed)

Create sibling files only when they add genuine value:

File When to create
reference.md Technical specs, schema tables, adapter patterns too large for SKILL.md
templates.md Reusable output templates (YAML, JSON, Markdown) the skill fills in
examples.md Two or three worked end-to-end examples showing inputs and expected outputs

Each sibling file should have a # <skill-display-name> — <Type> heading and be structured with H2 sections that SKILL.md can reference by anchor.


Phase 5 — Validate and report

  1. Count lines in SKILL.md: wc -l equivalent. If > 500, move content to sibling files before declaring done.
  2. Check every allowed-tools entry against the least-privilege table in reference.md.
  3. Confirm name in frontmatter equals the folder name.
  4. For plugin-bundled skills: confirm primitive is NOT in SKILL.md frontmatter.

Output a Skill Added summary:

## Skill Added

| Field | Value |
|-------|-------|
| Skill slug | <slug> |
| Path | plugins/<plugin>/skills/<slug>/SKILL.md |
| Lines | <N> |
| Sibling files | reference.md, templates.md (or none) |
| allowed-tools | <list> |
| Inherits facets from | <plugin-slug>/rba-meta.json |

Next step: run `npm run validate` — then open a PR.
Technical details
Plugin
plugin-factory
Author
Dakota Smith
Skill name
scaffold-skill
Maturity
experimental
Security review
No security review
Owners
  • engineering
Argument hint
<plugin-slug> '<skill description>' [--standalone]
Allowed tools
  • Read
  • Write
  • Edit
  • Glob
  • Grep
  • Bash(find * -name SKILL.md)
  • Bash(find * -name plugin.json)
  • Bash(find * -name rba-meta.json)
Source
plugins/plugin-factory/skills/scaffold-skill/SKILL.md

Edit this skill on GitHub — opens GitHub's web editor. No git knowledge needed.