Story: Entity classification and drift baseline: ores.iam

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.iam to the same proven state as the ores.refdata pilot: every codegen-eligible entity (discovered once, under projects/ores.iam/modeling – the iam and iam-cpp catalogue entries share the same modeling_dir and no longer have a live legacy-JSON split, so this is one survey, not two) 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, iam and iam-cpp are 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.iam 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 iam and iam-cpp, and the refdata-codegen-drift CI job is updated so future PRs touching ores.iam fail on any regeneration drift.
  • The superseded ad hoc task 'Apply safe drift to iam-cpp' is marked ABANDONED, pointing here.
  • The known starting-point wrinkle already recorded for iam-cpp (service_find_prefix on tenant_type and tenant_status) is resolved as part of reaching zero drift.
  • The known, previously-flagged tenant_type has_tenant_id model/table drift (see capture 2F793500-FBD1-4E4F-8B6E-15D03337FBD2) is investigated and resolved, not left as stale drift.

Tasks

Task State Start End Description
Bind ores.iam entities to profiles; verify zero-diff regen BACKLOG     Implement profile binding for ores.iam's org-mode entity set (iam and iam-cpp catalogue entries share the same modeling_dir), rebind every matching entity, regenerate, and confirm byte-identical output, following the ores.refdata pilot method exactly.

Decisions

Out of scope

Emacs 29.3 (Org mode 9.6.15)