MOCK← Phase 4|finding
policy

Parts bin

Every Governance part, rendered live on the same world as the mocks (the MOCK bar's knobs drive them all), with where it came from and the delivery phase it ships in. To compose, drop a part into a mock's LandingMockSlot; to offer a choice, give the slot variants.

Mode + Until<GovernanceMockModeUntil>shared control · delivery phase 2 · from c121 #6 — the Logseq sketch (2026-10-21): one mode control with an optional Until; Snooze goes

Off · Observe · Enforce (UxTabGroup) and an optional Until (a native date). v-model { mode, until? }; `replaces` is the mode it replaces (the policy's live mode, or the mode an exception overrides): it decides the loosening hint and, with a date, the quiet "then Enforce" (D6). Empty Until is fine (D7): "optional: it holds until revoked", or, when it loosens, a rose "No end date: this stays open until someone revokes it" that never blocks. `enforceable: false` hides Enforce. The #reason slot ({ direction, loosens }) is where the editor puts its reason field; required when loosening (D1) is the editor's rule, not this control's.

Used by S3 Mode (02), the exception editor (02).

Tightening (Observe → Enforce), no date
Mode
Until
optional: it holds until revoked
v-model {"mode":"enforce"} · replaces observe
Loosening (Enforce → Observe), no date: the D7 hint
Mode
Until
No end date: this stays open until someone revokes it
v-model {"mode":"observe"} · replaces enforce
With Until: "then Enforce" (D6)
Mode
Until
then Enforce
v-model {"mode":"observe","until":"2026-11-15T00:00:00Z"} · replaces enforce
Not enforceable: Observe is the ceiling
Mode
Observe only: Qpoint can't enforce this policy
Until
optional: it holds until revoked
v-model {"mode":"observe"} · replaces off
Compact (a table row, the tray)
until
then Observe
v-model {"mode":"off","until":"2026-10-31T00:00:00Z"} · replaces observe
With #reason: required when it loosens (D1)
Mode
Until
No end date: this stays open until someone revokes it
Reason
A reason is required when an edit loosens (D1).
v-model {"mode":"off"} · replaces enforce
Switch the mode to Enforce: the reason turns optional.
Change impact<GovernanceMockBlastRadius>shared control · delivery phase 2 · from c121 #5 — Logseq 10-21, Rob's summary, intents PR #4: one visual for what a change does

Renders an Impact (governance-impact.ts; the fixture's previewChange / previewDraft build it). `full`: a sentence of facts ("Loosens P-MCP for 3 people in Finance."; no size judgement, D19) over rows: People (transitions as chips, blue when tightened, red when loosened, D8; an avatar per person, ringed sky (stricter), rose (looser) or ink (both), with the path on hover), Teams (per team, the share of members getting looser (rose) and stricter (sky) restrictions), Out of visibility (D9: set to Off, so no findings or notifications; only when any), Tightened / Loosened (policy · scope chips), Findings (resolve · reopen · resolve, now enforced (D16: they stay Observed), ids linking to S1). `inline`: a direction dot and one line.

Used by the exception editor and S3 Mode (02), the draft review on Changes and the tray (03).

Minimal: one person tightened

This change willtightenP-PROVIDERSfor 1 person in Engineering.

DirectionPeople
Engineering
11% stricter
1
J
Jordan

Tightened 1 policy

Findings
No findings change · 1 open in scope
Typical: an exception loosens for a team

This change willloosenP-MCPfor 3 people in Finance.

DirectionPeople
Finance
75% looser
3
D
Dev
C
Casey
M
Morgan

Loosened 1 policy

Findings
No findings change · 4 open in scope
Many people: an org-wide loosen

This change willloosenP-TOOL-APPROVALfor 64 people across 7 teams.

DirectionPeople
Engineering
92% looser
22
AE
Ana E
BE
Ben E
CE
Cy E
DE
Dee E
+18 more
Finance
100% looser
9
AF
Ana F
BF
Ben F
CF
Cy F
DF
Dee F
+5 more
GRC
86% looser
6
AG
Ana G
BG
Ben G
CG
Cy G
DG
Dee G
+2 more
Sales
80% looser
12
AS
Ana S
BS
Ben S
CS
Cy S
DS
Dee S
+8 more
Support
73% looser
8
AS
Ana S
BS
Ben S
CS
Cy S
DS
Dee S
+4 more

Loosened 1 policy

Findings
No findings change · 31 open in scope
Mixed: a draft that tightens and loosens

These changes willtightenP-SANDBOXand loosenP-PROVIDERSfor 6 people across 3 teams.

DirectionPeople
Engineering
11% looser · 22% stricter
12
P
Priya
A
Alex
J
Jordan
Finance
25% stricter
1
D
Dev
GRC
40% stricter
2
M
Mark
R
Riley

Tightened 1 policy

·

Loosened 1 policy

Out of visibility
Jordan · Off: no findings or notifications from them
Findings
2 resolve · 1 reopens · 3 resolve, now enforced · 14 open in scope
resolve: F-0412, F-0419reopen: F-Bnow enforced: F-0388, F-0391, F-0402
Empty

No one's mode changes.

No one moves, findings do

No one's mode changes.

Findings
2 reopen · 2 open in scope
reopen: F-A, F-B
Inline (list row, tray), each scenario
minimal1 person · 1 team
typical3 people · 1 team
large64 people · 7 teams
mixed6 people · 3 teams · 1 out of visibility · 2 findings resolve · 1 finding reopens · 3 findings resolve, now enforced
emptyNo one's mode changes
findingsOnlyNo one's mode changes · 2 findings reopen
Team · Policies<GovernancePartTeamPolicies>T1 · delivery phase 4 · from c118 L5 — the Oct 19 model: a view under the team replaces policy groups (A5)

What applies to one team now, derived: per policy, its mode for the team (the policy's, or the team's exception; the policy's Until shown, "until Nov 15, then Enforce", D6), what sets it (team exception: mode over the policy's, reason, until; advanced allows), the members it differs for (a person's own exception, A4, or a second team's, the stricter winning, D9), and the team's open findings. A posture bar on top and a note on the shared draft's pending changes that move the team. Policies off for the team fold behind a toggle. Read-only; rows link to S3's Exceptions, counts to S2 (outcome=all).

Policies

14 on · 2 enforcing · 2 team exceptions

What applies to Engineering now: each policy's mode for the team, the exception that sets it, and the members a narrower exception or a second team changes it for. Nothing here is stored as a group. It follows from the policies and their exceptions, so change it on the policy.

2Enforce
12Observe
5Off
1 looser · 1 stricter than the organization (2 · 12 · 5, the ticks)
2 team exceptions · 2 members differ on 4 policies · 4 open findings
Proposed: 5 changes in the draft affect Engineering (not live)Agent traffic must use approved encrypted transportException · Team: Engineering · ObserveAgents run in a sandboxException · Team: Finance · EnforceTools must be on the allow listException · Team: Engineering · EnforceSensitive information sanitized before transmissionException · User: Noor · Off until Nov 20Unsanctioned MCP server in useException E-ENG-MCP revoked: Observe for Team: Engineering with the draft
3 · 12 · 4
Proposed changes →
Policy
For Engineering
Set by
Members who differ
Open
Approved model providers only
Providers & models
Enforcestricter
Team exception · Enforce over observe
Engineering ships to production; approved providers only.
Jordan → Observe · own exception
0
Unsanctioned MCP server in use
MCP servers & tools
Observelooser
Team exception · Observe over enforce
Engineering is evaluating MCP servers; observe only while the sanctioned list settles.
Alex → Enforce · Team: Finance, the stricter
0
Sensitive information sanitized before transmission
Data handling
Enforcethe policy's mode—1 open
Agent sessions are recorded
Sessions & transcripts
Observethe policy's mode—0
Agents may not run as root
Agents & harnesses
Observe
until Nov 15, then Enforce
the policy's mode—0
Agents run in a sandbox
Agents & harnesses
Observethe policy's mode—0
Consequential tool calls require approval
Agents & harnesses
Observethe policy's mode—1 open
Credentials must not be sent to a model
Data handling
Observethe policy's mode—1 open
Enterprise accounts required
Identity
Observethe policy's mode—0
Model output is validated before tool execution
Agents & harnesses
Observethe policy's mode—0
Personal account is in use
Identity
Observethe policy's mode—0
Prompts are inspected for injection and leakage
Data handling
Observethe policy's mode—1 open
Sensitive information detected before transmission to an LLM
Data handling
Observethe policy's mode—0
Tools must be on the allow list
MCP servers & tools
Observethe policy's mode—0
Prohibited data classes must not leave an approved boundary
Data handling
Offthe policy's mode
Alex → Enforce · Team: Finance
0
Restricted file access
Files & directories
Offthe policy's mode
Alex → Enforce · Team: Finance
0
Mode<GovernancePartPolicyMode>S3 · delivery phase 2 · from c118 L2 — the Oct 19 model: one mode per policy (A2); c121 #6: an optional Until replaces the snooze

The policy's mode as GovernanceMockModeUntil (Off · Observe · Enforce and an optional Until; Observe is the ceiling where Qpoint can't enforce) over what live is now ("Observe until Nov 15, then Enforce", D6; or the rollout, D3) and what the mode does. Editing it shows the reason (required when it loosens, D1), the change's impact (GovernanceMockBlastRadius) and Stage: a mode-set through stage(), held in the tray until Save to draft (D4). Links to Exceptions when they vary it.

Mode
Until
optional: it holds until revoked
Enforce · confirmed on 97 of 100 endpointsDecides for 2 people; exceptions set the other 12.

Enforce: Qpoint will block the MCP connection.

  • Each blocked attempt is recorded as an Enforced finding.
  • Findings from before stay Observed.
  • They resolve once the block is confirmed on that person's endpoint.
Configuration<GovernancePartPolicyConfiguration>S3 · delivery phase 2 · from phase4/policy-detail · Configuration (G7), the qdash policy listing expand-row editors

What the policy matches, set for the organisation: the layer's PolicyConfig list / detector / level / threshold editor on World.configs, with "Seen, not on the list" from the policy's findings. An edit stages through stage() (c121: held in the tray until Save to draft, D4), and the view re-evaluates with it (D2); the line under the editor says what changed.

Configuration

What this policy matches, set for your organisation on top of Qpoint's definition. A change is a policy change: it is recorded in History and re-evaluates the open findings it touches (D2).

Seen, not on the list

servers this policy has found, most findings first
Vanta MCP2 findings · 0 open · 2 people · last 2026-10-08
Linear MCP1 finding · 0 open · 1 person · last 2026-10-06

Sanctioned MCP servers

3 entries · patterns supported (* and ?)

ServerScopeAdded byLast matched
GitHub MCPreviewed 2026-08globalDana (security admin)2026-10-08
Atlassian MCPglobalDana (security admin)2026-10-07
Postgres MCP (read-only)analytics harnesses onlyagentSam (GRC lead)2026-10-02
you

from qdash P6 MCP Server Allow-List

Scope + enforcement<GovernancePartPolicyScope>S3 · delivery phase 4 · from phase4/policy-detail · Where it applies + Enforcement, merged (Mark, 2026-10-18)superseded 2026-10-20

Retired from the composed mocks — c118 · A2, the 2026-10-19 product session: the mode is the policy's; per-context differences are exceptions. Rendered on the c114 world, as it was drawn.

One UxTableList row per scope path, scope (flagged when it reaches no one), policy group (or — set on this policy / — none), enforcement (an Observe / Enforce select), endpoints enforcing (97% 97/100), and an X that removes a scope assigned here. Overlaps resolve by D1 (more specific wins) and ties by D9 (stricter wins); a tie is noted on the rows it touches. Groups are folded in: a hover card on each group link, draft / retired groups as dimmed rows, membership rows at delivery phase 3, and Add to policy group. Before delivery phase 4 it is one organization-wide row.

Scope + enforcement

Every scope is observed. Where enforcement is on, Qpoint will block the MCP connection; the more specific scope decides (D1).

Scope
Policy group
Enforcement
Endpoints
Organization-wide— set on this policyObserve —
Team: EngineeringEngineering AI Controls →Policy groupEngineering AI ControlsEngineering may use more tools, under tighter MCP rules.Team: Engineering · 4 policies · activewith Approved model providers only, Sensitive information sanitized before transmission, Enterprise accounts requiredObserve
Team: Finance is stricter · overrides this for 1 person
—
Team: FinanceFinance AI Controls →Policy groupFinance AI ControlsStricter controls for regulated data.Team: Finance · 5 policies · activewith Enterprise accounts required, Sensitive information sanitized before transmission, Approved model providers only and 1 moreEnforce
stricter than Team: Engineering · wins for 1 person
95% 38/40
Team: Legalreaches no oneLegal AI Controls →Policy groupLegal AI ControlsStarted from Finance; file access removed.Team: Legal · 4 policies · activewith Enterprise accounts required, Sensitive information sanitized before transmission, Approved model providers onlyObserve —
Exceptions<GovernancePartPolicyExceptions>S3 · delivery phase 4 · from phase4/policy-detail · Exceptions (G1), on UxTableList (Mark, 2026-10-18); redrawn for the Oct 19 model (c118 L2, 2026-10-20)

The only way to vary a policy (A3). One UxTableList row per exception: context (with whom it overrides, or a D9 tie) · sets (a mode over the mode it replaces, its rollout when it enforces; or an advanced allow, after beta) · reaches (people, and for how many it decides) · reason (and a revoke's reason, D1; an edited one's previous value, D17) · until · set by · revoke. Live first, broadest context first; revoked and lapsed rows dimmed. One exception per policy and context: adding one where a context has one edits it (D17). Before delivery phase 4, one line.

Exceptions

The policy is in Enforce for everyone unless an exception says otherwise. An exception sets the mode for an organization, a team or a person; the narrowest one wins, so a person's own exception beats their team's. A person in two teams whose exceptions disagree gets the stricter (D9).

Context
Sets
Reaches
Reason
Until
Set by
Team: GRC
Offover enforce
2 people
decides for 2

Approved GRC workflow with the vendor (Vanta MCP).

indefinite
Dana (security admin)
2026-09-28
Team: Engineering
ties for Alex: the stricter wins
Observeover enforce
9 people
decides for 8

Engineering is evaluating MCP servers; observe only while the sanctioned list settles.

indefinite
Dana (security admin)
2026-09-26
Team: Finance
ties for Alex: the stricter wins
Enforceover enforce
confirmed · 38 of 40 endpoints
2 people
decides for 2

Regulated data: Finance blocks unsanctioned MCP servers.

indefinite
Dana (security admin)
2026-09-24
Team: Team A
Offover enforce
1 person

Team A owns the Vanta integration.

Revoked by Dana (security admin): “Team A moved off Vanta.”

revoked
Dana (security admin)
2026-10-09
Findings<GovernancePartPolicyFindings>S3 · delivery phase 2 · from phase4/findings · S2's member table and adjudication card (the live qdash listing's pieces), scoped to the policy (Mark, 2026-10-18)

The findings listing's table for one policy: severity · finding · subject · detected · status · last event · SLA, with Open / Resolved toggles (Open by default) and the Adjudicate expand row: the card with subject, applies via, the clock and verbs, the Resolve capture (a reason and an explanation, then a follow-on link to the policy or an exception; it never adds one, c121 #14), evidence and lifecycle; each row carries its outcome at detection, Enforced or Observed (D16). A row resolved here stays listed until the toggles change. Links to the full listing filtered to the policy.

Findings

0 open · 3 resolvedall in Findings →

No open findings for this policy.

History<GovernancePartPolicyHistory>S3 · delivery phase 2 · from phase4/policy-detail · History (the organ), on UxTableList (Mark, 2026-10-18)

Every auditable change to the policy (policyHistory: its Change records plus the severity override) as a UxTableList with column-header sorters: when (newest first) · by · change · detail · id. A row's DOM id is its change id, so a finding lifecycle's cause can link to it.

History

5 changes

Every auditable change to this policy's configuration. Finding lifecycles point at these rows as their cause.

When
By
Change
Detail
Id
2026-10-14 08:00Dana (security admin)exception revokeException E-A revoked: Team A moved off VantaCH-5
2026-10-09 11:05qdashenforcement confirmEnforcement confirmed on 97 of 100 devices (Vanta MCP blocked on mac-b1 at 11:05)CH-3
2026-10-09 09:40Dana (security admin)mode setMode set to Enforce: block the MCP connectionCH-2
2026-10-09 09:15Dana (security admin)exception addException: Off for Team A — Team A owns the Vanta integrationCH-1
2026-09-30 15:10Dana (security admin)severity overrideConfigured high (recommended medium)—
Overview<GovernancePartPolicyOverview>S3 · delivery phase 2 · from phase4/policy-detail · Definition + band, as the overview strip (Mark's screenshot, 2026-10-19)

The strip in place of the band: What it tests · Why it matters · What fails it · What happens on failure (derived from the enforcement action), then Framework(s) as ComplianceTags, Organization Severity editable in place (GovernanceMockSeverityPicker) over "Qpoint recommendation: …", and Findings as the open count, coloured and labelled by the most severe open finding.

Organization Severity
high
Qpoint recommendation: medium

Findings

0open

What it tests

Detect use of an MCP server that is not sanctioned for the applicable user, team, device, or other governed scope.

Why it matters

MCP servers load tools and context into an agent without review; an unsanctioned one can read, write or exfiltrate on the user's behalf.

What fails it

An agent connects to an MCP server that is not on the sanctioned list for the subject's scope.

What happens on failure

Qpoint will block the MCP connection, and a finding records the attempt.

Severity<GovernancePartPolicySeverity>S3 · delivery phase 2 · from phase4/policy-detail · Severity (the recommended / organization pair), on UxTableList (2026-10-19)

Two UxTableList rows: Qpoint recommended (definition version) and Organization (the in-place picker, who set it, when, stricter or softer), with "clear" back to the recommendation (severity-reset). Under it, the open findings generated at another severity: they keep theirs (D2).

Severity

new findings are generated at high · set by the organization
Level
Severity
Set by
When
Note
Qpoint recommendedmediumQpointdefinition v3
overridden by the organization
OrganizationhighDana (security admin)2026-09-30 15:10
in effect · stricter than recommended

A change reprioritises only: it never re-evaluates (D2) and never touches scope, enforcement or exceptions. Findings keep the severity they were generated with.

Frameworks<GovernancePartPolicyFrameworks>S3 · delivery phase 3 · from phase4/policy-detail · Frameworks (requirement mappings), on UxTableList (2026-10-19)

One UxTableList row per mapped control, with sorters: framework item (ComplianceTag, grey when the framework is untracked) · control id and label, with why it's mapped · shared with (the other policies mapped) · tracked · framework →.

Frameworks

14 controls in 4 frameworks
Framework
Control
Shared with
Tracked
OWASP LLM Top 10
LLM03:2025Supply Chain
Partial — pin at load; sourcing is build-time
1 other policyTrackedframework →
NIST AI RMF
GOVERN 1.6Mechanisms are in place to inventory AI systems
Strong — Qpoint's live inventory is the mechanism
1 other policyUntrackedframework →
NIST AI RMF
GOVERN 6.1Policies and procedures address third-party AI risks
Partial — enforcement records prove the policy runs; writing it is yours
3 other policiesUntrackedframework →
NIST AI RMF
GOVERN 6.2Contingency processes handle failures in high-risk third-party data or AI systems
Partial — block a failing provider or server; the contingency plan is yours
1 other policyUntrackedframework →
NIST AI RMF
MANAGE 2.4Mechanisms supersede, disengage or deactivate AI systems that act outside intended use
Strong — block a provider, model or MCP server, with timestamped enforcement
2 other policiesUntrackedframework →
NIST AI RMF
MANAGE 3.1Third-party AI risks are monitored and controls applied and documented
Strong — third-party AI use is what Qpoint sees
3 other policiesUntrackedframework →
NIST AI RMF
MAP 4.1Risks of AI components, including third-party data and software, are mapped
Partial — which data reaches which provider and tool feeds the map
2 other policiesUntrackedframework →
NIST AI RMF
MAP 4.2Internal risk controls for AI components, including third-party, are documented
Addressable — the Policy Config is the documented control set
2 other policiesUntrackedframework →
NIST AI RMF
MEASURE 3.1Existing, unanticipated and emergent AI risks are tracked
Strong — first-seen tools and models, shadow AI
3 other policiesUntrackedframework →
OWASP Agentic Top 10
ASI04Agentic Supply Chain Vulnerabilities
Addressable — inventory, pinning, kill switch
2 other policiesUntrackedframework →
OWASP Agentic Top 10
ASI10Rogue Agents
Partial — expected vs observed, and the kill switch
2 other policiesUntrackedframework →
SOC 2
CC3.2Identify and analyze risks
Partial — the inventory feeds the risk assessment
1 other policyUntrackedframework →
SOC 2
CC6.8Prevent or detect unauthorized or malicious software
Strong — for unapproved agents, harnesses and MCP servers
2 other policiesUntrackedframework →
SOC 2
CC7.1Detect configuration changes and new vulnerabilities
Partial — new tools and versions, first seen
1 other policyUntrackedframework →

Rows for an untracked framework are dimmed. Tracking one changes no policy and re-evaluates nothing.

History<GovernancePartFindingHistory>S1 · delivery phase 2 · from phase4/finding-detail · Lifecycle (the organ), on UxTableList (Mark's screenshot, 2026-10-19)

The finding's lifecycle, append-only, as a UxTableList with column-header sorters: time (oldest first) · actor · what → state · cause. A cause is a change id (linking to S3's History row) with its summary, policy evaluation for the detection, or the person's reason.

History

4 rows · append-only
Time
Kind
Actor
What → State
Cause
2026-10-08 14:09Systemqdashdetected → open
policy evaluation · Policy Config v12
2026-10-09 09:15Re-evaluationv12qdashre-evaluated → resolved: allowed
CH-1Exception: Off for Team A — Team A owns the Vanta integration
2026-10-14 08:00Re-evaluationv12qdashreopened → open
CH-5Exception E-A revoked: Team A moved off Vanta
2026-10-14 08:00Re-evaluationv12qdashenforcement confirmed → resolved: now enforced
CH-5Now enforced on mac-a1 · Exception E-A revoked: Team A moved off Vanta
Details<GovernancePartFindingDetails>S1 · delivery phase 2 · from phase4/finding-detail · the band, as a strip of layer items (Mark's screenshot, 2026-10-19)

Severity (SecuritySeverityTag; at detection, and now when the policy changed it) · Status · User (UxAvatar) · Team · Endpoint (EndpointPawn) · Policy (links to S3) · Applies via (c118, the Oct 19 world: the policy’s own mode or the exception for the person’s narrowest context, its trail on hover, linking to S3’s Mode or the exception’s row; the c114 world shows Policy group(s) with S3’s hover card, Mark 2026-10-19) · Framework(s): ComplianceTag for each framework that maps the policy.

Details

Severity
high
Status
Resolved: now enforced
Outcome
Observedat detection
User
UA
User A
Team
Team A
Endpoint
mac-a1
Framework(s)
OWASP LLM Top 10OWASP Agentic Top 10NIST AI RMFSOC 2
Session<GovernancePartFindingSession>S1 · delivery phase 2 · from layer TranscriptPanel (c85) on sessionTranscript() (Mark, 2026-10-19)

The session that generated the finding, read in place: View Full Session over the layer's TranscriptPanel. The world records sessions but not turns, so governance-transcript.ts builds them: an opening turn, a turn per finding the session generated at its evidence moment, a closing turn.

Session

S-1 · 2026-10-08 14:02

Chat Transcript

4 turns

I need help with compliance evidence export. Start by looking at what's in the repo.

UA

I'll read the project layout first.

Before we start, which account is this running under?

UA

Pull the current control list and the evidence for each one, and put it in a table I can send.

UA

I'll use the Vanta MCP tools to read the controls and their evidence.

Is that everything?

UA

Yes. That's the change, and I've left a note on what still needs a decision.