swe-workflow-skills 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: writing-skills
3
- description: "Use when authoring, editing, or reviewing a skill in this library — a new SKILL.md, one that under-triggers, or hardening an existing one. Covers description and listing-budget rules, frontmatter, progressive disclosure, the 3-eval rule, and pressure-testing against rationalizations. Triggers: write a skill, new skill, edit a skill, skill isn't triggering."
3
+ description: "Use when authoring, editing, or reviewing a skill in this library — a new SKILL.md, one that under-triggers, or hardening an existing one. Covers description and listing-budget rules, frontmatter, progressive disclosure, the 3-eval rule, and pressure-testing against rationalizations."
4
+ when_to_use: "Triggers: write a skill, new skill, edit a skill, skill isn't triggering."
4
5
  model: sonnet
5
6
  allowed-tools: Read, Grep, Glob, Write, Edit, Bash
6
7
  ---
@@ -51,24 +52,31 @@ description over the body, so get it right.
51
52
  - **Write WHEN to use, not WHAT it does.** A description that summarizes the
52
53
  internal workflow ("reviews code in two passes") triggers worse than one that
53
54
  lists situations ("review this PR, check my code before commit").
54
- - **Our format is a compliant hybrid:** `<when/purpose>. Triggers: <keywords>. <boundary>`.
55
- The `Triggers:` list *is* the when-to-use expressed as the phrases a user
56
- actually types keep casting that net wide.
57
- - **Keep the hybrid format for now** (don't move triggers to `when_to_use` yet):
58
- the catalog builder reads only `description`, so the router would lose the
59
- trigger phrases. The `when_to_use` migration is a coordinated roadmap change
60
- (builder + skills + routing re-baseline together).
61
- - **~350 chars** for `description` (listing-budget constraint; hard cap 1024).
62
- Over budget, the *least-invoked* skills' descriptions drop silently — `/doctor`
63
- reports it. See AUTHORING.md "Listing Budget".
55
+ - **The listing is `description` + `when_to_use`.** The `Triggers:` list *is* the
56
+ when-to-use expressed as the phrases a user actually types — keep casting that
57
+ net wide. **New skills put it in `when_to_use`; existing skills migrate lazily**
58
+ (whenever next touched). A migration must be a **pure move**: triggers go to
59
+ `when_to_use`, the **boundary/delegation instructions STAY in `description`**
60
+ (they're what steers haiku routing EVALS.md). The catalog builder concatenates
61
+ both fields check with `node scripts/build-plugins.mjs` + `git diff
62
+ catalog.json` that content is unchanged (a trailing boundary reorders ahead of
63
+ the triggers; that's fine). No re-baseline needed.
64
+ - **~350 chars** combined listing target (hard caps: `description` 1024, combined
65
+ 1536 — the builder errors above either). Over the listing budget, the
66
+ *least-invoked* skills' descriptions drop silently — `/doctor` reports it. See
67
+ AUTHORING.md "Listing Budget".
64
68
  - **Anti-pattern:** describing mechanics/steps instead of triggering situations.
65
69
 
66
70
  ## Structure and budget (brief — see AUTHORING.md for detail)
67
71
 
68
- - Frontmatter: `name`, `description`, `model` (haiku/sonnet/opus by reasoning
69
- need), `allowed-tools`. Newer fields where they fit: `when_to_use`,
70
- `context: fork` + `agent` (heavy read-only skills), `paths` (file-scoped),
71
- `disable-model-invocation` (deliberate-only workflows), `effort`.
72
+ - Frontmatter: `name`, `description`, `when_to_use`, `model` (haiku/sonnet/opus
73
+ by reasoning need), `allowed-tools`. Newer fields where they fit:
74
+ `context: fork` + `agent` (heavy report-producing skills must write the full
75
+ report to a file and put anything needing user input in an "Open questions"
76
+ section, since a fork returns only a summary and can't ask the user),
77
+ `paths` (file-scoped), `disable-model-invocation` (deliberate-only workflows),
78
+ `effort`. Dynamic `` !`cmd` `` injection: cheap `--stat`-style commands only,
79
+ `|| true` failure-tolerant — see AUTHORING.md's injection rules.
72
80
  - Progressive disclosure: keep SKILL.md tight (aim < 300 lines); push deep
73
81
  domain knowledge to `references/`, output formats to `templates/`. On
74
82
  compaction only a skill's first ~5k tokens are re-attached — front-load the
@@ -89,11 +97,19 @@ Apply rigor where mistakes are expensive; keep freedom where judgment matters.
89
97
  architecture exploration, UX, estimation, proposals. Rigidity there produces
90
98
  worse outcomes, not better ones.
91
99
 
92
- ## Retiring skills
93
-
94
- As base models improve, a skill can become pure overhead. Periodically re-run a
95
- skill's evals RED (without the skill); if RED GREEN, slim or retire it rather
96
- than letting it spend listing budget and re-attachment tokens.
100
+ ## Retiring skills (obsolescence review)
101
+
102
+ As base models improve, a skill can become pure overhead. Once per release cycle
103
+ or on a major base-model update re-run the skill's 3 evals RED on shipping
104
+ models via `evals/workflow-runner.mjs`; re-sample ×3 on borderline scores and
105
+ read the judge journal before calling a result variance (a "flaky" case is often
106
+ a real content gap the skill causes). If RED ≈ GREEN across all 3 evals (0/0
107
+ tool-dependent assertion pairs don't count), **slim first** — cut what the model
108
+ does unaided; keep the Iron Law, boundaries, and cross-skill references — then
109
+ re-run GREEN (gate: GREEN ≥ RED per case). Retire only after a slimmed skill
110
+ stays RED ≈ GREEN a full cycle later, with a deprecation notice in
111
+ CHANGELOG/ROLES.md first (removal is user-visible to role and plugin consumers).
112
+ Full policy: docs/AUTHORING.md § Obsolescence review.
97
113
 
98
114
  ## See also
99
115