Implemented across 3 slices, all merged: - **PR #370 (Slice 1)**: `mapify preset list` + `mapify preset add --from <path>` — `.map/presets/<id>/manifest.json` format, path-traversal guards, `--json`, `--force` - **PR #371 (Slice 2)**: `mapify preset remove`, `mapify preset enable/disable`, `mapify preset resolve <template>` — 3-tier resolution (project overrides → enabled presets → core templates), `.state.json` sidecar for enabled state - **PR #372 (Slice 3)**: `mapify preset render <template>` + `mapify preset set-priority <id> <n>` — full composition engine with replace/prepend/append/wrap strategies, priority-ordered layer application, `{CORE_TEMPLATE}` wrap placeholder 57 tests in `tests/test_preset_commands.py`. Extension hooks and catalog (remote registry) remain as optional future work.
Implemented across 3 slices, all merged:
mapify preset list+mapify preset add --from <path>—.map/presets/<id>/manifest.jsonformat, path-traversal guards,--json,--forcemapify preset remove,mapify preset enable/disable,mapify preset resolve <template>— 3-tier resolution (project overrides → enabled presets → core templates),.state.jsonsidecar for enabled statemapify preset render <template>+mapify preset set-priority <id> <n>— full composition engine with replace/prepend/append/wrap strategies, priority-ordered layer application,{CORE_TEMPLATE}wrap placeholder57 tests in
tests/test_preset_commands.py. Extension hooks and catalog (remote registry) remain as optional future work.