diff --git a/docs/release-control/v6/internal/subsystems/agent-lifecycle.md b/docs/release-control/v6/internal/subsystems/agent-lifecycle.md
index e77aa5634..cd315eed3 100644
--- a/docs/release-control/v6/internal/subsystems/agent-lifecycle.md
+++ b/docs/release-control/v6/internal/subsystems/agent-lifecycle.md
@@ -224,6 +224,10 @@ show the counted monitored systems coming from agent-backed infrastructure, but
the shared API helper must expose the canonical unified-resource grouping
explanation instead of rebuilding count reasons from install or registration
state.
+Lifecycle-adjacent workspace copy must also keep the same commercial framing:
+infrastructure operations may point operators to Pulse Pro for billing, but it
+must describe that boundary in monitored-system, plan-limit, and license-status
+terms rather than reviving legacy agent-allocation language.
That same boundary now also assumes canonical resource payloads preserve
shared facet totals through `facetCounts`, so the resource list and detail
surfaces can keep row summaries aligned without re-inferring totals from
diff --git a/docs/release-control/v6/internal/subsystems/cloud-paid.md b/docs/release-control/v6/internal/subsystems/cloud-paid.md
index 15df27cb4..22de86891 100644
--- a/docs/release-control/v6/internal/subsystems/cloud-paid.md
+++ b/docs/release-control/v6/internal/subsystems/cloud-paid.md
@@ -328,7 +328,13 @@ instead of redefining retail plan facts or counted-unit policy locally.
That same counted-unit boundary also owns the disclosure rule for retail copy:
default billing and pricing surfaces should use concise monitored-system copy,
while the full counted-unit definition appears only behind explicit disclosure
-such as `What counts?` instead of sitting as always-visible explanatory chrome.
+such as `View counting rules` instead of sitting as always-visible explanatory
+chrome.
+Those same billing-facing surfaces must also describe the commercial contract in
+customer terms: monitored systems, plan limits, subscription status, and
+license status. They must not revive legacy `installed-agent` wording or vague
+internal nouns like `allocation` once the monitored-system billing model is the
+canonical product truth.
The self-hosted pricing page should therefore stay focused on plan cards,
upgrade paths, and the comparison table rather than rendering a separate
counted-unit explainer card beneath the tier grid.
diff --git a/docs/release-control/v6/internal/subsystems/frontend-primitives.md b/docs/release-control/v6/internal/subsystems/frontend-primitives.md
index 0aaade136..16d8aae34 100644
--- a/docs/release-control/v6/internal/subsystems/frontend-primitives.md
+++ b/docs/release-control/v6/internal/subsystems/frontend-primitives.md
@@ -668,6 +668,10 @@ shared banner or shared settings shell is explaining self-hosted plan caps,
the operator-facing commercial term must follow the monitored-system model even
if explicit legacy-v5 compatibility helpers still decode older alias fields at
import boundaries.
+That same settings-shell framing must stay in customer language. Shared headers
+and descriptions should talk about monitored-system limits, plan limits, and
+subscription or license status instead of reviving legacy `installed-agent`
+terms or vague internal nouns like `allocation`.
That banner boundary now also owns the canonical monitored-system naming
surface directly: the shared warning component path and exported symbol are
`MonitoredSystemLimitWarningBanner`, and future work may not reintroduce an
diff --git a/frontend-modern/src/components/Commercial/__tests__/MonitoredSystemDefinitionDisclosure.test.tsx b/frontend-modern/src/components/Commercial/__tests__/MonitoredSystemDefinitionDisclosure.test.tsx
index 2447515b1..381948826 100644
--- a/frontend-modern/src/components/Commercial/__tests__/MonitoredSystemDefinitionDisclosure.test.tsx
+++ b/frontend-modern/src/components/Commercial/__tests__/MonitoredSystemDefinitionDisclosure.test.tsx
@@ -10,7 +10,7 @@ describe('MonitoredSystemDefinitionDisclosure', () => {
));
expect(screen.getByText('Billing is based on monitored systems.')).toBeInTheDocument();
- expect(screen.getByRole('button', { name: 'What counts?' })).toHaveAttribute(
+ expect(screen.getByRole('button', { name: 'View counting rules' })).toHaveAttribute(
'aria-expanded',
'false',
);
@@ -18,9 +18,9 @@ describe('MonitoredSystemDefinitionDisclosure', () => {
screen.queryByText(/a monitored system is a top-level machine or cluster/i),
).not.toBeInTheDocument();
- fireEvent.click(screen.getByRole('button', { name: 'What counts?' }));
+ fireEvent.click(screen.getByRole('button', { name: 'View counting rules' }));
- expect(screen.getByRole('button', { name: 'Hide details' })).toHaveAttribute(
+ expect(screen.getByRole('button', { name: 'Hide counting rules' })).toHaveAttribute(
'aria-expanded',
'true',
);
diff --git a/frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx b/frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx
index ce5019b3d..87d02684e 100644
--- a/frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx
+++ b/frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx
@@ -33,8 +33,8 @@ export const InfrastructureWorkspace: Component =
connections, and control which infrastructure surfaces are actively reporting.
- Billing, installed-agent allocation, and Pulse Pro entitlement state live in Pulse
- Pro, not here.
+ Billing, monitored-system limits, and Pulse Pro license status live in Pulse Pro,
+ not here.