Skill Creator: Meta Skill for Skill Lifecycle Management
Create, review, improve, audit, and maintain AI tool skills. Covers the full lifecycle from
initial draft through quality validation, cross-skill consistency checks, and trigger optimization.
This skill enforces the conventions established across the custom skill collection. It exists
because consistency is what makes skills predictable - a skill that follows the established
patterns activates reliably, reads clearly, and plays well with the rest of the collection.
When to use
Creating a new custom skill from scratch
Reviewing or improving an existing skill
Auditing the skill collection for consistency, overlaps, or contradictions
Validating versions, security references, or CVE mentions in skills
Optimizing a skill's description for better triggering accuracy
Checking cross-skill references and "Related Skills" sections
Troubleshooting why a skill isn't triggering or is triggering incorrectly
When NOT to use
Reviewing application code for correctness or bugs - use code-review
Auditing code for AI-generated patterns or style issues - use anti-slop
Running a full codebase audit across multiple dimensions - use full-review
Creating inline prompts within application code - use prompt-generator
Batch-improving a whole skill collection via evaluation loops - use skill-refiner
Syncing or refreshing third-party skills from upstream - handle that directly in the repo workflow
Updating project documentation after infrastructure changes - use update-docs
Writing application code, even if the code is for a tool a skill might use
AI Self-Check
Before returning any generated or modified skill, verify against this list:
Frontmatter complete: name, description, license, metadata.source (owner/repo for published collections or custom for unpublished skills), metadata.date_added (ISO), metadata.effort (low/medium/high)
Name spec-valid: lowercase alphanumeric + hyphens only, no leading/trailing/consecutive
hyphens, no reserved words (anthropic, claude), matches directory name
No XML tags in name or description fields (Anthropic platform restriction)
Description is trigger-optimized: starts with action verbs, includes trigger keywords, mentions related contexts, stays near 200 chars for the collection (240 warn, 600 hard max in validate-spec.sh; platform truncation happens later)
Compatibility field present (when skill requires specific tools/platforms): quotes values containing colons
Scope sections present: "When to use" with concrete scenarios, "When NOT to use"
cross-referencing related skills by bold name (e.g., use **skill-name**)
Workflow section with numbered steps: clear, sequential, actionable
Rules section at the end: non-negotiable constraints in imperative form
Style compliant: no banned words (per CLAUDE.md/AGENTS.md), ASCII by default
except approved markers such as · and output-contract box glyphs. No em-dashes, curly
quotes, ligatures, or --; use -. Check SKILL.md and references for banned words
Target ~500 lines: if over 500, extract to references/ with clear pointers. Hard max 600
Reference files use references/ relative paths: not hardcoded or tool-specific paths
All references verified: every tool, CLI flag, IaC resource, config snippet, and
example command confirmed against actual docs, --help output, or registry - not assumed
from training data. Specifically: tools exist and aren't deprecated/renamed, CLI flags are
real (AI models invent plausible ones constantly), Terraform providers/resources match the
registry, Ansible modules/params match ansible-doc, Helm values match upstream
values.yaml, K8s fields match the target API version. When web access is unavailable,
note unverified claims rather than blocking
Version numbers verified and dated: searched the web for latest stable version of each
tool, pinned with date (e.g., "v29.3.0 (March 2026)") so staleness is detectable
Cross-skill references are valid: every mentioned skill name actually exists
AI-age awareness: if the skill generates code, config, or structured files (including skill files), include an AI self-check section
Context budget justified: every section earns its token cost (see references/conventions.md)
Forward-tested (high-effort skills, when feasible): during review, a subagent used the skill on a realistic task without leaked context. This is a process check on the reviewer, not a content requirement on the skill - the skill does not need a "forward-test" section. The reviewer notes what was tested or skipped and why.
Current source checked: dated versions, CLI flags, API names, and support windows are verified against primary docs before repeating them
Hidden state identified: local config, credentials, caches, contexts, branches, cluster targets, or previous runs are made explicit before acting
Verification is real: final checks exercise the actual runtime, parser, service, or integration point instead of only linting prose or happy paths
Routing overlap checked: new or edited skills do not steal triggers from better-matched existing skills
Spec claims verified: frontmatter, metadata, and compatibility guidance match the current Agent Skills specification
Performance
Keep SKILL.md compact; move deep examples into references loaded on demand.
Prefer precise triggers over broad keyword lists that cause unnecessary skill loading.
Run lint/spec checks before prose polishing so structural failures surface early.
Best Practices
Write skills as operational instructions, not essays about a domain.
Include clear When to use/When NOT to use routing and realistic AI self-checks.
Keep public skills tool-agnostic unless a tool is intrinsic to the skill.
Treat install/copy/link steps as environment-specific. If skills are sourced directly from a
repo, edit and verify there instead of distributing to tool dirs unless asked.
Workflow
Before entering any mode, detect the operating context. This skill works on individual skills
or collections, whether inside a skill collection repo, a user's own project, or standalone.
Mode routing - pick the mode that matches the user's signal. Retrospective-update
requests are explicit permission to edit the library, so do not stop at a report-only pass:
User signal
Mode
"create a skill", "new skill for X", "turn this into a skill"
Mode 1 (Create)
"review my skill", "improve this skill", "is this skill good"
Mode 2 (Review)
"audit the collection", "check all skills", "health check skills"
Mode 3 (Audit)
"fix the description", "skill isn't triggering", "trigger overlap"
Mode 4 (Optimize)
"review the conversation", "update the skill library", "what did we learn"
Mode 5 (Retrospective Update)
When the signal is ambiguous (e.g., "look at my skill"), ask before committing - Create and
Review diverge quickly and re-running wastes context. Modes can chain: Create -> Review,
Review -> Optimize, Audit -> per-skill Review for flagged items.
For explicit retrospective-update requests, act without asking for confirmation unless the only
possible update is destructive or would create a new class-level skill with uncertain scope.
Find the collection root (if one exists): check for a skills/ directory (common
convention) or any path the user specifies. Different harnesses store skills in different
locations - if the default doesn't match, ask or accept a user-supplied path. If no
collection is found, skip collection-wide checks (cross-references, trigger overlap, audit
mode) and note what was skipped.
Check git and create a run branch: run git rev-parse --git-dir. If inside git,
create skill-creator/YYYY-MM-DD-HHMMSS from current HEAD before checks or edits unless
already on a task branch created for this run. Preserve dirty worktrees; branching is for
isolation, not cleanup. Without git, state "branch unavailable" in the final report and
fall back to file modification dates.
Single skill vs collection: Modes 1 (Create) and 2 (Review) work on individual skills
with or without a collection - collection-dependent steps become best-effort. Mode 3
(Audit) requires a collection. Mode 4 (Optimize) works standalone but benefits from
collection context for overlap analysis.
Mode 1: Create a New Skill
Step 1: Capture intent
Understand what the skill should do. Extract from conversation context:
Core task: what should the skill enable?
Trigger scenarios: what user phrases or contexts should activate it?
Output format: what does success look like?
Related skills: which existing skills overlap or complement this one?
If the user already described the workflow in the conversation (e.g., "turn what we just did into a
skill"), extract the steps, tools used, corrections made, and patterns observed.
Step 2: Research the domain
Before drafting, gather context:
Check existing skills for overlap (if a collection is available) - read the "When to use"
/ "When NOT to use" of potentially related skills. Don't create a skill that duplicates
existing coverage.
Verify tools exist - for every tool, library, CLI, or platform the skill references,
confirm it exists, is not deprecated or renamed, and is actively maintained. Search the web
or check the project's GitHub/registry page. AI models hallucinate tool names, flag names,
and API endpoints - treat every claim as unverified until checked. If a tool was replaced
(e.g., CDKTF is deprecated in favor of native HCL, Ingress is frozen with new features
going to Gateway API), reference the current recommended approach.
Check versions - search for the latest stable release of every tool mentioned. Don't
guess or rely on training data - versions go stale fast. Pin them with dates so staleness
is detectable later (e.g., "Docker Engine 29.3.0 (March 2026)").
Check security - search for recent CVEs, supply chain incidents, or known vulnerabilities
relevant to the domain. The custom skill collection tracks these actively - verify current
advisories rather than relying on specific CVE numbers from training data.
Check compliance - if the domain touches infrastructure, containers, CI/CD, auth, or data
handling, consider PCI-DSS 4.0 relevance. Many users work in regulated environments or run
self-hosted infrastructure where compliance matters.
Step 3: Draft the skill
Follow the structural pattern for the skill's effort tier in references/conventions.md (Section 3).
Key elements every custom skill needs:
Frontmatter: name, description, license, metadata block (see conventions Section 2)
"When to use" / "When NOT to use": concrete scenarios, cross-reference adjacent skills
Workflow: numbered steps, sequential, actionable
Rules: non-negotiable constraints at the end, imperative form
AI Self-Check: required when the skill generates code, config, or structured files
Reference Files / Related Skills: when applicable
For tool/platform skills, include a Target versions block with pinned versions and dates.
Writing guidelines:
Imperative form in instructions ("Check the config", not "You should check the config")
Explain why, not just what - models generalize from motivation
Don't use ALL CAPS for emphasis unless it's genuinely critical. Calm, direct instructions
outperform shouting across most modern models.
Include "What NOT to flag" or "What NOT to do" sections where false positives are likely
Use tables for reference data, prose for workflows, checklists for validation
Consider headless execution: skills may run in non-interactive contexts (Claude Code --bare,
Cursor Automations, Codex exec). Avoid blocking on user confirmation in steps that could
run unattended - provide sensible defaults or document assumptions instead
Step 4: Validate the draft
Run through the AI Self-Check above. Then:
Cross-reference check: grep the skill collection for every skill name mentioned in the draft.
Verify they exist and the characterization is accurate.
Trigger overlap check: compare the description against all other skill descriptions. Flag
any that share >50% of trigger keywords.
Convention check: compare frontmatter, structure, and style against 2-3 existing custom
skills in the same effort tier.
Script-runner reality check: if the collection uses helper scripts like lint-skills.sh
or validate-spec.sh, verify their expected input shape before trusting the result. Some
collections expect a parent directory containing many skill subdirectories, not a direct path
to one skill. For single-skill validation, stage the skill inside a temporary parent such as
<tmp>/skills/<skill-name>/SKILL.md and run the scripts against <tmp>/skills.
Step 5: Write the files
Write SKILL.md to the appropriate location: <collection-root>/<skill-name>/SKILL.md if
inside a collection, or the user's specified path for standalone skills
Write reference files (if any) to <skill-dir>/references/
If a collection inventory exists, update it and re-run cross-reference checks
If skill_manage cannot modify the target because the skill lives in an external repo or
non-managed directory, fall back to direct file edits with patch or write_file on the
actual repo paths. Do not stop at the tool limitation if the files are writable and the user
asked for the change in-place.
Step 6: Forward-test
Forward-testing has a subagent use the skill on realistic tasks without seeing your diagnosis.
Use it for high-effort skills and for medium-effort skills with multi-step or scripted workflows.
Skip it for low-effort wrappers, unavailable subagents, production-only access, long-running
infra, missing credentials, or explicit user opt-out; note the skip reason.
Pick 2-3 realistic tasks, including one edge case.
Launch with a real-user prompt and raw artifacts only.
Check whether the agent followed the workflow, missed steps, or hallucinated.
Clean up artifacts between iterations.
If forward-testing only succeeds with leaked context, tighten the skill instead of weakening
the test.
Mode 2: Review / Improve an Existing Skill
Step 1: Read the skill thoroughly
Read the SKILL.md and all reference files. No skipping - the whole point is catching issues.
Related Skills section present and accurate (when the skill interacts with other skills)
Target ~500 lines (SKILL.md body), hard max 600
Content checks:
Tools exist? Every tool, CLI, library, or platform named in the skill must be verified as
real, not deprecated, and not renamed. Search the web or check the project's GitHub/registry.
AI hallucinates tool names, CLI flags, and API endpoints constantly - treat every reference
as unverified until confirmed. If a tool was replaced, the skill should reference the
replacement (e.g., CDKTF deprecated in favor of native HCL, Ingress frozen with Gateway API
as the recommended path forward, lazy_static superseded by std::sync::LazyLock).
CLI flags and IaC resources real? Verify flags/subcommands against actual --help or docs.
For Terraform: confirm provider names and resource type arguments against the registry. For
Ansible: confirm module names and parameters against ansible-doc or Galaxy. For Helm:
confirm chart values against upstream values.yaml. For K8s: confirm API fields against
the target API version. AI invents plausible-sounding arguments for all of these.
Version numbers current? Search the web for latest stable versions of tools that appear in
normative claims (pinned versions, "Target versions" blocks, compatibility fields). Don't
verify every passing mention - focus on versions that drive behavior or could mislead.
Security references current? Check for new CVEs since the skill's date_added.
Cross-skill references valid (if a collection is available)? Every skill name mentioned must
exist as a published (non-gitignored) skill in the collection. For standalone skills,
note unverifiable references instead of failing them.
"When NOT to use" complete? Should reference all skills with overlapping trigger space.
AI-age checks:
Does the skill generate code, config, structured output, or orchestrate other skills? If yes,
does it have an AI Self-Check section? This is the #1 miss across skill collections -
skills that produce output need a pre-flight checklist even if they're "just" orchestrators.
Does the AI Self-Check cover the domain's common AI mistakes? (e.g., unpinned versions,
missing security contexts, over-abstraction, hallucinated CLI flags)
Are there patterns that would produce AI slop? (excessive MUSTs, over-defensive instructions,
generic naming in examples)
Compliance checks (for infrastructure skills):
PCI-DSS 4.0 mapping present where applicable?
All future-dated requirements (mandatory since March 31, 2025) reflected?
No hardcoded secrets in examples?
Script-runner reality check: verify helper script input shape. If a single-skill run reports zero skills or odd output, re-run against the collection root and filter for the target.
P1: stale versions, missing required sections, trigger overlap unhandled, or invalid output contracts
P2: incomplete verification, weak behavioral coverage, or ambiguous workflow ordering
P3: style inconsistency, missing "Related Skills", or wording that could be clearer
info: confirmed strengths or scoped notes; note skipped checks in the report's skipped-checks field
Step 4: Confirm scope
Present findings to the user and wait for confirmation before editing. The user may want a
report only, or may want to fix a subset. In headless mode (no interactive user), report
findings and stop unless the original user request explicitly authorized edits. Programmatic
callers must pass that authorization through or stop after reporting findings.
Step 5: Apply fixes
Edit the skill files to address confirmed findings. For version updates, always search the web
first - don't guess. Do not modify date_added (it records when the skill was created, used
for historical tracking). If the skill needs a freshness marker, the date_added field serves
that purpose for the initial creation; substantial refreshes are tracked via git history.
Step 6: Forward-test
After substantial changes, forward-test the skill (see Mode 1, Step 6). Required for
high-effort skills after workflow restructuring, reordered steps, or new references.
Optional for narrow edits like version refreshes, wording cleanup, or metadata-only fixes.
Especially valuable when:
The workflow was restructured or steps were reordered
New reference files were added and need discovery testing
Trigger description was rewritten (test activation, not just content)
Mode 3: Audit the Skill Collection
Run a health check across all skills. Useful periodically or after adding/removing skills.
Step 1: Inventory
# Detect collection root - adapt to your layout
SKILL_ROOT="${SKILL_ROOT:-skills}"
[[ -d "$SKILL_ROOT" ]] || { echo "No skill collection at $SKILL_ROOT"; exit 1; }
# Check git availability for gitignore filtering and freshness
IN_GIT=false
git -C "$SKILL_ROOT" rev-parse --git-dir &>/dev/null && IN_GIT=true
for skill in "$SKILL_ROOT"/*/SKILL.md; do
dir=$(dirname "$skill")
name=$(basename "$dir")
[[ "$name" == ".backups" || "$name" == ".cook" ]] && continue # tooling dirs, not skills
$IN_GIT && git -C "$dir" check-ignore -q . 2>/dev/null && continue
source=$(grep -m1 '[[:space:]]source:' "$skill" 2>/dev/null | sed 's/.*source: *//' || echo "unknown")
date=$(grep -m1 '[[:space:]]date_added:' "$skill" 2>/dev/null | sed 's/.*date_added: *"//' | sed 's/"//' || echo "unknown")
effort=$(grep -m1 '[[:space:]]effort:' "$skill" 2>/dev/null | sed 's/.*effort: *//' || echo "missing")
if $IN_GIT; then
last_mod=$(git -C "$SKILL_ROOT" log -1 --format=%cd --date=short - "$name" 2>/dev/null || echo "unknown")
else
# Portable: GNU stat then BSD stat; GNU date then BSD date
mtime=$(stat -c %Y "$skill" 2>/dev/null || stat -f %m "$skill" 2>/dev/null || echo 0)
last_mod=$(date -d "@$mtime" +%Y-%m-%d 2>/dev/null || date -r "$mtime" +%Y-%m-%d 2>/dev/null || echo "unknown")
fi
printf "%-25s %-10s %-12s %-12s %s\n" "$name" "$source" "$date" "$last_mod" "$effort"
done
Step 2: Cross-reference matrix
For each skill, check:
Every skill name mentioned in "When NOT to use" exists as a published (non-gitignored) skill
Every skill name mentioned in "Related Skills" exists as a published (non-gitignored) skill
Every declared reference file path has a corresponding file
Installer, publish, or registry files list the published skills correctly
Lint scripts, CI checks, and count tooling exclude gitignored (private) skills -
tools that iterate skills/*/ directly will overcount unless they filter with
git check-ignore
Step 3: Trigger overlap analysis
Compare all skill descriptions pairwise. Flag pairs that share significant trigger keywords
without mutual disambiguation (no "When NOT to use" cross-reference).
Step 4: Freshness sweep
Flag skills where the last modification (per git history, or file mtime if git is unavailable)
is >30 days old AND the skill covers fast-moving domains:
If the collection's conventions change significantly, temporarily reclassify skill-creator
as fast-moving until the conventions stabilize.
For each stale high-effort skill, search the web for:
New major/minor releases of referenced tools
New CVEs affecting referenced tools
Deprecated or renamed tools/features since the skill was written
New supply chain incidents (these move the fastest - Trivy was 6 days old when we caught it)
Step 5: Report
Present findings grouped by severity. Include actionable fixes for each finding.
Mode 5: Retrospective Update
When the user asks to review a completed conversation and update the skill library, capture
reusable class-level learning, not a session log. Patch a loaded or umbrella skill for
reusable workflow, routing, preference, or pitfall changes; create a new skill only when no
class-level fit exists. In the public skills repo, read gitignored instruction files such as
AGENTS.md, but do not force-add them; stage only intended public skill paths and validate.
Mode 4: Optimize Skill Description
The description field in frontmatter is the primary triggering mechanism. Optimize it for
accurate activation.
Step 1: Analyze current triggers
Read the skill's description and identify:
Primary trigger keywords
Secondary trigger contexts
Potential false-positive triggers (keywords shared with other skills)
Missing triggers (scenarios where the skill should activate but the description doesn't cover)
Step 2: Compare against the collection
If a collection is available, check which other skills share trigger keywords. Ensure the
description differentiates clearly. For standalone skills, skip this step.
Step 3: Rewrite the description
Follow these patterns from high-performing custom skill descriptions:
Start with action verbs: "Use when writing, reviewing, or architecting..."
Include specific trigger keywords: list them inline, e.g., "Triggers: 'keyword1', 'keyword2'"
Mention adjacent skills to avoid: "Not for X (use Y instead)"
Be slightly pushy: many tools undertrigger skills by default. Include edge cases.
Stay near 200 characters: the collection warns above 240 and errors above 600. Codex loads every skill description at startup, so concise descriptions prevent startup truncation.
Treat 1024 as the platform ceiling, not the collection target: truncation happens there, but the repo convention is stricter
Step 4: Validate
After rewriting, list 5 user prompts that should trigger the skill and 5 that shouldn't. For
each, state whether the rewritten description would route correctly and why. This is a heuristic
check - actual routing depends on the harness's skill-matching logic, which varies by tool.
The goal is catching obvious gaps and false-positive magnets, not deterministic validation.
Step 5: Apply
Edit the skill's frontmatter with the rewritten description. If the skill is part of a
collection, run Mode 2 Step 2 (quality checks) to verify no regressions were introduced.
Run Report
End every run with a human-readable report, even for report-only checks. Include branch, mode,
scope, score or "not scored - report only", changed files, finding counts, verification results,
skipped checks, and recommended next action.
For edited skills, report before/after checklist pass rate and behavioral or forward-test scores
plus keep/reject decisions. For audit-only runs, report structural gate and finding counts
instead of inventing a composite.
Reference Files
references/conventions.md - the complete convention guide: frontmatter fields, structural
patterns by effort tier, style rules (ASCII, banned words), reference file organization,
cross-skill patterns, AI Self-Check patterns, and a snapshot inventory of the upstream
collection (useful as a reference, not an authoritative list for other repos)
Output Contract
See skills/_shared/output-contract.md for the full contract.
Skill name: SKILL-CREATOR
Deliverable bucket:audits
Mode: conditional. When invoked to analyze, review, audit, or improve existing repo content (e.g., Mode 2 review or Mode 3 audit), emit the full contract - boxed inline header, body summary inline plus per-finding detail in the deliverable file, boxed conclusion, conclusion table - and write the deliverable to docs/local/audits/skill-creator/<YYYY-MM-DD>-<slug>.md. When invoked to answer a question, teach a concept, build a new artifact, or generate content (e.g., Mode 1 create), respond freely without the contract; the existing ## Run Report guidance applies to that build path.
Severity scale:P0 | P1 | P2 | P3 | info (see shared contract; only used in audit/review mode).
Related Skills
anti-slop - the code quality audit skill. When reviewing a skill's example code or
reference patterns, anti-slop patterns apply (comment noise, over-abstraction, stale idioms).
full-review - orchestrates four parallel audits. This skill audits the skill collection
itself, not application code.
prompt-generator - structures prompts for LLM consumption. Skills ARE prompts, but
prompt-generator targets one-off prompts saved to docs/local/prompts/, not reusable skill files.
code-review - reviews application code for correctness. This skill reviews skill files
for convention compliance, not code correctness.
Rules
Read before edit. Always read a skill's SKILL.md and reference files before modifying.
Conventions are non-negotiable. Custom skills need metadata.source, date_added,
effort, "When to use", "When NOT to use", Workflow, and Rules sections.
Verify everything, assume nothing. Confirm tools, versions, flags, APIs, and behavior via
source docs, --help, registries, or explicit "unverified" notes. Do not guess.
Prefer dedicated skill workflows over generic helpers.
Update the inventory. After creating, removing, or renaming a skill, update published
inventories and verify counts from live public skills.
No AI slop in skills. Avoid comment noise, over-abstraction, ALL CAPS theater, and
"just in case" instructions.
ASCII by default. Keep skill prose ASCII except collection-approved markers such as the
public-description · prefix and shared output-contract box glyphs. No em dashes, curly
quotes, ligatures, or -- dash substitutes. Prose only: never rewrite -- inside code or
fenced blocks - there it is real syntax (SQL comments, CLI -- separators) and must stay.
Run the AI Self-Check. Every generated or modified skill gets checked before return.
Branch every run. In git-backed collections, create or record a run branch before checks.
Report every run. Finish with the Run Report format and score before/after or "not scored."
Do not substitute lint/spec status for behavioral scoring.
1---
2name: skill-creator
3description: >
4 · Create/review skills: frontmatter, triggers, overlaps, collection consistency, retrospective updates. Triggers: 'skill creator', 'new skill', 'skill audit', 'skill review', 'update skill library'.
5license: MIT
6compatibility: "Optional: git (for freshness and gitignore filtering)"
7metadata:
8 source: iuliandita/skills
9 date_added: "2026-03-25"
10 effort: high
11 argument_hint: "<action> [skill-name]"
12---
1314# Skill Creator: Meta Skill for Skill Lifecycle Management
1516Create, review, improve, audit, and maintain AI tool skills. Covers the full lifecycle from
17initial draft through quality validation, cross-skill consistency checks, and trigger optimization.
1819This skill enforces the conventions established across the custom skill collection. It exists
20because consistency is what makes skills predictable - a skill that follows the established
21patterns activates reliably, reads clearly, and plays well with the rest of the collection.
2223## When to use
2425- Creating a new custom skill from scratch
26- Reviewing or improving an existing skill
27- Auditing the skill collection for consistency, overlaps, or contradictions
28- Validating versions, security references, or CVE mentions in skills
29- Optimizing a skill's description for better triggering accuracy
30- Checking cross-skill references and "Related Skills" sections
31- Troubleshooting why a skill isn't triggering or is triggering incorrectly
3233## When NOT to use
3435- Reviewing application code for correctness or bugs - use **code-review**
36- Auditing code for AI-generated patterns or style issues - use **anti-slop**
37- Running a full codebase audit across multiple dimensions - use **full-review**
38- Creating inline prompts within application code - use **prompt-generator**
39- Batch-improving a whole skill collection via evaluation loops - use **skill-refiner**
40- Syncing or refreshing third-party skills from upstream - handle that directly in the repo workflow
41- Updating project documentation after infrastructure changes - use **update-docs**
42- Writing application code, even if the code is for a tool a skill might use
4344## AI Self-Check
4546Before returning any generated or modified skill, verify against this list:
4748- [ ] **Frontmatter complete**: `name`, `description`, `license`, `metadata.source` (`owner/repo` for published collections or `custom` for unpublished skills), `metadata.date_added` (ISO), `metadata.effort` (low/medium/high)
49- [ ] **Name spec-valid**: lowercase alphanumeric + hyphens only, no leading/trailing/consecutive
50 hyphens, no reserved words (`anthropic`, `claude`), matches directory name
51- [ ] **No XML tags** in `name` or `description` fields (Anthropic platform restriction)
52- [ ] **Description is trigger-optimized**: starts with action verbs, includes trigger keywords, mentions related contexts, stays near 200 chars for the collection (240 warn, 600 hard max in `validate-spec.sh`; platform truncation happens later)
53- [ ] **Compatibility field present** (when skill requires specific tools/platforms): quotes values containing colons
54- [ ] **Scope sections present**: "When to use" with concrete scenarios, "When NOT to use"
55 cross-referencing related skills by **bold** name (e.g., `use **skill-name**`)
56- [ ] **Workflow section with numbered steps**: clear, sequential, actionable
57- [ ] **Rules section at the end**: non-negotiable constraints in imperative form
58- [ ] **Style compliant**: no banned words (per `CLAUDE.md`/`AGENTS.md`), ASCII by default
59 except approved markers such as `· ` and output-contract box glyphs. No em-dashes, curly
60 quotes, ligatures, or `--`; use `-`. Check SKILL.md and references for banned words
61- [ ] **Target ~500 lines**: if over 500, extract to `references/` with clear pointers. Hard max 600
62- [ ] **Reference files use `references/` relative paths**: not hardcoded or tool-specific paths
63- [ ] **All references verified**: every tool, CLI flag, IaC resource, config snippet, and
64 example command confirmed against actual docs, `--help` output, or registry - not assumed
65 from training data. Specifically: tools exist and aren't deprecated/renamed, CLI flags are
66 real (AI models invent plausible ones constantly), Terraform providers/resources match the
67 registry, Ansible modules/params match `ansible-doc`, Helm values match upstream
68 `values.yaml`, K8s fields match the target API version. When web access is unavailable,
69 note unverified claims rather than blocking
70- [ ] **Version numbers verified and dated**: searched the web for latest stable version of each
71 tool, pinned with date (e.g., "v29.3.0 (March 2026)") so staleness is detectable
72- [ ] **Cross-skill references are valid**: every mentioned skill name actually exists
73- [ ] **AI-age awareness**: if the skill generates code, config, or structured files (including skill files), include an AI self-check section
74- [ ] **Context budget justified**: every section earns its token cost (see `references/conventions.md`)
75- [ ] **Forward-tested** (high-effort skills, when feasible): during review, a subagent used the skill on a realistic task without leaked context. This is a process check on the reviewer, not a content requirement on the skill - the skill does not need a "forward-test" section. The reviewer notes what was tested or skipped and why.
7677- [ ] **Current source checked**: dated versions, CLI flags, API names, and support windows are verified against primary docs before repeating them
78- [ ] **Hidden state identified**: local config, credentials, caches, contexts, branches, cluster targets, or previous runs are made explicit before acting
79- [ ] **Verification is real**: final checks exercise the actual runtime, parser, service, or integration point instead of only linting prose or happy paths
80- [ ] **Routing overlap checked**: new or edited skills do not steal triggers from better-matched existing skills
81- [ ] **Spec claims verified**: frontmatter, metadata, and compatibility guidance match the current Agent Skills specification
8283## Performance
8485- Keep `SKILL.md` compact; move deep examples into references loaded on demand.
86- Prefer precise triggers over broad keyword lists that cause unnecessary skill loading.
87- Run lint/spec checks before prose polishing so structural failures surface early.
8889## Best Practices
9091- Write skills as operational instructions, not essays about a domain.
92- Include clear When to use/When NOT to use routing and realistic AI self-checks.
93- Keep public skills tool-agnostic unless a tool is intrinsic to the skill.
94- Treat install/copy/link steps as environment-specific. If skills are sourced directly from a
95 repo, edit and verify there instead of distributing to tool dirs unless asked.
9697## Workflow
9899Before entering any mode, detect the operating context. This skill works on individual skills
100or collections, whether inside a skill collection repo, a user's own project, or standalone.
101102**Mode routing** - pick the mode that matches the user's signal. Retrospective-update
103requests are explicit permission to edit the library, so do not stop at a report-only pass:
104105| User signal | Mode |
106|---|---|
107| "create a skill", "new skill for X", "turn this into a skill" | Mode 1 (Create) |
108| "review my skill", "improve this skill", "is this skill good" | Mode 2 (Review) |
109| "audit the collection", "check all skills", "health check skills" | Mode 3 (Audit) |
110| "fix the description", "skill isn't triggering", "trigger overlap" | Mode 4 (Optimize) |
111| "review the conversation", "update the skill library", "what did we learn" | Mode 5 (Retrospective Update) |
112113When the signal is ambiguous (e.g., "look at my skill"), ask before committing - Create and
114Review diverge quickly and re-running wastes context. Modes can chain: Create -> Review,
115Review -> Optimize, Audit -> per-skill Review for flagged items.
116For explicit retrospective-update requests, act without asking for confirmation unless the only
117possible update is destructive or would create a new class-level skill with uncertain scope.
1181191. **Find the collection root** (if one exists): check for a `skills/` directory (common
120 convention) or any path the user specifies. Different harnesses store skills in different
121 locations - if the default doesn't match, ask or accept a user-supplied path. If no
122 collection is found, skip collection-wide checks (cross-references, trigger overlap, audit
123 mode) and note what was skipped.
1242. **Check git and create a run branch**: run `git rev-parse --git-dir`. If inside git,
125 create `skill-creator/YYYY-MM-DD-HHMMSS` from current HEAD before checks or edits unless
126 already on a task branch created for this run. Preserve dirty worktrees; branching is for
127 isolation, not cleanup. Without git, state "branch unavailable" in the final report and
128 fall back to file modification dates.
1293. **Single skill vs collection**: Modes 1 (Create) and 2 (Review) work on individual skills
130 with or without a collection - collection-dependent steps become best-effort. Mode 3
131 (Audit) requires a collection. Mode 4 (Optimize) works standalone but benefits from
132 collection context for overlap analysis.
133134### Mode 1: Create a New Skill
135136#### Step 1: Capture intent
137138Understand what the skill should do. Extract from conversation context:
139- **Core task**: what should the skill enable?
140- **Trigger scenarios**: what user phrases or contexts should activate it?
141- **Output format**: what does success look like?
142- **Related skills**: which existing skills overlap or complement this one?
143144If the user already described the workflow in the conversation (e.g., "turn what we just did into a
145skill"), extract the steps, tools used, corrections made, and patterns observed.
146147#### Step 2: Research the domain
148149Before drafting, gather context:
1501. **Check existing skills** for overlap (if a collection is available) - read the "When to use"
151 / "When NOT to use" of potentially related skills. Don't create a skill that duplicates
152 existing coverage.
1532. **Verify tools exist** - for every tool, library, CLI, or platform the skill references,
154 confirm it exists, is not deprecated or renamed, and is actively maintained. Search the web
155 or check the project's GitHub/registry page. AI models hallucinate tool names, flag names,
156 and API endpoints - treat every claim as unverified until checked. If a tool was replaced
157 (e.g., CDKTF is deprecated in favor of native HCL, Ingress is frozen with new features
158 going to Gateway API), reference the current recommended approach.
1593. **Check versions** - search for the latest stable release of every tool mentioned. Don't
160 guess or rely on training data - versions go stale fast. Pin them with dates so staleness
161 is detectable later (e.g., "Docker Engine 29.3.0 (March 2026)").
1624. **Check security** - search for recent CVEs, supply chain incidents, or known vulnerabilities
163 relevant to the domain. The custom skill collection tracks these actively - verify current
164 advisories rather than relying on specific CVE numbers from training data.
1655. **Check compliance** - if the domain touches infrastructure, containers, CI/CD, auth, or data
166 handling, consider PCI-DSS 4.0 relevance. Many users work in regulated environments or run
167 self-hosted infrastructure where compliance matters.
168169#### Step 3: Draft the skill
170171Follow the structural pattern for the skill's effort tier in `references/conventions.md` (Section 3).
172Key elements every custom skill needs:
173174- **Frontmatter**: `name`, `description`, `license`, `metadata` block (see conventions Section 2)
175- **"When to use" / "When NOT to use"**: concrete scenarios, cross-reference adjacent skills
176- **Workflow**: numbered steps, sequential, actionable
177- **Rules**: non-negotiable constraints at the end, imperative form
178- **AI Self-Check**: required when the skill generates code, config, or structured files
179- **Reference Files / Related Skills**: when applicable
180181For tool/platform skills, include a **Target versions** block with pinned versions and dates.
182183**Writing guidelines:**
184- Imperative form in instructions ("Check the config", not "You should check the config")
185- Explain **why**, not just **what** - models generalize from motivation
186- Don't use ALL CAPS for emphasis unless it's genuinely critical. Calm, direct instructions
187 outperform shouting across most modern models.
188- Include "What NOT to flag" or "What NOT to do" sections where false positives are likely
189- Use tables for reference data, prose for workflows, checklists for validation
190- Consider headless execution: skills may run in non-interactive contexts (Claude Code `--bare`,
191 Cursor Automations, Codex `exec`). Avoid blocking on user confirmation in steps that could
192 run unattended - provide sensible defaults or document assumptions instead
193194#### Step 4: Validate the draft
195196Run through the AI Self-Check above. Then:
1971981. **Cross-reference check**: grep the skill collection for every skill name mentioned in the draft.
199 Verify they exist and the characterization is accurate.
2002. **Trigger overlap check**: compare the description against all other skill descriptions. Flag
201 any that share >50% of trigger keywords.
2023. **Convention check**: compare frontmatter, structure, and style against 2-3 existing custom
203 skills in the same `effort` tier.
2044. **Script-runner reality check**: if the collection uses helper scripts like `lint-skills.sh`
205 or `validate-spec.sh`, verify their expected input shape before trusting the result. Some
206 collections expect a parent directory containing many skill subdirectories, not a direct path
207 to one skill. For single-skill validation, stage the skill inside a temporary parent such as
208 `<tmp>/skills/<skill-name>/SKILL.md` and run the scripts against `<tmp>/skills`.
209210#### Step 5: Write the files
211212- Write `SKILL.md` to the appropriate location: `<collection-root>/<skill-name>/SKILL.md` if
213 inside a collection, or the user's specified path for standalone skills
214- Write reference files (if any) to `<skill-dir>/references/`
215- If a collection inventory exists, update it and re-run cross-reference checks
216- If `skill_manage` cannot modify the target because the skill lives in an external repo or
217 non-managed directory, fall back to direct file edits with `patch` or `write_file` on the
218 actual repo paths. Do not stop at the tool limitation if the files are writable and the user
219 asked for the change in-place.
220221#### Step 6: Forward-test
222223Forward-testing has a subagent use the skill on realistic tasks without seeing your diagnosis.
224Use it for high-effort skills and for medium-effort skills with multi-step or scripted workflows.
225Skip it for low-effort wrappers, unavailable subagents, production-only access, long-running
226infra, missing credentials, or explicit user opt-out; note the skip reason.
2272281. Pick 2-3 realistic tasks, including one edge case.
2292. Launch with a real-user prompt and raw artifacts only.
2303. Check whether the agent followed the workflow, missed steps, or hallucinated.
2314. Clean up artifacts between iterations.
232233If forward-testing only succeeds with leaked context, tighten the skill instead of weakening
234the test.
235236### Mode 2: Review / Improve an Existing Skill
237238#### Step 1: Read the skill thoroughly
239240Read the SKILL.md and all reference files. No skipping - the whole point is catching issues.
241242#### Step 2: Run the quality checks
243244**Structural checks:**
245- Frontmatter completeness (name, description, license, metadata.source, metadata.date_added, metadata.effort)
246- Section presence (When to use, When NOT to use, Workflow, Rules)
247- AI Self-Check section (required for skills that generate code/config)
248- Reference file paths resolve (check `references/` directory)
249- Related Skills section present and accurate (when the skill interacts with other skills)
250- Target ~500 lines (SKILL.md body), hard max 600
251252**Content checks:**
253- Tools exist? Every tool, CLI, library, or platform named in the skill must be verified as
254 real, not deprecated, and not renamed. Search the web or check the project's GitHub/registry.
255 AI hallucinates tool names, CLI flags, and API endpoints constantly - treat every reference
256 as unverified until confirmed. If a tool was replaced, the skill should reference the
257 replacement (e.g., CDKTF deprecated in favor of native HCL, Ingress frozen with Gateway API
258 as the recommended path forward, lazy_static superseded by std::sync::LazyLock).
259- CLI flags and IaC resources real? Verify flags/subcommands against actual `--help` or docs.
260 For Terraform: confirm provider names and resource type arguments against the registry. For
261 Ansible: confirm module names and parameters against `ansible-doc` or Galaxy. For Helm:
262 confirm chart values against upstream `values.yaml`. For K8s: confirm API fields against
263 the target API version. AI invents plausible-sounding arguments for all of these.
264- Version numbers current? Search the web for latest stable versions of tools that appear in
265 normative claims (pinned versions, "Target versions" blocks, compatibility fields). Don't
266 verify every passing mention - focus on versions that drive behavior or could mislead.
267- Security references current? Check for new CVEs since the skill's `date_added`.
268- Cross-skill references valid (if a collection is available)? Every skill name mentioned must
269 exist as a published (non-gitignored) skill in the collection. For standalone skills,
270 note unverifiable references instead of failing them.
271- "When NOT to use" complete? Should reference all skills with overlapping trigger space.
272273**AI-age checks:**
274- Does the skill generate code, config, structured output, or orchestrate other skills? If yes,
275 does it have an AI Self-Check section? This is the #1 miss across skill collections -
276 skills that produce output need a pre-flight checklist even if they're "just" orchestrators.
277- Does the AI Self-Check cover the domain's common AI mistakes? (e.g., unpinned versions,
278 missing security contexts, over-abstraction, hallucinated CLI flags)
279- Are there patterns that would produce AI slop? (excessive MUSTs, over-defensive instructions,
280 generic naming in examples)
281282**Compliance checks** (for infrastructure skills):
283- PCI-DSS 4.0 mapping present where applicable?
284- All future-dated requirements (mandatory since March 31, 2025) reflected?
285- No hardcoded secrets in examples?
286287**Script-runner reality check:** verify helper script input shape. If a single-skill run reports zero skills or odd output, re-run against the collection root and filter for the target.
288289#### Step 3: Report findings
290291Use severity ratings:
292- **P0**: wrong information, security risk, broken cross-references, or harmful generated instructions
293- **P1**: stale versions, missing required sections, trigger overlap unhandled, or invalid output contracts
294- **P2**: incomplete verification, weak behavioral coverage, or ambiguous workflow ordering
295- **P3**: style inconsistency, missing "Related Skills", or wording that could be clearer
296- **info**: confirmed strengths or scoped notes; note skipped checks in the report's skipped-checks field
297298#### Step 4: Confirm scope
299300Present findings to the user and wait for confirmation before editing. The user may want a
301report only, or may want to fix a subset. In headless mode (no interactive user), report
302findings and stop unless the original user request explicitly authorized edits. Programmatic
303callers must pass that authorization through or stop after reporting findings.
304305#### Step 5: Apply fixes
306307Edit the skill files to address confirmed findings. For version updates, always search the web
308first - don't guess. Do not modify `date_added` (it records when the skill was created, used
309for historical tracking). If the skill needs a freshness marker, the `date_added` field serves
310that purpose for the initial creation; substantial refreshes are tracked via git history.
311312#### Step 6: Forward-test
313314After substantial changes, forward-test the skill (see Mode 1, Step 6). Required for
315high-effort skills after workflow restructuring, reordered steps, or new references.
316Optional for narrow edits like version refreshes, wording cleanup, or metadata-only fixes.
317Especially valuable when:
318- The workflow was restructured or steps were reordered
319- New reference files were added and need discovery testing
320- Trigger description was rewritten (test activation, not just content)
321322### Mode 3: Audit the Skill Collection
323324Run a health check across all skills. Useful periodically or after adding/removing skills.
325326#### Step 1: Inventory
327328```bash
329# Detect collection root - adapt to your layout
330SKILL_ROOT="${SKILL_ROOT:-skills}"
331[[ -d "$SKILL_ROOT" ]] || { echo "No skill collection at $SKILL_ROOT"; exit 1; }
332333# Check git availability for gitignore filtering and freshness
334IN_GIT=false
335git -C "$SKILL_ROOT" rev-parse --git-dir &>/dev/null && IN_GIT=true
336337for skill in "$SKILL_ROOT"/*/SKILL.md; do
338 dir=$(dirname "$skill")
339 name=$(basename "$dir")
340 [[ "$name" == ".backups" || "$name" == ".cook" ]] && continue # tooling dirs, not skills
341 $IN_GIT && git -C "$dir" check-ignore -q . 2>/dev/null && continue
342 source=$(grep -m1 '[[:space:]]source:' "$skill" 2>/dev/null | sed 's/.*source: *//' || echo "unknown")
343 date=$(grep -m1 '[[:space:]]date_added:' "$skill" 2>/dev/null | sed 's/.*date_added: *"//' | sed 's/"//' || echo "unknown")
344 effort=$(grep -m1 '[[:space:]]effort:' "$skill" 2>/dev/null | sed 's/.*effort: *//' || echo "missing")
345 if $IN_GIT; then
346 last_mod=$(git -C "$SKILL_ROOT" log -1 --format=%cd --date=short - "$name" 2>/dev/null || echo "unknown")
347 else
348 # Portable: GNU stat then BSD stat; GNU date then BSD date
349 mtime=$(stat -c %Y "$skill" 2>/dev/null || stat -f %m "$skill" 2>/dev/null || echo 0)
350 last_mod=$(date -d "@$mtime" +%Y-%m-%d 2>/dev/null || date -r "$mtime" +%Y-%m-%d 2>/dev/null || echo "unknown")
351 fi
352 printf "%-25s %-10s %-12s %-12s %s\n" "$name" "$source" "$date" "$last_mod" "$effort"
353done
354```
355356#### Step 2: Cross-reference matrix
357358For each skill, check:
3591. Every skill name mentioned in "When NOT to use" exists as a published (non-gitignored) skill
3602. Every skill name mentioned in "Related Skills" exists as a published (non-gitignored) skill
3613. Every declared reference file path has a corresponding file
3624. Installer, publish, or registry files list the published skills correctly
3635. Lint scripts, CI checks, and count tooling exclude gitignored (private) skills -
364 tools that iterate `skills/*/` directly will overcount unless they filter with
365 `git check-ignore`
366367#### Step 3: Trigger overlap analysis
368369Compare all skill descriptions pairwise. Flag pairs that share significant trigger keywords
370without mutual disambiguation (no "When NOT to use" cross-reference).
371372#### Step 4: Freshness sweep
373374Flag skills where the last modification (per git history, or file mtime if git is unavailable)
375is >30 days old AND the skill covers fast-moving domains:
376377**Fast-moving** (>30 days = stale risk): docker, kubernetes, ci-cd, terraform, ansible,
378databases, git, security-audit, code-review (AI-age patterns section), mcp, networking, arch-btw
379380**Slow-moving** (>30 days = probably fine): firewall-appliance, command-prompt, prompt-generator,
381update-docs, skill-creator, full-review, anti-slop, lockpick
382383If the collection's conventions change significantly, temporarily reclassify skill-creator
384as fast-moving until the conventions stabilize.
385386For each stale high-effort skill, search the web for:
387- New major/minor releases of referenced tools
388- New CVEs affecting referenced tools
389- Deprecated or renamed tools/features since the skill was written
390- New supply chain incidents (these move the fastest - Trivy was 6 days old when we caught it)
391392#### Step 5: Report
393394Present findings grouped by severity. Include actionable fixes for each finding.
395396### Mode 5: Retrospective Update
397398When the user asks to review a completed conversation and update the skill library, capture
399reusable class-level learning, not a session log. Patch a loaded or umbrella skill for
400reusable workflow, routing, preference, or pitfall changes; create a new skill only when no
401class-level fit exists. In the public skills repo, read gitignored instruction files such as
402`AGENTS.md`, but do not force-add them; stage only intended public skill paths and validate.
403404### Mode 4: Optimize Skill Description
405406The `description` field in frontmatter is the primary triggering mechanism. Optimize it for
407accurate activation.
408409#### Step 1: Analyze current triggers
410411Read the skill's description and identify:
412- Primary trigger keywords
413- Secondary trigger contexts
414- Potential false-positive triggers (keywords shared with other skills)
415- Missing triggers (scenarios where the skill should activate but the description doesn't cover)
416417#### Step 2: Compare against the collection
418419If a collection is available, check which other skills share trigger keywords. Ensure the
420description differentiates clearly. For standalone skills, skip this step.
421422#### Step 3: Rewrite the description
423424Follow these patterns from high-performing custom skill descriptions:
425- **Start with action verbs**: "Use when writing, reviewing, or architecting..."
426- **Include specific trigger keywords**: list them inline, e.g., "Triggers: 'keyword1', 'keyword2'"
427- **Mention adjacent skills to avoid**: "Not for X (use Y instead)"
428- **Be slightly pushy**: many tools undertrigger skills by default. Include edge cases.
429- **Stay near 200 characters**: the collection warns above 240 and errors above 600. Codex loads every skill description at startup, so concise descriptions prevent startup truncation.
430- **Treat 1024 as the platform ceiling, not the collection target**: truncation happens there, but the repo convention is stricter
431432#### Step 4: Validate
433434After rewriting, list 5 user prompts that should trigger the skill and 5 that shouldn't. For
435each, state whether the rewritten description would route correctly and why. This is a heuristic
436check - actual routing depends on the harness's skill-matching logic, which varies by tool.
437The goal is catching obvious gaps and false-positive magnets, not deterministic validation.
438439#### Step 5: Apply
440441Edit the skill's frontmatter with the rewritten description. If the skill is part of a
442collection, run Mode 2 Step 2 (quality checks) to verify no regressions were introduced.
443444## Run Report
445446End every run with a human-readable report, even for report-only checks. Include branch, mode,
447scope, score or "not scored - report only", changed files, finding counts, verification results,
448skipped checks, and recommended next action.
449450For edited skills, report before/after checklist pass rate and behavioral or forward-test scores
451plus keep/reject decisions. For audit-only runs, report structural gate and finding counts
452instead of inventing a composite.
453454## Reference Files
455456- `references/conventions.md` - the complete convention guide: frontmatter fields, structural
457 patterns by effort tier, style rules (ASCII, banned words), reference file organization,
458 cross-skill patterns, AI Self-Check patterns, and a snapshot inventory of the upstream
459 collection (useful as a reference, not an authoritative list for other repos)
460461## Output Contract
462463See `skills/_shared/output-contract.md` for the full contract.
464465- **Skill name:** SKILL-CREATOR
466- **Deliverable bucket:** `audits`
467- **Mode:** conditional. When invoked to **analyze, review, audit, or improve** existing repo content (e.g., Mode 2 review or Mode 3 audit), emit the full contract - boxed inline header, body summary inline plus per-finding detail in the deliverable file, boxed conclusion, conclusion table - and write the deliverable to `docs/local/audits/skill-creator/<YYYY-MM-DD>-<slug>.md`. When invoked to **answer a question, teach a concept, build a new artifact, or generate content** (e.g., Mode 1 create), respond freely without the contract; the existing `## Run Report` guidance applies to that build path.
468- **Severity scale:** `P0 | P1 | P2 | P3 | info` (see shared contract; only used in audit/review mode).
469470## Related Skills
471472- **anti-slop** - the code quality audit skill. When reviewing a skill's example code or
473 reference patterns, anti-slop patterns apply (comment noise, over-abstraction, stale idioms).
474- **full-review** - orchestrates four parallel audits. This skill audits the skill collection
475 itself, not application code.
476- **prompt-generator** - structures prompts for LLM consumption. Skills ARE prompts, but
477 prompt-generator targets one-off prompts saved to `docs/local/prompts/`, not reusable skill files.
478- **code-review** - reviews application code for correctness. This skill reviews skill files
479 for convention compliance, not code correctness.
480481## Rules
4824831. **Read before edit.** Always read a skill's SKILL.md and reference files before modifying.
4842. **Conventions are non-negotiable.** Custom skills need `metadata.source`, `date_added`,
485 `effort`, "When to use", "When NOT to use", Workflow, and Rules sections.
4863. **Verify everything, assume nothing.** Confirm tools, versions, flags, APIs, and behavior via
487 source docs, `--help`, registries, or explicit "unverified" notes. Do not guess.
4884. **Prefer dedicated skill workflows over generic helpers.**
4895. **Update the inventory.** After creating, removing, or renaming a skill, update published
490 inventories and verify counts from live public skills.
4916. **No AI slop in skills.** Avoid comment noise, over-abstraction, ALL CAPS theater, and
492 "just in case" instructions.
4937. **ASCII by default.** Keep skill prose ASCII except collection-approved markers such as the
494 public-description `· ` prefix and shared output-contract box glyphs. No em dashes, curly
495 quotes, ligatures, or `--` dash substitutes. Prose only: never rewrite `--` inside code or
496 fenced blocks - there it is real syntax (SQL comments, CLI `--` separators) and must stay.
4978. **Run the AI Self-Check.** Every generated or modified skill gets checked before return.
4989. **Branch every run.** In git-backed collections, create or record a run branch before checks.
49910. **Report every run.** Finish with the Run Report format and score before/after or "not scored."
500 Do not substitute lint/spec status for behavioral scoring.
Run npx skillmds@latest add majiayu000/skill-creator in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
· Create/review skills: frontmatter, triggers, overlaps, collection consistency, retrospective updates. Triggers: 'skill creator', 'new skill', 'skill audit', 'skill review', 'update skill library'. It is listed under Security, Coding & Dev Tools on SkillMD.
SkillMD's automated safety review verdict for this skill is PASS. Independent scanners report: SkillSpector: WARNING, Skill Scanner: PASS. Capability flags: executes scripts, reads secrets. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free. This skill is licensed under MIT.
majiayu000 (@majiayu000) published this skill. Their other Agent Skills are listed on their SkillMD profile.