From 672fd25890bd980ace9369f9ba08bcf3a1fb0e97 Mon Sep 17 00:00:00 2001 From: Defame1297 Date: Mon, 22 Jun 2026 18:50:00 +0000 Subject: [PATCH] feat(kyberforge): replace write-skill with spec-compliant skill-write and add skill-audit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rewrote the skill authoring factory skill from scratch against the agentskills.io specification. Renamed write-skill → skill-write (name now matches directory per spec). skill-write: - Full scaffold via new-skill.sh (annotated templates for SKILL.md, README.md, scripts/, references/, assets/) - validate.sh checks all spec constraints deterministically (name format/length, description length, placeholder detection, line count, script rules) - SKILL.md body includes description rules, body discipline, patterns, and scripts guidance with "why" rationale throughout - Templates usable standalone by agents and humans skill-audit: - Structural validation (via validate.sh) + seven qualitative dimensions - Produces PASS/FAIL/SUGGESTION punch list with per-FAIL fix proposals - Report-only: does not apply fixes Co-Authored-By: Claude Sonnet 4.6 --- .../kyberforge/skills/skill-audit/README.md | 29 +++ .../kyberforge/skills/skill-audit/SKILL.md | 112 +++++++++++ .../kyberforge/skills/skill-write/README.md | 63 ++++++ .../kyberforge/skills/skill-write/SKILL.md | 151 +++++++++++++++ .../skill-write/assets/templates/README.md | 53 ++++++ .../skill-write/assets/templates/SKILL.md | 101 ++++++++++ .../assets/templates/assets/README.md | 29 +++ .../assets/templates/references/README.md | 31 +++ .../assets/templates/scripts/README.md | 47 +++++ .../skills/skill-write/scripts/new-skill.sh | 87 +++++++++ .../skills/skill-write/scripts/validate.sh | 179 ++++++++++++++++++ .../skills/write-skill/CATEGORIES.md | 16 -- .../skills/write-skill/META-TEMPLATE.md | 27 --- plugins/kyberforge/skills/write-skill/META.md | 16 -- .../skills/write-skill/SKILL-TEMPLATE.md | 93 --------- .../kyberforge/skills/write-skill/SKILL.md | 98 ---------- .../skills/write-skill/evals/eval.yaml | 69 ------- 17 files changed, 882 insertions(+), 319 deletions(-) create mode 100644 plugins/kyberforge/skills/skill-audit/README.md create mode 100644 plugins/kyberforge/skills/skill-audit/SKILL.md create mode 100644 plugins/kyberforge/skills/skill-write/README.md create mode 100644 plugins/kyberforge/skills/skill-write/SKILL.md create mode 100644 plugins/kyberforge/skills/skill-write/assets/templates/README.md create mode 100644 plugins/kyberforge/skills/skill-write/assets/templates/SKILL.md create mode 100644 plugins/kyberforge/skills/skill-write/assets/templates/assets/README.md create mode 100644 plugins/kyberforge/skills/skill-write/assets/templates/references/README.md create mode 100644 plugins/kyberforge/skills/skill-write/assets/templates/scripts/README.md create mode 100755 plugins/kyberforge/skills/skill-write/scripts/new-skill.sh create mode 100755 plugins/kyberforge/skills/skill-write/scripts/validate.sh delete mode 100644 plugins/kyberforge/skills/write-skill/CATEGORIES.md delete mode 100644 plugins/kyberforge/skills/write-skill/META-TEMPLATE.md delete mode 100644 plugins/kyberforge/skills/write-skill/META.md delete mode 100644 plugins/kyberforge/skills/write-skill/SKILL-TEMPLATE.md delete mode 100644 plugins/kyberforge/skills/write-skill/SKILL.md delete mode 100644 plugins/kyberforge/skills/write-skill/evals/eval.yaml diff --git a/plugins/kyberforge/skills/skill-audit/README.md b/plugins/kyberforge/skills/skill-audit/README.md new file mode 100644 index 0000000..7491031 --- /dev/null +++ b/plugins/kyberforge/skills/skill-audit/README.md @@ -0,0 +1,29 @@ +# skill-audit + +Audit a skill directory against the agentskills.io specification. Runs structural validation then a qualitative review across description quality, body discipline, formatting, file structure, and internal consistency. + +## What it does + +1. Runs `validate.sh` from `skill-write` for structural checks (name format, description length, line count, placeholder detection, script rules) +2. Reads all files in the skill directory +3. Applies qualitative checks across seven dimensions +4. Outputs a PASS/FAIL/SUGGESTION punch list with a specific fix proposal for every FAIL + +## Usage + +``` +/skill-audit +``` + +Provide the path to the skill directory to audit when invoking. + +## Files + +| File | Purpose | +|------|---------| +| `SKILL.md` | Skill instructions for agents | +| `README.md` | This file | + +## Dependencies + +Requires `skill-write` to be installed at `plugins/kyberforge/skills/skill-write/` for the structural validation step. If not present, the agent performs structural checks manually. diff --git a/plugins/kyberforge/skills/skill-audit/SKILL.md b/plugins/kyberforge/skills/skill-audit/SKILL.md new file mode 100644 index 0000000..2e4db4b --- /dev/null +++ b/plugins/kyberforge/skills/skill-audit/SKILL.md @@ -0,0 +1,112 @@ +--- +name: skill-audit +description: > + Audit a skill directory against the agentskills.io specification — structural + checks plus qualitative review of description quality, body discipline, formatting, + file structure, and internal consistency. Produces a PASS/FAIL/SUGGESTION punch + list with a specific fix proposal for every FAIL. Use when the user wants to + review a skill they wrote, says "audit this skill", "check if my skill follows + best practices", "review my SKILL.md", or wants to know if a skill is ready to + ship — even if they don't use the word "audit". Do not use to run evals, fix + application code bugs, or perform general code review unrelated to skill quality. +allowed-tools: Bash Read +metadata: + category: factory +--- + +## Step 1 — Structural validation + +Locate the `validate.sh` script from `skill-write`: + +```bash +bash plugins/kyberforge/skills/skill-write/scripts/validate.sh +``` + +If `validate.sh` is not found, note it and proceed — perform the checks it would cover manually. + +List every FAIL from the structural check in the punch list before continuing. + +## Step 2 — Read all skill files + +Read every file in the skill directory: `SKILL.md`, `README.md` (if present), all files in `scripts/`, `references/`, and `assets/`. Do not skip files — internal consistency checks require the full picture. + +## Step 3 — Qualitative audit + +Work through each dimension. Cite file and line number for every finding. + +### Description + +- **Imperative phrasing**: does it use "Use when..." not "This skill..."? +- **Specificity**: are capabilities stated precisely ("parses OpenAPI specs") or vaguely ("helps with APIs")? +- **Indirect triggers**: does it cover cases where the user doesn't name the domain directly? +- **Near-miss exclusions**: are "Do not use when..." clauses present if a near-miss skill could steal activations? +- **Length**: under 1024 characters? + +### Body discipline + +For each sentence in the body, apply: *"Would the agent get this wrong without this sentence?"* Flag any that answer "no" as padding. + +- **Defaults not menus**: every decision point gives one default + one escape hatch, not a list of options +- **Why rationale**: include/exclude rules explain why, not just what +- **Control calibration**: prescriptive for fragile or critical sequences; flexible where multiple approaches are valid + +### Patterns + +Check each pattern is appropriate and correctly formed: + +- **Gotchas**: placed near the top; each entry is a specific fact that defies a reasonable assumption — not a general tip +- **Prescriptive sequence**: inner code fences escaped as `\`\`\`` when nested inside a markdown block +- **Checklists**: used for multi-step workflows, not single steps +- **Conditional references**: specific trigger stated ("If X, read `references/file.md`") — not a generic "see references/" +- **Output templates**: present when the agent must produce a specific format; absent otherwise + +### File structure + +- Only spec-defined directories present: `scripts/`, `references/`, `assets/` +- No non-spec files (e.g. META.md, extra config files) +- Optional directories contain real content — not just unfilled placeholder READMEs +- `README.md` present and accurately describes the skill and its files + +### Formatting + +- Heading levels consistent: H2 for main sections, H3 for subsections +- Code blocks fenced with a language tag where applicable (`bash`, `markdown`, `python`) +- Consistent whitespace: blank line between sections, consistent list indentation +- No broken relative paths in file references + +### Scripts + +- No interactive TTY prompts (`read`, `input()`, `readline`) +- `--help` exposed with concise usage +- Data to stdout, diagnostics to stderr +- Idempotent ("create if not exists") +- Meaningful exit codes documented in `--help` +- `--dry-run` present for destructive operations + +### Internal consistency + +- SKILL.md steps match what scripts actually do +- `README.md` file table lists every file that exists — no missing entries, no stale entries +- Placeholder READMEs in `scripts/`, `references/`, `assets/` consistent with what SKILL.md says about each directory + +## Step 4 — Report + +Output a punch list grouped by dimension: + +``` +PASS/FAIL/SUGGESTION — : +``` + +Follow with a priority table: + +| Priority | Severity | Finding | File:Line | +|----------|----------|---------|-----------| + +Then for each FAIL, a fix proposal: + +``` +FAIL: +Fix: +``` + +Do not apply fixes. Report and propose only. diff --git a/plugins/kyberforge/skills/skill-write/README.md b/plugins/kyberforge/skills/skill-write/README.md new file mode 100644 index 0000000..27d8ed7 --- /dev/null +++ b/plugins/kyberforge/skills/skill-write/README.md @@ -0,0 +1,63 @@ +# skill-write + +Author a new skill conforming to the [agentskills.io](https://agentskills.io) specification. + +## What it does + +1. Scaffolds a full skill directory from annotated templates +2. Guides filling in `SKILL.md` and supporting files +3. Validates the result against the spec + +## Before you start + +This skill produces its best output when you arrive with rich context: + +- Run `/grill-me` to resolve design decisions (scope, triggers, patterns) +- Collect domain research, examples, and reference docs +- Know the skill name (kebab-case) and destination path + +## Usage + +Invoke via your agent tool with `/skill-write`, or follow the steps in `SKILL.md` manually. + +**Agent invocation:** +``` +/skill-write +``` + +**Manual (human) workflow:** +```bash +# 1. Create the scaffold +bash scripts/new-skill.sh + +# 2. Fill in the templates at // + +# 3. Validate +bash scripts/validate.sh / +``` + +## Files + +| File | Purpose | +|------|---------| +| `SKILL.md` | Skill instructions for agents | +| `scripts/new-skill.sh` | Copies annotated templates to the destination | +| `scripts/validate.sh` | Validates a skill directory against the spec | +| `assets/templates/SKILL.md` | Annotated SKILL.md template | +| `assets/templates/README.md` | Annotated README template for the new skill | +| `assets/templates/scripts/README.md` | Placeholder for bundled scripts | +| `assets/templates/references/README.md` | Placeholder for reference docs | +| `assets/templates/assets/README.md` | Placeholder for static assets | + +## Placement + +Skills can be installed in two locations: + +| Type | Path | +|------|------| +| Direct (available immediately) | `~/.agents/skills//` | +| Plugin (installed via marketplace) | `plugins//skills//` | + +## Spec reference + +[agentskills.io specification](https://agentskills.io/specification.md) diff --git a/plugins/kyberforge/skills/skill-write/SKILL.md b/plugins/kyberforge/skills/skill-write/SKILL.md new file mode 100644 index 0000000..8a403a9 --- /dev/null +++ b/plugins/kyberforge/skills/skill-write/SKILL.md @@ -0,0 +1,151 @@ +--- +name: skill-write +description: > + Author a new skill following the agentskills.io specification — scaffold the + directory structure from annotated templates, fill in SKILL.md and supporting + files, then validate the result. Use when the user wants to create a new skill + from scratch, says "write a skill for X", "build a skill that does Y", or + "create a SKILL.md for Z", or wants to make a workflow repeatable or shareable + as a reusable command. Performs best when preceded by a grill session and + domain research. Do not use to update an existing well-formed skill, write + evals, or author agent definition files. +allowed-tools: Bash Read Write +metadata: + category: factory +--- + +## Prerequisites + +Run `/grill-me` on the skill's design and research the target domain first. +Share those outputs in this conversation: grill context, research docs, examples, constraints. + +**Before touching the filesystem, verify you have:** +- [ ] A clear purpose — what specific task will this skill handle? +- [ ] Trigger scenarios — when should an agent activate it, including indirect cases? +- [ ] Skill name (kebab-case) and destination path + +If any are missing, stop and ask the user before proceeding. + +## Step 1 — Scaffold + +Run the copy script with the skill name and destination directory: + +```bash +bash scripts/new-skill.sh +``` + +Examples: +```bash +bash scripts/new-skill.sh my-tool ~/.agents/skills/ +bash scripts/new-skill.sh data-analyzer plugins/myplugin/skills/ +``` + +This creates `//` with annotated templates ready to fill in. + +## Step 2 — Fill in SKILL.md + +Open `//SKILL.md`. Replace every `FILL IN:` placeholder. + +### Frontmatter + +**`name`** — already set by the scaffold script. Must exactly match the directory name. + +**`description`** — carries the entire triggering burden. Rules: +- Imperative: "Use when..." not "This skill..." +- Specific about capabilities ("parses and validates OpenAPI specs", not "helps with APIs") +- Include indirect triggers: "even if the user doesn't mention X explicitly" +- Add "Do not use when..." only if a near-miss skill exists that could steal activations +- Hard limit: 1024 characters — count before finalizing + +**Optional fields** — uncomment and fill in or remove entirely: +- `license` — include when distributing the skill externally +- `compatibility` — include if the skill requires specific tools, runtimes, or network access +- `metadata` — key-value map; use `author`, `version`, `category` +- `allowed-tools` — space-separated pre-approved tools; reduces permission prompts + +### Body — include only what the agent lacks + +Ask of every sentence: "Would the agent get this wrong without it?" Cut anything that answers "no." + +**Include:** +- Non-obvious sequences or ordering constraints — the agent may skip or reorder steps without this +- Domain conventions the agent cannot infer from general knowledge — this is the core value a skill adds +- One default per decision point, plus one escape hatch — never a menu; menus cause the agent to pause or pick arbitrarily +- Gotchas — facts that defy reasonable assumptions; the agent will get these wrong every time without them + +**Exclude:** +- Concepts the agent already knows (what JSON is, how HTTP works) — adds tokens without changing behavior +- Exhaustive option lists — pick a default; the agent doesn't benefit from choosing +- Steps the agent handles independently — over-specifying leads agents to follow unproductive paths +- Restatements of the description — it's already in context; repeating it wastes the token budget + +### Patterns + +**Gotchas** — highest value; place near the top: +```markdown +## Gotchas +- +-