Files
stack/docs/scratchpads/758-fcm-m1-003-example-profile-dispositions.md
Jarvis dcb3f5a2ca
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
test(fleet): validate shipped artifact dispositions
2026-07-14 20:24:50 -05:00

3.2 KiB

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 to main with Refs #758. pr-ci-wait.sh -n 770 reported terminal-green Woodpecker pipeline #1823.