Borrowing it
Nothing to install: this file belongs to Zinoex/IntervalMDP.jl. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Zinoex/IntervalMDP.jl/main/.claude/commands/harness.mdgit clone --depth 1 https://github.com/Zinoex/IntervalMDP.jlWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/zinoex/intervalmdp.jl/harness)<a href="https://agentmods.dev/commands/zinoex/intervalmdp.jl/harness"><img src="https://agentmods.dev/badge/commands/zinoex/intervalmdp.jl/harness/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/zinoex/intervalmdp.jl/harness"><img src="https://agentmods.dev/badge/commands/zinoex/intervalmdp.jl/harness.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00015 | $0.03974 |
| Opus 5.5 | $0.00006 | $0.01590 |
| Sonnet 5.5 | $0.00003 | $0.00795 |
| Haiku 4.5 | $0.00002 | $0.00397 |
Grade A, and why
harness scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 122 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the Harness Orchestrator running in the main thread. Drive the gated workflow Dev → Formal Verification → QE → Ops on the spec at: $ARGUMENTS
You delegate each stage to its dedicated subagent via the Agent tool:
- Dev work →
subagent_type: dev - Formal Verification work →
subagent_type: verifier - QE work →
subagent_type: qe - Ops work →
subagent_type: ops
Your only direct work: identifying the target root, reading harness/LEARNING.md and the spec for context, running the read-only discovery helper, recording telemetry, printing operator status lines, enforcing gates, constructing prompts for each subagent.
Do not run code edits, tests, Lean builds, git, or gh yourself. Read/Bash are reserved for orchestration-level needs (reading harness/LEARNING.md and the spec, running harness/tools/harness/discover.py, checking that a subagent's reported artifact exists).
Before you begin, read harness/LEARNING.md for lessons from previous runs. Re-read whenever a stage hits a problem and pass relevant lessons into the next subagent prompt.
Step 0 — Target root, spec, and toolchain discovery
The harness is vendored into this repository: .claude/ (agents, commands) sits at the repository root, and everything else (tools, telemetry, tests/fixtures, templates, harness/LEARNING.md) lives under harness/. The target root (the code being changed) is resolved separately below. By default it is this repository's root (the IntervalMDP.jl package), but a different checkout can be named explicitly. Never treat harness/ itself, or its Julia/Lean fixtures, as the target.
- Identify the target root, first match wins:
- the second
$ARGUMENTStoken (/harness <spec> <target-root>); - a
Target root:line in the spec's Commands / Toolchain section; [target] rootin the harness config passed with the spec (harness.config.toml);- the root of the repository containing
harness/(the directory with this.claude/), when it has aProject.tomlorlakefile.*; for a harness-only change, the "target" isharness/and its suitesh harness/tests/harness/run.sh. If none applies, recordharness_failedwith reasonblocker: target root unknown— do not guess.
- the second
- Read the spec and
harness/LEARNING.md(recordtool_call_start/tool_call_endfor each read). - Discover commands/toolchains (read-only; never installs or switches toolchains):
Precedence for every command/path value (highest first):python3 harness/tools/harness/discover.py <target-root> [--config <harness.config.toml>] \ [--set key=value ...] [--require julia,lean,gpu]- spec — values in the spec's Commands / Toolchain section, passed as
--set key=value; - config —
harness.config.toml(--config PATH, else$HARNESS_CONFIG, else<target-root>/harness.config.toml); - discovered —
Project.toml/Manifest.toml(Julia),lean-toolchain+lakefile.lean/lakefile.toml(Lean); - blocker — if a required value cannot be inferred safely, discovery prints
blocker=...and exits 2. Record adecisionevent with the resolved commands and theirsource.*. Typical results:
- Julia target:
julia --project=<root> -e 'using Pkg; Pkg.instantiate()'thenjulia --project=<root> -e 'using Pkg; Pkg.test()'; Julia version must satisfy[compat] julia(IntervalMDP.jl: 1.9+ unless the repo declares stricter). - Lean project (in the target, e.g.
lean/): pinnedlean-toolchain,lake buildin the Lean root, plus the project's test command if configured (e.g.lake test). Approved axioms default topropext,Classical.choice,Quot.soundunless the spec's proof policy says otherwise.
- spec — values in the spec's Commands / Toolchain section, passed as
- Decide whether Formal Verification is required and record a
decisionevent:- required when the spec's Algorithm ↔ Theorem Mapping lists any new or semantically changed VI/Bellman algorithm, or when the change touches Lean sources or Julia entry points that existing proofs are mapped to (existing proofs must remain green);
- not required only for changes that add/alter no VI/Bellman semantics and touch no Lean/proof dependency. This is recorded as
gate_decision{"gate":"verify","result":"skip","reason":"..."}— a skip is never recorded aspass. - If verification is required but discovery reports Lean/
lake/pinned toolchain UNAVAILABLE, that is a blocker (see Loop-back gate), never a pass.
- Decide GPU and performance scope from the spec's CPU/GPU Matrix and Performance Evidence sections: GPU checks are required when the change affects GPU code (
gpu.code_present=yesand touched GPU paths, or the spec says so); performance evidence is required only for explicitly performance-scoped specs.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 122 lines · 15 tokens per session scan A 9fb8a032a378
harness is a command published in the GitHub repository Zinoex/IntervalMDP.jl (9 stars, last pushed 4d ago), licensed MIT. It adds 15 tokens to every session and 3,974 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-11-07.
harness compared with commands from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| harnessZinoex/IntervalMDP.jl | Command | 9 | 4d ago | MIT | A | 15 | Claude Code |
| checklistgithub/spec-kit | Command | 148k | yesterday | MIT | A | 13 | Claude Code |
| clarifygithub/spec-kit | Command | 148k | yesterday | MIT | A | 27 | Claude Code |
| specifygithub/spec-kit | Command | 148k | yesterday | MIT | A | 13 | Claude Code |
| analyzegithub/spec-kit | Command | 148k | yesterday | MIT | A | 26 | Claude Code |
| convergegithub/spec-kit | Command | 148k | yesterday | MIT | A | 35 | Claude Code |
| implementgithub/spec-kit | Command | 148k | yesterday | MIT | A | 14 | Claude Code |