Skip to content

Cross-repo contract (witness --harness JSON schema) is untraced — coordination is manual prose #347

Description

@avrabe

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions