| # Validation Notes |
|
|
| ## Four Gates |
|
|
| ### 1. Structural Validity |
|
|
| TraceCapsule schema requires: |
|
|
| - `root_trace_id` |
| - `trace_id` |
| - `claim_boundary` |
| - `loop_state` |
| - `review_status` |
| - `credential_state` |
| - `source_return_state` |
|
|
| `source_return_state` must be either: |
|
|
| - `present`, requiring `source_return_path` |
| - `explicitly_absent`, requiring `source_return_absence_reason` |
|
|
| ### 2. Transition Discipline |
|
|
| TransitionRecord schema requires: |
|
|
| - `from_state` |
| - `to_state` |
| - `trigger` |
| - `evidence_ref` |
| - `reason` |
| - `timestamp` |
| - `actor_or_system` |
|
|
| Every transition must explain why it happened and point to a supporting trace. |
|
|
| ### 3. Provenance Boundary |
|
|
| `root_trace_id` is the original source / credential object. |
|
|
| A child capsule may add: |
|
|
| - `parent_trace_id` |
| - `claim_delta` |
| - new `loop_state` |
| - new `review_status` |
|
|
| A child capsule may **not** rewrite root provenance. |
|
|
| JSON Schema validates the shape of `root_trace_id`; packet-level validation must enforce that child capsules keep the same root across the lineage. |
|
|
| ### 4. Scope Boundary |
|
|
| The schemas validate structure and routing discipline. |
|
|
| They do not validate truth, intent, or claim correctness. |
|
|
| ## Expected Test Results |
|
|
| ### PASS |
|
|
| - root HELD capsule |
| - child inheritance capsule |
| - source_return_path present |
| - source_return explicitly absent with reason |
| - HELD β STRAINED with evidence_ref + reason |
| - STRAINED β REPAIRING with evidence_ref + reason |
| - REPAIRING β CLOSED_CURRENT_SCOPE with evidence_ref + reason |
| - Any β MUST_STOP with evidence_ref + reason |
| - Any β FALSE_CLOSURE_RISK with evidence_ref + reason |
| |
| ### FAIL |
| |
| - missing evidence_ref |
| - missing reason |
| - attempted root rewrite |
|
|