fix: write-skill governance review — model field, eval self-check, grill wiring
- Add model: sonnet to SKILL.md frontmatter (Claude Code extension; correct location per research — runtime config belongs in frontmatter, not META.md) - Document model field in SKILL-TEMPLATE.md with factory §9 routing guidance - Wire grill output explicitly to trigger description step (step 3 now references agreed name/category/purpose from grill rather than drafting independently) - Strengthen eval self-check: presence check → coverage check (trigger cases + at least one output case required) - Bump META.md to v1.2 (2026-05-26) - Add three LESSONS.md entries: META-TEMPLATE comment retention, overlap check scope (deployed dir not just repo), model field placement boundary Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
```yaml
|
||||
version: "1.1"
|
||||
updated: 2026-05-18
|
||||
version: "1.2"
|
||||
updated: 2026-05-26
|
||||
|
||||
# when: describes when this skill is loaded — the full trigger context.
|
||||
# More detail than the description field; not used for routing.
|
||||
|
||||
@@ -11,6 +11,9 @@ description: <trigger description>
|
||||
metadata:
|
||||
category: <category — see CATEGORIES.md>
|
||||
# allowed-tools: <add only when the skill has a narrow, well-defined tool surface; omit otherwise>
|
||||
# model: sonnet | opus | haiku — Claude Code extension; overrides session model for this skill's turn.
|
||||
# Omit to inherit the active session model. Factory §9 routing: haiku=formatting/classification,
|
||||
# sonnet=most coding/review, opus=adversarial/complex reasoning.
|
||||
---
|
||||
|
||||
<requirements>
|
||||
|
||||
@@ -3,6 +3,7 @@ name: write-skill
|
||||
description: Use when the user wants to author a new skill file or convert an existing placeholder to the canonical authoring standard. Triggers: "write a new skill for X", "create a SKILL.md that does Y", "build a skill to handle Z". Do NOT use when fixing or updating an existing well-formed skill (use upgrade-skill), running existing evals (use write-eval), refactoring application code, or writing documentation for non-skill artifacts.
|
||||
metadata:
|
||||
category: factory
|
||||
model: sonnet
|
||||
---
|
||||
|
||||
<requirements>
|
||||
@@ -32,11 +33,11 @@ Negative trigger cases are NOT a required input. The agent proposes them based o
|
||||
|
||||
## Process
|
||||
|
||||
1. **Scan for overlap.** Check `.agents/skills/` for skills with similar purpose or trigger phrases. If overlap is found, surface it and wait for explicit direction — do not continue.
|
||||
1. **Scan for overlap.** Check for skills with similar purpose or trigger phrases. If overlap is found, surface it and wait for explicit direction — do not continue.
|
||||
|
||||
2. **Grill.** Run a focused grill to reach shared understanding of: skill name, category, purpose, and use cases. One question at a time, with a recommendation for each.
|
||||
2. **Grill.** Run a focused grill with the /grill-me skill to reach shared understanding of: skill name, category, purpose, and use cases. One question at a time, with a recommendation for each.
|
||||
|
||||
3. **Write and test the trigger description.** Draft `description:`. Propose negative trigger cases based on the skill's purpose and adjacent skills — get explicit user confirmation before running tests. Test all three cases and show per-case PASS/FAIL. A failed case means revise and retest — do not proceed.
|
||||
3. **Write and test the trigger description.** Using the agreed name, category, purpose, and use cases from the grill, draft `description:`. Propose negative trigger cases based on the skill's purpose and adjacent skills — get explicit user confirmation before running tests. Test all three cases and show per-case PASS/FAIL. A failed case means revise and retest — do not proceed.
|
||||
|
||||
4. **Walk through each section.** For each section in `SKILL-TEMPLATE.md`: propose content, state where it comes from, present alternatives if they exist. Wait for explicit human confirmation before moving to the next section.
|
||||
|
||||
@@ -78,7 +79,7 @@ For placeholder conversions, `SKILL.md` replaces the existing file entirely —
|
||||
- [ ] Frontmatter contains only `name`, `description`, and `metadata.category` (plus `allowed-tools` if applicable)
|
||||
- [ ] Body is under 500 lines
|
||||
- [ ] For placeholder conversions: existing files read, all stale content removed, old directory deleted if renamed
|
||||
- [ ] `write-eval` invoked — eval file exists at correct path
|
||||
- [ ] `write-eval` invoked — eval file exists at correct path, covers trigger cases (explicit, implicit, negative) and at least one output case
|
||||
- [ ] User prompted for HITL behavioral test
|
||||
|
||||
</checks>
|
||||
|
||||
Reference in New Issue
Block a user