Skip to content

Sweep declared manifest outputs against written columns before they become load-bearing #700

Open

Description

@juaristi22

Follow-up from the PR #690 review (workstream E of #665; see also #145).

The class

The licensed-data acceptance on #690 caught a declared manifest output (state_pension) that was an SPI concept, not a persisted frame column — dormant for as long as outputs were purely declarative, refused at full rung the moment country_stage_plan compiled outputs into StagePlan.produces. As the review put it: the other manifests may carry the same latent class, dormant until they too become load-bearing. Each discovery via a build costs a credentialed full-rung run; a static sweep costs one pass.

Scope

Validate declared outputs against what the runtimes actually write, statically, for every source manifest not yet load-bearing:

  • us/source_stages.json (39 stages) against the us_plan stage produces declarations and runtime constants — note the US plan has stages with no manifest entry, so the mapping needs care rather than a naive zip.
  • be/source_stages.json against its implementations.
  • uk/cgt_source_stages.json (the bespoke CGT declaration from Wire the capital gains family required-at-build with its fence in-manifest #676) against cgt_imputation's written columns — also a candidate for absorption into the canonical uk/source_stages.json, which would make its outputs load-bearing the same way.
  • The frozen uk/hmrc_income_source_stages.json is a historical evidence anchor with one known latent entry (the state_pension concept) — document, don't edit; it retires at the FRS 2024-25 refresh (Legacy 2023-vintage build of the microcosm UK spine (deferred) #687).

PR #690 already pins the two migrated UK stages' outputs to named runtime written-column constants (TestDeclaredOutputsAreWrittenColumns); this issue extends the discipline to the rest.

Acceptance

A conformance test (or one per country package) that fails when a declared output names a column no runtime constant or plan declaration backs; every existing latent entry either fixed or documented with an owner.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions