See also: Reviewer Evidence Index.
This document is the reviewer-facing map of the local/offline evidence assurance model implemented across the Reviewer Evidence Packet, Evidence Chain verification, verifier continuity checks, verifier lifecycle checks, and failure reason catalog artifacts.
It explains how the existing demo/reviewer artifacts fit together. It does not introduce runtime behavior, schema changes, or new failure reasons.
The reviewer evidence assurance layer is a deterministic demo/reviewer documentation and validation layer. It helps reviewers inspect whether the local/offline artifacts are internally consistent, whether hashes and continuity fields agree across artifacts, and whether failure explanations come from the generated catalog.
It is intentionally not a production trust infrastructure. This layer does not implement:
- live KMS;
- HSM-backed signing or key custody;
- certificate authorities;
- production PKI;
- external revocation services;
- runtime authorization changes;
- runtime admissibility changes;
- FUJI fail-closed behavior changes;
- TrustLog persistence or encryption changes.
The assurance model is layered so reviewers can trace a governed decision from human approval evidence, through verifier continuity, into packet-level validation and catalog-backed explanation.
Layer 1 Human Approval Evidence
↓
Layer 2 Verifier Identity / Key / Policy / Proof
↓
Layer 3 Verifier Lifecycle
↓
Layer 4 Lifecycle Snapshot Hash
↓
Layer 5 Evidence Chain Verification
↓
Layer 6 Reviewer Packet Validation
↓
Layer 7 Failure Reason Taxonomy
↓
Layer 8 Failure Reason Metadata
↓
Layer 9 Failure Reason Catalog
↓
Layer 10 Catalog Schema & Validator
↓
Layer 11 Catalog Provenance
| Layer | Reviewer question | Assurance role | Primary outputs |
|---|---|---|---|
| 1. Human Approval Evidence | Was a human approval required and represented for the governed outcome? | Captures reviewer-visible approval summaries and proof references for approval-required committed outcomes. | human_approval_summary, approval proof hashes, approver/verifier fields. |
| 2. Verifier Identity / Key / Policy / Proof | Is the same verifier, key, policy hash, timestamp, and proof represented across the packet, manifest, and outcome metadata? | Prevents substituted verifier identity, verifier key, policy hash, verified_at, or approval proof fields from appearing valid in reviewer-facing artifacts. |
Verifier continuity fields and proof hash continuity fields. |
| 3. Verifier Lifecycle | Was verifier lifecycle state included where needed? | Adds lifecycle evidence for the verifier and checks policy/lifecycle continuity in reviewer summaries. | verifier_lifecycle_summary and lifecycle validation results. |
| 4. Lifecycle Snapshot Hash | Do lifecycle snapshot hashes agree everywhere they are expected? | Binds verifier lifecycle state to the manifest and outcome metadata using deterministic hash continuity. | verifier_lifecycle_snapshot_hash, human_approval_verifier_lifecycle_snapshot_hash, outcome metadata snapshot hash. |
| 5. Evidence Chain Verification | Does the evidence chain verify the artifact links it claims to verify? | Checks evidence-chain artifact integrity and verified links before packet validation relies on them. | Evidence chain manifest and evidence_chain_verification_summary. |
| 6. Reviewer Packet Validation | Does the reviewer-facing packet consistently summarize the underlying evidence? | Validates the packet schema and cross-artifact continuity expectations for reviewer consumption. | reviewer-evidence-packet.generated.example.json, validation reports. |
| 7. Failure Reason Taxonomy | Are failure reasons stable and known? | Allowlists deterministic machine-readable reason strings used by packet cases, chain summaries, lifecycle summaries, tamper fixtures, and reports. | Stable failure reason codes. |
| 8. Failure Reason Metadata | Can reviewers understand a reason without changing its code? | Maps each reason to category, severity, label, explanation, remediation hint, and affected artifacts. | Python metadata source of truth. |
| 9. Failure Reason Catalog | Is there a generated reviewer explanation artifact? | Generates JSON and Markdown catalogs for reviewers and automation. | Generated catalog JSON/MD. |
| 10. Catalog Schema & Validator | Is the generated catalog valid and fresh? | Validates schema shape, deterministic freshness, coverage, uniqueness, sorting, and metadata fidelity. | Catalog schema and validator result. |
| 11. Catalog Provenance | Which catalog and schema explained this validation report? | Records local digests, version, paths, reason count, categories, and severities used by validation reports. | failure_reason_catalog_provenance. |
| Component | Purpose | Output | Validation |
|---|---|---|---|
| Reviewer Evidence Packet | Reviewer-facing evidence bundle for governed demo cases. | reviewer-evidence-packet.generated.example.json and fixtures. |
reviewer-evidence-packet-v1.schema.json plus local packet validator. |
| Human Approval Evidence | Shows approval-required outcomes, approver context, verifier context, proof hash, and policy fields. | Packet human_approval_summary fields and proof-hash metadata. |
Reviewer packet validation and evidence-chain proof continuity checks. |
| Verifier Continuity | Ensures verifier id, verifier key id, policy id/hash, proof hash, and verified_at agree across summaries. |
Continuity fields in human approval summaries, evidence-chain manifests, verification summaries, and outcome metadata. | Reviewer packet validation failure reasons such as verifier id/key/policy/proof/timestamp mismatches. |
| Verifier Lifecycle | Represents verifier lifecycle state and lifecycle policy continuity. | verifier_lifecycle_summary. |
Lifecycle summary checks and reviewer packet lifecycle failure reasons. |
| Lifecycle Snapshot Hash | Binds lifecycle state into manifest and outcome metadata. | Lifecycle snapshot hash fields in lifecycle summary, evidence-chain manifest, and outcome receipt metadata. | Evidence-chain and reviewer-packet lifecycle snapshot continuity checks. |
| Evidence Chain | Artifact integrity layer for chain manifests and verified links. | Evidence chain manifest and evidence_chain_verification_summary. |
Evidence Chain Verification. |
| Reviewer Packet Validation Report | Reviewer-facing validation status and failure explanations. | reviewer-evidence-packet-validation-report.md and generated validation report fields. |
Packet schema, packet validator, taxonomy checks, and catalog provenance checks. |
| Failure Reason Taxonomy | Stable machine-readable failure reason allowlist. | Reason strings in packet cases, tamper fixtures, validation reports, chain summaries, and lifecycle summaries. | Local taxonomy guard. |
| Failure Reason Metadata | Reviewer explanation layer for stable reason strings. | Category, severity, label, explanation, remediation hint, and affected artifacts for every reason. | Catalog validator metadata fidelity checks. |
| Failure Reason Catalog | Generated reviewer explanation layer. | reviewer-failure-reason-catalog.generated.example.json and reviewer-failure-reason-catalog.generated.example.md. |
Catalog schema and catalog validator. |
| Catalog Schema | Machine-readable shape for generated catalog JSON. | reviewer-failure-reason-catalog-v1.schema.json. |
JSON Schema validation. |
| Catalog Validator | Local/offline freshness, coverage, uniqueness, sorting, and fidelity check. | Validator pass/fail result. | scripts/demo/validate_reviewer_failure_reason_catalog.py. |
| Catalog Provenance | Records which catalog/schema explained a validation result. | failure_reason_catalog_provenance in validation reports. |
Digest/path/version/count/category/severity comparison. |
The local/offline reviewer assurance checks include the following tamper detections and drift guards.
| Detection | Covered artifact relationship | Reviewer-facing outcome |
|---|---|---|
| ✓ verifier id mismatch | Human approval summary vs. manifest/outcome/verification summaries. | Packet validation fails with verifier continuity reason. |
| ✓ verifier key mismatch | Human approval verifier key id vs. manifest/outcome metadata. | Packet validation fails with verifier key continuity reason. |
| ✓ policy hash mismatch | Human approval policy hash vs. manifest/outcome/lifecycle policy hash. | Packet validation fails with policy continuity or lifecycle policy reason. |
| ✓ verification proof mismatch | Approval proof hash vs. manifest/outcome/verified links. | Evidence-chain or packet validation fails with proof continuity reason. |
✓ verified_at mismatch |
Human approval timestamp vs. lifecycle and evidence-chain verification summaries. | Packet validation fails with timestamp continuity reason. |
| ✓ lifecycle snapshot mismatch | Lifecycle summary snapshot hash vs. manifest/outcome metadata. | Evidence-chain or packet validation fails with lifecycle snapshot mismatch reason. |
| ✓ manifest missing snapshot hash | Lifecycle summary exists but manifest omits the expected lifecycle snapshot hash. | Evidence-chain or packet validation fails with manifest snapshot missing reason. |
| ✓ outcome missing snapshot hash | Lifecycle summary/manifest includes snapshot hash but outcome metadata omits it. | Evidence-chain or packet validation fails with outcome snapshot missing reason. |
| ✓ unknown failure reason | Report, fixture, chain summary, lifecycle summary, or packet case uses a reason outside the taxonomy. | Taxonomy/catalog validation fails. |
| ✓ stale catalog | Generated JSON/MD catalog no longer matches the Python metadata source of truth. | Catalog validator fails freshness/fidelity checks. |
- Start with the packet overview in
reviewer-evidence-packet.mdto understand the packet scope, local/offline boundary, schema, and golden fixtures. - Inspect a generated packet such as
examples/evaluation-governance-chain-reviewer-packet-v1/reviewer-evidence-packet.generated.example.jsonorexamples/evaluation-governance-reviewer-demo-v1/generated/reviewer-evidence-packet.generated.example.json. - Check the packet schema at
schemas/reviewer-evidence-packet-v1.schema.jsonfor required fields and nested summary shapes. - Use the generated failure reason catalog Markdown for reviewer-friendly explanations:
examples/reviewer-failure-reason-catalog-v1/reviewer-failure-reason-catalog.generated.example.md. - Use the generated failure reason catalog JSON for automation:
examples/reviewer-failure-reason-catalog-v1/reviewer-failure-reason-catalog.generated.example.json. - Check the catalog schema at
schemas/reviewer-failure-reason-catalog-v1.schema.json. - Review validation report provenance in
reviewer-evidence-packet-validation-report.mdto identify which catalog version, schema, local digests, categories, and severities explained validation failures.
This overview intentionally does not:
- change runtime code;
- change schemas;
- add or rename failure reasons;
- regenerate artifacts;
- alter governance policy behavior;
- alter bind/admissibility logic;
- alter FUJI behavior;
- alter TrustLog persistence or encryption behavior.