# Fleet CLI Local Canary Review Fixes ## Objective Fix only the two should-fix code review findings: 1. Ensure `@mosaicstack/mosaic` declares `yaml` and lockfile state is current. 2. Validate `mosaic agent status [agent]` against the fleet roster before constructing/running the tmux target. ## Constraints - Do not modify `docs/TASKS.md`. - Leave changes uncommitted. - Run requested formatting and quality gates. ## Plan 1. Inspect manifest/lockfile state for `yaml`. 2. Add failing regression test for `mosaic agent status typo`. 3. Patch `registerFleetAgentCommands` status validation. 4. Format touched files. 5. Run requested tests, typecheck, and lint. 6. Review final diff. ## Progress - Loaded required repo/global/runtime instructions. - Confirmed `packages/mosaic/package.json` already declares `yaml`. - Confirmed `pnpm-lock.yaml` already has `packages/mosaic` importer entry for `yaml`. - Found `registerFleetAgentCommands` status path does not validate agent before building tmux target. ## Verification - TDD red check: `pnpm --filter @mosaicstack/mosaic test -- src/commands/fleet.spec.ts` failed before the production fix because `mosaic agent status typo` resolved instead of rejecting. - Focused green check: `pnpm --filter @mosaicstack/mosaic test -- src/commands/fleet.spec.ts` passed after adding roster validation. - Formatting: `pnpm exec prettier --write packages/mosaic/src/commands/fleet.ts packages/mosaic/src/commands/fleet.spec.ts docs/scratchpads/fleet-cli-local-canary-review-fixes.md` completed with all files unchanged. - Requested tests: `pnpm --filter @mosaicstack/mosaic test -- src/commands/fleet.spec.ts src/cli-smoke.spec.ts` passed with 36 tests. - Baseline typecheck: `pnpm typecheck` passed. - Baseline lint: `pnpm lint` passed. - Independent review: `~/.config/mosaic/tools/codex/codex-code-review.sh --uncommitted` returned approve with 0 findings. Note: reviewer reported broader context inspection was limited by its read-only sandbox, so review was based on the supplied diff. - `docs/TASKS.md` has no diff. ## Risks - `docs/TASKS.md` intentionally untouched per user instruction. - Review finding 1 required no file edit: `packages/mosaic/package.json` already declares `yaml`, and the `packages/mosaic` importer in `pnpm-lock.yaml` already includes `yaml`.