aminet-browser
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching,…
Use when authoring or reviewing a SKILL.md or agent .md and you need to detect and fix the four most common frontmatter defects — echoed or truncated triggers, tools written as a YAML array instead of a comma-separated string, a description outside the 1-1024 character bound,
$ npx -y skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/skill-frontmatter-doctorContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when authoring or reviewing a SKILL.md or agent .md and you need to detect and fix the four most common frontmatter defects — echoed or truncated triggers, tools written as a YAML array instead of a comma-separated string, a description outside the 1-1024 character bound,
name: skill-frontmatter-doctor description: Use when authoring or reviewing a SKILL.md or agent .md and you need to detect and fix the four most common frontmatter defects — echoed or truncated triggers, tools written as a YAML array instead of a comma-separated string, a description outside the 1-1024 character bound, and a missing "Use when..." clause. description-frequency: on-demand user-invocable: true version: 1.0.0 format: 2025-10-02 triggers: - "authoring or reviewing a SKILL.md or agent .md for frontmatter defects" - "fix malformed skill frontmatter, triggers, tools array, or description length" updated: 2026-07-06 status: ACTIVE
Detect and fix the four highest-frequency defects in skill and agent frontmatter. This is the corpus-wide #1 defect class, and there is no deterministic guard for it — so treat this checklist as the guard.
Run the advisory linter first to get a candidate list:
node tools/skill-frontmatter-doctor.mjs
It scans `.claude/skills/**/SKILL.md`, `.claude/agents/*.md`, `project-claude/skills/**/SKILL.md` and `project-claude/agents/*.md`, prints a report, and always exits 0 (advisory, not a gate). Use its output to target the fixes below, then verify by re-reading the file.
A `triggers:` entry must be a distinct, usable keyword or phrase a user would actually type — not a copy of the description and not a fragment that was cut mid-thought.
Recognize a bad trigger when it:
`description` (or vice versa). A trigger that just repeats the description adds no routing signal.
artifact, e.g. `"...author a new cartri"`).
`and`, `or`, `but`, `with`, `for`, `to`, `of`, `the`, `a`, `an` (e.g. `"scaffold a department and"`).
phrase (e.g. `"build a content cartridge ("`).
Fix: replace with short, self-contained phrases the user would say. Prefer several concrete invocations over one long echo of the description. Example:
# BAD — echoes the description, one entry, trails off triggers: - "Use when the user asks to author or scaffold a skill and" # GOOD — distinct, concrete, complete triggers: - "fix malformed skill frontmatter" - "lint skill or agent triggers" - "check description length"
Per `docs/OFFICIAL-FORMAT.md`, the `tools` field MUST be a **comma-separated string**, not a YAML sequence. A YAML array silently fails to parse as an allow-list.
# BAD — YAML array (will not work) tools: ["Read", "Write", "Bash"] # BAD — YAML block sequence (same problem) tools: - Read - Write - Bash # GOOD — comma-separated string tools: Read, Write, Bash
Fix: collapse the array/sequence to a single-line string of tool names separated by `, `. Omit the field entirely to inherit all tools.
The `description` must be a non-empty string of **1 to 1024 characters** inclusive. Too short gives the router nothing to match; over 1024 is rejected.
Fix:
situation and the outcome.
the skill body, not the frontmatter.
A good description tells the router *when* to activate, not just what the skill is. It should contain an explicit activation clause — canonically starting with **"Use when..."** (or an equivalent "Use this skill when...", "Activates when...").
# BAD — describes the thing, never says when description: A helper for skill frontmatter. # GOOD — leads with the activation condition description: Use when authoring or reviewing a SKILL.md or agent .md and you need to fix the four common frontmatter defects.
Fix: prepend a "Use when <situation>" clause describing the concrete condition that should activate the skill.
1. Run `node tools/skill-frontmatter-doctor.mjs` and read the report. 2. For each flagged file, open it and apply the matching fix above. 3. Re-read the frontmatter to confirm the change landed and the YAML is still valid. 4. Re-run the linter to confirm the finding is gone.
This skill's own frontmatter is a worked example of the target state: the `description` opens with "Use when...", stays within 1-1024 characters, and the `triggers:` entries are distinct, complete phrases that are not substrings of the description. Keep it that way when editing.
An adaptive learning and coprocessor architecture for Claude Code, built as an extension to GSD (open-gsd)
Repo: Tibsfox/gsd-skill-creator
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching,…
FS-UAE emulator configuration and launch: hardware profiles, ROM management, WHDLoad integration, config generation, and state snapshots. Use when configuring…
Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when managing INDEX data, checking…
Aminet package installation: LhA/LZX extraction, Amiga filesystem mapping, dependency detection, install tracking, and scan gate enforcement. Use when…
Selective Aminet package mirroring: single-package fetch, integrity verification, mirror state tracking, bulk download, and sync detection. Use when…
Multi-layer virus scanning for Aminet packages. Signature-based detection, heuristic hunk analysis, boot block scanning, quarantine management, and scan…