Skip to content

Verify protocol

The stable JSON contract returned by harness verify --json and by the harness_verify MCP tool.

{
  "schema_version": 1,
  "blueprint": "rag-agent",
  "blueprint_version": "1.0.0",
  "checks": [
    {
      "name": "structure",
      "description": "Every blueprint-generated file is present and parses.",
      "status": "pass",            // pass | fail | skipped | error
      "duration_ms": 12,
      "messages": []
    },
    {
      "name": "citations",
      "description": "Every factual claim cites a chunk_id.",
      "status": "skipped",
      "duration_ms": 0,
      "messages": ["SKIPPED: no answer file found at $RAG_OUT or /tmp/*-rag-output.json"]
    }
  ],
  "summary": {
    "total": 2,
    "passed": 1,
    "failed": 0
  }
}

Status semantics

Status Counted as failure? Meaning
pass No Validator ran and produced 0 failure messages
fail Yes Validator ran and produced ≥1 failure message
skipped No Validator returned only "SKIPPED:" messages — couldn't evaluate
error Yes Validator raised an exception

Exit codes (CLI)

Code Meaning
0 summary.failed == 0
1 summary.failed > 0
2 Malformed harness.config.json
3 No harness.config.json (repo not bootstrapped)

Stability

schema_version will not change within a major version. New optional fields may appear in checks[] (e.g. additional metadata). Treat unknown fields as forward-compatible.