Repository navigation
fix(skills): put trigger phrasing in every skill description - #418
Merged
Merged
Conversation
Owner
Author
|
CI evidence before merge: all checks pass ( 13 pass ). Blender Smoke on PR head: Blender 5.2.2 LTS / Blender 4.5.14 LTS. Summaries (happy path; falsifiers) per leg: 141 passed, 3 skipped, 0 failed;136 passed, 6 skipped, 0 failed;143 passed, 1 skipped, 0 failed;142 passed, 0 skipped, 0 failed; |
Claude Code and Cursor choose a skill from its frontmatter description alone. All 16 skills kept their triggers (API names, error strings) in a body "## Trigger" section the model cannot see at selection time, and none had a "Use when" clause, so the skills fired less often than they should. Each description now says what the skill covers, then "Use when ..." with the API names and literal error messages that should load it (e.g. "No active UV layer found", "poll() failed, context is incorrect", AttributeError on sequence_editor.sequences). The slotted-actions description also stops recommending bare action.fcurves on 4.5 (#385), and engine-export-presets matches #346. The documented "under 200 chars" limit was already broken by 12 skills and never enforced, and it would have blocked this. check_frontmatter now enforces <= 1024 characters (the Agent Skills cap) and a "Use when" clause; AGENTS.md and CONTRIBUTING.md show the new shape. Closes #357 Closes #396 Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
TMHSDigital
force-pushed
the
fix/skill-trigger-descriptions
branch
from
October 5, 2026 00:29
e815d6f to
88e364f
Compare
Owner
Author
|
CI evidence before merge: all checks pass ( 13 pass ). Blender Smoke on PR head: Blender 5.2.2 LTS / Blender 4.5.14 LTS. Summaries (happy path; falsifiers) per leg: 143 passed, 1 skipped, 0 failed;142 passed, 0 skipped, 0 failed;141 passed, 3 skipped, 0 failed;136 passed, 6 skipped, 0 failed; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #357. Closes #396.
Problem
Claude Code and Cursor decide whether to load a skill from its frontmatter
descriptionalone.## Triggersection that the model can't see at selection time.Change
descriptionnow has two parts:'No active UV layer found',poll() failed, context is incorrect,AttributeErroronsequence_editor.sequences,'Node type ... undefined', keys that never play back.slotted-actions-animationno longer recommends bareaction.fcurveson 4.5 (snippets: Slotted Actions bridge makes keys that never play back on 4.5 LTS (no slot assigned on the legacy path) #385);engine-export-presetsmatches snippets: Godot glTF preset exports Z-up, but glTF and Godot are both Y-up #346 (Y-up, meter glTF for every engine). This overlaps fix(snippets): export Y-up, meter glTF for Godot and Unreal too #417's description line; whichever merges second gets rebased.tests/check_frontmatter.py: each skill description must be ≤ 1024 characters (the Agent Skills format cap; Claude Code's own cap is 1536 for description + when_to_use) and must contain "Use when".Evidence (local; no Blender needed)
python tests/check_frontmatter.py:skill and rule frontmatter valid. All 16 descriptionsyaml.safe_loadcleanly. Longest is 501 chars.ui-panels, the check prints::error::skills/ui-panels/SKILL.md: description has no 'Use when ...' trigger clauseand exits 1. Restored, it passes.build_site._summarize()(340-char, whole-sentence cut) shows only the first, "what it covers" sentence(s) for every skill (128–293 chars). The trigger clause doesn't clutter the cards.Not measured: the change in skill-selection rate. That is what the eval harness in #373 would quantify.
🤖 Generated with Claude Code