Four precision primitives for multi-day, multi-agent runs.
- jouleclaw-contract: ValidationContract / Assertion / Feature /
Evidence / verify() -> ContractVerdict. Authored before code,
lives independently of implementation. Typed coverage matrix
with per-assertion rollup; must-have gaps block ship.
- jouleclaw-graph: RunEvent::HandoffRecorded variant +
WorkerHandoffEvent + HandoffCommand (BLAKE3 over NUL-joined
argv). Forces every agent to write down what happened; hash
chain protects against post-hoc edits.
- jouleclaw-mission: three-role Mission { contract, run,
evidence } with async Worker trait. Orchestrator authors,
Worker does, Validator judges. Serial-by-default dispatch;
validate() is a pure function of (contract, evidence).
- jouleclaw-hydra-client: ValueReport companion to CallReport.
Tracks closure rate (delivered / attempted) per call;
mean_closure_rate aggregates across a run. The activity-vs-
value gap closed at the dispatch layer.
Spec gains normative sections 16 (contract) / 17 (handoff) /
18 (mission) / 19 (value report). Vocab v1.jsonld + v1.ttl +
v1.shapes.ttl extended with the new classes, enumerations,
properties, and SHACL shapes.
Drive-by: jouleclaw-stack had jouleclaw-prov as a dev-dep while
using it in library code; promoted to [dependencies].
Tests: contract 17/17, graph 40/40 (+2 new), mission 6/6,
hydra-client 20/20 (+4 new). Two runnable examples
(missions_pass, three_role_demo).
Co-Authored-By: Claude Opus 4.7 <[email protected]>
175 lines
9.7 KiB
Text
175 lines
9.7 KiB
Text
{
|
|
"@context": {
|
|
"@version": 1.1,
|
|
|
|
"jc": "https://jouleclaw.transaction.science/vocab/v1#",
|
|
"xsd": "http://www.w3.org/2001/XMLSchema#",
|
|
"prov": "http://www.w3.org/ns/prov#",
|
|
"dc": "http://purl.org/dc/terms/",
|
|
|
|
"Receipt": "jc:Receipt",
|
|
"PolicyReceipt": "jc:PolicyReceipt",
|
|
"WorkspaceManifest": "jc:WorkspaceManifest",
|
|
"WorkspaceEntry": "jc:WorkspaceEntry",
|
|
"AgentIdentity": "jc:AgentIdentity",
|
|
"ToolTouch": "jc:ToolTouch",
|
|
"ToolReceipt": "jc:ToolReceipt",
|
|
"ClaimProvenance": "jc:ClaimProvenance",
|
|
"Citation": "jc:Citation",
|
|
"TextSpan": "jc:TextSpan",
|
|
"TokenAttribution": "jc:TokenAttribution",
|
|
"IntentVerdict": "jc:IntentVerdict",
|
|
"Action": "jc:Action",
|
|
"FsAction": "jc:FsAction",
|
|
"NetAction": "jc:NetAction",
|
|
"ProcAction": "jc:ProcAction",
|
|
"Decision": "jc:Decision",
|
|
"AuditEvent": "jc:AuditEvent",
|
|
"ValidationContract": "jc:ValidationContract",
|
|
"Assertion": "jc:Assertion",
|
|
"AssertionCheck": "jc:AssertionCheck",
|
|
"Feature": "jc:Feature",
|
|
"ContractVerdict": "jc:ContractVerdict",
|
|
"WorkerHandoff": "jc:WorkerHandoff",
|
|
"HandoffCommand": "jc:HandoffCommand",
|
|
|
|
"jc_receipt": { "@id": "jc:schemaId", "@type": "xsd:string" },
|
|
"jc_workspace": { "@id": "jc:schemaId", "@type": "xsd:string" },
|
|
"jc_contract": { "@id": "jc:schemaId", "@type": "xsd:string" },
|
|
"jc_verdict": { "@id": "jc:schemaId", "@type": "xsd:string" },
|
|
"id": { "@id": "jc:receiptId", "@type": "xsd:string" },
|
|
"closed_at": { "@id": "jc:closedAt", "@type": "xsd:dateTime" },
|
|
"created_at": { "@id": "jc:createdAt", "@type": "xsd:dateTime" },
|
|
"minted_at": { "@id": "jc:mintedAt", "@type": "xsd:dateTime" },
|
|
"fetched_at": { "@id": "jc:fetchedAt", "@type": "xsd:dateTime" },
|
|
|
|
"input_hash": { "@id": "jc:inputHash", "@type": "xsd:string" },
|
|
"content_hash": { "@id": "jc:contentHash", "@type": "xsd:string" },
|
|
"tier": { "@id": "jc:tier", "@type": "@vocab" },
|
|
"joules_uj": { "@id": "jc:joulesMicrojoules", "@type": "xsd:nonNegativeInteger" },
|
|
"energy_provenance": { "@id": "jc:energyProvenance", "@type": "@vocab" },
|
|
"model_id": { "@id": "jc:modelId", "@type": "xsd:string" },
|
|
"eoc_stage": { "@id": "jc:eocStage", "@type": "xsd:string" },
|
|
"steward": { "@id": "jc:steward", "@type": "@id" },
|
|
"agent": { "@id": "jc:agent", "@type": "@id" },
|
|
|
|
"tools_touched": { "@id": "jc:toolsTouched", "@container": "@list" },
|
|
"claims": { "@id": "jc:claims", "@container": "@list" },
|
|
"citations": { "@id": "jc:citations", "@container": "@list" },
|
|
"tool_receipts": { "@id": "jc:toolReceipts", "@container": "@list" },
|
|
"token_attributions": { "@id": "jc:tokenAttributions", "@container": "@list" },
|
|
"tool_id": { "@id": "jc:toolId", "@type": "xsd:string" },
|
|
"gateway_id": { "@id": "jc:gatewayId", "@type": "xsd:string" },
|
|
"hmac_sha256_hex": { "@id": "jc:hmacSha256Hex", "@type": "xsd:string" },
|
|
|
|
"source": { "@id": "jc:source", "@type": "@id" },
|
|
"trust_tier": { "@id": "jc:trustTier", "@type": "xsd:nonNegativeInteger" },
|
|
|
|
"intent": { "@id": "jc:intent" },
|
|
"classifier_id": { "@id": "jc:classifierId", "@type": "xsd:string" },
|
|
"confidence": { "@id": "jc:confidence", "@type": "xsd:double" },
|
|
"label": { "@id": "jc:label", "@type": "xsd:string" },
|
|
|
|
"engine_id": { "@id": "jc:engineId", "@type": "xsd:string" },
|
|
"audit_sequence": { "@id": "jc:auditSequence", "@type": "xsd:nonNegativeInteger" },
|
|
"policy_version": { "@id": "jc:policyVersion", "@type": "xsd:nonNegativeInteger" },
|
|
"action": { "@id": "jc:action" },
|
|
"decision": { "@id": "jc:decision" },
|
|
"rule": { "@id": "jc:rule", "@type": "xsd:string" },
|
|
"reason": { "@id": "jc:reason", "@type": "xsd:string" },
|
|
"sequence": { "@id": "jc:sequence", "@type": "xsd:nonNegativeInteger" },
|
|
"kind": { "@id": "jc:kind", "@type": "@vocab" },
|
|
"mode": { "@id": "jc:fsMode", "@type": "@vocab" },
|
|
"method": { "@id": "jc:netMethod", "@type": "@vocab" },
|
|
"host": { "@id": "jc:host", "@type": "xsd:string" },
|
|
"port": { "@id": "jc:port", "@type": "xsd:nonNegativeInteger" },
|
|
"path": { "@id": "jc:path", "@type": "xsd:string" },
|
|
"binary": { "@id": "jc:binary", "@type": "xsd:string" },
|
|
"argv": { "@id": "jc:argv", "@container": "@list" },
|
|
|
|
"owner": { "@id": "jc:owner" },
|
|
"entries": { "@id": "jc:entries", "@container": "@list" },
|
|
"handle": { "@id": "jc:handle", "@type": "@id" },
|
|
"public_key": { "@id": "jc:publicKey", "@type": "xsd:string" },
|
|
"attestation": { "@id": "jc:attestation" },
|
|
"size": { "@id": "jc:size", "@type": "xsd:nonNegativeInteger" },
|
|
|
|
"L0": "jc:Cache",
|
|
"L1": "jc:Lawful",
|
|
"L2": "jc:Embed",
|
|
"L3": "jc:Model",
|
|
"L4": "jc:Wire",
|
|
|
|
"HwShunt": "jc:HwShunt",
|
|
"ModelBased": "jc:ModelBased",
|
|
"Estimator": "jc:Estimator",
|
|
|
|
"filesystem": "jc:FsAction",
|
|
"network": "jc:NetAction",
|
|
"process": "jc:ProcAction",
|
|
|
|
"read": "jc:FsRead",
|
|
"write": "jc:FsWrite",
|
|
"execute": "jc:FsExecute",
|
|
"list": "jc:FsList",
|
|
|
|
"connect": "jc:NetConnect",
|
|
"listen": "jc:NetListen",
|
|
"resolve": "jc:NetResolve",
|
|
|
|
"allow": "jc:Allow",
|
|
"deny": "jc:Deny",
|
|
"no_matching_allow": "jc:NoMatchingAllow",
|
|
"explicit_deny": "jc:ExplicitDeny",
|
|
|
|
"blob": "jc:Blob",
|
|
"text": "jc:Text",
|
|
"structured": "jc:Structured",
|
|
|
|
"public": "jc:Public",
|
|
"internal": "jc:Internal",
|
|
"confidential": "jc:Confidential",
|
|
"restricted": "jc:Restricted",
|
|
|
|
"authored_by": { "@id": "jc:authoredBy", "@type": "xsd:string" },
|
|
"assertions": { "@id": "jc:assertions", "@container": "@list" },
|
|
"features": { "@id": "jc:features", "@container": "@list" },
|
|
"acceptance": { "@id": "jc:acceptance" },
|
|
"block_on_should_have": { "@id": "jc:blockOnShouldHave", "@type": "xsd:boolean" },
|
|
"assertion_id": { "@id": "jc:assertionId", "@type": "xsd:string" },
|
|
"feature_id": { "@id": "jc:featureId", "@type": "xsd:string" },
|
|
"title": { "@id": "jc:title", "@type": "xsd:string" },
|
|
"rationale": { "@id": "jc:rationale", "@type": "xsd:string" },
|
|
"description": { "@id": "jc:description", "@type": "xsd:string" },
|
|
"priority": { "@id": "jc:priority", "@type": "@vocab" },
|
|
"check": { "@id": "jc:check" },
|
|
"claim_ids": { "@id": "jc:claims", "@container": "@list" },
|
|
"tool": "jc:ToolCheck",
|
|
"artifact": "jc:ArtifactCheck",
|
|
"command": "jc:CommandCheck",
|
|
"checker": "jc:CheckerCheck",
|
|
"must_have": "jc:MustHave",
|
|
"should_have": "jc:ShouldHave",
|
|
"nice_to_have": "jc:NiceToHave",
|
|
"contract_hash": { "@id": "jc:contractHash", "@type": "xsd:string" },
|
|
"passed": { "@id": "jc:passed", "@type": "xsd:boolean" },
|
|
"summary": { "@id": "jc:summary", "@type": "xsd:string" },
|
|
"coverage": { "@id": "jc:coverage" },
|
|
"blocking_gaps": { "@id": "jc:blockingGaps", "@container": "@list" },
|
|
"should_have_gaps": { "@id": "jc:shouldHaveGaps", "@container": "@list" },
|
|
"verified": "jc:Verified",
|
|
"claimed_unverified": "jc:ClaimedUnverified",
|
|
"failed": "jc:Failed",
|
|
"unclaimed": "jc:Unclaimed",
|
|
"gap": "jc:Gap",
|
|
|
|
"worker": { "@id": "jc:worker", "@type": "xsd:string" },
|
|
"completed": { "@id": "jc:completed", "@container": "@list" },
|
|
"undone": { "@id": "jc:undone", "@container": "@list" },
|
|
"issues_found": { "@id": "jc:issuesFound", "@container": "@list" },
|
|
"procedures_followed": { "@id": "jc:proceduresFollowed", "@container": "@list" },
|
|
"commands": { "@id": "jc:commands", "@container": "@list" },
|
|
"command_hash": { "@id": "jc:commandHash", "@type": "xsd:string" },
|
|
"exit_code": { "@id": "jc:exitCode", "@type": "xsd:integer" }
|
|
}
|
|
}
|