A coordination-feedback note from the witness side, filed alongside the methodology retrospective pulseengine.eu#94 (§4). The witness↔kiln work on the --harness contract (witness#110, #340, #343) went really well — I posted the exact witness-harness-v1 schema, kilnd implemented it, you verified it end-to-end against the real binary. But none of that dependency is traced anywhere.
The gap
- The contract (the
HarnessSnapshot JSON shape: {schema, counters:{<bare-id>:N}}) is defined in witness-core (run_record.rs).
kilnd's witness_harness.rs implements/consumes it.
- Nothing records that kilnd derives from witness's schema. If witness bumps
witness-harness-v1 (e.g. a v2 row shape, or a key-format change), nothing on the kiln side flags drift — it's an informal handshake that currently holds only because we coordinated by hand.
Suggestion
rivet already has the machinery: derives-from-external / cross-org-supplier-traceability (rivet #288). kiln could add a rivet artifact recording that kilnd witness_harness derives-from-external the witness HarnessSnapshot schema — {org: pulseengine, doc: witness-core/run_record, last-synced, sha256, anchor}. Then a schema change upstream is at least visible as a stale last-synced/sha256, rather than a silent break discovered at runtime.
This pairs naturally with the differential cross-check (witness#110): the cross-check catches behavioural drift (counters disagree), the traceability link catches contract drift (schema changed). Both, ideally.
Not urgent — v1 is stable and small. Filing so the dependency is on record rather than living only in issue comments. Refs: pulseengine.eu#94, pulseengine/witness#110, kiln#340, kiln#343.
A coordination-feedback note from the witness side, filed alongside the methodology retrospective pulseengine.eu#94 (§4). The witness↔kiln work on the
--harnesscontract (witness#110, #340, #343) went really well — I posted the exactwitness-harness-v1schema, kilnd implemented it, you verified it end-to-end against the real binary. But none of that dependency is traced anywhere.The gap
HarnessSnapshotJSON shape:{schema, counters:{<bare-id>:N}}) is defined inwitness-core(run_record.rs).kilnd'switness_harness.rsimplements/consumes it.witness-harness-v1(e.g. a v2 row shape, or a key-format change), nothing on the kiln side flags drift — it's an informal handshake that currently holds only because we coordinated by hand.Suggestion
rivet already has the machinery:
derives-from-external/ cross-org-supplier-traceability (rivet #288). kiln could add a rivet artifact recording thatkilnd witness_harnessderives-from-externalthe witnessHarnessSnapshotschema —{org: pulseengine, doc: witness-core/run_record, last-synced, sha256, anchor}. Then a schema change upstream is at least visible as a stalelast-synced/sha256, rather than a silent break discovered at runtime.This pairs naturally with the differential cross-check (witness#110): the cross-check catches behavioural drift (counters disagree), the traceability link catches contract drift (schema changed). Both, ideally.
Not urgent — v1 is stable and small. Filing so the dependency is on record rather than living only in issue comments. Refs: pulseengine.eu#94, pulseengine/witness#110, kiln#340, kiln#343.