From 62df81709d768b5cc9251369b76ce3bc1343af1d Mon Sep 17 00:00:00 2001 From: Ben Brown Date: Thu, 16 Jul 2026 08:32:22 -0400 Subject: [PATCH] skill: make the sh-vs-ps1 dispatch rule explicit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 'Use whichever your host can launch' left the selection order implicit and did not distinguish the two failure kinds. Now stated: dispatch on launcher availability (not OS) — sh first, ps1 only when the sh launcher itself is missing; and a STATUS=refuse from either entry point is final, never a cue to try the other one for a different answer. The CI byte-diff exists precisely so there is no different answer. Co-Authored-By: Claude Fable 5 --- .agents/skills/peltier/SKILL.md | 8 ++++++-- .agents/skills/peltier/references/verify.md | 6 +++++- .claude/skills/peltier/SKILL.md | 8 ++++++-- .claude/skills/peltier/references/verify.md | 6 +++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.agents/skills/peltier/SKILL.md b/.agents/skills/peltier/SKILL.md index 8a37aa3..ce51af9 100644 --- a/.agents/skills/peltier/SKILL.md +++ b/.agents/skills/peltier/SKILL.md @@ -34,8 +34,12 @@ plugin, or copied into another project): powershell -NoProfile -ExecutionPolicy Bypass -File /scripts/preflight.ps1 The two entry points implement one contract and are byte-diffed against each -other in CI — same checks, same output, same refusals. Use whichever your -host can launch; never both, never neither. +other in CI — same checks, same output, same refusals. Dispatch on launcher +availability, not OS: try `sh` first; if the **launcher itself** is missing +(`sh: not found` — a launch failure, not a refusal), run the PowerShell entry +point instead. A `STATUS=refuse` from either is **final**: never run the +second entry point hoping for a different answer — they are kept +byte-identical in CI precisely so there is no different answer. Some harnesses block script files inside skills, so your installation may carry no `scripts/` directory. The script still exists exactly once — in the diff --git a/.agents/skills/peltier/references/verify.md b/.agents/skills/peltier/references/verify.md index ffc2173..5722fcc 100644 --- a/.agents/skills/peltier/references/verify.md +++ b/.agents/skills/peltier/references/verify.md @@ -6,11 +6,15 @@ faster. Find out. Works on any pair of shell commands, in any language. ## 0. Preflight sh /scripts/preflight.sh - # no POSIX shell (Windows-native harness)? same contract, CI-diffed against the sh version: + # `sh` launcher missing ("sh: not found" — a launch failure, NOT a refusal)? + # same contract, byte-diffed against the sh version in CI: powershell -NoProfile -ExecutionPolicy Bypass -File /scripts/preflight.ps1 # installation carries no scripts/ (script-blocking harness)? run from the checkout: sh "$PELTIER_HOME/.claude/skills/peltier/scripts/preflight.sh" +A `STATUS=refuse` from either entry point is final — do not run the other one +looking for a different answer. + Read the `key=value` output; you need `BENCH_RUNNER` and `PIN_SUPPORTED`. A refusal ends the **claim**, not the work — report the reason verbatim and do not substitute another timing tool. diff --git a/.claude/skills/peltier/SKILL.md b/.claude/skills/peltier/SKILL.md index 8a37aa3..ce51af9 100644 --- a/.claude/skills/peltier/SKILL.md +++ b/.claude/skills/peltier/SKILL.md @@ -34,8 +34,12 @@ plugin, or copied into another project): powershell -NoProfile -ExecutionPolicy Bypass -File /scripts/preflight.ps1 The two entry points implement one contract and are byte-diffed against each -other in CI — same checks, same output, same refusals. Use whichever your -host can launch; never both, never neither. +other in CI — same checks, same output, same refusals. Dispatch on launcher +availability, not OS: try `sh` first; if the **launcher itself** is missing +(`sh: not found` — a launch failure, not a refusal), run the PowerShell entry +point instead. A `STATUS=refuse` from either is **final**: never run the +second entry point hoping for a different answer — they are kept +byte-identical in CI precisely so there is no different answer. Some harnesses block script files inside skills, so your installation may carry no `scripts/` directory. The script still exists exactly once — in the diff --git a/.claude/skills/peltier/references/verify.md b/.claude/skills/peltier/references/verify.md index ffc2173..5722fcc 100644 --- a/.claude/skills/peltier/references/verify.md +++ b/.claude/skills/peltier/references/verify.md @@ -6,11 +6,15 @@ faster. Find out. Works on any pair of shell commands, in any language. ## 0. Preflight sh /scripts/preflight.sh - # no POSIX shell (Windows-native harness)? same contract, CI-diffed against the sh version: + # `sh` launcher missing ("sh: not found" — a launch failure, NOT a refusal)? + # same contract, byte-diffed against the sh version in CI: powershell -NoProfile -ExecutionPolicy Bypass -File /scripts/preflight.ps1 # installation carries no scripts/ (script-blocking harness)? run from the checkout: sh "$PELTIER_HOME/.claude/skills/peltier/scripts/preflight.sh" +A `STATUS=refuse` from either entry point is final — do not run the other one +looking for a different answer. + Read the `key=value` output; you need `BENCH_RUNNER` and `PIN_SUPPORTED`. A refusal ends the **claim**, not the work — report the reason verbatim and do not substitute another timing tool.