# KG-3 Source Trace

Date: 2026-06-03
Run level: `execute_bound` for content-only publication to the already-provisioned app.

## Rebuild Input Set

KG-3 rebuilds the draft graph from KG-2 plus the runtime-contract generate and collect evidence:

- KG-2: `build-1/kg/kg-2-draft-records.ndjson`, `kg-2-relationships.ndjson`, `kg-2-source-trace.md`
- C10: `build-1/evidence/cycle-10-tutor-runtime-contract.md`, `cycle-10-route-verify.txt`
- C11: `build-1/evidence/cycle-11-runtime-collect.md`, `cycle-11-route-verify.txt`
- E: `envelopes/kg-promote-source-backed-record-envelope.json`
- M: `evidence/external-source-manifest.json`

This remains a draft KG packet. It does not mutate a production KG store and it does not promote any
record to `source_backed`.

## Rebuild Rule

- carry the 11 source-ref-hash-verified Varro/VSL records forward unchanged except for `kg3` ids;
- keep all records at `promotion_state: not_source_backed`;
- incorporate the cycle-10 runtime contract and cycle-11 collect pass into the tutor-grounding task,
  public-route QA, reviewer-orientation QA, and tutor-runtime gap;
- keep the source-backed promotion decision and gap checked, because the Rust readiness verifier already
  separated hash/evidence readiness from the human-only execution envelope;
- do not count `kg-3-draft-records.ndjson` as a new denominator for `accepted_output_index`; the frozen
  KG-promotion denominator remains 18 from cycle 7.

## Rebuild Summary

| Measure | KG-2 | KG-3 |
|---|---:|---:|
| Node records | 18 | 18 |
| Relationship records | 16 | 16 |
| Active unresolved gaps | 2 | 2 |
| Source-backed promotions | 0 | 0 |
| Live tutor runtime integrated | no | no |
| Public route set verified before rebuild | root, citation, runtime contract | root, citation, runtime contract, runtime collect |

## Active Unresolved Gaps

| Record | Why it remains active |
|---|---|
| `kg3:gap:source-backed-promotion-execution-gate` | Hash and evidence checks pass, but the existing promotion envelope is `execute_enabled:false` and `executor_type:human_only`. |
| `kg3:gap:tutor-runtime-not-integrated` | Static citation, runtime-contract, and runtime-collect surfaces exist, but no live tutor answer runtime with enforced citations is integrated. |

## Non-Convergence Audit

The two active gaps did not shrink in this rebuild. This cycle is still useful because it consumes the
required collect packet and prevents the runtime-contract route from being treated as live runtime
evidence. The next useful cycle should move one of the two remaining gaps rather than adding another
static collect/rebuild-only surface.

No kill criterion is triggered inside this single rebuild because there is no regression, no repeated
review failure, no budget cap breach, and no irreversible action. The stability risk is explicit and
tracked through `accepted_output_index` staying at 0.75.

## Reviewer Note

KG-3 is a consolidation step. It improves the graph's truthfulness by narrowing "runtime work exists"
to "static runtime contract and collect surfaces exist; live runtime remains unbuilt."
