Story: Entity classification and drift baseline: ores.workspace
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.
1. Goal
Bring ores.workspace to the state the compass-codegen-fix-drift skill defines: 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, workspace-cpp joins the known-drift-free registry that the drift gate checks.
2. Status
| Field | Value |
|---|---|
| State | ABANDONED |
| Parent sprint | Sprint 25 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-09-23 |
3. Acceptance
- Every ores.workspace 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, schema drift current per
compass db status, full ctest suite green after regeneration. - workspace-cpp joins the
KNOWN_DRIFT_FREEregistry in check_component_drift.py (skill step 8), and the compass-pr-raise skill's local codegen-drift check runs--allover the registry, so future PRs touching ores.workspace fail on any regeneration drift. - The superseded ad hoc task 'Apply safe drift to workspace-cpp' is marked ABANDONED, pointing here.
- The known starting-point wrinkles already recorded (has_party_id template flag; workspace_service/workspace_repository/workspace_protocol currently hand-crafted and excluded) 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.
- Done shape (2026-09-07 program decision): the bind task closes at the drift gate. The story closes only after the post-merge live system test: recreate the database, provision a tenant, and exercise this component's flows. Defects the test surfaces get follow-up tasks on this story. The compute/iam binds set this shape: their live system test caught a service-grant defect ctest cannot see.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Bind ores.workspace entities to profiles; verify zero-diff regen | ABANDONED | 2026-09-23 | Implement profile binding for the workspace-cpp catalogue entry, rebind every matching entity, regenerate, and confirm byte-identical output, following the compass-codegen-fix-drift skill. Known starting point: add has_party_id template flag (party_id field across domain struct, entity, mapper, generator); restore workspace_service, workspace_repository, workspace_protocol from HEAD because production is hand-crafted. |
5. Decisions
6. Out of scope
7. Result
Abandoned at sprint 25 close. Sprint 26 replaces the codegen approaches tried so far with one method: for each module, sync codegen and clear its drift. Sprint 26 opens new, clean stories for each module. This story is not carried forward.