From 4223bc2ddb54bbf19e85b3f45a6cea6a2f912e45 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 18 Jul 2026 07:23:42 +0000 Subject: [PATCH] feat(#353): add mapify prompt-profile list command (slice 1) Adds the `mapify prompt-profile` sub-command group and the first command `prompt-profile list` implementing the prompt profile lifecycle manifest format for issue #353. Manifest format: `.map/prompt-profiles//manifest.json` with required keys (id, title, version) and optional keys (description, owner, targets, eval_requirements, rollback_notes). Active pointer: `.map/prompt-profiles/active.json` with `{"active": ""|null}` as the rollback primitive. The `list` command: - reads all valid profile manifests from .map/prompt-profiles/ - checks active.json for the current active profile - displays a Rich table with ID/title/version/status/description - marks the active profile in the Status column - emits a stale-pointer warning when active.json names a profile that no longer exists - supports --json for machine-readable output - gracefully skips directories without valid manifests 20 tests in tests/test_prompt_profile_commands.py covering empty list, installed profiles, malformed manifest degradation, JSON output, active profile marking, and stale pointer warning. Co-Authored-By: Claude --- docs/ARCHITECTURE.md | 8 +- src/mapify_cli/__init__.py | 114 ++++++++++++ tests/test_prompt_profile_commands.py | 246 ++++++++++++++++++++++++++ 3 files changed, 364 insertions(+), 4 deletions(-) create mode 100644 tests/test_prompt_profile_commands.py diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 0b47dc80..905bffe6 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -2565,11 +2565,11 @@ All remaining open issues are enhancements (no bugs as of 2026-07-18). Prioritiz ### #291 — SpecKit-style preset composition (layered template resolution) — CLOSED **COMPLETE (PRs #370/#371/#372, 2026-07-18)**: Full `mapify preset` sub-command group. Commands: `list`, `add --from `, `remove`, `enable`, `disable`, `resolve