Skip to content

Commit fc777a9

Browse files
authored
feat(grilling,skill-smith): port mattpocock/skills v1.1 upstream fixes (#15)
Close the gaps between our steals and upstream v1.1.0: - grilling: split facts from decisions (facts get looked up in the codebase, decisions go to the human and wait for an answer), add the do-not-enact-until-confirmed stop-gate, and recruit the 'grill' leading word in the description. Upstream PR mattpocock/skills#464. - skill-smith: add the Negation failure mode (steering by prohibition drags the forbidden behaviour into context; prompt the positive instead) to the design glossary and the principles failure-mode list. Upstream PR mattpocock/skills#463. Upstream also drafted a 'Negative Space' twin entry but cut it before tagging v1.1.0 as not actionable; we skip it for the same reason. Descriptions updated in plugin.json + marketplace.json; versions bumped (grilling 0.2.0, skill-smith 0.3.3); Codex artifacts regenerated via sync-codex.sh.
1 parent fad1b57 commit fc777a9

7 files changed

Lines changed: 18 additions & 9 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
"name": "skill-smith",
8686
"source": "./plugins/skill-smith",
8787
"description": "Forge for Agent Skills: create, test, evaluate, optimize triggering, and package skills. Merges an empirical eval loop (run with-skill vs baseline, benchmark, iterate) with TDD-for-skills discipline (baseline-test first, close rationalization loopholes). Bundles the eval harness, benchmark viewer, description-triggering optimizer, and a design-vocabulary reference (predictability, context vs cognitive load, information hierarchy, leading words, failure modes). Claude-Code-leaning (subagents + scripts).",
88-
"version": "0.3.2"
88+
"version": "0.3.3"
8989
},
9090
{
9191
"name": "git-cleanup",
@@ -102,8 +102,8 @@
102102
{
103103
"name": "grilling",
104104
"source": "./plugins/grilling",
105-
"description": "Relentless one-question-at-a-time interview that stress-tests a plan or design to convergence, exploring the codebase to answer its own questions where it can. Bundles grilling (the engine), grill-with-docs (grill + write ADRs and a glossary as you go), and domain-modeling (sharpen a ubiquitous language, CONTEXT.md glossary, sparing ADRs). Portable across SKILL.md-native hosts.",
106-
"version": "0.1.2"
105+
"description": "Relentless one-question-at-a-time interview that stress-tests a plan or design to convergence: facts get looked up in the codebase, decisions go to the human, and nothing is enacted until shared understanding is confirmed. Bundles grilling (the engine), grill-with-docs (grill + write ADRs and a glossary as you go), and domain-modeling (sharpen a ubiquitous language, CONTEXT.md glossary, sparing ADRs). Portable across SKILL.md-native hosts.",
106+
"version": "0.2.0"
107107
},
108108
{
109109
"name": "teach",

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Generated from `.claude-plugin/marketplace.json` (the source of truth) by `scrip
102102
| `skill-smith` | any | Forge for Agent Skills: create, test, evaluate, optimize triggering, and package skills. |
103103
| `git-cleanup` | any | Clean up stale git branches and worktrees. |
104104
| `strip-migration-cruft` | any | Scan a repo for transitional / migration / phase / wave / story / legacy-alias cruft comments, bucket into safe-to-strip vs keep-semantic, propose surgical edits and execute after confirmation. |
105-
| `grilling` | any | Relentless one-question-at-a-time interview that stress-tests a plan or design to convergence, exploring the codebase to answer its own questions where it can. |
105+
| `grilling` | any | Relentless one-question-at-a-time interview that stress-tests a plan or design to convergence: facts get looked up in the codebase, decisions go to the human, and nothing is enacted until shared understanding is confirmed. |
106106
| `teach` | any | Stateful, multi-session teaching workspace: grounds every lesson in a MISSION.md, gathers trusted RESOURCES.md, produces short self-contained HTML lessons in the learner's zone of proximal development, tracks progress via learning-records, and builds storage strength through retrieval, spacing, and interleaving. |
107107
| `codebase-design` | any | Shared vocabulary for designing deep modules: a lot of behaviour behind a small interface, placed at a clean seam, testable through that interface. |
108108
<!-- END PLUGINS -->

plugins/grilling/.claude-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "grilling",
3-
"version": "0.1.2",
4-
"description": "Relentless one-question-at-a-time interview that stress-tests a plan or design to convergence, exploring the codebase to answer its own questions where it can. Bundles grilling (the engine), grill-with-docs (grill + write ADRs and a glossary as you go), and domain-modeling (sharpen a ubiquitous language, CONTEXT.md glossary, sparing ADRs). Portable across SKILL.md-native hosts.",
3+
"version": "0.2.0",
4+
"description": "Relentless one-question-at-a-time interview that stress-tests a plan or design to convergence: facts get looked up in the codebase, decisions go to the human, and nothing is enacted until shared understanding is confirmed. Bundles grilling (the engine), grill-with-docs (grill + write ADRs and a glossary as you go), and domain-modeling (sharpen a ubiquitous language, CONTEXT.md glossary, sparing ADRs). Portable across SKILL.md-native hosts.",
55
"author": {
66
"name": "Victor De Simone",
77
"email": "victorsmoliveira@gmail.com",
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
22
name: grilling
33
argument-hint: "[plan or design to stress-test]"
4-
description: Interview the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.
4+
description: Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.
55
---
66

77
Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
88

99
Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.
1010

11-
If a question can be answered by exploring the codebase, explore the codebase instead.
11+
If a *fact* can be found by exploring the codebase, look it up rather than asking me. The *decisions*, though, are mine: put each one to me and wait for my answer.
12+
13+
Do not enact the plan until I confirm we have reached a shared understanding.

plugins/skill-smith/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "skill-smith",
3-
"version": "0.3.2",
3+
"version": "0.3.3",
44
"description": "Forge for Agent Skills: create, test, evaluate, optimize triggering, and package skills. Merges an empirical eval loop (run with-skill vs baseline, benchmark, iterate) with TDD-for-skills discipline (baseline-test first, close rationalization loopholes, verify before shipping). Use whenever building a skill from scratch, turning a workflow into a skill, improving or debugging an existing skill, running evals/benchmarks, or raising a skill's triggering accuracy.",
55
"author": {
66
"name": "Victor De Simone",

plugins/skill-smith/skills/skill-smith/references/skill-design-glossary.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,9 @@ An instruction that changes nothing because the model already does it by default
179179
A leading word is a *technique*; No-Op is a *verdict* on a line, and they cross. A leading word too weak to beat the default is a no-op (_be thorough_ when the agent is already thorough-ish), and the fix is a stronger word that passes the verdict (_relentless_), not a different technique. So the No-Op test (does it change behaviour versus the default?) is also how you grade whether a leading word is earning its repetitions. This is model-relative, not reader-relative: two people disagreeing over whether a line is a no-op disagree about the default, and settle it by running the skill, not by debate.
180180

181181
_Avoid_: redundant instruction, restating the obvious, belaboring
182+
183+
### Negation
184+
185+
Steering by prohibition: telling the agent what *not* to do drags the forbidden behaviour into context and makes it *more* available, not less. *Don't think of an elephant*, and the elephant is all there is; *never write verbose comments*, and verbosity is the pattern the agent has just read. The negation is a weak modifier the strongly-activated concept overruns, so the ban half-reads as an instruction to do the thing. Its **leading word** is the *elephant*: whatever a prohibition names into the frame. Cure: prompt the **positive**, describing the target behaviour ("write one-line comments") so the banned one is never spoken. A prohibition earns its place only as a hard guardrail on a behaviour you cannot phrase positively; even then, pair it with the positive target so attention lands on what to do.
186+
187+
_Avoid_: ironic rebound, don't-prompting, the pink elephant

plugins/skill-smith/skills/skill-smith/references/skill-design-principles.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,4 @@ Use these to diagnose issues the user may be having with the skill.
7777
- **Sediment:** stale layers that settle because adding feels safe and removing feels risky. The default fate of any skill without a pruning discipline.
7878
- **Sprawl:** a skill simply too long, even when every line is live and unique. Hurts readability and maintainability and wastes tokens. The cure is the ladder: disclose **reference** behind pointers, and split by **branch** or sequence so each path carries only what it needs.
7979
- **No-op:** a line the model already obeys by default, so you pay load to say nothing. The test: does it change behaviour versus the default? A weak leading word (_be thorough_ when the agent is already thorough-ish) is a no-op; the fix is a stronger word (_relentless_), not a different technique.
80+
- **Negation:** steering by prohibition backfires: _don't think of an elephant_ names the elephant and makes it more available, not less. Prompt the **positive**, stating the target behaviour so the banned one is never spoken; keep a prohibition only as a hard guardrail you can't phrase positively, and even then pair it with what to do instead.

0 commit comments

Comments
 (0)