docs(harness): what a harness must prove, and a dimension for custom ones (#133)
The suite and its tables were in the repo; the rules that decide a row were not. Foreign connections, substituted models and the alias rule, cards that must match the record, and a catalog that must not promise what a harness cannot do lived in code comments and in one person's head, so a contributor had nothing to check a change against. They are now one page, each rule naming the file that enforces it, linked from CONTRIBUTING and from the suite's own README. The page also documents a dimension the matrix did not have. The five scenarios measure routing and say nothing about the configuration a person actually builds, so custom-harness.mjs creates a harness per base carrying its own skill bundle, with a script beside it and one inherited tool switched off, and passes the row only when the skill was stored, the bundle reached the agent, its script actually ran, and the tool policy took effect. The token it looks for exists only inside the script, so an answer carrying it came from the bundle rather than the model's imagination, and the file the script writes separates a script that ran from one that was read. What it does not cover is named rather than papered over: an MCP server as a harness tool needs a reachable endpoint this suite does not stand up. Claude-Session: https://claude.ai/code/session_01PDSR4WUsoaFgcqE9RH2JmQ Co-authored-by: richard-epsilla <richard@epsilla.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
G
github-actions[bot] committed
a319f3223d09524dea70f98f6a6dfd9bbf6590ba
Parent: 0060e40
Committed by GitHub <noreply@github.com>
on 9/8/2026, 6:35:08 AM