From d1e44101b6597c85a89c9328c2ff806b5ae8e807 Mon Sep 17 00:00:00 2001 From: Richard Courtman Date: Thu, 6 Aug 2026 17:07:33 +0100 Subject: [PATCH] docs(governance): promote monitor-first Patrol lane --- .../OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md | 23 +- ...hardening-rollout-completion-2026-07-19.md | 9 +- ...tention-queue-strong-version-2026-06-25.md | 5 +- ...ce-proactive-operations-lane-2026-05-08.md | 9 +- docs/release-control/v6/internal/status.json | 228 ++++-------------- 5 files changed, 77 insertions(+), 197 deletions(-) diff --git a/docs/release-control/v6/internal/OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md b/docs/release-control/v6/internal/OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md index 71503f1f6a..a8584c9df2 100644 --- a/docs/release-control/v6/internal/OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md +++ b/docs/release-control/v6/internal/OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md @@ -1,9 +1,9 @@ # Pulse v6 Operational Trust Implementation Spec Last updated: 2026-07-19 -Status: ACTIVE +Status: COMPLETE Primary governance surface: -- `status.json.candidate_lanes.protection-posture-attention-queue` +- `status.json.lanes.L23` (`Monitor-first Patrol operations`) Resolved related governed surface: - `internal/records/operational-trust-availability-resource-facet-2026-07-19.md` @@ -870,8 +870,9 @@ true: 12. no temporary compatibility path remains in the primary runtime 13. all implementation slices are committed with scoped proof and no unrelated workspace changes -14. the governing candidate lanes and coverage gaps are resolved or normalized - to an explicit remaining decision owned outside this specification +14. the governing candidate lanes and coverage gaps are resolved into the + first-class owning lane or normalized to an explicit remaining decision + owned outside this specification Passing one phase does not satisfy the overall goal. The goal closes only after the full completion criteria pass. @@ -887,19 +888,21 @@ Primary lane and subsystem ownership: 5. L22: product trust, Assistant boundaries, policy-shaped context 6. L23: proactive operations and Patrol workbench -Primary candidate: +Resolved lane expansion: -- `protection-posture-attention-queue` +- `protection-posture-attention-queue`, absorbed into L23 after every + completion criterion passed Resolved sequential related candidate: - `availability-as-resource-facet`, closed by `internal/records/operational-trust-availability-resource-facet-2026-07-19.md` -The primary candidate's subsystem mapping must include the canonical owners -that this implementation touches, including alerts, notifications, storage and -recovery, Patrol intelligence, monitoring, unified resources, API contracts, -frontend primitives, action governance, and policy-shaped Assistant context. +L23 evidence and the referenced subsystem contracts retain the canonical +owners this implementation touches, including alerts, notifications, storage +and recovery, Patrol intelligence, monitoring, unified resources, API +contracts, frontend primitives, action governance, and policy-shaped Assistant +context. ## Direction Captured diff --git a/docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md b/docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md index f807c870cd..3ef9bd5ed6 100644 --- a/docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md +++ b/docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md @@ -360,10 +360,11 @@ available without turning the monitor into an object browser. ## Governance Decision -Accept candidate lane `protection-posture-attention-queue`. Its planned -coverage gap remains the typed historical reason for the lane expansion and is -normalized by the accepted candidate plus this completion record. There is no -remaining Operational Trust decision to move outside this specification. +Candidate lane `protection-posture-attention-queue` is accepted and absorbed +into L23, now named `Monitor-first Patrol operations`. The completed candidate +and its planning-only coverage gap are removed from live queue state; this +record remains the historical acceptance evidence. There is no remaining +Operational Trust decision to move outside this specification. This record satisfies the specification's release gate: diff --git a/docs/release-control/v6/internal/records/protection-posture-attention-queue-strong-version-2026-06-25.md b/docs/release-control/v6/internal/records/protection-posture-attention-queue-strong-version-2026-06-25.md index 25847540a9..b32cda3069 100644 --- a/docs/release-control/v6/internal/records/protection-posture-attention-queue-strong-version-2026-06-25.md +++ b/docs/release-control/v6/internal/records/protection-posture-attention-queue-strong-version-2026-06-25.md @@ -165,5 +165,6 @@ loop, and routes the operator from real findings/evidence to safe action. - Proxmox now has a monitor-context coverage posture. Additional monitor surfaces should reuse the same Patrol gating and monitor-label boundary before showing coverage or protection summaries. -- The status coverage gap `protection-posture-attention-queue` tracks the - remaining product-surface work. +- The completed `protection-posture-attention-queue` expansion is now owned by + L23 `Monitor-first Patrol operations`; its planning-only coverage gap and + candidate queue entry have been retired from live status. diff --git a/docs/release-control/v6/internal/records/pulse-intelligence-proactive-operations-lane-2026-05-08.md b/docs/release-control/v6/internal/records/pulse-intelligence-proactive-operations-lane-2026-05-08.md index 82fabd3d74..6cda9c375f 100644 --- a/docs/release-control/v6/internal/records/pulse-intelligence-proactive-operations-lane-2026-05-08.md +++ b/docs/release-control/v6/internal/records/pulse-intelligence-proactive-operations-lane-2026-05-08.md @@ -1,7 +1,7 @@ # Pulse Intelligence Proactive Operations Lane Date: 2026-05-08 -Owner: L23 Pulse Intelligence proactive operations +Owner: L23 Monitor-first Patrol operations Evidence tier: local-rehearsal ## Decision @@ -34,4 +34,9 @@ The current floor is carried across the existing subsystem contracts and proof s ## Result -`status.json` now models Pulse Intelligence proactive operations as L23 instead of leaving it in the candidate-lane queue. Future agents should pick concrete L23 slices directly when they are strengthening the Patrol-to-Assistant investigation, explanation, approval, or governed-action contract. +`status.json` now models monitor-first Patrol operations as L23 instead of +leaving either the proactive-operations floor or the completed Operational +Trust workbench expansion in candidate queues. Future agents should pick +concrete L23 slices directly when strengthening the attention lifecycle, +Patrol-to-Assistant explanation boundary, approval, governed action, or +verification contract. diff --git a/docs/release-control/v6/internal/status.json b/docs/release-control/v6/internal/status.json index 7cf306dd72..ad0ae40912 100644 --- a/docs/release-control/v6/internal/status.json +++ b/docs/release-control/v6/internal/status.json @@ -7419,13 +7419,13 @@ }, { "id": "L23", - "name": "Pulse Intelligence proactive operations", + "name": "Monitor-first Patrol operations", "target_score": 8, "current_score": 8, "status": "target-met", "completion": { "state": "complete", - "summary": "Pulse Intelligence proactive operations now has a first-class governed floor: Patrol owns structured detection, investigation, readiness, and run-history records; Assistant handoffs rehydrate safe backend-owned context from those records; and approval, action-audit, resource-policy, and timeline contracts keep explanation, collaboration, approval, and governed action out of generic chat.", + "summary": "Monitor-first Patrol operations now has a first-class governed floor: authenticated launch stays on infrastructure monitoring; Patrol owns one contradiction-resistant attention and explain-act-verify workbench over canonical lifecycle, evidence, protection, availability, approval, action, and verification truth; calm states stay honest; and Assistant remains contextual explanation for the selected thing rather than the operations front door.", "tracking": [] }, "blockers": [], @@ -7436,6 +7436,27 @@ "path": "docs/AI.md", "kind": "file" }, + { + "repo": "pulse", + "path": "docs/release-control/v6/internal/OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md", + "kind": "file" + }, + { + "repo": "pulse", + "path": "docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md", + "kind": "file", + "evidence_tier": "managed-runtime-exercise" + }, + { + "repo": "pulse", + "path": "docs/release-control/v6/internal/records/operational-trust-patrol-attention-workbench-2026-07-19.md", + "kind": "file" + }, + { + "repo": "pulse", + "path": "docs/release-control/v6/internal/records/protection-posture-attention-queue-strong-version-2026-06-25.md", + "kind": "file" + }, { "repo": "pulse", "path": "docs/release-control/v6/internal/records/pulse-intelligence-proactive-operations-lane-2026-05-08.md", @@ -7486,16 +7507,31 @@ "path": "frontend-modern/src/components/AI/FindingsPanel.tsx", "kind": "file" }, + { + "repo": "pulse", + "path": "frontend-modern/src/features/patrol/__tests__/PatrolAttentionWorkbench.test.tsx", + "kind": "file" + }, { "repo": "pulse", "path": "frontend-modern/src/features/patrol/__tests__/patrolInvestigationContextModel.test.ts", "kind": "file" }, + { + "repo": "pulse", + "path": "frontend-modern/src/features/patrol/PatrolAttentionWorkbench.tsx", + "kind": "file" + }, { "repo": "pulse", "path": "frontend-modern/src/features/patrol/patrolInvestigationContextModel.ts", "kind": "file" }, + { + "repo": "pulse", + "path": "internal/ai/attention.go", + "kind": "file" + }, { "repo": "pulse", "path": "internal/ai/patrol_assistant_handoff.go", @@ -7516,10 +7552,21 @@ "path": "internal/api/ai_handler_test.go", "kind": "file" }, + { + "repo": "pulse", + "path": "internal/api/attention_handlers.go", + "kind": "file" + }, { "repo": "pulse", "path": "internal/api/contract_test.go", "kind": "file" + }, + { + "repo": "pulse", + "path": "tests/integration/tests/91-operational-trust-attention-workbench.spec.ts", + "kind": "file", + "evidence_tier": "managed-runtime-exercise" } ] } @@ -9084,150 +9131,6 @@ "kind": "file" } ] - }, - { - "id": "protection-posture-attention-queue", - "summary": "Pulse now has a durable strong-version product direction and a production Proxmox VM/LXC detector-to-independent-verification Patrol slice, but the current lane map does not yet model the simple user-facing shape as one governed surface: authenticated launch stays monitor-first on platform and dashboard surfaces, Patrol remains the named checking-loop destination for findings, approvals, and explain-act-verify work, Assistant explains selected context, and coverage signals appear only when attached to relevant monitor or Patrol context instead of becoming a generic Home front door or calm-day proof strip. Without an explicit lane-expansion record, work can drift into Home-first surfaces, Patrol renames, generic Assistant polish, or read-only object-browser copies instead of proving simple monitor-first operations.", - "owner": "project-owner", - "status": "planned", - "recorded_at": "2026-06-25", - "lane_ids": [ - "L6", - "L8", - "L13", - "L14", - "L15", - "L20", - "L22", - "L23" - ], - "subsystem_ids": [ - "ai-runtime", - "alerts", - "api-contracts", - "frontend-primitives", - "monitoring", - "notifications", - "patrol-intelligence", - "security-privacy", - "storage-recovery", - "unified-resources" - ], - "proposed_resolution": "lane-expansion", - "coverage_impact": 12, - "evidence": [ - { - "repo": "pulse", - "path": "docs/AI.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/OPERATIONAL_TRUST_IMPLEMENTATION_SPEC.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/operational-trust-alert-state-boundary-2026-07-18.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/operational-trust-governed-docker-restart-2026-07-19.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/operational-trust-hardening-rollout-completion-2026-07-19.md", - "kind": "file", - "evidence_tier": "managed-runtime-exercise" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/operational-trust-lifecycle-evidence-notification-linkage-2026-07-19.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/operational-trust-patrol-attention-workbench-2026-07-19.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/operational-trust-protection-posture-2026-07-19.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/protection-posture-attention-queue-strong-version-2026-06-25.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/protection-posture-proxmox-guest-lifecycle-2026-07-13.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/records/pulse-intelligence-proactive-operations-lane-2026-05-08.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "docs/release-control/v6/internal/SOURCE_OF_TRUTH.md", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/ai/findings_proxmox_lifecycle.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/ai/findings_proxmox_lifecycle_test.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/api/proxmox_guest_action_observer.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/api/proxmox_guest_action_result.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/api/proxmox_patrol_integration_test.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/monitoring/proxmox_action_observer.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/recovery/posture.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "internal/recovery/store/store_posture.go", - "kind": "file" - }, - { - "repo": "pulse", - "path": "tests/integration/tests/90-operational-trust-protection-posture.spec.ts", - "kind": "file" - }, - { - "repo": "pulse", - "path": "tests/integration/tests/91-operational-trust-attention-workbench.spec.ts", - "kind": "file" - } - ] } ], "candidate_lanes": [ @@ -9252,39 +9155,6 @@ "cloud-paid", "frontend-primitives" ] - }, - { - "id": "protection-posture-attention-queue", - "name": "Monitor-First Patrol Workbench", - "summary": "Accepted governed lane expansion for monitor-first launch, Patrol as the visible checking-loop surface, contextual Assistant demotion, canonical protection and availability evidence, safe action and verification flows, plain calm-day queues, and browser-proven active-work and calm-day states.", - "status": "accepted", - "recorded_at": "2026-06-25", - "target_id": "v6-product-lane-expansion", - "current_lane_ids": [ - "L6", - "L8", - "L13", - "L14", - "L15", - "L20", - "L22", - "L23" - ], - "coverage_gap_ids": [ - "protection-posture-attention-queue" - ], - "subsystem_ids": [ - "ai-runtime", - "alerts", - "api-contracts", - "frontend-primitives", - "monitoring", - "notifications", - "patrol-intelligence", - "security-privacy", - "storage-recovery", - "unified-resources" - ] } ], "work_claims": [],