Skip to content

antbotics/proof-pack-spec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proof Pack

An open format for proving a maintenance job was actually done.

A Proof Pack is a portable, verifiable record that a service was completed: what job was done, where and when, which surfaces were covered and how completely, and the before/after evidence that proves it. It is designed so a client, facilities manager, insurer, or regulator can audit a service outcome without taking the provider's word for it.

The format is built around four questions:

  1. What job was done, where, and when?
  2. What was covered, and how completely?
  3. What did the work look like before and after?
  4. Has any of this been altered since it was issued?

Why this exists

Proving service outcomes today is a mess of screenshots, WhatsApp photos, and PDF reports that anyone can edit. The tooling that does exist (job-photo apps and field documentation suites) is proprietary and closed. Open standards solve the layers underneath this problem, but not the problem itself: there is no open, vendor-neutral format that packages a maintenance job's outcome (its before/after evidence, coverage, and integrity) so a third party can verify it.

Proof Pack fills that gap at the package level. It does not reinvent per-image authenticity: it references C2PA / Content Credentials for per-asset provenance and uses SHA-256 content hashing and hash chaining for package-level tamper-evidence. It is the layer that ties a job's evidence together into something checkable. See Related work in the specification for how it composes with C2PA, ProofMode, W3C Verifiable Credentials, OpenTimestamps, and IFC.

What is in here

Path What it is
SPECIFICATION.md The specification: package layout, manifest structure, and integrity rules.
schema/proof-pack.schema.json The normative JSON Schema (draft 2020-12).
examples/ Worked example manifests for a facade clean and a solar array clean.
tools/ Reference validator and canonicalizer (Node.js).

Quick look

A Proof Pack is a directory (optionally zipped):

proof-pack/
  manifest.json        # conforms to schema/proof-pack.schema.json
  media/
    before-01.jpg
    after-01.jpg
    heatmap.png

manifest.json is the authoritative record. Each media file is referenced with a SHA-256 of its bytes, so files cannot be silently swapped. A before image and its matching after image are linked by a shared pairId, so consumers can line up a verifiable comparison per surface. The integrity block carries a hash over the canonicalized manifest, an optional link to the previous pack from the same issuer, and an optional signature.

See examples/facade-glass-tower.json for a complete manifest.

Validating a Proof Pack

A document is a valid Proof Pack when:

  1. It validates against schema/proof-pack.schema.json.
  2. Every referenced media file is present and hashes to its recorded sha256.
  3. integrity.manifestHash matches the recomputed hash (RFC 8785 canonical JSON, then SHA-256).
  4. Any integrity.signature verifies against manifestHash.

The tools/ directory contains a reference validator that runs all of these checks:

cd tools && npm install
node bin/cli.mjs validate ../examples/facade-glass-tower.json

The two example manifests carry real manifestHash values and form a hash chain (solar-array.json links back to facade-glass-tower.json via previousHash). Their media files are not shipped, so validate them with --no-media to check the schema and the manifest hash on their own.

Status

Version 0.1.0. The format is early and may change between minor versions during the 0.x series. Feedback on the schema and the integrity model is welcome via issues.

Background

Proof Pack is maintained by AntBotics, a robotic exterior-cleaning company. We publish the format openly because verifiable outcomes are better for everyone in the industry, and because a shared format is more useful than a proprietary one. The format is intentionally vendor-neutral: nothing in it is specific to AntBotics equipment.

License

Apache License, Version 2.0. See LICENSE.

About

An open format for proving a maintenance job was actually done.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors