aminet-browser
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated…
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,
Claude Code
$ npx -y skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor --agent claude-code
Codex
$ npx skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor -a codex -y
Cursor
$ npx skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor -a cursor -y
Gemini CLI
$ npx skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor -a gemini-cli -y
GitHub Copilot
$ npx skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor -a github-copilot -y
OpenCode
$ npx skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor -a opencode -y
Windsurf
$ npx skills add Tibsfox/gsd-skill-creator --skill skill-frontmatter-doctor -a windsurf -y
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)
Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated…
FS-UAE emulator configuration and launch: hardware profiles, ROM management, WHDLoad integration, config generation, and state…
Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when…
Aminet package installation: LhA/LZX extraction, Amiga filesystem mapping, dependency detection, install tracking, and scan gate…
Selective Aminet package mirroring: single-package fetch, integrity verification, mirror state tracking, bulk download, and sync…
Multi-layer virus scanning for Aminet packages. Signature-based detection, heuristic hunk analysis, boot block scanning,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.