docs(fleet): define declarative configuration M0 #760

Merged
jason.woltje merged 2 commits from docs/758-fleet-config-management into main 2026-07-14 19:53:13 +00:00
Owner

Summary

Publishes the #758 M0 gate before any fleet implementation:

  • Adds normative desired-state, validation, lifecycle, authority, generated-env, migration, scope, and documentation requirements to docs/PRD.md.
  • Adds a complete M0–M5 one-card/one-PR dependency DAG to docs/TASKS.md.
  • Adds a scoped docs-IA acceptance checklist with PRD AC-to-card mapping.
  • Adds an inventory/disposition gate for every current fleet example and profile.

Scope

Docs only. No source, schema, roles, examples, profiles, systemd, or live-fleet changes.

Validation

  • Prettier check on all four changed Markdown files
  • git diff --check
  • Local Markdown link validation
  • FCM acceptance-criteria and M0–M5 DAG mapping validation
  • Codex code review: approve; security review: no findings

Refs #758.

## Summary Publishes the #758 M0 gate before any fleet implementation: - Adds normative desired-state, validation, lifecycle, authority, generated-env, migration, scope, and documentation requirements to `docs/PRD.md`. - Adds a complete M0–M5 one-card/one-PR dependency DAG to `docs/TASKS.md`. - Adds a scoped docs-IA acceptance checklist with PRD AC-to-card mapping. - Adds an inventory/disposition gate for every current fleet example and profile. ## Scope Docs only. No source, schema, roles, examples, profiles, systemd, or live-fleet changes. ## Validation - Prettier check on all four changed Markdown files - `git diff --check` - Local Markdown link validation - FCM acceptance-criteria and M0–M5 DAG mapping validation - Codex code review: approve; security review: no findings Refs #758.
jason.woltje added 1 commit 2026-07-14 19:19:01 +00:00
docs(fleet): define declarative config management M0
Some checks failed
ci/woodpecker/pr/ci Pipeline failed
2b2d49c955
Author
Owner

ROR-760-REQUEST-CHANGES-2b2d49c9

REQUEST CHANGES — reviewer-of-record [W-jarvis:reviewer] at exact head 2b2d49c9554aa36a256d8a23df62c7a8f6ce4acc.

Scope and checks performed:

  • Exact PR head verified via git ls-remote origin refs/pull/760/head = 2b2d49c9554aa36a256d8a23df62c7a8f6ce4acc.
  • Diff vs origin/main is docs-only and exactly four files: docs/PRD.md, docs/TASKS.md, docs/fleet/FLEET-CONFIG-DOCS-IA-CHECKLIST.md, docs/fleet/LEGACY-EXAMPLE-PROFILE-DISPOSITION-INVENTORY.md.
  • git diff --check origin/main...refs/review/pr-760: pass.
  • Prettier check on the four changed Markdown files using repo Prettier: pass.
  • Local Markdown link check for changed files: pass.
  • AC-FCM-* criteria are mapped in docs/TASKS.md / checklist.

Blocking finding:

  1. docs/fleet/LEGACY-EXAMPLE-PROFILE-DISPOSITION-INVENTORY.md inventories examples and profiles only (lines 12–32) and omits the shipped fleet service preset packages/mosaic/framework/fleet/services/operator-interaction.yaml. origin/main contains that service preset and it carries the legacy interaction policy (tool_policy: operator-interaction). Because this PR is the M0 migration/disposition gate for canonical interaction/Tess authority and legacy operator-interaction aliasing, leaving the shipped service preset outside the inventory means M1 can satisfy the documented inventory while missing a real shipped fleet artifact.

Required remediation:

  • Add packages/mosaic/framework/fleet/services/operator-interaction.yaml to the disposition inventory, with required evidence for canonical interaction migration/shared resolver/tool-policy alias coverage; or explicitly exclude service presets with a rationale and update the PRD/checklist acceptance language accordingly.
  • If included, update the wording that currently scopes disposition to “examples/profiles” (docs/PRD.md lines 104 and 115; docs/fleet/FLEET-CONFIG-DOCS-IA-CHECKLIST.md lines 28–29) so the gate covers shipped examples, profiles, and service presets / shipped fleet declarative artifacts consistently.

CI note: Woodpecker PR pipeline 1802 was still running at review time, so there is no terminal-green CI approval evidence yet.

No merge performed.

ROR-760-REQUEST-CHANGES-2b2d49c9 REQUEST CHANGES — reviewer-of-record [W-jarvis:reviewer] at exact head `2b2d49c9554aa36a256d8a23df62c7a8f6ce4acc`. Scope and checks performed: - Exact PR head verified via `git ls-remote origin refs/pull/760/head` = `2b2d49c9554aa36a256d8a23df62c7a8f6ce4acc`. - Diff vs `origin/main` is docs-only and exactly four files: `docs/PRD.md`, `docs/TASKS.md`, `docs/fleet/FLEET-CONFIG-DOCS-IA-CHECKLIST.md`, `docs/fleet/LEGACY-EXAMPLE-PROFILE-DISPOSITION-INVENTORY.md`. - `git diff --check origin/main...refs/review/pr-760`: pass. - Prettier check on the four changed Markdown files using repo Prettier: pass. - Local Markdown link check for changed files: pass. - `AC-FCM-*` criteria are mapped in `docs/TASKS.md` / checklist. Blocking finding: 1. `docs/fleet/LEGACY-EXAMPLE-PROFILE-DISPOSITION-INVENTORY.md` inventories examples and profiles only (lines 12–32) and omits the shipped fleet service preset `packages/mosaic/framework/fleet/services/operator-interaction.yaml`. `origin/main` contains that service preset and it carries the legacy interaction policy (`tool_policy: operator-interaction`). Because this PR is the M0 migration/disposition gate for canonical `interaction`/Tess authority and legacy `operator-interaction` aliasing, leaving the shipped service preset outside the inventory means M1 can satisfy the documented inventory while missing a real shipped fleet artifact. Required remediation: - Add `packages/mosaic/framework/fleet/services/operator-interaction.yaml` to the disposition inventory, with required evidence for canonical `interaction` migration/shared resolver/tool-policy alias coverage; or explicitly exclude service presets with a rationale and update the PRD/checklist acceptance language accordingly. - If included, update the wording that currently scopes disposition to “examples/profiles” (`docs/PRD.md` lines 104 and 115; `docs/fleet/FLEET-CONFIG-DOCS-IA-CHECKLIST.md` lines 28–29) so the gate covers shipped examples, profiles, and service presets / shipped fleet declarative artifacts consistently. CI note: Woodpecker PR pipeline `1802` was still running at review time, so there is no terminal-green CI approval evidence yet. No merge performed.
jason.woltje force-pushed docs/758-fleet-config-management from 2b2d49c955 to cfe3878c99 2026-07-14 19:39:13 +00:00 Compare
Author
Owner

ROR-760-VERIFIED-APPROVE-cfe3878c

VERIFIED APPROVE — reviewer-of-record [W-jarvis:reviewer] head cfe3878c99216a87d2d5eaeb41b5e09cb59c9ab7.

Comparative gate result for duplicate #758 M0 PRs: #760 is the canonical winner.

Evidence checked:

  • Exact live #760 head verified via git ls-remote origin refs/pull/760/head = cfe3878c99216a87d2d5eaeb41b5e09cb59c9ab7.
  • #760 diff vs current origin/main is docs-only and exactly four files: docs/PRD.md, docs/TASKS.md, docs/fleet/FLEET-CONFIG-DOCS-IA-CHECKLIST.md, docs/fleet/LEGACY-EXAMPLE-PROFILE-DISPOSITION-INVENTORY.md.
  • Woodpecker PR CI pipeline 1806 is terminal green for head cfe3878c9921: install, sanitization, typecheck, lint, format, test all OK.
  • git diff --check origin/main...refs/review/pr-760-current: pass.
  • Prettier check on the exact four changed Markdown files: pass.
  • Local Markdown link check for changed files: pass.
  • AC-FCM-* criteria map through docs/TASKS.md / docs-IA checklist.
  • Prior #760 blocker is remediated: the disposition inventory now covers framework/fleet/services/operator-interaction.yaml, including interaction/tool-policy alias evidence and service-preset rules.
  • Inventory covers all shipped fleet examples, profiles, and the service preset from origin/main.
  • Normative content matches issue #758 and the approved architecture: roster SSOT, generated projections, shared resolver, authority separation (validator certificate vs merge-gate merge authority), stopped-state lifecycle safety, command/key quarantine, local M1–M5 scope, migration/disposition gates, and M0 implementation block.

Duplicate disposition recommendation: close/supersede #761 in favor of #760. #761 is CI-green but is the duplicate lane, has a different five-file/sitemap/scratchpad+tasks artifact shape and older-base branch; no reviewer-of-record approval is posted there.

No merge performed by reviewer.

ROR-760-VERIFIED-APPROVE-cfe3878c VERIFIED APPROVE — reviewer-of-record [W-jarvis:reviewer] head `cfe3878c99216a87d2d5eaeb41b5e09cb59c9ab7`. Comparative gate result for duplicate #758 M0 PRs: **#760 is the canonical winner**. Evidence checked: - Exact live #760 head verified via `git ls-remote origin refs/pull/760/head` = `cfe3878c99216a87d2d5eaeb41b5e09cb59c9ab7`. - #760 diff vs current `origin/main` is docs-only and exactly four files: `docs/PRD.md`, `docs/TASKS.md`, `docs/fleet/FLEET-CONFIG-DOCS-IA-CHECKLIST.md`, `docs/fleet/LEGACY-EXAMPLE-PROFILE-DISPOSITION-INVENTORY.md`. - Woodpecker PR CI pipeline `1806` is terminal green for head `cfe3878c9921`: install, sanitization, typecheck, lint, format, test all OK. - `git diff --check origin/main...refs/review/pr-760-current`: pass. - Prettier check on the exact four changed Markdown files: pass. - Local Markdown link check for changed files: pass. - `AC-FCM-*` criteria map through `docs/TASKS.md` / docs-IA checklist. - Prior #760 blocker is remediated: the disposition inventory now covers `framework/fleet/services/operator-interaction.yaml`, including interaction/tool-policy alias evidence and service-preset rules. - Inventory covers all shipped fleet examples, profiles, and the service preset from `origin/main`. - Normative content matches issue #758 and the approved architecture: roster SSOT, generated projections, shared resolver, authority separation (`validator` certificate vs `merge-gate` merge authority), stopped-state lifecycle safety, command/key quarantine, local M1–M5 scope, migration/disposition gates, and M0 implementation block. Duplicate disposition recommendation: close/supersede #761 in favor of #760. #761 is CI-green but is the duplicate lane, has a different five-file/sitemap/scratchpad+tasks artifact shape and older-base branch; no reviewer-of-record approval is posted there. No merge performed by reviewer.
jason.woltje merged commit c32d85a337 into main 2026-07-14 19:53:13 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#760