Skip to content

Equivalence harness: regression (drift) mode for in-place COBOL changes #4513

Open

Description

@squid-protocol

Why. The same generated golden-master scenarios that verify a translation can guard everyday changes to the original COBOL: a CICS developer changes a program and wants proof that only the intended outputs changed.

What.

  1. Generate scenarios for a program and commit the original's outputs as an approved baseline.
  2. On every change, re-run them. Any changed output is flagged, with the exact field and scenario.
  3. A person approves intended differences, scoped (e.g. 'only LATE-FEE, only for overdue accounts'). Build this on Declared differences: equivalence except where a person approved a difference #4051 (declared differences), not a second mechanism.
  4. Anything not approved fails the check.

Note: this checks that behavior is UNCHANGED, not that it is correct. Existing bugs are baselined too. For z/OS-native shops it needs the original to run there (#4050).

Done when: a demo PR that changes one COBOL program shows the approved difference passing and an unintended side effect caught.

Related: #3804, #4051, #4050, #4493.

Activity

  1. added
    enhancementNew feature, sensor, or structural signature
    testingUnit, integration, and E2E pipeline verification
    legacy-modernizationCOBOL refractor, dead-code extraction, and JCL forging
    on Oct 5, 2026
  2. added
    scope:frontierMapped, not yet built: eras/commands/regions the burned estates don't use (Gap Atlas)
    era:2Era CICS/MVS-ESA, COBOL II/85: RESP, SQL, DPL (~1988-96) (era_tags.py)
    on Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature, sensor, or structural signatureera:2Era CICS/MVS-ESA, COBOL II/85: RESP, SQL, DPL (~1988-96) (era_tags.py)legacy-modernizationCOBOL refractor, dead-code extraction, and JCL forgingneeds:dockerNeeds Docker toolchain/oracle containersscope:frontierMapped, not yet built: eras/commands/regions the burned estates don't use (Gap Atlas)testingUnit, integration, and E2E pipeline verification

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions