LensReading which lens this session carries.

Who is acting

Personas, roles, and what each one can actually reach

This platform declares 5 personas and 6 roles, and they are not the same thing.

You are acting as Requester (no session)

The five lenses

What each persona puts first, and where it opens

A persona is an ordering and a landing page.

Enterprise Chief of Staff

Owns the enterprise operating picture across every function and arbitrates work that crosses org charts.

acting through it now

2

accounts

puts first

  • Cross-function flow health
  • Enterprise trust score
  • Autonomy phase progression

opens on

the front door

Can clear decisions up to high materiality.

roles that may act through it

Enterprise Chief of Staff

Function Leader

Owns outcomes for a single function and the human accountability that sits behind its agent roster.

acting through it now

1

account

puts first

  • Function KPIs
  • Agent roster health
  • Capacity released

opens on

the front door

Can clear decisions up to high materiality.

roles that may act through it

Enterprise Chief of Staff · Function Leader

Process Owner

Designs and tunes the lifecycle stages, autonomy ceilings, and escalation rules a function runs on.

acting through it now

1

account

puts first

  • Touchless rate
  • Override rate
  • Gate throughput

opens on

Work Tracker

Can clear decisions up to medium materiality.

roles that may act through it

Enterprise Chief of Staff · Function Leader · Process Owner

Approver

Sees only the items an agent could not clear on its own and renders the decision that unblocks them.

acting through it now

1

account

puts first

  • Queue age
  • Decision SLA
  • Materiality mix

opens on

Decision Inbox

Can clear decisions up to medium materiality.

roles that may act through it

Enterprise Chief of Staff · Function Leader · Process Owner · Approver

Requester

Submits work into the system and tracks it without needing to know which agent or function handles it.

acting through it now

1

account

puts first

  • Request status
  • Time to resolution
  • What still needs me

opens on

Work Tracker

Can clear decisions up to low materiality, and cannot approve at all.

roles that may act through it

Enterprise Chief of Staff · Function Leader · Process Owner · Approver · Requester · Operator (legacy)

The endpoint register

23 endpoints, each with a declared floor

Before this register existed, two endpoints checked a role and the rest asked only for a session.

What each floor means in practice

A session below the floor is refused with the rule name ROLE-FLOOR and the floor it failed.

POST/api/askread
any signed-in account

Answer a question about the estate. Reading the estate is open to every signed-in account on purpose. A requester who cannot see the answer cannot check what was done with their request.

Also refuses on: Logs the asking role against every attempt.

POST/api/briefspend
Process Owner

Generate a narrative brief. Each brief calls a paid model against the estate account and writes a document other people will quote. That is a spend, so it sits above the two lenses that only read and decide.

Also refuses on: Persists the brief against the signed-in account.

POST/api/explainspend
Process Owner

Write a model reading of one figure. The deterministic half of a click-drawer is a read and is open to everybody. The model reading beside it is a paid call on the estate account, so it sits at the same floor as a generated brief.

Also refuses on: The deterministic panel is still served in full to a role that cannot spend.

POST/api/decisionswrite
Approver

Record an executive decision. A decision binds the estate. A requester may raise work; they may not sign it off.

Also refuses on: ROLE-CEILING — a lens above the role cannot sign · SOD-01 — the raiser cannot also approve · AUTH-REGISTER — no grant, no decision.

POST/api/queue/decidewrite
Approver

Clear an item in the single queue. Clearing an item closes it for everybody downstream of it.

Also refuses on: QUEUE-OWNERSHIP — the item is addressed to one post and its named cover · SOD-01 — the raiser cannot also close it · AUTH-REGISTER — the cap has to reach the value at stake.

POST/api/sandboxwrite
Process Owner

Commit a sandbox scenario. A committed scenario changes what the platform will do next. That is the process owner’s job, not the approver’s.

Also refuses on: ROLE-CEILING — the lens has to be one the role holds.

POST/api/viewswrite
any signed-in account

Save or pin a view. A saved view is a bookmark. It creates nothing another account can be held to, and a requester tracking their own work has as much reason to keep one as anybody.

Also refuses on: VIEW-09 — you cannot save a view you could not open.

GET/api/viewsread
any signed-in account

Open a saved view. The floor lives on the view, not on the route: each saved view carries its own, and the loader applies it.

Also refuses on: The floor stored on the individual view.

POST/api/personawrite
any signed-in account

Change the persona lens. Choosing a lens is a preference every account may set. What the lens is allowed to do is a separate question, answered by the role.

Also refuses on: PERSONA-CEILING — a lens above the role is not stored.

GET/api/evidence/discoveryread
Function Leader

Pull a discovery export. A discovery export is the whole evidence spine in one file, leaving the platform. It is the one read on this list held above the process owner.

Also refuses on: Scoped to the calling account’s tenant.

POST/api/evidence/pdfspend
Approver

Render an evidence pack. The pack is rendered by a paid service and is the document an approver hands to an auditor.

POST/api/tenancy/proberead
Function Leader

Probe the tenant boundary. The probe exists to be refused, and a refusal that names a boundary is itself information about how the estate is partitioned.

Also refuses on: TENANT-ISOLATION — the owning tenant is never named.

GET/api/client-intakeread
any signed-in account

Read client extracts and the baseline. The baseline sets the client’s own cost per transaction next to the model. Every signed-in account may read it.

Also refuses on: Scoped to the calling account’s tenant.

POST/api/client-intakewrite
Process Owner

Load a client extract file. A loaded extract changes the baseline every comparison reads, so it sits with the person who owns the process.

Also refuses on: INTAKE-SHAPE — a file without the template columns is refused whole · Rows that fail a check are kept out and listed.

GET/api/changesread
any signed-in account

Read governed parameters and their change history. Which rule value is in force, since when, and who approved it, is readable by every account.

Also refuses on: Scoped to the calling account’s tenant.

POST/api/changeswrite
Approver

Propose, approve or reject a model change. Proposing needs a process owner. Approving needs an approver who did not make the proposal.

Also refuses on: ROLE-FLOOR — proposing a change needs a process owner · SOD-MAKER-CHECKER — the proposer cannot decide their own change · OUT-OF-RANGE — a value outside the declared bounds is refused.

GET/api/stationread
any signed-in account

Read station runs, exceptions and the outbox. The runs and what each one produced are readable by every account.

Also refuses on: Scoped to the calling account’s tenant.

POST/api/stationwrite
Approver

Run the matching station or decide an exception. A run and a decision both commit work that leaves through the outbox.

Also refuses on: SOD-RUN-DECIDE — the account that started a run cannot decide its exceptions.

GET/api/auditread
any signed-in account

Verify the audit ledger. Anyone signed in may ask whether the ledger still verifies. The answer names no record contents.

Also refuses on: Scoped to the calling account’s tenant.

POST/api/auditwrite
Function Leader

Place or release a legal hold on the audit ledger. A hold stops disposal for a whole tenant ledger, so it sits with the same role as a discovery export.

Also refuses on: HOLD-EXISTS — one active hold per ledger.

GET/api/audit/exportread
Function Leader

Export the audit ledger for an auditor. The export is the whole tenant ledger leaving the platform, the same exposure as a discovery export.

Also refuses on: Scoped to the calling account’s tenant.

GET/api/identity/group-rolesread
any signed-in account

Read directory group to role mappings. Which directory group grants which role is readable by every account.

Also refuses on: Scoped to the calling account’s tenant.

POST/api/identity/group-roleswrite
Enterprise Chief of Staff

Map a directory group to a role. A mapping grants a role to everyone in a group at their next sign-in. That is privilege assignment.

Also refuses on: UNKNOWN-ROLE — only the platform roles can be mapped.

The register is a declaration kept in one file, and each handler imports its own floor from it.

Two paths sit outside the register on purpose: /api/auth/* and /api/signup and /api/health and /api/scim/v2/* and /api/outbox. Sign-in, sign-out and the session probe. Closing these would close the door on the door.

The page register

4 page routes carry a floor, and every other route says why it does not

Until this wave the register covered endpoints only, and every screen on the platform opened for anybody who could reach the address.

Routes closed to a session below the floor

A session under the floor is shown a screen that names the rule PAGE-FLOOR, the floor it failed and the reason, rather than a blank denial.

/briefspendThe brief studio
Process Owner

The page is a console for generating narrative briefs, and every generation calls a paid model against the estate account and produces a document other people will quote.

Same floor on POST /api/brief · guard written in app/(cockpit)/brief/page.tsx

/sandboxwriteThe scenario console
Process Owner

Committing a scenario changes what the platform will do next, for everybody.

Same floor on POST /api/sandbox · guard written in app/(cockpit)/sandbox/page.tsx

/inboxwriteThe single decision queue
Approver

Every row on this page is an item waiting for a human decision, and clearing one closes it for everybody downstream.

Same floor on POST /api/queue/decide · guard written in app/(cockpit)/inbox/page.tsx

/identityidentityIdentity and tenancy
Function Leader

The page names every account that may sign in, the role the directory gives it, the tenant it belongs to, and where the boundary between the live estate and the sandbox sits.

Same floor on POST /api/tenancy/probe · guard written in app/(cockpit)/identity/page.tsx

107 routes stay open, under 5 named reasons

Open by design is a decision, so it is written down like one.

94

The estate is meant to be readable

Reading what the estate is doing is open to every signed-in account on purpose.

4

Carries a control that refuses at its own endpoint

These pages embed one control that writes or spends, and that control is already refused on the server by the endpoint register.

3

Your own record and your own work

These pages show the account its own requests, its own saved views and its own profile.

3

This is where the rules are published

Closing these would mean the only way to learn what the platform refuses is to be refused by it.

3

Explains the platform rather than reports on the estate

These pages describe how the platform is meant to work.

This register is a declaration in one file, and each gated page imports its floor from it.

Declared against exercised

15 declared priorities, 1 of them honored by an ordering the lens actually changes

Each of the 5 personas declares three things it puts first, and the front door prints them under the acting lens.

1

Exercised by the lens

A surface orders or filters differently because this lens is the one acting.

1

Exercised, but not by the lens

A surface does order by this, and it orders the same way for every lens.

13

Declared, never exercised

Printed under the lens on the front door.

The 13 priorities nothing orders by

Named here rather than left implied.

Enterprise Chief of StaffCross-function flow healthThe front door prints this line beneath the acting lens.
Enterprise Chief of StaffEnterprise trust scoreThe trust figure is published on its own page, identically for every lens.
Enterprise Chief of StaffAutonomy phase progressionReported on the autonomy pages for everybody.
Function LeaderFunction KPIsThe function pages render the same panels in the same order under every lens.
Function LeaderAgent roster healthThe roster is published in full.
Function LeaderCapacity releasedCapacity is reported on the benefit and capacity pages, unfiltered by lens.
Process OwnerTouchless rateTouchless rate appears on several pages and is ordered by none of them on account of this lens.
Process OwnerOverride rateOverrides are counted on the governance record.
Process OwnerGate throughputGate throughput is reported on the lifecycle pages without reference to the acting lens.
ApproverDecision SLAService levels are published on their own page.
RequesterRequest statusThe work tracker groups by stage for every lens.
RequesterTime to resolutionAge is carried on each work item and is not what any list is sorted by under this lens.
RequesterWhat still needs meNothing filters the estate to the items waiting on the signed-in person.

The priority table is kept by hand.

Every persona is also the name of a role, and the floors are held on the role.

Who holds what

The accounts behind the roles

187 accounts exist on this platform.

Role census, read live from the account table

The ceiling is the set of lenses the role may act through.

Enterprise Chief of Staff42 chose a personaCeiling: Enterprise Chief of Staff · Function Leader · Process Owner · Approver · Requester. Defaults to Enterprise Chief of Staff.
Function Leader11 chose a personaCeiling: Function Leader · Process Owner · Approver · Requester. Defaults to Function Leader.
Process Owner21 chose a personaCeiling: Process Owner · Approver · Requester. Defaults to Process Owner.
Approver11 chose a personaCeiling: Approver · Requester. Defaults to Approver.
Requester11 chose a personaCeiling: Requester. Defaults to Requester.
Operator (legacy)1780 chose a personaCeiling: Requester. Defaults to Requester.

The account census counts rows on this platform only. It is not an identity directory, and it says nothing about whether the person behind an account still holds the role the record gives them. Every role on this list has at least one account behind it.

Where it shows

5 surfaces change with the acting lens

This is the whole list.

components/inbox/inbox-board.tsx

browser

Filters the queue to the items this lens can clear and counts them on the strip.

components/decisions/decision-actions.tsx

browser

Refuses a decision above the lens materiality before the request is sent.

components/sandbox/scenario-console.tsx

browser

Blocks a policy commit taken through a lens above the role ceiling.

components/shell/command-bar.tsx

browser

Names the acting lens and its remit in the top bar.

app/(cockpit)/page.tsx

server

Renders the acting lens, its priorities and its landing page from the session.

The surface list is kept by hand.

Actions

What is waiting on a person

The persona layer is a small amount of code doing a specific job, and most of what is left undone here is undone on purpose.

Operations

What this desk is allowed to start

A surface that only reports is not operable.

Trigger and bound

This page reads the account table twice and the endpoint register once.

Live observability

What the record shows right now

The 23 endpoints named in the register, by the lowest role allowed to reach each one.

Current distribution

23 endpoints

Enterprise Chief of Staff14%
Function Leader417%
Process Owner417%
Approver522%
Any signed-in account939%

Is policy and strategy coming to fruition

Whether the written intent is holding here

Partly. The role is now enforced on pages as well as on writes …

Not holding on the record

The intent was that a person signing in should meet the platform through their own job rather than through one shared front door.

What a persona still does not do

Four page routes are now closed to a session below the floor declared for them, and each one names its reason on the register.

A lens above the role ceiling can still be looked through. That is deliberate — the estate is meant to be readable by everyone who works in it — but it means the lens named in the header is not evidence of authority. Every declared lens currently has at least one account acting through it.

The persona is stored on the account and read on the server, so it survives a new browser and cannot be forged from one.