14 KiB
VMware vCenter Phase-1 Proof Matrix
Last updated: 2026-03-31 Status: ACTIVE Governance surfaces:
status.json.candidate_lanes.platform-admission-executiondocs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_API_RUNTIME_SPEC.mddocs/release-control/v6/internal/VMWARE_VSPHERE_PHASE1_EXECUTION_PLAN.mddocs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_ALERTS_AND_ASSISTANT_SPEC.mddocs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_ONBOARDING_SPEC.mddocs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_RESOURCE_PROJECTION_SPEC.md
Use this matrix as the live-proof runbook for the trust-critical boundary between:
- a planned VMware architecture
- an implemented VMware phase-1 floor that may be
first-lab-ready - an honest claim that VMware is actually supported in Pulse
This matrix does not replace repo-local tests.
It exists because VMware can look correct in isolated API, poller, or UI work
while still failing the real support floor on a live vCenter.
It also defines when the non-live harness may honestly say first-lab-ready
instead of collapsing all progress into the same not supported bucket.
Governing Policy
The locked VMware phase-1 rule is:
vmware-vsphereis one first-class platform idvCenteris the only supported entry point in phase 1- ingestion is
api-backed - ESXi hosts project as canonical
agent - VMs project as canonical
vm - datastores project as canonical
storage - alerts and assistant read may be supported
- recovery stays
n/a - assistant control stays
read-only
Scope
In scope:
- shared platform-connections onboarding to
vCenter - saved-connection test and health summary behavior
- inventory projection for hosts, VMs, and datastores
- alarm, event, task, snapshot, and metrics/history visibility where the declared floor depends on them
- assistant read on canonical VMware-backed resources
Out of scope:
- direct
ESXi - unified-agent-required bootstrap
physical-disk,system-container, orapp-containersupport- recovery-artifact or restore claims
- assistant or operator control for VMware actions
Environment Prerequisites
Before running this matrix, provide a real VMware environment with:
- one reachable
vCenter - one service account candidate for phase-1 read-first support
- at least one ESXi host
- at least one VM
- at least one datastore
- at least one recent event or task visible through vCenter history
- ideally one VM snapshot so snapshot-tree visibility can be proven
Record the non-secret capability metadata first in LOCAL_CAPABILITIES.md.
If that record does not exist, the matrix is not runnable.
Proof Record Contract
Until a successful live proof exists, keep the current blocked record at:
docs/release-control/v6/internal/records/vmware-vcenter-phase1-proof-blocked-2026-03-30.md
When the first real environment is exercised successfully, replace that blocked state with a dated proof record at:
docs/release-control/v6/internal/records/vmware-vcenter-phase1-proof-<YYYY-MM-DD>.md
Use
docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_PROOF_RECORD_TEMPLATE.md
to capture both the LOCAL_CAPABILITIES.md entry shape and the successful
proof record shape.
That dated record should summarize:
- the environment alias and
LOCAL_CAPABILITIES.mdentry used vCenterversion and build information- the exact privilege bundle used for the pass
- pass/fail notes for
VC-0throughVC-7 - captured evidence for projection, alerts/history, and Assistant read
- explicit confirmation that direct
ESXi, recovery support, and control stayed out of scope
Automated Proof Floor
Before calling VMware supported, Pulse should have automated proof for at least:
- backend API contract coverage for
/api/vmware/connections* - saved-secret preservation and saved-connection retest behavior
- projection of VMware-backed
agent,vm, andstorageresources without provider-local top-level types - alert and history mapping on the shared paths
- assistant read classification and capability exposure remaining read-only
If the automated floor is missing, the manual drill may inform implementation, but it must not be used as the sole basis for a support claim.
Current repo-local automated proof already covers part of the read-only boundary:
tests/integration/tests/38-vmware-ai-chat-mentions.spec.tsproves canonical VMware-backed Assistant mentions stay on shared resource IDs and shared Assistant routes.tests/integration/tests/42-vmware-ai-chat-read-recovery.spec.tsproves a failed VMwarepulse_read action=logs resource_id=...path can recover onto sharedpulse_querybehavior without VMware-local routes.internal/ai/chat/context_prefetch_additional_test.goproves VMware-backed guest mentions stay read-only in Assistant context summaries.internal/ai/chat/service_tooling_test.goandinternal/ai/tools/control_resource_test.goprove shared Assistant/tool wording stays capability-gated instead of claiming blanket VM control.internal/api/route_inventory_test.goandtests/integration/tests/41-vmware-phase1-exclusion-integrity.spec.tsprove the shipped route and browser surface stay out of directESXi, recovery, and VMware admin-plane territory.
First-Lab-Ready Checkpoint
Pulse may classify VMware first-lab-ready before live proof only when all of
these are true:
- the governed architecture is locked
- the bounded phase-1 floor is implemented on shared paths
- automated non-live proof covers shared onboarding, canonical projection, alerts/history, Assistant read, and exclusion integrity
- the remaining blockers to a support claim are live-only facts rather than missing shared product work
first-lab-ready means the next proper move is a real vCenter run.
It does not mean VMware is supported, marketed, or admitted into the support
matrix.
Current state as of 2026-03-31:
- VMware meets the governed
first-lab-readycheckpoint. - The next highest-value step is a real
vCenterproof pass throughVC-0throughVC-7. - Repeating
not supportedwithout also reportingfirst-lab-readyis no longer an accurate description of implementation progress.
Scenario Matrix
| ID | Scenario | Pass focus |
|---|---|---|
VC-0 |
Capability registration | Live vCenter environment is recorded in LOCAL_CAPABILITIES.md with safe metadata |
VC-1 |
Draft connection test | New vCenter draft validates through the shared setup path with clean failure classification |
VC-2 |
Saved connection retest | Stored credentials can be re-tested without forcing secret re-entry |
VC-3 |
Inventory projection floor | ESXi hosts, VMs, and datastores land as canonical agent, vm, and storage |
VC-4 |
Storage and snapshot visibility | Datastore state and snapshot-tree visibility appear without inflating recovery claims |
VC-5 |
Alerts and history floor | Shared alerts can surface VMware alarm and history context |
VC-6 |
Assistant read floor | Assistant can inspect canonical VMware-backed resources without VMware-specific tools |
VC-7 |
Exclusion integrity | No direct ESXi, recovery, or control claim leaks into the shipped behavior or wording |
Execution Steps
VC-0 Capability Registration
- Record the environment in
LOCAL_CAPABILITIES.mdwith safe access notes, verification command, and any non-secret environment label.
Pass when:
- the capability is recorded
- a future agent can discover that a live VMware proof environment exists without reading secrets
VC-1 Draft Connection Test
- Open the shared
Platform connectionsworkspace. - Create a new VMware draft with the phase-1 connection fields.
- Run the draft test path before saving.
- Intentionally exercise at least one bad-path case such as bad host, TLS mismatch, or insufficient privileges.
Pass when:
- the draft validates through the shared VMware setup path
- failures classify clearly instead of collapsing into generic unknown error,
including
tls,network,auth,permission, andunsupported_versionwhere applicable - the path does not require a unified agent or direct
ESXirouting - a green result reflects the declared phase-1 floor rather than one partial VMware API-family success
Automated non-live proof should continue to cover the shared browser path for
unsupported_version, auth, tls, and network classifications so the
first real lab run is not the first operator-visible exercise of those failure
shapes.
VC-2 Saved Connection Retest
- Save a working VMware connection.
- Re-test it through the saved-connection test path.
- Re-test it again with a partial edit payload that preserves unchanged secrets.
- Reload the connection list.
Pass when:
- the saved-connection test succeeds without re-entering masked secrets
- edited saved-connection tests can reuse stored secrets server-side
- the list reflects refreshed last-success or last-error state
- the saved-connection contract still hides any dual-client runtime detail behind one connection health result
Automated non-live proof should continue to cover the shared settings shell for saved-connection auth/runtime failure classification and degraded permission guidance so the first real lab run does not discover those operator-facing states for the first time.
VC-3 Inventory Projection Floor
- Let the VMware poller collect from the saved connection.
- Inspect the infrastructure/workload/storage surfaces or canonical APIs.
- Compare the observed resources against the governed projection spec.
- Confirm hosts, VMs, and datastores are visible.
Pass when:
- ESXi hosts land as canonical
agent - guest workloads land as canonical
vm - datastores land as canonical
storage - no provider-local top-level
esxi-host,vsphere-vm, or equivalent type appears - topology metadata stays metadata and does not appear as synthetic top-level VMware resource types
VC-4 Storage And Snapshot Visibility
- Inspect datastore state through the shared storage surface.
- Inspect VM detail for snapshot-tree visibility.
- Confirm any recovery-adjacent wording stays descriptive, not product-claim inflation.
Pass when:
- datastore capacity, free space, and accessibility are visible on the shared path
- snapshot-tree visibility exists when the upstream environment exposes it
- Pulse does not present VMware as recovery-supported just because snapshots are readable
VC-5 Alerts And History Floor
- Inspect shared alerts or incident views after VMware collection.
- Confirm VMware-backed alarm or health context can be reached.
- Confirm related event/task context is available where the shared product expects it.
- Confirm topology-scoped alarm context does not appear as a VMware-only incident resource.
Pass when:
- alerts route through shared alert and incident surfaces
- VMware-backed context is readable there without a provider-local shell
- the product does not imply VMware-specific alarm management
- event and task context lands on shared incident or resource-timeline paths, not a VMware-only history surface
VC-6 Assistant Read Floor
- Use the shared Assistant read paths against canonical VMware-backed resources.
- Inspect a host, a VM, and a datastore.
- Confirm shared tool exposure stays read-only.
Pass when:
- Assistant reads work on canonical
agent,vm, andstorage - there are no VMware-specific tools or verbs required
- no control capability or VMware-specific action metadata is exposed as part of the VMware phase-1 floor
Current automated coverage:
tests/integration/tests/38-vmware-ai-chat-mentions.spec.tstests/integration/tests/42-vmware-ai-chat-read-recovery.spec.tsinternal/ai/chat/context_prefetch_additional_test.gointernal/ai/chat/service_tooling_test.gointernal/ai/tools/control_resource_test.go
VC-7 Exclusion Integrity
- Review shipped wording, route inventory, tool inventory, and visible product behavior.
- Confirm no broader support claim leaked in while implementing the floor.
Pass when:
- direct
ESXiis still out of scope - recovery support is still
n/a - assistant control is still
read-only - no VMware admin-plane action surface shipped by implication
Current automated coverage:
internal/api/route_inventory_test.gotests/integration/tests/41-vmware-phase1-exclusion-integrity.spec.tsinternal/ai/tools/tools_query_test.gointernal/ai/tools/control_resource_test.go
Evidence To Capture
Capture all of the following outside git or in the dated release-control record:
- the
LOCAL_CAPABILITIES.mdcapability entry vCenterversion/build information- the exact privilege bundle used for the successful proof run
- connection-list screenshots or payloads showing poll health and observed contribution summary
- canonical resource screenshots or payloads showing
agent,vm, andstorageprojection - alert or incident screenshots/payloads showing VMware-backed context
- assistant read transcript or screenshots showing canonical VMware-backed resource inspection
- explicit note that recovery and control stayed out of scope
The expected success-record path is:
docs/release-control/v6/internal/records/vmware-vcenter-phase1-proof-<YYYY-MM-DD>.md
Use the companion template:
docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_PROOF_RECORD_TEMPLATE.md
Failure Rules
Do not call VMware supported if any of these are true:
- no live
vCentercapability is recorded - the privilege bundle is guessed rather than proven
- the supported version floor is guessed rather than proven
- VMware inventory lands on provider-local top-level resource types
- the product wording or runtime behavior implies direct
ESXisupport - the product wording or runtime behavior implies recovery support
- the product wording or runtime behavior exposes VMware control as part of phase 1
Current Blocker
As of 2026-03-30, VC-0 is not yet satisfied in this workspace.
There is still no recorded VMware capability in
/Volumes/Development/pulse/LOCAL_CAPABILITIES.md.
That means the planning and implementation path can continue, but the support claim remains blocked until a real proof environment is available.
Current blocked record:
docs/release-control/v6/internal/records/vmware-vcenter-phase1-proof-blocked-2026-03-30.md