record-contract
Skill7 starsChanged 25 days agoMITView on GitHub
The output contract every Spine agent follows. A record is a claim with evidence references, a confidence, a severity, optional dissent, and an optional resolution. Load this when writing or reviewing any Spine provider prompt, and include its rules in every prompt sent to a reviewer, planner, or verifier.
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Every agent working inside a Spine run returns its result as one or more records.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Record contract
Every agent working inside a Spine run returns its result as one or more records. A record is a JSON object. The human never reads records directly; the synthesis agent renders them.
Shape
{
"id": "R-0007",
"stage": "review",
"agent": "ecc:security-reviewer",
"provider": "ecc:code-review",
"claim": "The upload handler accepts arbitrary paths.",
"evidence": [
{ "kind": "file", "ref": "services/api/upload.py:42-58" },
{ "kind": "test", "ref": "pytest tests/test_upload.py::test_traversal", "result": "fail" }
],
"confidence": 0.85,
"severity": "HIGH",
"dissent": null,
"resolution": null,
"alternatives": ["Sanitize with os.path.realpath", "Reject anything containing .."]
}Rules
claimis one sentence, falsifiable. Not "consider improving error handling" but "create()swallowsValueErrorat line 88 and returns 200".evidencehas at least one entry.kindisfile,test,command,doc, orunverified.refispath:lineorpath:start-endfor files, the exact command for commands and tests, a heading or line for docs.- A record whose evidence is only
unverifiedmay not beHIGHorCRITICAL. If you believe it is serious, go verify it, then raise it. confidenceis 0 to 1 and means "probability the claim is true as stated", not "how much I care".severityisCRITICAL(data loss, security, outage),HIGH(bug or spec violation),MEDIUM(maintainability),LOW(style),INFO.dissentis set only by the devil's advocate or by a verifier that refutes. It is the strongest case against the claim, with evidence.resolutionis set when reading the repo cannot settle a disagreement:{ "kind": "test" | "spike" | "question", "text": "..." }.alternativeslists other approaches considered, so the human learns what was debated.- Records are written to
<run>/records/R-NNNN.jsonby the spine skill. Agents that return text end with one fenced block taggedjson spine-recordper record. Agents called through a workflow return structured output and never write files.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

