Pages
Control Center — Consolidation Ideas

Source: qdash /controls + /policy + /compliance — c64 consolidation concepts, 2026-08-10

Three qdash pages render this territory with four framework vocabularies, three localStorage stores, and three match-count algorithms that show different numbers for the same control (findings F1–F10 in cycles/c64…/current-state.md). Four initial concepts — not solutions; the in-depth design pass follows. Idea 1 is the zero-IA-change fruit every other idea assumes. Ideas 2 and 4 are the two structural answers for the deep pass to adjudicate. All four ride one dataset: the normalized vocabulary (c17 five-family grouping over rules.rs pack ids).

Idea 1

One vocabulary

resolves F1 · F2 · F3

The normalized control table: one display name per control (hyphenation split resolved by fiat), one family grouping (c17), pack chips straight from the backend's rules.rs::PACKS via /api/control-vocab — the seam GovernSheet already uses. The two match counts are shown as distinct labeled numbers ("findings" vs "would-catch") instead of silently different per page.

14controls
8 live · 4 projected · 3 roadmap
5families
c17 governance model
10packs
rules.rs — the one vocabulary
1store
was 3 localStorage keys
Agent Autonomy
Sandbox Required
sandbox
live3 findings
owasp-llmowasp-asinist-airmfsoc2iso-27001nist-csfeu-ai-act
No Approvals Bypass
yolo
live1 findings
owasp-llmowasp-asinist-airmfsoc2
Require Tool Approval
approval
projected0 findings12 would-catch
owasp-llmowasp-asinist-airmfeu-ai-act
Tool Allow-List
— no backend control yet
projected0 findings7 would-catch
owasp-llmowasp-asi
Privilege & Identity
No Root Execution
root
live1 findings
owasp-llmowasp-asisoc2iso-27001nist-csf
Telemetry Required
shadow
live5 findings
nist-airmfsoc2nist-csf
Org-Backed Identity
— no backend control yet
live2 findings
soc2iso-27001mitre-atlas
Data Protection
Deny Credential Reads
sens
live2 findings
owasp-llmmitre-atlassoc2iso-42001iso-27001nist-csfeu-ai-act
Egress Allow-List
egress
live0 findings18 would-catch
owasp-llmmitre-atlassoc2iso-27001nist-csf
TLS Floor
weakTls
projected0 findings4 would-catch
nist-800-52nist-csf
Cost & Consumption
Spend Ceiling
— no backend control yet
projected1 findings
owasp-llmnist-airmfiso-42001
Input/Output Integrity
Prompt Inspection
— no backend control yet
roadmap0 findings
owasp-llmeu-ai-act
Output Validation
— no backend control yet
roadmap0 findings
owasp-llmeu-ai-act
Provenance Pinning
— no backend control yet
roadmap0 findings
owasp-llmiso-42001eu-ai-act
one row per control, everywhere it appears · "findings" counts by control_id; "would-catch" is the dry-run predicate count (unallowlisted connections, weak TLS) — the F1 decision made visible instead of hidden in divergent totals · pack chips = the control's packs[] from the backend; replaces four frontend lists and three localStorage stores with one vocabulary
Idea 2

One surface, three lenses

resolves F1 · F6 · F8 — recommended

The IA doc's answer, built: Control Center is the one surface; Controls authors, Enforcement is a read-only enforce lens over the same rows, Coverage is the framework view. The /policy page stops existing as a place — its cascade becomes the Enforcement lens, its coverage matrix becomes the Coverage lens. One GovernSheet vocabulary ("Edit") everywhere.

ControlSeverityModeMatches+ New control
Sandbox Required
sandbox · Agent Autonomy
high
alert3 findings → FindingsEdit →
No Approvals Bypass
yolo · Agent Autonomy
crit!
observe1 findings → FindingsEdit →
Require Tool Approval
approval · Agent Autonomy
medium
observe0 findings → FindingsEdit →
No Root Execution
root · Privilege & Identity
crit!
enforce1 findings → FindingsEdit →
Telemetry Required
shadow · Privilege & Identity
high
observe5 findings → FindingsEdit →
Deny Credential Reads
sens · Data Protection
crit!
alert2 findings → FindingsEdit →
Egress Allow-List
egress · Data Protection
high
observe0 findings → FindingsEdit →
TLS Floor
weakTls · Data Protection
medium
observe0 findings → FindingsEdit →
the authoring lens — same table /controls has today, one verb ("Edit", not "Promote"/"Manage"), matches deep-link to Findings · packs panel and evidence packet keep living here
Idea 3

Pack toggle = the bridge

resolves F2 · F4 · F5

Compliance reframed as the IA doc's §7.5: the coverage view of enabled packs — one rendering instead of three. Toggle a pack and the coverage recomputes live (try it), split into three honest buckets by control reach. One evidence CTA, pointed at the server packet. Enabling a pack here and in Control Center is the same store.

OWASP LLM Top 1038% provable
5 provable now — live controls, evidence on stream6 attestation — projected/roadmap controls2 out of scope — no mapped control
SOC 288% provable
7 provable now — live controls, evidence on stream0 attestation — projected/roadmap controls1 out of scope — no mapped control
Evidence is a capability, not a conformity claim — the packet carries the decision trail.Export evidence packet
one framework rendering (was three: listing + instrumented cards + projected grid) · "projected" stops being a separate grid and becomes the amber bucket · the export is the server /api/security-packet, not a client-side findings dump
Idea 4

Act/Prove split

resolves F1 · F8 — the alternative to Idea 2

The other structural answer: two pages, not three. ACT = Control Center with enforcement folded in as a Mode column (no separate lens); PROVE = Compliance as Idea 3. The cascade's Global row becomes a single page-level mode control. Cheaper to hold in the head, but authoring and blast-radius share one table — the deep pass adjudicates this against Idea 2's separation.

Nav
Act
Control Center
Prove
Compliance
Findings
Policy & Enforcement
ControlsPage mode: Audit (global — was the cascade's top row)
ControlModeFindingsWould block
Sandbox RequiredAgent Autonomyalert33
No Approvals BypassAgent Autonomyobserve11
Require Tool ApprovalAgent Autonomyobserve012
No Root ExecutionPrivilege & Identityenforce11
Telemetry RequiredPrivilege & Identityobserve50
+ 3 more controls
mode is a column, not a lens — enforcement state visible at all times, at the cost of a busier authoring table · everything else (packs, evidence, GovernSheet) as in Ideas 1–3

Qpoint Brand Style Guide