Skip to content

docs(skills): phrase every SKILL.md description as a trigger - #8

Merged
webmyc merged 1 commit into
mainfrom
docs/skill-trigger-descriptions
Jul 27, 2026
Merged

docs(skills): phrase every SKILL.md description as a trigger#8
webmyc merged 1 commit into
mainfrom
docs/skill-trigger-descriptions

Conversation

@webmyc

@webmyc webmyc commented Jul 27, 2026

Copy link
Copy Markdown
Member

What

Rewrites the description: field in all 39 skills/*/SKILL.md files so each one leads with a trigger instead of a feature summary. Nothing else changed: no name, no license, no metadata, no body text, no skills.json. One line per file, 39 insertions, 39 deletions.

Why

The description in SKILL.md frontmatter is agent-facing selection metadata. It is the only text an agent sees when deciding which of 39 skills to invoke, so it needs to answer "should i reach for this now?" rather than "what is this?".

WordPress core's guidance for agent skills says a description should be phrased as a trigger: "Use when...". Only 2 of the 39 files did that.

Before and after

skill before after
migrate-divi-to-gutenberg Converts Divi pages to native Gutenberg blocks by parsing shortcodes, mapping modules to core blocks, and creating draft duplicates for review. Use when the user says 'migrate divi to gutenberg', 'convert divi to blocks', 'get off divi', or 'decommission divi'. Parses Divi shortcodes, maps modules to core blocks, and creates draft duplicates for review.
woocommerce-health-check WooCommerce configuration diagnostics, identifies checkout problems, cart errors, AJAX mismatches... Use when the user says 'why is my checkout broken', 'audit my woocommerce store', 'cart problems woocommerce', or 'losing sales woocommerce'. Diagnoses checkout and cart failures, AJAX mismatches, caching conflicts, payment gateway setup, and SSL enforcement.
seo-aeo-amplifier Comprehensive on-page SEO and Answer Engine Optimization audit with automated duplicate creation and intelligent schema markup generation. Use when the user says 'run an seo aeo audit', 'improve my search visibility', 'optimize my site for search engines', or wants the site cited by AI answer engines. Audits on-page SEO and AEO, generates schema markup, and applies fixes on duplicates for review after a snapshot.

Provenance

Every trigger is lifted from the skill's own body: its ## When to Use list, its ## Trigger Phrase section, or its ## Alternative Triggers. No scenario was invented, and the capability half of each old description was kept, just moved behind the trigger.

skills.json is deliberately untouched

That file is read by a human browsing respira.press/skills, where trigger phrasing is noise. scripts/validate-skills.mjs already documents why the two fields are supposed to differ, and still enforces that no two skills share a description so an agent can always tell them apart.

Verification

  • node scripts/validate-skills.mjs exits 0, all 39 valid
  • all 39 descriptions start with "Use when
  • 0 em dashes or en dashes in added lines
  • every description parses as real YAML (single quotes inside the double-quoted scalar, no escapes needed) and is under 350 characters
  • git diff --numstat shows exactly 1 line changed in each of the 39 files

The `description` in SKILL.md frontmatter is agent-facing selection metadata,
not a catalogue blurb. It is the only text an agent reads when deciding which
of the 39 skills to invoke, so it has to answer "should i reach for this now?"
rather than "what is this?".

WordPress core says the same thing in its guidance for agent skills
(https://developer.wordpress.org/block-editor/contributors/code/agents-and-skills/):
a skill description should be phrased as a trigger, "Use when...".

Only 2 of 39 did that. The other 37 opened with a feature summary. An agent
scanning the collection got "Converts Divi pages to native Gutenberg blocks by
parsing shortcodes" where it needed "Use when the user says 'migrate divi to
gutenberg', 'get off divi', or 'decommission divi'".

Every rewritten trigger comes from the skill's own body: its "When to Use"
list, its "Trigger Phrase" section, or its "Alternative Triggers". No scenario
was invented. The capability half of each old description was kept, just moved
behind the trigger.

skills.json is deliberately untouched. That file is read by a human browsing
respira.press/skills, where trigger phrasing is noise. scripts/validate-skills.mjs
documents why the two fields are supposed to differ, and still enforces that no
two skills share a description so an agent can always tell them apart.

Body text below the frontmatter is unchanged. One line per file.
@webmyc
webmyc merged commit 4987720 into main Jul 27, 2026
1 of 2 checks passed
@webmyc
webmyc deleted the docs/skill-trigger-descriptions branch July 27, 2026 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant