plugins/agent-scaffolders/skills/create-skill/SKILL.md
Scaffolds the filesystem structure for a new agent skill: creates the directory layout, writes a starter SKILL.md, generates evals/evals.json, references/, scripts/, and assets/ as needed, and runs a discovery interview to capture name, purpose, and trigger phrases before writing any files. Use when the user says "create a new skill", "scaffold a skill", "generate a skill", "new skill setup", or "make a skill directory". Does not handle content improvement for existing skills — that is handled by os-skill-improvement.
npx skillsauth add richfrem/agent-plugins-skills create-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scaffolds a complete, standards-compliant agent skill directory. Handles filesystem operations, template rendering, name validation, and discovery — then hands off to the TDD quality gate.
Scope: This skill owns structure. It does not own content quality or routing accuracy.
Those are governed by os-skill-improvement (see cross-plugin handoff below).
$ARGUMENTS — optional skill name or brief use-case description passed as initial
context to the discovery phase. Omit to start with open discovery.Before writing any files, capture all required inputs:
link-validator). Validate: no spaces,
no special characters, no shell injection sequences (reject names containing ;, &, |, $, `).allowed-tools does it require?If $ARGUMENTS is provided, treat it as a starting point and confirm rather than re-ask.
Present the proposed directory layout before writing anything:
plugins/<plugin>/skills/<skill-name>/
SKILL.md
evals/
evals.json
references/
acceptance-criteria.md
./scripts/ (if the skill needs Python helpers)
./assets/ (if the skill needs static resources)
Confirm with the user before proceeding. If a directory with that name already exists:
"Warning:
<path>already exists. Overwrite? (yes/no)" Do NOT overwrite without explicit confirmation.
Create the confirmed directory structure. Standards enforced by acceptance-criteria.md:
scripts/*.py. Never generate .sh bash scripts.scripts/ directory, create a file-level symlink in skills/<skill>/scripts/ pointing to
../../../scripts/<canonical_name>.py. Never duplicate the file. The symlink filename may differ
from the target (e.g. execute.py → exploration_optimizer_execute.py). Create with:
ln -s ../../../scripts/<canonical_name>.py skills/<skill>/scripts/<name>.py
Verify the symlink resolved: python -c "import os; print(os.path.exists('skills/<skill>/scripts/<name>.py'))"
must print True. On Windows/core.symlinks=false machines, git will check these out as
plain-text "stand-in" files — run bulk_symlink_fixer.py to restore them after checkout.name, description (use the purpose from Phase 1; MUST NOT exceed 1024 characters),
allowed-tools. Body: stub sections for Identity, Steps, and Common Failures.should_trigger schema:
{ "id": "eval-1-positive", "type": "positive", "prompt": "REPLACE", "should_trigger": true }
{ "id": "eval-2-negative", "type": "negative", "prompt": "REPLACE", "should_trigger": false }
⚠️ Schema requirement: Always use
should_trigger: true/false. The legacyexpected_behaviorstring field is ignored by the eval scorer and will produce 0% accuracy.
references/acceptance-criteria.md with the
acceptance criteria captured in Phase 1.[!TIP] See INSTALL.md for instructions on how to install missing dependencies.
If os-skill-improvement is available, hand off immediately after scaffolding:
Invoke os-skill-improvement on the newly scaffolded skill at <path>.
The RED scenario is: [trigger phrase from Phase 1 discovery].
Run the RED-GREEN-REFACTOR cycle to verify routing accuracy before shipping.
If not available, advise the user:
Scaffold complete. To verify routing accuracy and trigger description quality, ensure **os-skill-improvement** is installed. See [INSTALL.md](https://github.com/richfrem/agent-plugins-skills/blob/main/INSTALL.md).
✅ Scaffolded: plugins/<plugin>/skills/<skill-name>/
Files created: SKILL.md, evals/evals.json, references/acceptance-criteria.md
Quality gate: [PASSED via ~~skill-improvement | SKIPPED — ~~eval-gate not installed]
Next: fill in REPLACE placeholders in evals/evals.json, then run ~~eval-gate baseline
$ARGUMENTS: begin with Phase 1 discovery — do not skip to scaffolding~~skill-improvement capability — that skill owns content
quality and routing improvement. create-skill is for net-new scaffolding only.acceptance-criteria.md — structural pass/fail criteriafallback-tree.md — error handling proceduresreferences/ADRs/. Always consult them for standards on plugin architecture, shared scripts, cross-plugin dependencies, symlinking, and loose coupling to avoid repeating yourself.~~skill-improvement (~~eval-gate capability — see CONNECTORS.md): TDD methodology, RED scenario protocol, eval gate.~~eval-gate (~~eval-gate capability — see CONNECTORS.md): autoresearch eval loop for skill optimization.tools
Ingests repository files into the ChromaDB vector store. Builds or updates the vector index from a manifest or directory scan using ingest.py. Use when new files need to be indexed or the vector store is out of date. <example> user: "Index these new plugin files into the vector database" assistant: "I'll use vector-db-ingest to add them to the vector store." </example> <example> user: "The vector store is missing recent files -- update it" assistant: "I'll use vector-db-ingest to re-index the changes." </example>
data-ai
Removes stale and orphaned chunks from the ChromaDB vector store for files that have been deleted or renamed. Use after files are removed or moved to keep the vector index in sync with the filesystem. <example> user: "Clean up the vector store after I deleted some files" assistant: "I'll use vector-db-cleanup to remove orphaned chunks." </example> <example> user: "The vector database has chunks for files that no longer exist" assistant: "I'll run vector-db-cleanup to prune them." </example>
testing
Audit Vector DB coverage -- compares the live filesystem manifest against the ChromaDB index to identify coverage gaps.
development
3-Phase Knowledge Search strategy for the RLM Factory ecosystem. Auto-invoked when tasks involve finding code, documentation, or architecture context in the repository. Enforces the optimal search order: RLM Summary Scan (O(1)) -> Vector DB Semantic Search -> Grep/Exact Match. Never skip phases.