Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Diff two scaffolded harnesses (ADR-031). Reports manifest meta drift + host list + per-file fingerprint changes (added/removed/changed). Exits 0 IDENTICAL, 1 DRIFT, 2 missing manifest. Use --bundle for the ADR-031 schema-1 JSON envelope.
.claude/skills/ruvnet-compare-harnesses/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 1476% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 109% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 19% | 0% |
> Codex skill: diff two scaffolded harnesses — the ADR-031 Bundle JSON > Pattern surfaced through Codex (iter 105 → iter 109).
Two-harness diff. Useful when you've forked an upstream template, when a support ticket says "mine and theirs scaffolded different things", or when a CI script wants a byte-equality check between a candidate scaffold and a known-good baseline.
Reports three sections:
claude-code /codex / pi-dev / hermes / openclaw / rvm)
the cheapest possible byte-equality test)
| Verdict | Exit | Meaning | |---|---|---| | IDENTICAL | 0 | meta + hosts + every file fingerprint matches | | DRIFT | 1 | at least one of meta / hosts / files differs | | no-manifest-in-a | 2 | a/.harness/manifest.json missing | | no-manifest-in-b | 2 | b/.harness/manifest.json missing | | no-manifest-in-either | 2 | both sides missing manifest |
/compare-harnesses a=./my-fork b=./upstream
/compare-harnesses a=./my-fork b=./upstream bundle=truebashharness compare ./my-fork ./upstream # text output harness compare ./my-fork ./upstream --bundle # ADR-031 schema-1 JSON
The --bundle form (ADR-031) emits a schema-1 JSON envelope so CI scripts can json-parse the verdict without re-parsing human text. The envelope shape is shared with harness diag --bundle, harness export-config, and harness audit --bundle:
json{ "schema": 1, "generatedAt": "2026-06-15T...", "a": "/path/to/a", "b": "/path/to/b", "meta": { "sameKernel": true, "sameSurface": true, "sameName": false }, "hosts": { "a": ["claude-code"], "b": ["claude-code", "codex"], "verdict": "PASS" | "FAIL" }, "files": { "added": [...], "removed": [...], "changed": [...] }, "identical": false, "exitCode": 1 }
Errors are bundle-formed too ({ "schema": 1, "error": "no-manifest-in-a" }), so a CI script never has to dual-parse text + JSON. Object keys matching secret|token|key|password|passphrase are redacted via the canonical ADR-031 sanitisation regex before emission — safe to paste into a public GitHub issue.
harness compare — diffing /tmp/a /tmp/b
name: A=cmp-a B=cmp-b FAIL
kernel: A=0.1.0 B=0.1.0 PASS
surface: A=cli B=cli PASS
hosts: A=[claude-code] B=[claude-code,codex] FAIL
added: 3 files
+ src/agents/codex-tester.ts
+ src/agents/codex-reviewer.ts
+ .codex/config.toml
removed: 0 files
changed: 1 file
~ .harness/manifest.json
DRIFT (exit 1)exactly what diverged before sending a PR upstream.
their-zip yours-zip --bundle > diff.json and attach the bundle to the issue.
compare between today'sscaffold output and a frozen baseline, fails the run on DRIFT.
diag-harness — single-harness kernel-version skew check (iter 66)validate-harness — release-readiness umbrella (iter 20)verify-witness — Ed25519 witness signature verification (iter 8)why new subcommands propagate to codex skills.
the envelope shape this skill's --bundle mode conforms to.
Other measured skills in the registry, with their headline benchmark lift.