Source: c133 Remediation Training, Phase 3, 2026-11-11 · the collection in app/data/trainings/<lang>/, read by app/data/trainings/parse.ts for the lab and for the API
The design site is the studio (D4): one markdown file per training and language, written once with {slots} and filled from the finding. This page lists the collection as the lab reads it, checks every sentence against the brand voice rules as the person would read it on each finding of its policy, and opens any training on any of those findings in the mock. What the apps read is the same files through the same parser, published at /api/trainings (D21).
The format: authoring.md · what the apps read: publish.md · the loop for a new training: the /training skill
The collection
9 trainings published| Training | Policy or topic | Minutes | Steps | Questions | Lang | Version | Voice | Open on a finding of its policy |
|---|---|---|---|---|---|---|---|---|
| Approved model providers → T-PROVIDERS-1 | Approved model providers only P-PROVIDERS | 3 | 4 | 4 | en | v1 | pass 67 texts · 1 finding | |
| Ask before an agent sends or publishes → T-APPROVAL-1 | Consequential tool calls require approval P-TOOL-APPROVAL | 3 | 4 | 4 | en | v1 | pass 58 texts · 1 finding | |
| Instructions hidden in content → T-INJECT-1 | Prompts are inspected for injection and leakage P-PROMPT-INSPECT | 3 | 4 | 4 | en | v1 | pass 63 texts · 1 finding | |
| Observe and Enforce → T-MODES-1 | Observe and Enforce topic: observe-and-enforce | 2 | 4 | 4 | en | v1 | pass 46 texts · 0 findings | a topic, no finding: take it on its own → |
| Personal accounts for work → T-ACCT-1 | Personal account is in use P-ACCT | 3 | 4 | 4 | en | v1 | pass 80 texts · 1 finding | |
| Secrets in prompts → T-SECRETS-1 | Credentials must not be sent to a model P-CREDENTIALS | 3 | 4 | 4 | en | v1 | pass 59 texts · 1 finding | |
| Skills that update themselves → T-PROVENANCE-1 | MCP servers and skills are pinned to reviewed versions P-PROVENANCE | 3 | 4 | 4 | en | v1 | pass 58 texts · 0 findings | no finding under P-PROVENANCE in this world |
| Unapproved MCP servers → T-MCP-1 | Unsanctioned MCP server in use P-MCP | 3 | 4 | 4 | en | v1 | pass 86 texts · 3 findings | |
| Unattended agents and their spend → T-SPEND-1 | Spend stays under the ceiling P-SPEND | 3 | 4 | 4 | en | v1 | pass 53 texts · 0 findings | no finding under P-SPEND in this world |
Approved model providers
app/data/trainings/en/approved-model-providers.mdv1 · sha256:39ef31c9c92add262aa3f4087b372035d9dc83f46fd9df12a8ab431eedffe634/api/trainings/T-PROVIDERS-1Lesson · 4 steps
- 1What happened on {device}provider-request · motion
- 2Where a prompt goesprovider-terms
- 3What Qpoint does about itpolicy-modes
- 4What to do insteadmode-ask· instead
Check · 4 questions
- 1Your agent sends a prompt to a provider that is not on the approved list. What goes with it?→ where-prompts-go
- 2Why does it matter which provider a prompt reaches?→ where-prompts-go
- 3A colleague shares a cheaper model that works well for your task. What do you do?→ instead
- 4A model your agent uses asks for a card's expiry date and security code "to verify a refund". What do you do?→ instead
Slots it reads
{agent} {approved} {blocked} {date} {device} {evidence} {minutesWord} {outcome} {owner} {policy} {provider} {session} {team} {time}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened.
Voice
Zero violations across 67 texts: the file as written, as read on F-F, and as read on its own (productUI).
Ask before an agent sends or publishes
app/data/trainings/en/ask-before-an-agent-sends-or-publishes.mdv1 · sha256:38bb5adc55221d1dd5cc61265bab72440a19de40c6aa749ba890306f01d236ea/api/trainings/T-APPROVAL-1Lesson · 4 steps
- 1What happened on {device}unapproved-call · motion
- 2Which calls should wait for youconsequential-calls
- 3What Qpoint does about itpolicy-modes
- 4What to do insteadapprove-call· instead
Check · 4 questions
- 1Which of these should your agent ask you about before it does it?→ consequential
- 2You ask your agent to "share the export with Sam". What decides how it shares it?→ consequential
- 3Your agent asks you to approve a call that shows public: true. What do you do?→ instead
- 4Your agent offers to stop asking before it sends mail for the rest of the session. What do you choose?→ instead
Slots it reads
{agent} {blocked} {date} {device} {evidence} {minutesWord} {outcome} {owner} {policy} {session} {time} {tool}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened.
Voice
Zero violations across 58 texts: the file as written, as read on F-I, and as read on its own (productUI).
Instructions hidden in content
app/data/trainings/en/instructions-hidden-in-content.mdv1 · sha256:188fc4696bbc771738d9aa0d9b254a00159da2f3bbe5b3097408763d8c8ddc58/api/trainings/T-INJECT-1Lesson · 4 steps
- 1What happened on {device}hidden-instruction · motion
- 2Why an agent follows text it readsone-context
- 3What Qpoint does about itmode-observe · motion
- 4What to do insteadapprove-send· instead
Check · 4 questions
- 1You ask your agent to summarise an email. A line in it, invisible to you, tells the agent to send your files somewhere. Why might the agent do it?→ one-context
- 2Prompt inspection flagged a hidden instruction in what your agent read. What did that stop?→ what-qpoint-does
- 3Your agent is working through a web page and proposes sending a file to an address you have never seen. What do you do?→ instead
- 4Which setting gives a hidden instruction the least room to act?→ instead
Slots it reads
{agent} {blocked} {date} {device} {evidence} {heuristics} {heuristicsOffSentence} {minutesWord} {outcome} {owner} {policy} {session} {time} {via}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened.
Voice
Zero violations across 63 texts: the file as written, as read on F-H, and as read on its own (productUI).
Observe and Enforce
app/data/trainings/en/observe-and-enforce.mdv1 · sha256:67e66883351c95398795897fe33f2761af6d52f487a51f4e95bc6e6fb0ac1a9b/api/trainings/T-MODES-1Lesson · 4 steps
- 1What a policy does on {device}policy-modes
- 2Observe: the work goes through, and it is written downmode-observe · motion
- 3Enforce: the action is stoppedmode-enforce
- 4What to do when a policy stops your workmode-ask· instead
Check · 4 questions
- 1On your team, a policy is set to Observe. Your agent does something the policy covers. What happens?→ observe
- 2A policy is set to Enforce. Where does qcontrol stop the action?→ enforce
- 3Who decides whether a policy observes or enforces on your team?→ three-modes
- 4A policy stopped something your work needs. What do you do?→ when-stopped
Slots it reads
{agent} {device} {minutesWord} {team}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. Written for anyone: a topic has no finding to leave out (D49).
Voice
Zero violations across 46 texts: the file as written, as read on no finding, and as read on its own (productUI).
Personal accounts for work
app/data/trainings/en/personal-accounts-for-work.mdv1 · sha256:5f4eca745e9af12e70a10d9ec13df4ee69384de297c4d2ce191d98dc25d0550f/api/trainings/T-ACCT-1Lesson · 4 steps
- 1What happened on {device}account-session · motion
- 2Where the work goesaccount-boundary
- 3How to tell which account a session usesaccount-check
- 4What to do insteadaccount-switch· instead
Check · 4 questions
- 1You are signed in to {agent} with {account} and use it for a work task. Whose terms cover what the session sent?→ where-it-goes
- 2Which account does a session in {agent} run under?→ which-account
- 3This policy cannot block a sign-in, so nothing was stopped. Why does the finding still matter?→ what-happened
- 4You do not have a seat on your organisation's {agent} account yet, and a task is due today. What do you do?→ instead
Slots it reads
{account} {agent} {blocked} {date} {device} {evidence} {exceptionSentence} {minutesWord} {outcome} {owner} {policy} {session} {time}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened, q-record.
Voice
Zero violations across 80 texts: the file as written, as read on F-C, and as read on its own (productUI).
Secrets in prompts
app/data/trainings/en/secrets-in-prompts.mdv1 · sha256:5c9780085bcefa460897a26f617780c8fbf841495c8787f4e6b8ec11c042f715/api/trainings/T-SECRETS-1Lesson · 4 steps
- 1What happened on {device}secret-prompt · motion
- 2Why a key in a prompt is a key disclosedsecret-copies
- 3What to do about this keysecret-rotate
- 4What to do insteadsecret-reference· instead
Check · 4 questions
- 1Your prompt had a key in it, and the agent sent it. A minute later you deleted the conversation. Is the key safe now?→ why-disclosed
- 2A key you pasted reached the model. What makes that key safe again?→ this-key
- 3Your agent needs a database password to run a migration. How does it get the password?→ instead
- 4qcontrol did not flag a prompt you sent. Does that mean the prompt had no secret in it?→ instead
Slots it reads
{aDataClass} {agent} {blocked} {date} {detectors} {detectorsOffSentence} {device} {evidence} {keyAdvice} {minutesWord} {outcome} {owner} {policy} {session} {time}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened, this-key.
Voice
Zero violations across 59 texts: the file as written, as read on F-G, and as read on its own (productUI).
Skills that update themselves
app/data/trainings/en/skills-that-update-themselves.mdv1 · sha256:d5695a3aee631ffc6373b17cd6e6350a260fe30ea56cb3833fa5dc31812279a2/api/trainings/T-PROVENANCE-1Lesson · 4 steps
- 1What happened on {device}version-load · motion
- 2Why a new version mattersversion-trust
- 3What Qpoint does about itmode-observe · motion
- 4What to do insteadpin-version· instead
Check · 4 questions
- 1A skill you use every day publishes a new version overnight. What decides what it does in your next session?→ new-version
- 2qcontrol recorded a skill loading at a version nobody pinned. What did that stop?→ what-qpoint-does
- 3Your agent offers to update a server to its latest version. What do you do?→ instead
- 4A skill version nobody reviewed has already run and read your key files. What do you do?→ instead
Slots it reads
{agent} {blocked} {component} {date} {device} {evidence} {minutesWord} {outcome} {owner} {pinned} {pinnedSentence} {policy} {session} {time}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened.
Voice
Zero violations across 58 texts: the file as written, as read on no finding, and as read on its own (productUI).
Unapproved MCP servers
app/data/trainings/en/unapproved-mcp-servers.mdv1 · sha256:bc19dbf8d6099a972c1601513329f239717424d1abc7dff1f611c6b75fba4864/api/trainings/T-MCP-1Lesson · 4 steps
- 1What happened on {device}connection · motion
- 2What an MCP server can doserver-reach · motion
- 3Why there is a sanctioned listsanctioned-list
- 4What to do insteadask· instead
Check · 4 questions
- 1You let an agent connect to an MCP server you have not used before. After that, what decides what the agent can do through the server?→ server-reach
- 2{server} is sanctioned for {exceptionTeam}. Does that make it sanctioned for {team} too?→ why-the-list
- 3Your work needs an MCP server that is not on your team's sanctioned list. What do you do?→ instead
- 4On {team}, this policy is set to Observe, not Enforce. An agent connects a server that is not sanctioned. What happens?→ what-happened
Slots it reads
{agent} {blocked} {date} {device} {evidence} {exceptionSentence} {exceptionTeam} {minutesWord} {outcome} {owner} {policy} {sanctioned} {server} {session} {team} {time}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened, q-observe.
Voice
Zero violations across 86 texts: the file as written, as read on F-A, F-B, F-E, and as read on its own (productUI).
Unattended agents and their spend
app/data/trainings/en/unattended-agents-and-their-spend.mdv1 · sha256:2d3b3d1da9d7853002c9e8a3285f932d08ecee48dc1781cff5dd2af644bec455/api/trainings/T-SPEND-1Lesson · 4 steps
- 1What happened on {device}spend-ceiling · motion
- 2How an agent on its own runs up a billretry-loop
- 3What Qpoint does about itmode-observe · motion
- 4What to do insteadagent-limit· instead
Check · 4 questions
- 1An agent left overnight retries a failing test every forty seconds. What does each retry cost?→ retry-loop
- 2Your agent passed the spend ceiling during the night. What did Qpoint do?→ what-qpoint-does
- 3Before you leave an agent running on its own, what helps most?→ instead
- 4You come in and find your agent still retrying the same step. What do you do?→ instead
Slots it reads
{agent} {blocked} {ceiling} {ceilings} {date} {device} {evidence} {minutesWord} {outcome} {owner} {policy} {session} {time}
On its own (the library)
4 of 4 steps and 4 of 4 questions, as User A reads it with no finding. In the file's own words for the library (D38): what-happened.
Voice
Zero violations across 53 texts: the file as written, as read on no finding, and as read on its own (productUI).
Scenes
35 drawings incomponents/training/scenes/, from the pawns and the sketch kit (D7), each drawn on a real finding as its step reads there (a topic's, as a reader takes it on its own); the one motion stops under reduced motionInspired by Rob Genova's drawings in two Qpoint posts: The Hidden Agent Surface and Your Agents Need a Dynamic Sandbox. One idea per drawing, flat and labelled, with the pixel agent and what happened to each attempt.
not sanctioned for Team A
the agent on this machine reaches a server outside the list
reads {agent} {device} {server} {team}
Step 1 of T-MCP-1 on F-A →the tool list
what the server can read
what it can write
where it can send
everything the server can read, write or send, the agent can
reads {server}
Step 2 of T-MCP-1 on F-A →GitHub MCP, Atlassian MCP and Postgres MCP (read-only) for analytics harnesses only
allowed for GRC only, after their review
the team's sanctioned list beside the server, sanctioned elsewhere
reads {team} {sanctioned} {server} {exceptionTeam}
Step 3 of T-MCP-1 on F-A →your work needs the server
reviews what it can reach
that does the same job
you ask the policy's owner; the server is added, or a sanctioned one named
reads {owner} {team}
Step 4 of T-MCP-1 on F-A →a personal account, not your organisation's
the agent on this machine runs a session under a personal account
reads {agent} {device} {account}
Step 1 of T-ACCT-1 on F-C →prompts, files the agent reads, answers
its agreement: how long work is kept, who may review it
your own terms: out of your organisation's reach
the same work under the organisation's account, inside its agreement, and the personal one, outside it
reads {account}
Step 2 of T-ACCT-1 on F-C →check it shows your organisation's, not usera@gmail.com
the agent shows the account it is signed in with
reads {agent} {account}
Step 3 of T-ACCT-1 on F-C →sign out
sign in
a seat on the organisation's account
sign out of the personal account, sign in with the organisation's; no seat yet, ask IT
reads {account}
Step 4 of T-ACCT-1 on F-C →received the AWS access key
the agent on this machine sends a prompt with a key in it; the model received it, or never did
reads {agent} {device} {modelGot}
Step 1 of T-SECRETS-1 on F-G →with the AWS access key
once sent, a prompt has copies outside the machine: the transcript, the provider's logs, the tools it reached
reads {dataClass}
Step 2 of T-SECRETS-1 on F-G →revoked
where the tool reads it
what you did, and when
revoke the key, issue a new one where the tool reads it, tell IT
reads {dataClass}
Step 3 of T-SECRETS-1 on F-G →or an environment variable
names the secret, never holds it
the secret stays in a secret manager or an environment variable; the tool reads it, the prompt only names it
reads no slots
Step 4 of T-SECRETS-1 on F-G →recorded
recorded
a policy in each mode: Off lets it through, Observe lets it through and records, Enforce stops it and records
reads {team}
Step 3 of T-PROVIDERS-1 on F-F →your work carries on
recorded by qcontrol
under Observe the action goes through, and a finding records it
reads {agent} {device}
Step 3 of T-INJECT-1 on F-H →on mac-a1, before it leaves
recorded by qcontrol
never reached
under Enforce the action is stopped on the machine, and a finding records it
reads {agent} {device}
Step 3 of T-MODES-1, a topic, as User A reads it →your work needs what was stopped
reads what was stopped
for the work
with a reason
ask IT or the policy's owner; it is sanctioned, or the team gets an exception
reads {team}
Step 4 of T-PROVIDERS-1 on F-F →read through GitHub MCP
written for the agent
content from outside reaches the agent on this machine with a hidden line written for the agent
reads {agent} {device}
Step 1 of T-INJECT-1 on F-H →what the agent reads
summarise this email
send the money files out
your request and the hidden line sit together in what the agent reads, at the same weight
reads no slots
Step 2 of T-INJECT-1 on F-H →to an address you have never seen
and tell IT
the agent asks before it sends; you decline a step you did not ask for and tell the owner
reads {agent} {owner}
Step 4 of T-INJECT-1 on F-H →not on the approved list
the agent on this machine sends a prompt to a provider off the approved list; it received the prompt, or never did
reads {agent} {device}
Step 1 of T-PROVIDERS-1 on F-F →the files, the pasted text, a ticket
terms your organisation agreed to
terms nobody here has read
a prompt carries what the agent put in it; the approved providers under terms the organisation agreed to, one off the list under terms nobody read
reads {approved}
Step 2 of T-PROVIDERS-1 on F-F →the agent on this machine loads a skill or a server at a version nobody pinned
reads {agent} {device}
the version the team reviewed, and the next one, which does what its publisher wrote with the agent's access
reads no slots
install at a fixed version; the latest waits until the owner reviews and pins it
reads {owner}
sends, posts or publishes
it ran without anyone approving it
the agent on this machine makes a call through a server or tool that acts outside the machine, unapproved or held
reads {agent} {device}
Step 1 of T-APPROVAL-1 on F-I →a public link is found in minutes
calls that stay on the machine beside calls that act on the world and cannot be taken back
reads no slots
Step 2 of T-APPROVAL-1 on F-I →where it goes · public: true
and say how to share it
the agent asks before it publishes; the request shows where it goes and who can open it; you decline or say how
reads {agent}
Step 4 of T-APPROVAL-1 on F-I →the agent on this machine runs on its own, paid turn after paid turn, and its spend passes the ceiling
reads {agent} {device} {ceiling}
a step fails, the agent tries again, and each try is a paid turn with the model
reads no slots
before you leave it, a limit: a few tries then stop and report, and a maximum number of turns
reads no slots
a reviewed, pinned skill is published again overnight with a step nobody reviewed
reads {skill} {from} {to} {adds} {agent} {device}
a person asks their assistant to share a file and leaves how to it
reads {person} {file} {to} {holds} {agent}
a file posted where anyone with the link, and search engines, can read it
reads {where} {file} {to}
a support ticket with a full card number is pasted into the assistant
reads {customer} {card} {agent} {device}
an unapproved model asks back for the card's expiry and code, and the assistant passes it on
reads {provider} {agent} {person}