← Vault Index
Source: frameworks/kit-sop/04-sop-quality.md

Quality — SOP QC Checklists

Gate 1: Binary — all items must pass before building starts. No scoring. No partial credit. A single failure stops the build.

Gate 2: Weighted — 100 points total. Pass threshold: 90/100. Run after every build and after every revision.

Both gates must pass before any SOP is delivered.


Gate 1 — Pre-Build (Gap Protocol)

Run this before opening the build skill. Any failure stops the build. Produce a gap report and resolve before proceeding.

Routing Check — Run This First

Is an extraction interview available for this process?

If the advisor confirms that a draft-only build is intentional (e.g., producing a working draft for client review before a full extraction) — document that decision, label the output clearly as a working draft, and proceed with the understanding that significant gaps will exist and the SOP is not production-ready.

Source Material

Process Owner

Team Roster

Process Structure

Step-Level Detail

Gap Report Status


Gate 2 — Post-Build (100 points, 90+ to pass)

Run in this order. Encoding first — any encoding failure is blocking regardless of score.


Encoding (15 points)

#CheckPoints
1No mojibake sequences present (â€", â•, ·, â†', or similar)7
2No BOM at start of file4
3File written by main conversation Write tool — not PowerShell, not a background agent4

Encoding failures are blocking. A file with encoding artifacts does not ship regardless of total score.


Content Accuracy (30 points)

#CheckPoints
4Process owner is the person designated during extraction — not a role assumption4
5No team member appears in the roster who was not confirmed during extraction4
6Every team member in the roster exists in reference data (or reference data was updated)3
7Step ownership confirmed per step — not inherited from the process owner4
8Phase names and boundaries match what was captured during extraction3
9Status tags (if present) match the client's actual tool configuration or were confirmed during extraction3
10Parking lot items came from the extraction or documented advisor observation — not invented2
11Every proper noun (tool names, team names, process names) matches reference data3
12No content drawn from the golden example as a source2
13If a pre-written draft was the only source: every item not in the draft is either from extraction or flagged2

Content accuracy failures are blocking. Any invented content — fabricated team member, assumed process owner, content from the golden example — must be fixed before delivery regardless of total score.


Reference Data Compliance (10 points)

#CheckPoints
14Every team member name matches reference data spelling exactly3
15Every tool name matches reference data spelling exactly3
16Company name matches reference data exactly2
17No transcript misspellings carried through (e.g., "Financial Sense" → "Financial Cents")2

Structure (15 points)

#CheckPoints
18All required sections present in correct order4
19Version badge present with correct status (Active or Draft) and correct color2
20Header includes process name and client brand name2
21Footer: client brand name (line 1) + document title · version · month year (line 2)3
22No "Advisory OS" or consultant name in footer2
23Review Schedule includes: owner, last updated date, next review trigger, version notes2

Human SOP — Type-Specific (25 points)

Skip this section for Agent SOPs. Run Agent SOP checks instead.

#CheckPoints
24No prohibited patterns: Mermaid (0), .context-checkbox (0), Tailwind green #22c55e (0)5
25Required patterns present: .context-bar, brand green #3d7a5f, navy #122640, cream rgba(248, 247, 2444
26Step numbers: Cormorant Garamond, 1.75rem, weight 400, color #122640, opacity 0.45, no border-radius, no background, plain digits (1 not 01)3
27Phase divider opacities: Active 0.04, Review 0.04, Setup 0.063
28Step note colors: Gate #dc2626/#fef2f2, Flag #ca8a04/#fefce8, Pending #122640/#f0f4ff4
29Dark background text: all cream at opacity — no gold, no green, no white, no phase colors3
30Section order correct: Header → Overview → Team Roster → Before → Flow → Guide → Recurring → Rhythm → Quick Ref → Parking Lot → Review → Footer3

Agent SOP — Type-Specific (25 points)

Skip this section for Human SOPs. Run Human SOP checks instead.

#CheckPoints
24Executable workflow block present (.workflow-block) with copy button (.copy-btn)8
25JetBrains Mono loaded; workflow content color #f8f7f4; copy button copied state: gold bg, navy text4
26Team roster is a single owner line — no grid, no role badges4
27Section order correct: Header → Overview → Before You Begin → Flow → Process Guide → Executable Workflow → Recurring Checkpoint → Review → Footer5
28Absent sections confirmed absent: no phase dividers, no Monthly Rhythm, no Quick Reference, no Parking Lot4

Visual Verification (5 points)

All or nothing — 5 points if completed and passed, 0 if skipped.

#CheckPoints
31File opened in browser and visually inspected — all items below confirmed5

Visual check items (all required to claim the 5 points):

Visual verification is blocking. A file that has not been opened in a browser and visually inspected does not ship regardless of total score.


Scoring Summary

CategoryPoints
Encoding15
Content Accuracy30
Reference Data Compliance10
Structure15
Type-Specific (Human or Agent)25
Visual Verification5
Total100

Pass threshold: 90/100

Blocking failures (must fix regardless of score):

After any revision: Return to Gate 2 and run all checks again. A fix may introduce a new issue.


Common Failure Modes

FailureWhat It Looks LikeRoot CauseFix
Process owner assumed from roleSOP assigns ownership to the Accounting Manager because she's the most senior operator, but no one designated herPre-written draft arrived without extraction; gap not flaggedStop build, flag gap, get explicit designation from firm owner
Fabricated team membersSOP roster lists names not in reference data, with roles that sound plausibleAgent filled team roster from golden example or invented from process contextStop build, audit every name against reference data, fill from extraction only
Phase structure copied from golden exampleSOP phases are named "Active Close / Review & Delivery / Set Up Next Month" for a process that has nothing to do with month-end closeGolden example treated as content source, not styling referenceRebuild phases from extraction; golden example is CSS only
Step ownership inherited from process ownerEvery step shows the same owner tag; no differentiation across the teamStep ownership not confirmed per step during extractionReturn to extraction notes; confirm per-step ownership; if missing, flag gaps
Encoding artifacts in delivered fileFile contains â€", â•, ·, or similar sequences visible in the browserFile written by PowerShell or a background agent; BOM + Windows-1252/UTF-8 mismatchAlways write files through the main conversation's Write tool; run encoding check before delivery
Transcript misspellings in SOP"Financial Sense," "Jennifer," "Ashlyn" appear in the documentReference data not read before build; source material misspellings carried throughRead reference data first, every time; all proper nouns override transcript spellings
Parking lot items inventedParking lot contains plausible-sounding future improvements with no extraction basisAgent filled section because the section exists and the golden example has itemsDelete invented items; parking lot is populated from extraction only
Draft treated as complete sourceSOP built from a 2-page PDF with no extraction; major sections thin or missingGap protocol not run before build startedRun Gate 1 before every build; draft-only sources always have gaps
Visual verification skippedEncoded file delivered without browser check; flow diagram has gaps, step cards don't expandProduction pressure; assumption that code-based checks are sufficientVisual verification is non-negotiable; code checks and browser checks catch different things
Golden example CSS values not extractedSOP uses wrong opacity values, wrong step number size, wrong phase divider tintBuilder worked from memory rather than opening the golden example fileOpen the golden example file for every build; extract values explicitly before writing CSS