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.

1. 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.

2. 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

3. 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.

4. 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.)

5. Notes

6. PRs

PR Title
   

7. Review

Comment summary File Decision Notes
       

8. 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)