Task: B11: Migrate live codegen callers from –profile to –address
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.