skill: make the peltier skill consumable across agent harnesses

The SKILL.md Agent Skills standard (agentskills.io) is now read natively by
Codex, Copilot, VS Code, Cursor, Gemini CLI, opencode, Goose, Amp, Zed,
Factory, and ZeroClaw — so the portable move is not per-harness adapter
files (forked content that drifts) but one canonical skill placed where
each harness actually looks.

- Spec-compliant frontmatter: license, compatibility (the Linux-only
  measurement story, stated up front), version/author/tags top-level
  (ZeroClaw's runtime reads those; the spec ignores unknown fields).
  reference/ renamed to references/ per the spec's conventional layout.
- .agents/skills/peltier/ mirror: the cross-tool convergence path (Codex,
  Zed, Cursor, Gemini CLI, Copilot, opencode, Goose, Amp). Byte-identical
  to the .claude canonical, enforced by CI — drift between the two copies
  is a red build, not a footnote.
- AGENTS.md at the repo root for the ~20 harnesses that read it (Claude
  Code does not; CLAUDE.md remains its file). Deliberately thin: it points
  at CLAUDE.md and the skill instead of restating rules.
- scripts/install-skill.sh: stamps a consumer repo at both discovery paths
  (--layout claude|agents|both), or emits a script-less --zeroclaw-variant.
  ZeroClaw's skill security policy blocks script files by default
  (skills.allow_scripts off) — its audit rejected the full skill and passes
  the variant, verified against the real zeroclaw binary. The variant loses
  nothing: preflight.sh still exists exactly once, in the peltier checkout
  the skill already requires, and SKILL.md now documents running it from
  there. Re-implementing preflight inline is named as a refusal condition.
- CI (skill-preflight): frontmatter upgraded to a full Agent Skills spec
  conformance check on BOTH copies (name rules, dir match, description and
  body limits, metadata string-map), plus mirror equality and a functional
  installer test (both layouts identical to canonical, variant carries no
  scripts/, nonexistent target refused).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 11:59:26 -04:00
co-authored by Claude Fable 5
parent ec73e277f1
commit 477c5472dd
13 changed files with 801 additions and 28 deletions
+28 -12
View File
@@ -71,24 +71,40 @@ tests, but cannot run the pipeline.
Full command reference and reproduction steps:
[Reproduce it yourself](https://bdbrown4.github.io/peltier.io/reproduce.html).
## Use it on your own code
## Use it on your own code — from any agent harness
The trust layer is not specific to these targets — it will judge any two shell
commands. `.claude/skills/peltier/` packages it as a Claude Code skill:
commands. It ships as an **[Agent Skill](https://agentskills.io)** (the open
SKILL.md standard), which Claude Code, OpenAI Codex, GitHub Copilot, VS Code,
Cursor, Gemini CLI, opencode, Goose, Amp, Zed, and ZeroClaw all load natively.
One installer stamps it into your repo at both discovery paths:
```sh
# from any repo, with a peltier checkout reachable
export PELTIER_HOME=/path/to/peltier.io
mkdir -p .claude/skills
cp -r /path/to/peltier.io/.claude/skills/peltier .claude/skills/
# from your repo, with a peltier checkout at /path/to/peltier.io
sh /path/to/peltier.io/scripts/install-skill.sh .
export PELTIER_HOME=/path/to/peltier.io # the skill drives bench-runner from here
```
Then ask Claude to verify a speedup. The skill enforces the order that makes a
performance claim mean something: **equivalence before timing** (a faster
program that computes something different is a bug, not an optimization) →
**A/A calibration** (a host that "finds" a speedup between a binary and itself
cannot measure yours) → **interleaved A/B with a bootstrap CI** → a verdict
decided by the CI *lower bound*, never the median.
That writes `.claude/skills/peltier/` (Claude Code; also read by Copilot,
VS Code, opencode, Amp) and `.agents/skills/peltier/` (the cross-tool path:
Codex, Zed, Cursor, Gemini CLI, Goose, and others). This repo carries both,
CI-enforced byte-identical, so the two copies cannot drift.
**ZeroClaw** blocks script files inside skills by default, so it gets a
script-less variant (preflight runs from your peltier checkout instead —
same one copy of the script):
```sh
sh /path/to/peltier.io/scripts/install-skill.sh --zeroclaw-variant /tmp/peltier-skill
zeroclaw skills install /tmp/peltier-skill
```
Then ask your agent to verify a speedup. The skill enforces the order that
makes a performance claim mean something: **equivalence before timing** (a
faster program that computes something different is a bug, not an
optimization) → **A/A calibration** (a host that "finds" a speedup between a
binary and itself cannot measure yours) → **interleaved A/B with a bootstrap
CI** → a verdict decided by the CI *lower bound*, never the median.
It drives the real `bench-runner` binary and **refuses rather than degrade**:
on an unsupported host, or with no trust layer reachable, it stops and says so