Task: B11: Migrate live codegen callers from –profile to –address

Table of Contents

This page documents a task in the Retire legacy codegen profile system; add junction support to physical-space codegen story. It captures the goal, current status, acceptance, and any notes or results.

Goal

Every live caller of codegen generation uses –address with the correct physical-space address; the layer recipes map to their facet (qt->ores.cpp.qt, sql->ores.sql.schema, …); composite profiles are replaced with explicit addresses or documented multi-step guidance; historical records are left as-is. Once no live caller uses –profile, the deprecated shim (_PROFILE_TO_FACETS, –profile args) can be removed.

Delineation from task "Sweep docs/skills/recipes for stale legacy-profile-system references" (05C64B72-418A-45E7-BBD2-2E91FD69DE45), also in this story: that task fixes prose describing the now-deleted System 1 (facet_catalogue.org/_load_profiles_from_org) as if it still existed. This task is different – it migrates working invocations of the still-functioning --profile shim (System 2's _PROFILE_TO_FACETS backward-compat path in generate.py) over to --address. Same file surfaces may show up in both greps; check which kind of hit it is before editing twice.

Status

Field Value
State DONE
Parent story Retire legacy codegen profile system; add junction support to physical-space codegen
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-06-28

Acceptance

  • grep for –profile in doc/llm/skills, doc/recipes, doc/llm/runbooks, and projects/ores.codegen/*.sh returns nothing (excluding historical agile/plans/analysis); each layer recipe uses the right –address; compass help shows –address; codegen still generates byte-identically; optionally –profile shim removed with a note.

Plan

(Implementation strategy. Written when work starts; key decisions are distilled into the parent story's * Decisions at close, but the plan itself stays — it is the historical record of what we did.)

Notes

PRs

PR Title
   

Review

Comment summary File Decision Notes
       

Result

Went further than the acceptance criteria's "optionally remove the shim" — removed --profile outright rather than leaving it as a documented-around deprecated path, since keeping it added no value once every live caller was migrated.

Code: deleted _PROFILE_TO_FACETS=/=_CPP_CORE and the profile parameter from resolve_targets=/=_generate_single=/=cmd_generate=/ =cmd_regenerate in generate.py; removed --profile from the argparse definitions in cli.py, compass.py (cmd_codegen), and compass_codegen_entity.py (entity generate|show|diff); --address is now required on the top-level codegen generate|regenerate and optional (defaults to full supported set) on codegen entity. Removed the now-fully-dead resolve_profile_templates=/ =validate_profile_for_model=/=list_profiles from core.py (never called outside themselves). Updated the --profile guard messages in core.py and the docstrings in org_loader.py to reference addresses.

Docs: every live caller across recipes, skills, runbooks, the component-scaffold test fixtures, and the projects/modeling/*.org physical-space design docs now uses --address; composite legacy profile names (all, all-cpp, non-temporal, component-api=/ =-core=/-service=) were mapped to their real equivalents (ores.cpp=/=ores root/technical-space addresses, or — for component kind — the #+component_kind: frontmatter property, which several docs had wrong even before this task). Full file list and the two dead-code deletions (run_generator.sh, generate_workspace_entities.sh) found along the way are recorded on the sibling sweep task 05C64B72, since the two tasks were done together in one pass.

Verified: grep -rn -- "--profile" across the repo returns only the one intentionally-preserved historical table in variability_model.org plus point-in-time agile/plan/analysis records. 50 pytest unit tests pass; component-scaffold verify passes; codegen generate, regenerate --dry-run, and entity generate|show exercised end-to-end with real addresses against real entities.

Emacs 29.3 (Org mode 9.6.15)