3.2 KiB
3.2 KiB
FCM-M1-003 — Executable example/profile/service-preset dispositions
- Task / issue: FCM-M1-003 / #758
- Branch / base:
test/758-example-profile-dispositionsfromorigin/maina5e8e554012f27898e035d2882a8e47e1a02fe97 - 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
- Inventory exact shipped artifacts and existing compiler/resolver/profile tests.
- Add failing behavior tests covering all listed artifacts and their documented disposition.
- Implement minimal declarative fixture/disposition validation; do not add a role/class resolver.
- Run focused and package quality gates; obtain independent code and security review.
- Commit, queue-guard, push, open one
mainPR withRefs #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.tsfailing 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-policyartifacts. 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.mdis 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, andpnpm 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 afterci-queue-wait.sh --purpose push, and opened PR #770 tomainwithRefs #758.pr-ci-wait.sh -n 770reported terminal-green Woodpecker pipeline #1823.