Kontour Surface#

Every product makes claims. AI makes those claims faster, more polished, and harder to review. Kontour Surface gives a product one shape for the claim, the evidence behind it, how fresh that evidence is, and the gaps that should slow anyone down before they rely on it.

The Kontour products build on it — Survey projects producer review records into Surface, Flow gates consume Surface-shaped evidence, Veritas authors repo claims through it, and Console operates across all of them. So can your product.

The problem#

AI makes plausible, polished product output cheap. When agents route records, select facts, merge changes, or draft responses at scale, the informal trust layer disappears. There is no one to notice a stale number, a quiet contradiction, unsupported evidence, or a verification that was valid last month but not today.

Trust state has to be derivable from the product contract itself: readable, deterministic, and the same answer for every person, system, or agent that asks.

How Surface works#

Surface connects evidence provenance to product claims through a portable, open trust format:

  • Subject — what the claim is about, including when the same entity appears under different keys across systems
  • Evidence Trace — what supports the claim, who or what produced it, and how to trace it back to a source
  • Freshness — how long the verification is valid and what has changed since verification
  • Transparency Gaps — what is missing, stale, private, disputed, unavailable, or unsupported
  • Trust Snapshot — a point-in-time report that can drive a Trust Panel, the Surface Console, an API, or an agent resource

Status is derived deterministically from the trust bundle and evaluation time — not summarized by a model, not hidden behind a confidence score. If a claim is weak, stale, or disputed, the system makes that visible.

Where teams use it#

  • AI code governance — reviewers and agents inspect which repo claims are actually supported by this run's evidence, and which went stale when the code changed.
  • Field-attested public records — a directory shows, field by field, what was crawled, what a human attested, and what has not been re-approved since the price changed.
  • Fact resolution — a financial workflow lets an agent proceed on user-verified facts while document-imported values that conflict with a worksheet stay visibly disputed.
  • Dependency audits — "safe to install" becomes a claim with a freshness window and a trace to the exact audit run, not a sentence in release notes.

Each scenario ships as a runnable example in the repo. See the full use cases.

See it#

The same example report, inspected three ways — in the browser-local Snapshot Viewer, embedded in a product page, and in the operator Console:

The Trust Snapshot Viewer rendering the example report with status chips and an expanded claim showing its evidence

Four ways in#

  • Inspect — open the trust state behind an answer, report, or agent output before you rely on it. Paste any derived report into the Snapshot Viewer — it parses in your browser and never leaves the page — or ship the Trust Panel embed inside your product.
  • Build — emit claims, evidence, and policies from your product with the TypeScript SDK, then let Surface derive and serve the trust state to people, agents, and downstream systems.
  • Operate — manage the claims your product makes — ownership, evidence review, policies, gaps, conflicts — in the Surface Console. It runs locally. No cloud, no login.
  • Automate — point an agent at surface mcp and it reads the same derived trust state over the Model Context Protocol: act on verified, reverify stale, escalate disputed.

Start here#

  1. Getting Started — install @kontourai/surface, run an example report, emit your first trust input.
  2. Walkthrough — a real CLI session: derive a report, query stale claims, drill into a policy decision.
  3. Concepts — the full vocabulary: claims, evidence traces, policies, claim groups, transparency gaps, status.
  4. Use Cases — when to reach for Surface, what builds on it, and what it deliberately does not do.

Surface is open source under Apache-2.0. The trust format is schema-first and locally inspectable — no hosted service required to understand your own trust state.

Documentation

Start Here

Concepts

ConceptsSurface is the shared foundation for making product claims, evidence, policies, freshness, conflicts, and gaps inspectable by humans and agents. VisionKontour Surface is the shared foundation under Kontour's products and any product that needs to show its work. Use CasesSurface is useful when a product needs to turn domain-specific evidence into a portable Trust Snapshot without moving product workflow language into the kernel. Every scenario below follows the same… PrinciplesKontour Surface is small on purpose. The kernel only earns its place if it behaves the same way every time. These principles describe the rules the kernel and adapters follow. New features should fit… Where Kontour Fits in the Trust LandscapeThis page places Kontour in the wider world of trust, attestation, and provenance standards — what problem is genuinely unsolved, where Kontour sits, and the evidence that this position is real rathe… ArchitectureKontour Surface separates stable claim authorship from dynamic evidence collection. Developer ArchitectureThis guide is the Surface-local map for maintainers and integrators who need to understand how trust and evidence move through Surface and into products built on top of it. It is documentation-only:… Portfolio Layer DoctrineKontour is four layers. Dependencies point only downward; there are no cycles. Surface Foundation BoundarySurface is Kontour's product-facing integration layer for portable trust state. Hachure owns the product-neutral schemas and derivation semantics; Surface keeps Kontour products compatible with that… Derivation and Counterfactual AlgorithmsThis page explains how Surface derives trust for claims that depend on other claims, and how it answers impact and drilldown questions over those dependencies. It is documentation-only. For the core…

Guides

Reference

CLIThe first Surface interface is a local CLI. It should be boring, inspectable, and useful in CI before the product has a hosted console. Surface ConsoleSurface ships a local Surface Console server for any producer that emits a Surface-format run snapshot. The current CLI, routes, and generated assets still use console; treat that as an implementatio… Agents and MCPsurface mcp serves portable trust state to AI agents over the Model Context Protocol. It is the same trust state a human reads — derived by the kernel, never summarized by a model — exposed as tools… Trust Panel Embed<surface-trust-panel> is a dependency-free, read-only web component that renders a derived trust report so a viewer can inspect claims, evidence, freshness, and transparency gaps before relying on th… Claim AuthoringSurface supports authored claim stores for producers such as Veritas. The store is a stable JSON file that belongs in git, separate from per-run evidence. Adapters and the Producer BoundarySurface owns portable trust primitives and report generation. Producers own the domain knowledge, extraction logic, and adapter code for their own systems. Producer Extension APIProducer Extensions let a producer brand the Surface Console, define producer vocabulary, and describe claim types for authoring tools. Trust Analytics ProjectionSurface analytics means evidence intelligence over a trust report. It is not a generic BI layer. Answer Card ProjectionbuildAnswerCardProjection(report, claimId) is the compact, report-only read model for a product answer card. It accepts an already-derived TrustReport; it does not validate untyped input, rerun statu… Basis headless projection@kontourai/surface/basis is the headless, tree-shaken read model for the evidence and bounded owner context behind one observed Thread answer. It is intentionally not exported by the package root and… Claim Basis ViewclaimBasisView(claim, evidence) answers "how was this claim's status established?" as a short line a renderer shows after the status chip, for example: Waiver ValidityWaiverValidity is a Surface-side derived projection that gives Flow (and any other Hachure-consuming client) a stable, versioned answer to "is this assumed claim's accepted-gap waiver valid" — withou… Verification EndpointSurface ships a reference implementation of the hachure.org/v1 verification endpoint profile. The implementation is framework-free and is split into two parts: SchemasKontour Surface starts with core contract types. Trust inputs are read at schemaVersion 2 through 9 and written at the lowest version their content needs; trust reports declare 5. See Schema Versioni… Schema VersioningSurface schemas are product contracts. They should change more slowly than implementation details because adapters, agents, CI jobs, and future hosted services will depend on them. ExamplesExamples are the first evidence that Surface is not just a concept document. They show how different products can map into one trust model without pretending every domain verifies truth the same way. Open Trust Format and Claim Package ShapeStatus: Surface compatibility guide; Hachure is normative Minimum Trust Panel SpecStatus: first pass Minimum Surface Console SpecStatus: first pass Disclosure RequirementsStatus: first pass Transparency CapabilitiesStatus: first pass Producer Extension LimitsStatus: first pass Surface Compatibility and ConformanceThe Hachure specification owns normative format conformance and publishes the canonical schemas and vectors. Surface runs those contracts through its integration layer and adds product-facing project… Built with Surface BadgeBuilt with Surface is an inspectability signal. It tells a user one thing: this product exposes inspectable trust state in the Surface format — claims, evidence, freshness, conflicts, and transparenc…

Contribute

Surface DocumentationStart here when you are working on the Surface repo or building against @kontourai/surface. RoadmapSurface ships the Surface library, CLI, local Surface Console, and claim authoring. Releasing SurfaceThis document is the operator checklist for cutting a release of @kontourai/surface. Repo HooksSurface uses repo-owned local Git hooks for contributor verification. They are local contributor safeguards for this repository, not Surface Console behavior, not projection behavior, not Trust Snaps… Generated And Runtime ArtifactsSurface keeps source, generated output, and local runtime state separate so a contributor can tell what to edit. Decision IndexGenerated by corpus decisions index. Do not edit by hand. Topic-keyed living decision records; the format is described at https://github.com/kontourai/corpus/blob/main/docs/decisions.md. Numbered ADR… Conclusion ConfidenceRatified design for issue #25 — a calibrated confidence value on a conclusion, distinct from ConfidenceBasis, plus a structured comfort-zone signal that Survey (#18) can populate. The shape below is… InquiryThis subject has provenance in frozen ADR history (0003-inquiry-and-resolution.md) but no living decision has been ratified yet under the topic-keyed decision registry (format). This stub records tha… MCP Trust-Input IngestionDecision. --input is not a required launch parameter, and the server no longer serves a silent baked-in example fallback. surface mcp runs input-agnostic by default: with no --input, it holds no defa… Product VocabularyThis subject has provenance in frozen ADR history (0001-vocabulary-migration.md) but no living decision has been ratified yet under the topic-keyed decision registry (format). This stub records that… Reviewed Extraction EvidenceSurface projects reviewed extraction provenance through standard portable Evidence rather than defining a competing evidence schema. sourceRef, sourceLocator, and integrityRef remain the generic anch… TestimonyThis subject has provenance in frozen ADR history (0004-testimony-admissibility.md) but no living decision has been ratified yet under the topic-keyed decision registry (format). This stub records th… Trust BundleThis subject has provenance in frozen ADR history (0002-trust-bundle.md, 0005-merge-conformance.md) but no living decision has been ratified yet under the topic-keyed decision registry (format). This… ADR IndexThis index is static: the numbered ADRs are frozen, and Corpus refuses new files under docs/adr/ (npm run check:decisions). Numbered ADRs below are FROZEN immutable history (see the banner on each fi… ADR 0001: Product Vocabulary MigrationStatus: accepted ADR 0002: Trust BundleStatus: accepted ADR 0003: Inquiry and ResolutionStatus: accepted ADR 0004: Testimony AdmissibilityStatus: accepted ADR 0005: Multi-Producer Merge ConformanceStatus: accepted

Source: docs/index.md