Quality (QMS + PI-CoE)
"I built a system around these ideas at every company I worked for, regardless of industry — aerospace, legal, healthcare. It was always a hit. Basically it allowed me to capture metrics for human operations outside of computer systems through error logging, root cause analysis, corrective actions. I would stack rank employees using metrics blended from computed productivity stats from our various systems plus my custom quality metrics from human driven systems. Now with AI we have a third wrinkle."
>
— Christopher Bender
The Quality module is that career-long framework, rebuilt with AI as the third measurement lane. The unifying observation: every type of work gets SPC, regardless of who's doing it — a human, a computer system, or an AI agent. Same dashboard literacy applied uniformly.
QMS and PI-CoE turn out to be the same module — they share one loop (defect → root cause → corrective action → effectiveness check) viewed through two doctrines (ISO 9001 reactive vs lean improvement proactive). Accelerando ships the shared substrate first.
The shared loop
Five entities form the spine:
- Defect — what went wrong.
source∈human/system/ai. For AI-source:composition_id+audit_log_idback-link to the SPC dashboard so the dot on the latency chart is the same row in the defect log. - RootCause — 5-Why / Ishikawa / fault-tree / narrative. Creating one auto-advances the Defect from
opentoin_analysis. - CorrectiveAction — action + owner + due + 90-day effectiveness check. Creating one auto-advances the Defect to
capa_assigned. Creating it sets the effectiveness_check_due 90 days out by default (QMS doctrine: "a CAPA without an effectiveness check is theater"). - ProcessMetric — what we're measuring (cycle time, error rate, throughput). Direction (higher_is_better / lower_is_better), baseline, target, critical, decay_per_week.
- MetricReading — one observation against a metric, with notes.
The closure
verify_corrective_action_effectiveness is the loop-closing tool:
- effective → parent Defect.status =
closed, closed_at stamped - ineffective → parent Defect.status =
recurring, system now tracks it as a systemic issue. The next CAPA on the same root cause can be flagged viarecurrence_of.
That status flip is the QMS-grade enforcement of "ineffective CAPAs trigger systemic investigation." Most QMS implementations don't enforce this — they accumulate CAPAs and the effectiveness checks never happen.
Process metric sustainability — src/qms.ts
The PI-CoE thesis: improvements decay if not actively sustained.
// Sustainability score: start at 100, erode per week, restore on-target
score -= weeks_since_last_reading × decay_per_week
score += isCritical ? -15 : (!inTarget ? -8 : +5)
// bounded [0, 100]
Status ladder: ≥85 healthy, ≥50 drifting, <50 regressed. Default decay_per_week = 1, so 15 weeks of inactivity drops a perfectly-healthy metric to drifting — exactly when real-world backsliding becomes visible.
Nelson Rules (1: any >3σ point, 2: 9 consecutive same-side, 3: 6 consecutive monotonic) flag drift on the *reading distribution*, not just threshold crossings. Rule 3 is the early warning — a trend toward regression is detectable 3-4 weeks before it crosses a threshold.
The Process Metrics view
Per-metric row: owner, latest, target, 90d sparkline with target+critical dashed lines + Nelson-rule-colored points, sustain pill (green/amber/red), status pill. Drawer for one metric:
- Metric config (baseline, target, critical, direction, decay)
- 90d chart with σ bands + thresholds
- μ / σ / N
- Inline record-reading form
- Last 30 readings with per-reading Nelson rule fires
Same SPC visual vocabulary the tool-latency dashboard uses. Literacy transfers.
The Operator Scorecard — the blender
The three-lane composite. operator_scorecard aggregates over every distinct actor seen in any of: audit_log.actor (AI work) + Defect.source_actor / assignee_id (human ops + system errors) + CorrectiveAction.owner_actor + LearnerProfile.email (LMS).
For each actor with data, computes a weighted blend:
- 40% AI tool-call SPC —
success_rate × 0.6 + accept_rate × 0.4when reviews exist; else just success_rate - 20% Defects — 100 - (10 × caused) - (3 × open-assigned), floored at 0
- 20% CAPA effectiveness —
effective / (effective + ineffective); 70 if owned but unverified - 20% LMS — LearnerProfile.overall_compliance
Lanes with no data drop out and the weights re-normalize. An actor with only AI work still gets a meaningful score.
Sorted lowest-composite first — the manager's attention list. Pill color: green ≥90, amber 75-89, yellow 60-74, red below. Hover the cell to see the lane breakdown.
Lane-agnostic by design
The unifying claim: a human-entered wrong dosage, an AI-generated wrong CPT code, and a computer-system rounding error are all *Defect* rows. The source field tells the dashboard which lane this came from; the loop (RCA → CAPA → effectiveness) is identical regardless.
That's the framework Christopher built at every employer; AI is the new third lane the original two-lane system couldn't have. The same SPC discipline runs across all three. Same dashboard. Same charts. Same questions ("is this stable? what changed? who needs help?").
What's deferred
The full QMS surface from the agicore-examples reference (agicore-examples/accelerando/qms) adds 10 more entities — InternalAudit, AuditFinding, ManagementReview, ManagementReviewAction, DocumentControl, Calibration, CustomerComplaint, SupplierAssessment, QualityObjective, RiskOpportunity. The PI-CoE side (accelerando/pi-coe) adds 14 — KaizenEvent, ControlPlan, FiveSSurvey, BeltCertification, StandardWork, WasteObservation, LessonsLearned, etc. They all extend the existing Defect + ProcessMetric spine without redesigning it.
For now: the spine is shipped, the scorecard is the artifact, the demo path is *the operator scorecard with three lanes lit up*.