review-6.md
c133 · Phase 6 review stop: the library's own words, the self-taken record, the count in Posture (2026-11-12)
Built in the c142 session (the cycle tours) the same day Mark ruled Phase 5's calls (D38–D44, review-5.md § Ruled), at his word: "Do this task here".
Where to look
| What | Where | Why |
|---|---|---|
| A training on its own, in its own words | take=T-SECRETS-1, step 1 · step 3 | 4 of 4 steps now; Phase 5 kept 2 |
| The other two on their own | T-MCP-1 · T-ACCT-1's check | 4 of 4 steps and 4 of 4 questions each |
| The preview page | /pages/phase4/trainings | each training's "On its own (the library)" line; the voice check covers the library reading too |
| The self-taken record on the finding (D39) | F-G, took=T-SECRETS-1 | the strip's new line under the assignment, which stays open |
| The count in Posture (D42) | Compliance, took=T-SECRETS-1,T-MCP-1 | "Trainings taken on their own", beside Enforcement Posture |
Captures: thread "Phase 6 · each training's own words for the library…" (scripts/shot-programs/c133-p6.json, five shots). The library lesson's shots share Phase 5's subject, so the evolution view sets 2 of 4 steps beside 4 of 4.
What was done
- D38, the library's own words. Each file gets an optional
# Librarysection. Every entry is a##block in the grammar of the step or question it replaces, naming that one byid:. A step keeps its scene, motion andinsteadunless the entry says otherwise, and a question keeps the step it verifies.parse.tsreads it intoTraining.library(types.ts) and refuses an entry that has no id, names an id the lesson and the check lack, appears twice, or breaks the grammar.library.tsreads a step or question from the library where one exists, so the reading drops only what still needs a finding. It reports which entries it used (own).voice.tschecks the library words too. The words, every sentence throughcheck-brand-voice(productUI) with zero violations:- T-MCP-1: step
what-happened("What happens when an agent connects a server") and questionq-observe, rewritten as "If the policy observes rather than blocks…" because the reader's team may block. - T-ACCT-1: step
what-happened("How work ends up under a personal account") and questionq-record, whose finding version said "this training answers that record". - T-SECRETS-1: steps
what-happened("How a key ends up in a prompt") andthis-key("What to do if a key reached a model").q-revokecomes back withthis-keyand needs no words of its own. The library fillsmodelGotas "receives it" so thesecret-promptscene draws, in the same way it already writes "your agent" and "a personal account". - The format is in
authoring.md(the example, the table, the refusals).publish.mdshowslibraryin the JSON, and the/trainingskill writes the section and takes the training from the library.handoff.md's library section and hash example are updated.
- T-MCP-1: step
- D39, the self-taken record on the finding.
useTrainingMockgives the finding the person's self-taken records under its training (selfRecords). The training strip (FindingStrip.vue) shows each under the assignment: "Priya took it on their own on Nov 1, 2026, passed 4 of 4 · TR-1 · v1. A training taken on its own answers no finding." The assignment stays Assigned. A new lab knob,?took=<trainingId>[,<id>], seeds trainings the reader took on their own: the reader is?person=, else the finding's subject, else User A. - D42, the count in Posture. A section in c128's Compliance report, after How it changed: "Trainings taken on their own", which asks "Are people learning before a finding asks them to?". It shows counts only: taken as of the cutoff, in this window, people as a number, and per training (
readSelfTakeninreports.ts,ReportSelfTaken.vue). It is read as a strength, answers no finding (so it isn't in Corrections), and its source istraining.completed.self. It shows even when no framework is tracked. The Findings report's Corrections already counted only records that name a finding, so it is unchanged. - The scene gallery and the
sanctioned-listfix from c142's first tour ship in the same commit (see Key Changes).
Checked on :3000 in the browser pane: the three trainings on their own (4 of 4 steps and questions, no "Left out"), the preview page (three "On its own" lines, all three Voice pass), F-G with took=, and the Compliance report with took= (2 taken, 1 person). No failed requests.
The calls for you
- The form (D38): a
# Librarysection, chosen over alibrary:paragraph on each step. It keeps the finding reading (R2, the primary one) as written and puts the library's words in one place to review. Questions need whole replacements anyway (a prompt, an explain and choices), which a paragraph can't carry. Proposed: keep the section. - The version. All three files gained library words, so all three content hashes moved (T-MCP-1
ed4d2679c3cd…→7f6e1737e972…, T-ACCT-1 →b5357398ab8a…, T-SECRETS-1 →aee2f157d94f…). The finding reading's meaning is unchanged, and nothing has been released, so no record outside the lab names v1. Proposed: stay at v1 (D31: the version moves when a reading's meaning changes; the hash tells the two library readings apart). The alternative is v2 for all three, since a library reader now reads different steps. - Where in Posture (D42). The count is its own section in the Compliance report, beside Enforcement Posture, because posture lives there. It isn't inside Enforcement Posture, which is per framework and never adds frameworks into one number. Proposed: keep it there. The alternative is a line in the Executive Summary's Governance posture too.
- A self-taken record's date in the lab.
?took=writes it at the world's clock (Nov 1), like every other lab record. Proposed: keep. - Trainings on a topic (clarifying question 6, from D40). A proposal, not built:
- The model: a training answers a policy or a topic, exactly one.
policyIdbecomes optional beside atopic(a kebab id and a label). The parser refuses a file with both or neither. - The text: a topic training is written for no finding, so its lesson is its library reading: no
# Assignment, no# Library, and only the reader's slots. - The record:
training.completed.selfwith the topic in place of the policy, counted in the same Posture section. - The topics: the seed list is the concepts the c125 guide already explains (
guide-knowledge.ts, 17 concepts: Observe and Enforce, an exception, the draft, a drill…). These are the areas people ask about. - Who offers one: the library lists them; an operator can send one (
.operator); later the c127 guide could suggest one when a person asks about the same area twice. - Open: the id scheme (
T-TOPIC-<n>?), and whether a topic training is ever assigned or only offered.
- The model: a training answers a policy or a topic, exactly one.
Waiting on others (unchanged from review-5.md)
Tyler on D22–D27 with training.completed.self; c134 on the person's frame, the plane repo and the copy at release (D29); c121's training and owner on the policy; Peterson on personnel data (D10) and the self-report (D33).
Ruled (2026-11-12)
Mark walked the five calls in the c142 session the same day:
- The form: as proposed (D45). The
# Librarysection. - The version: as proposed (D46). All three stay at v1; the hashes moved.
- Where in Posture: as proposed (D47). Its own section in the Compliance report, not in the Executive Summary.
- The lab record's date: as proposed (D48). The world's clock.
- Trainings on a topic:
- 5a, as proposed (D49): a training answers a policy or a topic, exactly one.
- 5b, all 18 of the guide's concepts (D50), operator terms included, not only the person-facing ones.
- 5c, all three offer them (D51): the library, an operator, and later the guide.
- 5d, build the first now: Observe and Enforce, as Phase 7.