← Design · c133

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

WhatWhereWhy
A training on its own, in its own wordstake=T-SECRETS-1, step 1 · step 34 of 4 steps now; Phase 5 kept 2
The other two on their ownT-MCP-1 · T-ACCT-1's check4 of 4 steps and 4 of 4 questions each
The preview page/pages/phase4/trainingseach 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-1the 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

  1. D38, the library's own words. Each file gets an optional # Library section. Every entry is a ## block in the grammar of the step or question it replaces, naming that one by id:. A step keeps its scene, motion and instead unless the entry says otherwise, and a question keeps the step it verifies. parse.ts reads it into Training.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.ts reads 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.ts checks the library words too. The words, every sentence through check-brand-voice (productUI) with zero violations:
    • T-MCP-1: step what-happened ("What happens when an agent connects a server") and question q-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 question q-record, whose finding version said "this training answers that record".
    • T-SECRETS-1: steps what-happened ("How a key ends up in a prompt") and this-key ("What to do if a key reached a model"). q-revoke comes back with this-key and needs no words of its own. The library fills modelGot as "receives it" so the secret-prompt scene 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.md shows library in the JSON, and the /training skill writes the section and takes the training from the library. handoff.md's library section and hash example are updated.
  2. D39, the self-taken record on the finding. useTrainingMock gives 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.
  3. 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 (readSelfTaken in reports.ts, ReportSelfTaken.vue). It is read as a strength, answers no finding (so it isn't in Corrections), and its source is training.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.
  4. The scene gallery and the sanctioned-list fix 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

  1. The form (D38): a # Library section, chosen over a library: 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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. policyId becomes optional beside a topic (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.self with 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.

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:

  1. The form: as proposed (D45). The # Library section.
  2. The version: as proposed (D46). All three stay at v1; the hashes moved.
  3. Where in Posture: as proposed (D47). Its own section in the Compliance report, not in the Executive Summary.
  4. The lab record's date: as proposed (D48). The world's clock.
  5. 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.

Qpoint Brand Style Guide