Skip to content

Wave 2 (CPTO cluster) — Q&R independent four-test stratified sample

Guide

<!-- last-reviewed: 2026-06-01 · owner: Quality & Risk (Director) -->

Wave 2 (CPTO cluster) — Q&R independent four-test stratified sample

  • Date: 2026-06-01 · By: Quality & Risk Director (second line, independent)
  • Scope: Wave 2 corpus of the Documentation & Knowledge Program — CPTO cluster, 15 agents, 6 units + the cluster operating-model. Anti-theater gate (master plan §1.3, R1/R11).
  • Method: independent read of the artifacts on disk + logic-trace of the two gate scripts against their source and spec. No artifacts edited (independence). No git, no archive/ touch. Findings route to owners (below).
  • Verdict: PASS WITH CONDITIONS (3 Medium / 1 Low; gate is real and GREEN; no Critical, no High; the conditions are freshness/consistency defects in prose tables, not in any reconciled Interface Contract).

1. Sample design (frame · size · stratification)

Frame. The Wave-2 population: 7 charters/operating-model, the Wave-2 role manuals, 27 SOPs (SOP-041…070, IDs 046/047 reserved), the Wave-2 job aids/playbooks, 15 Phase-0 reviews, 1 knowledge entry, and the mechanism updates (triggers/registry/ register).

Stratification (altitude × Lead-vs-member × unit), ≥1 artifact per Wave-2 unit, members oversampled, both flagged seams traced end-to-end:

Stratum Sampled artifact(s)
Cluster / Macro docs/units/cpto-cluster/operating-model.md; docs/units/design-research/charter.md
SOP — CPTO (Lead) SOP-042 (phase-gate decision)
SOP — Innovation (Lead) SOP-044 (Ideate→Plan handoff)
SOP — Design Research (member) SOP-050 (learning design / Instructional Designer); SOP-052 (wireframe / UX Designer)
SOP — Engineering (Lead + member) SOP-054 (intake hub, Director); SOP-056 (build/bugfix, Staff Eng)
SOP — Data & Analytics (member) SOP-060 (event schema, Director); SOP-062 (pipeline upkeep, Analytics Eng)
SOP — AI Systems (Lead + member) SOP-064 (prompt review); SOP-065 (model selection); SOP-067 (AI Eng build/eval)
SOP — Product (Lead) SOP-068 (backlog); SOP-069 (acceptance criteria); SOP-070 (roadmap)
Finance consuming side (H4 sink) SOP-028 (ledger upkeep)
Manual (member) docs/units/data-analytics/manuals/analytics-engineer.md
Playbooks docs/units/engineering/playbook.md; docs/units/ai-systems/playbook.md
Knowledge docs/knowledge/2026-06-01-intranet-build-and-deploy-constraints.md + docs/knowledge/README.md index
Mechanism docs/handoff-triggers.md (Wave-2 block); docs/sop/registry.md; docs/handoff-register.md; scripts/handoff-reconcile.mjs; scripts/km-index-check.mjs
N/A justifications (R11) DR playbook N/A — accrue; SOP-064/065 job-aid N/A; SOP-054 job-aid N/A; reserved SOP-046/047

Sample size ~25 artifacts + both scripts — sufficient for a stratified conformance read on a 27-SOP wave; members deliberately oversampled because member SOPs are where ungrounded scope and dead handoffs hide.


2. Four tests — results

Each sampled artifact assessed: Executable (a fresh instance could run it) · Non-redundant (links to canon, does not restate) · Falsifiable (names files / commands / triggers) · Interlocking (IC counterparties named + the matching edge declared on the other side).

Overall: all sampled SOPs pass all four tests. Highlights and the one real-content issue (SOP-069 input ordering) below; the conditions are §4.

  • SOP-042 / 044 (Ideate→Plan seam) — pass. Synonym-fold is consistent across the producer (SOP-044 emits gate package ready → CPTO / Project Manager) and consumers (SOP-042 line 14 → Project Manager · gate package ready; SOP-068 line 9; SOP-070 line 10). concept approved for plan / concept brief accepted correctly folded (triggers registry lines 110-114). Falsifiable (names gate criteria in docs/methodology.md, the exact triggers). Interlocking via CPTO’s <gate-deliverable producer> review requested sink (SOP-042 line 11).
  • SOP-054 (Engineering intake hub) — pass; traced end-to-end (see §3).
  • SOP-050 / 052 (DR members) — pass. SOP-050’s two requirements issued outputs to AI Systems Director and DA Director are genuinely absorbed by those Directors’ declared sinks (verified: SOP-064 line 10 and SOP-060 line 11 each declare ... ← from <issuing unit> · requirements issued). SOP-052’s approved spec → Engineering Director · requirements issued absorbed by SOP-054’s requirements issued sink (line 10). Both correctly hold their structural/pedagogical-vs-visual and criteria-vs-weights boundaries.
  • SOP-060 / 062 (D&A) — pass; SOP-062 traced as H4 producer (see §3).
  • SOP-064 / 065 / 067 (AI Systems) — pass; SOP-065/067 traced as H4 producers (§3). SOP-064 Principal edges correctly exempt (Principal) per §3.1 R2.
  • SOP-068 / 069 / 070 (Product) — pass. draft complete self-edge (SOP-069 line 10, ← from self (SOP-068)) reconciles matched (self) and is registered (triggers line 108). story set accepted → Engineering Director absorbed by SOP-054’s sink (line 12).
  • Manual / playbooks / knowledge entry — pass all four tests. Playbooks cross-link to dated knowledge entries and named line numbers (e.g. sync-content.mjs:46, package.json vite-pin) and do not re-tell them (non-redundant); the knowledge entry is dated, single-topic, and indexed in README (line 28).

3. Seam traces (the two flagged seams)

H4 fan-in — three producers → one Finance sink. INTERLOCKS — clean.

The sink: SOP-028 (Financial Analyst), line 11: money transaction / AI-usage event ← from <usage-data producer> · trigger: \usage data ready` — a **placeholder-producer input**, i.e. the declared fan-in sink (reconcile()addsFinancial Analyst|usage data readytosinks`, scripts/handoff-reconcile.mjs:249-252).

The three producers, all emitting ... → Financial Analyst · usage data ready:

  • SOP-062 line 13 (D&A Analytics Eng — raw token counts, usd_equiv empty)
  • SOP-065 line 12 (AI Systems Director — interpreted model-mix)
  • SOP-067 line 11 (AI Engineer — per-call cost instrumentation)

Each resolves consumer = Financial Analyst (authored), sinks.has('Financial Analyst|usage data ready') is true → each reconciles matched (fan-in), not OVERLAP (OVERLAP is skipped for sink-targeted producers, script lines 272-278). Register rows 111, 116, 122 confirm matched (fan-in). The dollar-boundary discipline is consistent across all three (counts only; Finance computes usd_equiv — SOP-062 DoD line 21, SOP-028 DoD line 18). No defect.

Engineering intake hub (SOP-054) — four declared sinks → upstream producers. INTERLOCKS — clean.

SOP-054 declares four placeholder-producer inputs (lines 9-12): review requested, requirements issued, review passed, story set accepted — four fan-in sinks owned by Engineering Director. Verified producers land on each:

  • review requested ← SOP-056 line 12 (Staff Eng build-green diff) → matched fan-in.
  • requirements issued ← SOP-052 line 17 (UX Designer approved spec); also SOP-031/032 (Legal, Wave 1) → matched fan-in.
  • story set accepted ← SOP-068 line 12 / SOP-069 line 12 (Product) → matched fan-in.
  • review passed ← intra-unit / CPTO arch decision (SOP-041) → pending/matched per wave.

SOP-054’s own outputs (review passed → Staff/Platform, implementation risk raised → Product) reconcile pending because those consumers are not yet authored IC identities — correct for this wave (§3.1.1 R3). No defect.


4. Conditions (must-fix) and findings

M-1 (Medium) — CPTO operating-model: stale “(proposed)” triggers in the cross-cluster table

docs/units/cpto-cluster/operating-model.md §“Cross-cluster interfaces”, lines 126-131. The table still labels triggers (proposed) in angle-bracket syntax (<concept routed for GTM review> (proposed), <product brief delivered> (proposed), <architecture decision notified> (proposed), <concept approved for plan> (proposed), <gate engagement notified> (proposed)). But the Wave-2 registry registered concept routed for GTM review, product brief delivered, and architecture decision notified (docs/handoff-triggers.md lines 105-107); folded concept approved for plan into gate package ready (lines 110-114); and explicitly left gate engagement notified unregistered — “no live edge” (line 125-128). The doc contradicts the now- canonical state of all five rows. Not a reconciler defect (prose table, not an ## Interface Contract block — the reconciler does not parse it), so the gate is unaffected; but it fails the falsifiable/non-redundant bar (a reader cannot trust the table; it names a folded synonym and an unregistered phrase as live “proposed” edges). Owner: CPTO. Fix: update the five rows to the registered phrases (drop angle brackets

  • “(proposed)”); concept approved for plan → gate package ready; mark gate engagement notified as not-registered/no-live-edge.

M-2 (Medium) — Design Research charter: same stale “(proposed)” trigger labels

docs/units/design-research/charter.md §“Collaborators & handoff table”, lines 113-128. Labels gate evidence ready (proposed), research brief issued (proposed), raw synthesis delivered (proposed), and states “They are stubs until registered.” All three are now registered (docs/handoff-triggers.md Wave-2 block, lines 96-100). The member SOPs (SOP-048/049/051/053) already use them as registered phrases, so the charter is internally inconsistent with its own unit’s SOPs. Same class as M-1: prose table, does not break the gate, but fails the falsifiable bar. Owner: Design Research Director. Fix: remove “(proposed)”/“stubs until registered”; cite the Wave-2 block.

M-3 (Medium) — Stale “Astro 5” in agent definitions (carried Wave-2 finding, owner = HR)

The Wave-2 knowledge entry itself flags it (docs/knowledge/2026-06-01-intranet-build-and-deploy-constraints.md lines 20-23): .claude/agents/engineering-director.md (lines 20, 28) still say “Astro 5” while the live stack is Astro 6 (intranet/package.json astro ^6.4.2; CLAUDE.md Tech Stack). The entry says “(Flagged to HR — defs are HR-owned.)” This is a real conformance gap between a stated fact and live reality; it is already routed to the correct owner. I confirm the route and log it as an open control gap, not a new finding against Wave-2 authorship. Owner: Human Resources (agent-def edits are HR’s lane; Q&R does not edit defs). Fix: correct the version refs; confirm closure at next cycle.

L-1 (Low) — SOP-069 Interface Contract edge ordering

docs/sop/SOP-069-acceptance-criteria.md lines 9-14 interleave Inputs/Outputs (Input, Input, Output, Output, Input) — the four-test verdict ← Quality & Risk · review passed input is listed after the outputs. The reconciler is order-insensitive (it filters by direction, script lines 239-240), so this is not a gate defect and all edges reconcile correctly; but the convention in every other Wave-2 SOP is Inputs-then-Outputs grouped, and the break hurts human legibility. Owner: Product Manager. Fix: regroup inputs above outputs (cosmetic; no semantic change).

Note on the Q&R self-edge it created

SOP-069 names Q&R as a counterparty (acceptance criteria → Quality & Risk · review requested; four-test verdict ← Quality & Risk · review passed). Q&R is not yet an authored IC identity in the scanned set, so these reconcile pending (register rows 131, 174) — correct for this wave. Flagged for Q&R’s own future SOP to close the loop.


5. N/A justification sample (R11) — all PASS

  • DR playbook N/A — accrue (docs/units/design-research/charter.md lines 156-164) — exemplary. Cites master plan §6.3 + artifact-matrix §2, names the precise activation trigger (“the first real research study’s first entry”), explains why empty would be theater (R1), and routes members’ Phase-1 entries to the general docs/knowledge/ inbox meanwhile. A model R11 justification.
  • SOP-064 job-aid N/A (“judgement-led; the diff-ready discipline is the procedure itself”, line 89) — PASS; the procedure is the artifact, a cheat-sheet would duplicate.
  • SOP-065 job-aid N/A (“judgement-led; the matrix is the durable reference”, line 103) — PASS; the matrix is the durable reference, cites GR-4.
  • SOP-054 job-aid N/A (“review is judgment work; the convention checklist lives in CLAUDE.md”, lines 86-87) — PASS; correctly points to the one-home checklist and cites GR-4.
  • Reserved SOP-046/047 (docs/sop/registry.md lines 43, 39) — PASS; explicitly “reserved Innovation headroom … an unused number is not a missing SOP.” Registry referential integrity confirmed: all 28 SOP files in the 041…070 range exist on disk (glob), and 046/047 are the only band gaps, matching the registry’s stated reserved set.

6. Gate verification — is the gate real?

I do not have a confirmed shell in this session, so per the Wave-1 precedent I logic-traced the two gate scripts against their source and the spec, and cross- checked against the committed generated register. Stated plainly: these are traces, not executions.

node scripts/handoff-reconcile.mjs — GREEN (logic-traced + register cross-check)

  • The committed, generated docs/handoff-register.md line 13 reports: GREEN — 53 file(s), 224 edge(s), 0 defect(s), 38 registered trigger(s).
  • Trigger count cross-check: registry = 10 (Wave-0) + 14 (Wave-1) + 14 (Wave-2) = 38 distinct phrases (docs/handoff-triggers.md). Matches the register’s 38. loadRegistry() counts the first backtick cell of each table row (script lines 186-190) → 38. Consistent.
  • Every sampled edge reconciles to a non-defect verdict under the script’s rules (traced in §2/§3): fan-in sinks (R1), fan-out (R4), self (SELF), Principal (R2), pending cross-wave (R3). I found no sampled edge that should produce GAP / OVERLAP / UNREGISTERED that the register reports as matched — the register is consistent with the artifacts on disk.

Break test (delete one authored mirror → expect RED) — logic-traced

Hypothetical: delete SOP-062’s output AI-usage / token-count event feed → Financial Analyst · usage data ready (line 13). Trace: SOP-028’s sink still exists but SOP-062 no longer produces; the reconciler’s output loop never sees that edge (no false pass), and the sink is a placeholder input so it is not itself flagged dangling (script line 351). So deleting that row alone would silently pass — it is a fan-in producer, and a sink legitimately absorbs zero-to-many. The sharper break test is to delete a point-to-point mirror: e.g. remove SOP-056’s build-green code change → Engineering Director · review requested (line 12) while leaving SOP-054’s expectation. Because SOP-054 declares review requested as a sink (not a point-to-point input), that too would absorb-to-zero silently. The genuinely RED-producing break is a trigger mutation: change one producer’s registered trigger to an unregistered string (e.g. SOP-067 usage data ready → usage ready). Trace: the unregistered-trigger check (script lines 260-264) fires UNREGISTERED TRIGGER for every edge → `defects.length

0→verdict = RED, process.exit(1)`. This confirms the falsifiable core (verbatim trigger matching) is load-bearing and the gate is not a no-op. Caveat for owners: the fan-in-sink design means a deleted fan-in producer row does not turn the gate RED — the sink absorbs its own absence. That is by design (a sink absorbs many, including none) but it means the gate does not catch a silently dropped fan-in producer. Logged as an observation for Process Engineer (the reconciler’s owner), not a Wave-2 authorship defect. (Revert: no change was made — this is a trace.)

node scripts/km-index-check.mjs — GREEN (logic-traced)

The only Wave-2 knowledge entry, 2026-06-01-intranet-build-and-deploy-constraints.md, is listed in docs/knowledge/README.md (line 28). km-index-check substring-matches each on-disk entry filename against the README (script lines 30-39); all six entries present in the dir appear in the README index → missing.length === 0 → GREEN, exit 0. No defect.


7. Verdict

PASS WITH CONDITIONS.

The Wave-2 corpus is real, not theater: the 27 SOPs are executable, link to canon instead of restating it, name falsifiable files/commands/triggers, and interlock — the two high-risk seams (H4 fan-in to Finance, the SOP-054 Engineering intake hub) trace end-to-end with every counterparty’s matching edge present and correctly classified. The gate is real and GREEN (38 triggers, 0 defects), the falsifiable core (verbatim trigger matching) demonstrably turns RED on a trigger mutation, and the KM index is GREEN. R11 N/A justifications are concrete and well-reasoned (the DR playbook N/A — accrue is a model).

The conditions are freshness/consistency defects in two prose tables (M-1, M-2) that contradict the now-canonical trigger registry, one carried def-staleness gap already routed to HR (M-3), and one cosmetic edge-ordering issue (L-1). None breaks the gate; none is Critical or High. Clear them and re-confirm at the next cycle.

Must-fix list (file · section · owner)

# Sev File · section Owner
M-1 Medium docs/units/cpto-cluster/operating-model.md §Cross-cluster interfaces (lines 126-131) — stale “(proposed)” / angle-bracket triggers; folded + unregistered phrases shown as live CPTO
M-2 Medium docs/units/design-research/charter.md §Collaborators & handoff table (lines 113-128) — “(proposed)”/“stubs until registered” now false Design Research Director
M-3 Medium .claude/agents/engineering-director.md (lines 20, 28) — “Astro 5” vs live Astro 6 (already flagged to HR by the Wave-2 knowledge entry) Human Resources
L-1 Low docs/sop/SOP-069-acceptance-criteria.md (lines 9-14) — Interface Contract input/output not grouped Product Manager

Observations routed (not defects)

  • Fan-in-sink blind spot: a silently deleted fan-in producer row does not turn the reconciler RED (the sink absorbs zero producers as legitimately as many). By design, but worth a CI complement (e.g. a producer-presence assertion). → Process Engineer (reconciler owner).
  • Q&R’s own seam: SOP-069 names Q&R edges (review requested/review passed) that reconcile pending until Q&R authors an IC block. → Q&R (own follow-up).

Routing

M-1 → CPTO · M-2 → Design Research Director · M-3 → Human Resources · L-1 → Product Manager · reconciler observation → Process Engineer. This report hands to the Archivist for preservation. No Critical/High → no Principal escalation required.