Skip to content

test(release-lines): enforce ledgered semantic parity #139

Description

@zoeyrose

Parent: #113
Depends on: #137

Outcome

Add a deterministic, read-only semantic comparison that enforces the
machine-readable release-line ledger instead of relying on periodic manual tree
diffs.

Scope

  • Compare main and 1.x through stable content-catalog identities and the
    shared lossless content core using an explicit --other-root.
  • Compare shared authored fields semantically, independent of harmless field
    serialization order.
  • Permit release, provider, provenance, consumer, and tooling differences only
    through narrow records in feat(release-lines): record a machine-readable parity ledger #137's ledger.
  • Fail on unclassified additions, removals, changed shared values, duplicate
    ports, missing companions, malformed records, and stale exceptions.
  • Keep the command local, deterministic, network-free, and read-only.
  • Never require or recreate maps/light-source-evidence/, capture manifests,
    screenshots, generated output, or mutable runtime state.
  • Rebaseline only after the queued branch-native lighting companions reach
    their intended final state.

Required cases

  • Exact cross-line patches.
  • Equivalent authored results with line-specific integration.
  • Intentional main-only provenance and 1.x-only release/runtime products.
  • The two forcefield files whose name_pl and light_color records are merely
    ordered differently.
  • A pending glower result until feat(lighting): consolidate glower illumination onto visible fixtures #103's main companion lands.

Terminal suffix enforcement

Run terminal delivery only after #138 and all substantive work have merged and
an immutable pre-ledger horizon has been frozen for each line. Treat authored
domain files, including maps/light-source-review.json, as substantive; they
are never terminal control-plane maintenance.

Before the first terminal merge, require the durable declaration in #154,
#113, and the program report to give, per line, the exact horizon, the exact
ordered count of remaining squash commits, and each ordinal's owning issue/PR
and exact changed-path allowlist.

The audit must fail unless each final suffix has exactly the declared length
and order and every ordinal has exactly its declared changed-path set. Any
missing, extra, or reordered commit, or any missing or out-of-allowlist path,
requires a newly frozen horizon and complete declaration before another
terminal merge.

Actual squash SHAs are recorded after merge in #154, #113, and the program
report and then checked against the declared ordinals. No commit may be
required to contain its own SHA.

Acceptance criteria

  • The audit reports no unclassified shared authored-content difference in
    either direction at recorded immutable coordinates.
  • Tests cover additions, removals, value changes, duplicate ports,
    malformed entries, and stale exceptions.
  • Ordering-only differences do not create false positives.
  • Pending ledger records fail once their owning issue is delivered or no
    longer matches the tree.
  • Both branch validators, the cross-line audit, and git diff --check
    pass independently.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Fields

Priority

None yet

Start date

None yet

Target date

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions