Cycle stories
Collaborator A — Profile + Ledger

Source: c124 cycle-stories, collaborator option A. Fixture: app/data/cycle-stories-mock.ts (records + market-analyst calls). Unlisted: not in the nav; reached from credit cards and the collaborators index.

person
MP
Advisoroutside Qpoint

Mark Peterson

Fractional CISO advisor · Moto

With us since Aug 20, 2026 · also recorded as Mark M

Wrote the fourteen Observe/Enforce intents (qpoint-io/intents) and the v1 scope for governance. Vanta advisory board member.

Thank you
  • Shaped 11 decisions in c121
    Governance v1 Scope · decision records
  • Shaped 1 decision in c130
    Native App (program) · decision records
  • Shaped 1 decision in c131
    Native App V1 · decision records

Hand-written accolades will live in content/collaborators/mark-peterson.md: the things no record captures. (To come.)

In their words

Verbatim from market-analyst call records, behind Access (c124 D3).

“If the local queue control can give end user feedback about. So, like, when policies are enforced, so it's just not, like, such a complete whiplash in vacuum of information, that. I think that would be actually really useful.”
first-handRoadmap: the native app and the control plane · Nov 5, 2026
“coverage. Like, are we ever gonna get to, like, you know, corporate manage, like, phones, tablets, things like that?”
first-handRoadmap: the native app and the control plane · Nov 5, 2026
“We don't wanna be, like, deploying that. Those two changes live. We sort of wanna, like, stage them.”
first-handPolicies, groups, exceptions, the findings lifecycle · Oct 14, 2026
“It's super intuitive... everyone has that experience.”
first-handPolicies, groups, exceptions, the findings lifecycle · Oct 14, 2026

Features contributed to

Outcomes their credits feed, and features the records name them on.

Everything on the policy page
c121D6D7D1
Everything on the policy page

A policy now has one Off · Observe · Enforce switch with an optional end date, on the policy and on each exception.

See who a change affects, first
c121D19
See who a change affects, first

Every edit shows the people and teams it touches, and the findings it would resolve or reopen, before you stage it.

How special-snowflakey is each team?
c121D20
How special-snowflakey is each team?

The teams listing reads as a posture bar: each team's Enforced / Observed / Off against the organization.

Which laptops missed the update
c121D24
Which laptops missed the update

Endpoints show how far each version has reached, so a laptop sitting offline on a shelf gets flagged.

One shared draft, published whole
c121D4D13D26
One shared draft, published whole

Edits collect in one Policy Config draft; publishing makes the whole file live as the next version, viewable and importable as JSON.

Day one and the goal, side by side
c121D25
Day one and the goal, side by side

Every lab page can show a new customer's onboarding stage or a mature deployment, and the docs explain both.

c130c130-D6c130-D7c130-D9
Ten rulings in one walk

D1 to D10 ruled with Mark in session on 2026-11-09; three changed the defaults: three data sources, the message channel in V1, qmap as a link.

The app map and its two states
c131c131-D6c131-D7c131-D8c131-D12c131-D13
The app map and its two states

Five pages in the window's order and the tray, with a local state that edits and a connected state that reads and says so.

A training is four things
c133c133-D1c133-D2c133-D3c133-D8c133-D9
A training is four things

Trigger, lesson, check, record: who assigns, the assignment as a c137 message, the lesson and check on one web-app page, completion in the audit log as proof.

Overseer, ports, citizen
c137c137-D1c137-D2c137-D3c137-D4c137-D7
Overseer, ports, citizen

Two parties, four ports between them, one schema for every message, and the citizen's hand on the delivery.

The bones, with ten voice-checked examples
c137c137-D4c137-D6
The bones, with ten voice-checked examples

One schema carries every message: three severities, five states, three sentences in every body, and the single required override, counted.

c137c137-D3c137-D9
The inventory: 24 rows, 16 kept

Every message the roadmap implies was listed and passed through the five questions; eight were dropped, three of them surviving as rules or port behaviours.

The common tongue
c147c147-D3c147-D4c147-D5
The common tongue

One finding, minted where the activity happened; the machine, the person and the plane each append their own events to it, and the record never changes.

c21bob-wire-c21-D1
Two views instead of one

Company → technology → instance (Anthropic → Claude Code → one person's copy); monitored and detected-only are both first-class.

c21
Personal accounts stand out

Mark Peterson: none of a company's IP should ever go to a personal ChatGPT account.

c21
Coverage you can act on

The "Alexis — investigate" callout comes from Mark Peterson's own example on the call; each person also gets a plain-language summary of their AI use.

Where the people view went
c21
Where the people view went

Matched: c124's completion audit traces these mocks through design c81, c90 and c92; the c21 record doesn't say so.

What our AI is made of
c100
What our AI is made of

Four ways to draw the estate were tried on one shared world; the flowing (alluvial) one leads the composed page.

c105c105-D1
Three answers first

Spend, Pace and Rate lead the page, on a snapshot of real served data.

Activity in two rows of three
c110c110-D1
Activity in two rows of three

The Sessions and Harness Installs cards were put away; the per-day chart moved up as Total Sessions.

Fourteen ideas, one model
c114c114-D0c114-D1c114-D2c114-D3
Fourteen ideas, one model

Six objects, five lifecycles, and three rulings on how scopes, re-checks and enforcement behave.

A finding tells its whole story
c114c114-D2c114-D3
A finding tells its whole story

Mark redrew the generated page by hand in Illustrator: History as one table, a details strip, Related findings and the Session.

Findings, grouped by the rule that raised them
c114c114-D4c114-D8
Findings, grouped by the rule that raised them

Built from the live findings page's own pieces, then reshaped around the model.

One page per policy
c114c114-D1c114-D4
One page per policy

Earlier policy pages showed rules and violations; this one follows the model, with each section marked by the delivery phase it ships in.

Change first, publish later
c116c116-D1c116-D3
Change first, publish later

The proposal's named drafts and approval reached the lab, then were cut back to one shared draft with no approval.

c116c116-D1c116-D3
What didn't survive

Conflict handling and approval come back only if customers show several admins editing often.

The switch moves onto the policy
c118c118-D2c118-D3
The switch moves onto the policy

Mode sits on the policy, and exceptions vary it by team or person. The lab still showed a Snooze here; the next cycle replaced it with an optional end date.

Findings resolve with a reason
c118c118-D5
Findings resolve with a reason

Block and Ignore left the finding page. Resolve asks for a reason: false positive, by design, security testing or other.

c123
Ready for the frameworks session

It also sketches design additions, qmap views and pixel-pawn stories to bring to the meeting.

c123
A gap-check for the framework intents

It's ours, not sent. Mark Peterson is revising the intents himself; when his draft lands we check it against this and suggest only what's missing. The intents repo was not edited.

c128c128-Q3
A Reports catalog with the Board report folded in

The Board report turned out to be a summary of the others, so it became the top of this page, without its averaged score.

c128c128-Q1c128-Q2
The Posture report, drawn in full

An auditor can see what is past its target and how old it is. The report holds no controls.

c55
The guesses became the shared persona list

Mark M added a twelfth, the engineer at the keyboard, whom this analysis had missed.

Frameworks pick the policies
c65c65-D1c65-D2c65-D4
Frameworks pick the policies

A posture score and a count of open gaps update as you toggle.

From verdict page to three cards
c68c68-D1c68-D5
From verdict page to three cards

The cards read the same data; switching to full visibility changes only the inventory card.

c78c78-D1c78-D2
Four reports, one shape

Each report has a period you can step through, a verdict, the detail, export buttons and a shelf of past runs; the Board report is worked out from the other three.

The findings page, rebuilt in the product
c79c79-D24c79-D11c79-D26
The findings page, rebuilt in the product

Repeats of the same problem count as occurrences of one finding, not new rows, and the status is a dropdown you change in place.

Adjudicate: ignore it or accept the risk
c79c79-D3c79-D15c79-D18
Adjudicate: ignore it or accept the risk

Accepting a risk pauses the clock, but the finding stays on the report's "not fixed, here's why" list until it expires.

c79c79-D9c79-D16
Only evidence closes a finding

Mark M's own deadlines are built in: 14 days for critical, 30 for high, 90 for medium, and low is advisory.

Inventory opens with a verdict
c81c81-D1c81-D2
Inventory opens with a verdict

Tools are grouped by company and technology, with the ones we only detected, and never monitored, ranked first.

c81c81-D4c81-D5c81-D6
Four pages drawn again after the walkthrough

Teams & Users lost its Intensity labels and gained a short summary of how each person uses AI; it now states that browser AI is a known gap.

The mock, on real data
c92c92-D1c92-D8
The mock, on real data

The backend doesn't know a company's full staff list yet, so the coverage figure carries a PROJECTED badge instead of a made-up total.

Review notes, worked page by page
c92c92-D8
Review notes, worked page by page

On Teams, the Assigned card went, Est. spend became Spend, and the quick filter gained a Columns picker.

c94
Voices get a home

Mark Peterson's question about predicting the month's spend was the example that showed the gap.

c11market-analyst-c11-D1
Proof is computed, not felt

The rule runs in code and the analysis may not overrule it. Today 0 of 7 use cases pass, and each card says what's missing.

c12market-analyst-c12-D6
Product sessions feed design directly

The Oct 19 session became the first decision brief, picked up by design as c118; Oct 21 and 23 were recorded in c114, c116, c118 and c121.

c12market-analyst-c12-D5
Advisors moved two problems

Phil Chen's relief at self-hosting made transcript governance recurring; Mark Peterson's intern-laptops story did the same for fleet compliance.

c8market-analyst-c8-D1
The first two calls under the new lens

Sam Curry and Zscaler were tagged a prospect and possible build partner, not an advisor.

c123cited
Framework views and defaults, in progress with Mark Parson
Oct 26, 2026
c121cited
intents PR #4 and the v1 scope note
Oct 23, 2026
c114cited
qpoint-io/intents: fourteen Observe/Enforce intents, the Plan-stage artifact for governance
Oct 9, 2026
c114cited
Delivery phases on every policy section (Foundation → Applicability)
Oct 9, 2026

Pages

Surfaces their observations point at (artifactRef) and the routes of outcomes they're credited on.

PageWhy it's hereCount
/pages/phase4/mock/policy-detailtheir observations point here5
/pages/phase4/finding-detailtheir observations point here3
/pages/qcontrol/sessiontheir observations point here3
/pages/phase4/mock/organization/teamstheir observations point here2
/pages/qcontrol/teamstheir observations point here2
/pages/phase4/governance-modeloutcome: Day one and the goal, side by side2
/pages/findings-regroup-v2outcome: The findings page, rebuilt in the product2
/pages/phase4/mock/changestheir observations point here1
/pages/phase4/mock/policiestheir observations point here1
/pages/phase4/mock/policy-config/proposed-changesoutcome: See who a change affects, first1
/pages/phase4/mock/endpointsoutcome: Which laptops missed the update1
/pages/phase4/mock/policy-config/config-fileoutcome: One shared draft, published whole1
/cycles/design/c130/doc/planoutcome: Ten rulings in one walk1
/cycles/design/sketches/c131-app-mapoutcome: The app map and its two states1
/cycles/design/sketches/c133-trainingoutcome: A training is four things1
/cycles/design/sketches/c137-channeloutcome: Overseer, ports, citizen1
/pages/phase4/messaging-bonesoutcome: The bones, with ten voice-checked examples1
/cycles/design/c137/doc/inventoryoutcome: The inventory: 24 rows, 16 kept1
/cycles/design/sketches/c147-common-tongueoutcome: The common tongue1
/pages/phase3/mock/inventoryoutcome: What our AI is made of1
/pages/cost-centeroutcome: Three answers first1
/pages/phase4/findingsoutcome: Findings, grouped by the rule that raised them1
/pages/phase4/policy-detailoutcome: One page per policy1
/pages/phase4/mock/finding-detailoutcome: Findings resolve with a reason1
/pages/phase4/mock/reportsoutcome: A Reports catalog with the Board report folded in1
/pages/phase4/mock/reports/postureoutcome: The Posture report, drawn in full1
/pages/policy-catalogoutcome: Frameworks pick the policies1
/pages/index-three-cards-v1outcome: From verdict page to three cards1
/pages/report-compliance-v1outcome: Four reports, one shape1
/pages/findings-lifecycle-v1outcome: Only evidence closes a finding1
/pages/phase1/inventoryoutcome: Inventory opens with a verdict1
/pages/phase1outcome: Four pages drawn again after the walkthrough1

Releases

What shipped with their input in it.

  • Nov 13, 2026c147Findings, a Common Tongue: Opened and kicked off 2026-11-13 (c137 closed into it); seven questions answered the same day; Phases 0–2 done (the shape, findings derived into the worlds, the copy of S2 and S1 in the native skin); review stop 1 ruled the same day (the defaults); Phase 3, the person's view, built the same night; review stop 2 walked the same night; Phase 4 the same night (Q4 in the prototype's model, HQ's half on real rows for Priya, plain whys); review stop 3 walked the same night (Phase 5 briefed for qnative; a finished training closes its finding; the app raises findings on a standalone machine); waiting on Petersoncited
  • Nov 9, 2026c130Native App (program): Kicked off 2026-11-09; D1–D10 ruled the same day; the primer written; the spike done in ../qnative; the shape and the pitch nextcited
  • Nov 9, 2026c131Native App V1: Phase 2 in motion in ../qnative as qnative c2 (2026-11-10): the skin, the native component docs, our layer in Rust and the Inventory section through Repos & Workspaces, the whole section, with the table expand row (the extra stretch) and the skill file; review stop 3 with the scorecard and the budget (qnative review-3.md), the brand ruling waiting on Mark; then the Tour stretch (2026-11-11): the engine, the native tour, Info View and the MCP guide served from inside the app, at its review stop (qnative review-tour.md); Mark ruled both stops the same evening (D18–D20) and they were built (qnative 71dd21a): the table at full fidelity, the panel at the window's edge, Getting started with the guide's token, the atlases released, nina-mbp the default world with pilot beside it; Claude Code walked the native guide from one prompt, and c2 closed (Phase 2 complete). The V1 build waits for shape.md and c0's namecited
  • Nov 9, 2026c133Remediation Training: Kicked off 2026-11-11; Phase 0 (the brief) in flight in market-analyst; Phase 1 built the same day and its review stop ruled that evening (D10–D16); shape.md accepted at G1, so formally open; Phase 2 built the same night (the event shape for Tyler, Corrections in Reports and on the finding) and its review stop ruled (D17–D20); Phases 3 and 4 handed to an execution session, which built Phase 3 the same night (the collection, the preview page, /api/trainings with version and hash) and Phase 4, the three pilots of D6 (pilot 3 on F-G, the one finding added to the lab world for it); review stops 3 and 4 ruled 2026-11-12 (D28–D37); Phase 5 built 2026-11-12 by an execution session (the two small things, D34's reorder, the hand-off to c134 and c131, the library), now at its review stopcited
  • Nov 9, 2026c137App Messaging, Overseer and Citizen: Closed 2026-11-13 into c147 (Findings, a Common Tongue): after the 2026-11-12 Product session an inbox read as another thing to check, and the notion it reached for already existed as design's findings. Carried on: the name Safety & Security, the voice rules, the noise control and qnative c4's notification plumbingcited
  • Nov 3, 2026c128Reports: Kicked off 2026-11-03; the window picker, the catalog and the Posture report are built and live, waiting on Mark's review of Posturecited
  • Oct 26, 2026c123Compliance Frameworks: Five product tours deployed 2026-10-29 and framework detail composed and deployed 2026-11-03; the rest of the frameworks cleanup is still opencited
  • Oct 23, 2026c121Governance v1 Scope: Waves 1–2 committed 2026-10-23; Wave 3 nextcited
  • Oct 20, 2026c118Policy Structure and Publishing: Closed 2026-10-21; most of its publishing work was superseded two days later by c121cited
  • Oct 19, 2026c116Policy Changesets: Superseded as a proposal the same day; its premise lives on in c118 and c121cited
  • Oct 9, 2026c114Governance Phase II lab deployedmatched · review
  • Oct 2, 2026c110qdash TODOs — 2026-10-01 review: Plan executed and shipped 2026-10-02; the Outcome isn't writtencited
  • Oct 1, 2026c105Cost Center: Mock round 2 built 2026-10-01; waiting on Mark's review before the app portcited
  • Sep 28, 2026c100Landing Pages: Bake-offs and composed mocks built and deployed 2026-09-30; Inventory and Team landings later retired in favour of Home (c109)cited
  • Sep 25, 2026c94TODO Execution Process: Skill built and first run planned 2026-09-25; all 17 plans executed that day; Outcome never writtencited
  • Sep 21, 2026c12Micro Problems: T0–T4 built 2026-09-21; October product sessions extracted and their decisions written into design c114/c116/c118/c121 (2026-10-26); the product-input plan awaits Mark's review.cited
  • Sep 18, 2026c92qcontrol New Pages: Threads landed 2026-09-18→26 on the gen 2 qdash app; phase 3 left open; that app was archived at the c107 cutover (2026-10-02)cited
  • Sep 3, 2026c11Conversation Profiles: All four threads landed 2026-09-03; Outcome still "(In progress)" and the cycle is still listed as active.cited
  • Sep 1, 2026c81Phase 1 Pages: Cloud run built all 17 pages 2026-09-01→02; v2 of four pages 2026-09-08 from the Mark Peterson walkthrough; Outcome unfilledcited
  • Aug 31, 2026c21Inventory + Users / Devices: Listed active in both bob-wire and design; three mocks built on the design site 2026-09-01; the cycle folder is untracked in bob-wirecited
  • Aug 25, 2026c79Finding Lifecycle: Lifecycle and findings redesign ported to qdash 2026-08-27 (layer 0.9.11); Outcome pendingcited
  • Aug 20, 2026c78Fleet Overview Reports: Closed into c128 Reports on 2026-11-03, with the card pick never madecited
  • Aug 20, 2026c8Agent Pivot: Workstreams A and B complete, C substantially complete (2026-08-20); the architecture thread moved to c10; Outcome still "(In progress)".cited
  • Aug 14, 2026c68Index Overview: Mocks done; three idea rounds awaiting picks since 2026-08-27. The landing later shipped through c78, c100 and c109. No Outcome.cited
  • Aug 12, 2026c65Control-Center v2: Outcome written (shipped 2026-08-12, layer 0.9.8, qdash c13) but never moved to HISTORY.mdcited
  • Jul 24, 2026c55Agent Market Definition: Outcome never written; persona work carried on in market-analyst (personas.json seeded from c55)cited

Decisions shaped

Each one is ruled in a cycle record and sourced to something they said or did.

DecisionCycleWhat it saysLink
D1c121A reason is required when an edit loosens and when an exception is revoked. Tightening keeps it optional.matched · review
D3c121Observed findings are hidden by default, with a one-click filter and a zero state that names what is hidden.matched · review
D4c121Local staging stays, in front of one shared draft. Publish makes the whole draft live. No named drafts, approvals or promotes.cited
D6c121Mode is Off · Observe · Enforce with an optional Until, on the policy and on its exceptions. Snooze goes.cited
D7c121Expiry is optional. Mark Parson proposed requiring an end date when loosening; Mark Peterson kept it optional. (ruled)cited
D13c121Import validates a pasted or uploaded JSON into the staged edits. A support export strips tokens.cited
D19c121A change's impact states the facts and stops ("Loosens P-MCP for 3 people in Finance."). "Blast radius" stays out of the UI.cited
D20c121The teams listing defaults to the posture bar, with its "Against the organization" departures column.cited
D24c121The propagation footprint goes on Endpoints, team endpoints, the Changes version rows, the tray and the policy mode note.cited
D25c121The adoption stage is a lab switch plus a docs section.cited
D26c121Changes is renamed Policy Config: Proposed Changes, History and Config File.matched · review
c130-D9c130The message channel's ports and bones ship in V1: sender and receiver, native message channels, the overseer and the citizen. The design is its own cycle, c137, kept simple, with the person in control of what reaches them.cited
c131-D8c131The message channel's ports and bones ship in V1 (c137 designs them): the schema in types, the inbox store, the OS notification plumbing with per-type controls, the tray count. Only Connect confirmations flow in V1; more is Tyler's at G2.matched · review
c133-D1c133A training runs on the web app, opened from the native app's notice; inline in the native app later if the content model is small enough.matched · review
c137-D5c137Contact IT is a reply that lands in the plane's inbox, later in Slack or email through integrations. The IT contact text comes from the plane's org settings.matched · review
c105-D1c105Keep the rate card and all eight lenses for a review round.matched · review
c110-D1c110Activity becomes two rows of three, counted in tokens; the Sessions and Harness Installs cards are put away.matched · review
c114-D0c114Read the fourteen intents for one model, not one page per intent; screens follow from the model.matched · review
c114-D4c114Use the intents' words everywhere: Policy, Framework, Finding, Resolution, Exception.matched · review
c116-D1c116Personal, named changesets, with conflicts found at deploy. Overtaken the same day by one shared draft.cited
c116-D3c116Approval as a per-company setting by risk. Dropped for v1: no approvers at first.matched · review
c116-D6c116One company-wide version per publish, with a review page first.cited
c118-D2c118Each policy has a mode: Off, Observe or Enforce.matched · review
c118-D5c118Block leaves findings; Resolve takes a reason: false positive, by design, security testing or other.cited
c78-D1c78Reports first, landing last; a full mock page for each of the four reports, Board included. Start with all the information, trim later.cited
c79-D3c79Ignore is not an exception: ignore means "not a real finding"; an exception is real risk, formally accepted, with a required expiry.cited
c79-D9c79The rubric is Mark M's real program: critical 14 days, high 30, medium 90, low advisory with no hard target.cited
c79-D11c79Repeat occurrences never reset the clock; the first one starts it.matched · review
c79-D24c79Terminology: Control → Finding → Occurrence.matched · review
c81-D1c81For operators, inventory and visibility first; governance appears only as quiet links.matched · review
c81-D5c81Session detail drops Chapters, minimizes dialogue by default, and states its encryption plainly: local data unencrypted, anything stored or shared encrypted with the customer's own key.cited
c92-D8c92Teams are compared one measure at a time, with spend and tokens first.cited

Conversations

Calls, demos and briefs they were part of. Call pages live in market-analyst (local dev only for now).

DateConversationKindTheir ideasRecord
Nov 5, 2026Roadmap: the native app and the control planeworking session2market-analyst /calls/1b21a3ce…
Oct 23, 2026Friday: walking the built labadvisory call2market-analyst /calls/5b4bae13…
Oct 21, 2026Wednesday: the v1 model, by subtractionadvisory call9market-analyst /calls/5c8785e2…
Oct 19, 2026Mode moves to the policyadvisory call5market-analyst /calls/154b2679…
Oct 14, 2026Policies, groups, exceptions, the findings lifecycleadvisory call6market-analyst /calls/04e3d850…
Oct 12, 2026Sentinel and the findings wireframesadvisory call5market-analyst /calls/f06500e3…
Sep 3, 2026Dashboard mockups review with Mark Petersonadvisory call6market-analyst /calls/09ecfede…
Sep 3, 2026Pushed the dashboard mockups toward concrete governance signalsrecorded call—record line
Aug 31, 2026Onboarding Mark Peterson as advisoradvisory call5market-analyst /calls/38075ead…
Aug 31, 2026Onboarding session: validated a visibility-first strategy, inventory before enforcementrecorded call—record line
Aug 20, 2026Product review with Mark Madvisory call10market-analyst /calls/2100ac03…
Aug 20, 2026First advisory session: reviewed the agent inventory, control center and findings flowrecorded call—record line

Qpoint Brand Style Guide