Story: Entity classification and drift baseline: ores.compute
Table of Contents
This page documents a story in Sprint 25. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Bring ores.compute to the same proven state as the ores.refdata pilot: every codegen-eligible entity bound to a profile or recorded as a genuine no-match, zero-diff regeneration verified, and any real gap the check surfaces fixed rather than skipped. Once trusted, compute-cpp is added to the CI regeneration-drift check.
Status
| Field | Value |
|---|---|
| State | BACKLOG |
| Parent sprint | Sprint 25 |
| Now | Not yet started. |
| Waiting on | Nothing. |
| Next | Break the story into tasks. |
| Last touched | 2026-08-04 |
Acceptance
- Every ores.compute entity is bound to a matching Variability Profile, or recorded as a genuine no-match with a documented reason.
- Every rebound entity is regenerated and diffed against its pre-rebind checked-in output; zero diff is the pass condition, and any non-zero diff is fixed, not worked around.
- Full local build clean, validate_schemas.sh green, full ctest suite green after regeneration.
- check_component_drift.py –components is extended to include compute-cpp, and the refdata-codegen-drift CI job is updated so future PRs touching ores.compute fail on any regeneration drift.
- The superseded ad hoc task 'Apply safe drift to compute-cpp' is marked ABANDONED, pointing here.
- This is the heaviest known exclusion catalogue of any component: the 6 hand-written service files, result_repository (read_by_workunit), workunit_repository (read_by_batch), 3 mappers (nullable vs non-optional), and 2 repositories (system_tenant union filter) are each resolved – either brought under codegen properly, or verified as a genuinely correct, documented exclusion – not carried forward as an unexamined restore-from-HEAD step.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Bind ores.compute entities to profiles; verify zero-diff regen | BACKLOG | Implement profile binding for the compute-cpp catalogue entry, rebind every matching entity, regenerate, and confirm byte-identical output. Known starting point: heaviest exclusion catalogue of any component – 6 service files, result_repository (read_by_workunit), workunit_repository (read_by_batch), 3 mappers (nullable vs non-optional), 2 repositories (system_tenant union filter). |