## 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.
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.
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:
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.
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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Publishes the #758 M0 gate before any fleet implementation:
docs/PRD.md.docs/TASKS.md.Scope
Docs only. No source, schema, roles, examples, profiles, systemd, or live-fleet changes.
Validation
git diff --checkRefs #758.
ROR-760-REQUEST-CHANGES-2b2d49c9
REQUEST CHANGES — reviewer-of-record [W-jarvis:reviewer] at exact head
2b2d49c9554aa36a256d8a23df62c7a8f6ce4acc.Scope and checks performed:
git ls-remote origin refs/pull/760/head=2b2d49c9554aa36a256d8a23df62c7a8f6ce4acc.origin/mainis 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.AC-FCM-*criteria are mapped indocs/TASKS.md/ checklist.Blocking finding:
docs/fleet/LEGACY-EXAMPLE-PROFILE-DISPOSITION-INVENTORY.mdinventories examples and profiles only (lines 12–32) and omits the shipped fleet service presetpackages/mosaic/framework/fleet/services/operator-interaction.yaml.origin/maincontains that service preset and it carries the legacy interaction policy (tool_policy: operator-interaction). Because this PR is the M0 migration/disposition gate for canonicalinteraction/Tess authority and legacyoperator-interactionaliasing, leaving the shipped service preset outside the inventory means M1 can satisfy the documented inventory while missing a real shipped fleet artifact.Required remediation:
packages/mosaic/framework/fleet/services/operator-interaction.yamlto the disposition inventory, with required evidence for canonicalinteractionmigration/shared resolver/tool-policy alias coverage; or explicitly exclude service presets with a rationale and update the PRD/checklist acceptance language accordingly.docs/PRD.mdlines 104 and 115;docs/fleet/FLEET-CONFIG-DOCS-IA-CHECKLIST.mdlines 28–29) so the gate covers shipped examples, profiles, and service presets / shipped fleet declarative artifacts consistently.CI note: Woodpecker PR pipeline
1802was still running at review time, so there is no terminal-green CI approval evidence yet.No merge performed.
2b2d49c955tocfe3878c99ROR-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:
git ls-remote origin refs/pull/760/head=cfe3878c99216a87d2d5eaeb41b5e09cb59c9ab7.origin/mainis 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.1806is terminal green for headcfe3878c9921: install, sanitization, typecheck, lint, format, test all OK.git diff --check origin/main...refs/review/pr-760-current: pass.AC-FCM-*criteria map throughdocs/TASKS.md/ docs-IA checklist.framework/fleet/services/operator-interaction.yaml, including interaction/tool-policy alias evidence and service-preset rules.origin/main.validatorcertificate vsmerge-gatemerge 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.