Schemas

JSON Schema 2020-12, published with the package (geopilot/schemas/*) and here.

SchemaDocumentDescribes
/schema/config/v1.jsongeo.config.jsonConfiguration. Unknown keys are errors.
/schema/report/v1.jsongeo-report/v1Everything the engine emits: tool, run, framework tiers, routes, evaluations, readiness, coverage, confidence, scope, disclaimer.
/schema/insights/v1.jsongeo-insights/v1Agent output: recommendations and hypotheses with resolvable evidence.
/schema/merged/v1.jsongeo-merged/v1A report and validated insights, kept in separate sections.

Stable output

Reports are serialised canonically (sorted keys, stable arrays), so two runs over the same input produce identical bytes except the documented volatile fields: run.id, run.startedAt and run.durationMs.

Fingerprints

geo1:<ruleId>:<first 12 hex of sha256(ruleId | normalised subject | stable anchor)>

The anchor is the sub-check (plus, where one sub-check can fire several times, a stable token such as the path or crawler) — never a line number.

Evaluation

status is pass, fail, not_applicable, not_evaluated or error; anything other than pass/fail carries a statusReason. evidenceQuality is direct, partial or inferred. Each evaluation lists its sub-checks with the scope they ran in.