# FCM-M1-003 — Executable example/profile/service-preset dispositions - **Task / issue:** FCM-M1-003 / #758 - **Branch / base:** `test/758-example-profile-dispositions` from `origin/main` `a5e8e554012f27898e035d2882a8e47e1a02fe97` - **Objective:** Make every artifact in the M0 legacy disposition inventory executable evidence: it must validate canonically, be explicitly retained as a v1 fixture, or be retired with a replacement/deprecation link. - **Scope:** Validation and explicit version/retirement metadata only for shipped examples, profiles, and the operator-interaction service preset. Reuse the central resolver and existing v2 roster compiler. - **Out of scope:** Generated environment boundaries, CRUD, reconciliation/apply, migration, live fleet mutation, and `docs/TASKS.md`. - **Budget:** 20K card allocation; use focused package tests before full package validation. ## Plan 1. Inventory exact shipped artifacts and existing compiler/resolver/profile tests. 2. Add failing behavior tests covering all listed artifacts and their documented disposition. 3. Implement minimal declarative fixture/disposition validation; do not add a role/class resolver. 4. Run focused and package quality gates; obtain independent code and security review. 5. Commit, queue-guard, push, open one `main` PR with `Refs #758`. ## Progress - Intake complete: verified no branch, worktree, or open PR for this card before creating this isolated worktree. - Requirements read: FCM PRD, FCM-M1-003 task row, M0 disposition inventory, delivery/QA/documentation guides. - TDD: RED recorded with `pnpm --filter @mosaicstack/mosaic test -- example-profile-dispositions.spec.ts` failing because the new module did not exist; GREEN recorded after the minimal guard implementation. The focused suite now has 4 passing tests, including undeclared-artifact and missing-explicit-v1-version denials. - Independent review: initial code review found the service policy path was hardcoded; remediation iterates declared `canonical-service-policy` artifacts. Exact-head code review approved and exact-head security review found no issues. ## Risks / decisions - The M0 inventory permits unresolved legacy roles only when explicitly v1-versioned or retired. Do not infer aliases beyond the three approved by FCM-M1-002. - `docs/TASKS.md` is orchestrator-owned and will not be edited. ## Verification evidence - Focused TDD guard: `pnpm --filter @mosaicstack/mosaic test -- example-profile-dispositions.spec.ts` — PASS (4 tests). - Full package suite: `pnpm --filter @mosaicstack/mosaic test` — PASS (51 files, 742 tests). - Static gates: `pnpm --filter @mosaicstack/mosaic typecheck`, `pnpm --filter @mosaicstack/mosaic lint`, and `pnpm format:check` — PASS. - Diff gate: `git diff --check` — PASS. - Exact-head reviews: `codex-code-review.sh --uncommitted` — APPROVE; `codex-security-review.sh --uncommitted` — no findings. - Delivery: committed as `9a9ad1a`, pushed after `ci-queue-wait.sh --purpose push`, and opened PR [#770](https://git.mosaicstack.dev/mosaicstack/stack/pulls/770) to `main` with `Refs #758`. `pr-ci-wait.sh -n 770` reported terminal-green Woodpecker pipeline [#1823](https://ci.mosaicstack.dev/repos/47/pipeline/1823/1).