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?
- Yes — interview transcript or detailed session notes exist → proceed through Gate 1 with the transcript as primary source
- No — only a pre-written draft, a brief, or no source material exists → stop here. Do not run Gate 1 yet. Go to
06-sop-consultant-methodology.mdand conduct the extraction interview first. A gap report listing everything as OPEN with no interview scheduled is not a path forward — it is a blocked build.
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
- [ ] Extraction interview transcript or session notes are available for this specific process
- [ ] If a pre-written draft exists, it has been reviewed and all content items not covered by the draft have been identified as gaps
- [ ] Reference data file has been read for this client
- [ ] All team member names and tool names in source material have been verified against reference data
Process Owner
- [ ] Process owner has been explicitly designated — by name, not by role inference
- [ ] Designation came from the firm owner or from the extraction interview, not from inference
- [ ] If process owner is not yet designated: flagged in gap report, build stopped
Team Roster
- [ ] Every team member involved in this process has been named in the extraction
- [ ] Every team member named in the source material exists in reference data (or reference data has been updated to include them)
- [ ] Each person's specific responsibilities in this process have been confirmed (not their general job description)
Process Structure
- [ ] Phase names and boundaries have been confirmed (or the process is confirmed to have no phases)
- [ ] Decision points in the process have been identified
- [ ] Exception paths have been captured
Step-Level Detail
- [ ] Step names have been confirmed for all steps
- [ ] Step ownership has been confirmed individually for each step
- [ ] What/When/Who has been captured for each step
Gap Report Status
- [ ] All gaps identified are listed in the gap report
- [ ] Every gap is either RESOLVED or has a documented resolution path with advisor sign-off
- [ ] No gap is marked RESOLVED by inference or assumption — each has a specific answer from a specific source
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)
| # | Check | Points |
|---|---|---|
| 1 | No mojibake sequences present (â€", â•, ·, â†', or similar) | 7 |
| 2 | No BOM at start of file | 4 |
| 3 | File written by main conversation Write tool — not PowerShell, not a background agent | 4 |
Encoding failures are blocking. A file with encoding artifacts does not ship regardless of total score.
Content Accuracy (30 points)
| # | Check | Points |
|---|---|---|
| 4 | Process owner is the person designated during extraction — not a role assumption | 4 |
| 5 | No team member appears in the roster who was not confirmed during extraction | 4 |
| 6 | Every team member in the roster exists in reference data (or reference data was updated) | 3 |
| 7 | Step ownership confirmed per step — not inherited from the process owner | 4 |
| 8 | Phase names and boundaries match what was captured during extraction | 3 |
| 9 | Status tags (if present) match the client's actual tool configuration or were confirmed during extraction | 3 |
| 10 | Parking lot items came from the extraction or documented advisor observation — not invented | 2 |
| 11 | Every proper noun (tool names, team names, process names) matches reference data | 3 |
| 12 | No content drawn from the golden example as a source | 2 |
| 13 | If a pre-written draft was the only source: every item not in the draft is either from extraction or flagged | 2 |
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)
| # | Check | Points |
|---|---|---|
| 14 | Every team member name matches reference data spelling exactly | 3 |
| 15 | Every tool name matches reference data spelling exactly | 3 |
| 16 | Company name matches reference data exactly | 2 |
| 17 | No transcript misspellings carried through (e.g., "Financial Sense" → "Financial Cents") | 2 |
Structure (15 points)
| # | Check | Points |
|---|---|---|
| 18 | All required sections present in correct order | 4 |
| 19 | Version badge present with correct status (Active or Draft) and correct color | 2 |
| 20 | Header includes process name and client brand name | 2 |
| 21 | Footer: client brand name (line 1) + document title · version · month year (line 2) | 3 |
| 22 | No "Advisory OS" or consultant name in footer | 2 |
| 23 | Review Schedule includes: owner, last updated date, next review trigger, version notes | 2 |
Human SOP — Type-Specific (25 points)
Skip this section for Agent SOPs. Run Agent SOP checks instead.
| # | Check | Points |
|---|---|---|
| 24 | No prohibited patterns: Mermaid (0), .context-checkbox (0), Tailwind green #22c55e (0) | 5 |
| 25 | Required patterns present: .context-bar, brand green #3d7a5f, navy #122640, cream rgba(248, 247, 244 | 4 |
| 26 | Step numbers: Cormorant Garamond, 1.75rem, weight 400, color #122640, opacity 0.45, no border-radius, no background, plain digits (1 not 01) | 3 |
| 27 | Phase divider opacities: Active 0.04, Review 0.04, Setup 0.06 | 3 |
| 28 | Step note colors: Gate #dc2626/#fef2f2, Flag #ca8a04/#fefce8, Pending #122640/#f0f4ff | 4 |
| 29 | Dark background text: all cream at opacity — no gold, no green, no white, no phase colors | 3 |
| 30 | Section order correct: Header → Overview → Team Roster → Before → Flow → Guide → Recurring → Rhythm → Quick Ref → Parking Lot → Review → Footer | 3 |
Agent SOP — Type-Specific (25 points)
Skip this section for Human SOPs. Run Human SOP checks instead.
| # | Check | Points |
|---|---|---|
| 24 | Executable workflow block present (.workflow-block) with copy button (.copy-btn) | 8 |
| 25 | JetBrains Mono loaded; workflow content color #f8f7f4; copy button copied state: gold bg, navy text | 4 |
| 26 | Team roster is a single owner line — no grid, no role badges | 4 |
| 27 | Section order correct: Header → Overview → Before You Begin → Flow → Process Guide → Executable Workflow → Recurring Checkpoint → Review → Footer | 5 |
| 28 | Absent sections confirmed absent: no phase dividers, no Monthly Rhythm, no Quick Reference, no Parking Lot | 4 |
Visual Verification (5 points)
All or nothing — 5 points if completed and passed, 0 if skipped.
| # | Check | Points |
|---|---|---|
| 31 | File opened in browser and visually inspected — all items below confirmed | 5 |
Visual check items (all required to claim the 5 points):
- Flow diagram lines connect — no gaps, no floating elements
- T-junction crossbar aligns with vertical drops (if present)
- Text readable on all backgrounds (contrast check)
- Step cards expand and collapse correctly (Human SOP)
- Copy button functions — click → copied → gold state (Agent SOP)
- Footer displays correctly at bottom
- No horizontal scroll on desktop
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
| Category | Points |
|---|---|
| Encoding | 15 |
| Content Accuracy | 30 |
| Reference Data Compliance | 10 |
| Structure | 15 |
| Type-Specific (Human or Agent) | 25 |
| Visual Verification | 5 |
| Total | 100 |
Pass threshold: 90/100
Blocking failures (must fix regardless of score):
- Any encoding artifact
- Any invented content (process owner assumed, team member fabricated, content from golden example)
- Visual verification not completed
After any revision: Return to Gate 2 and run all checks again. A fix may introduce a new issue.
Common Failure Modes
| Failure | What It Looks Like | Root Cause | Fix |
|---|---|---|---|
| Process owner assumed from role | SOP assigns ownership to the Accounting Manager because she's the most senior operator, but no one designated her | Pre-written draft arrived without extraction; gap not flagged | Stop build, flag gap, get explicit designation from firm owner |
| Fabricated team members | SOP roster lists names not in reference data, with roles that sound plausible | Agent filled team roster from golden example or invented from process context | Stop build, audit every name against reference data, fill from extraction only |
| Phase structure copied from golden example | SOP phases are named "Active Close / Review & Delivery / Set Up Next Month" for a process that has nothing to do with month-end close | Golden example treated as content source, not styling reference | Rebuild phases from extraction; golden example is CSS only |
| Step ownership inherited from process owner | Every step shows the same owner tag; no differentiation across the team | Step ownership not confirmed per step during extraction | Return to extraction notes; confirm per-step ownership; if missing, flag gaps |
| Encoding artifacts in delivered file | File contains â€", â•, ·, or similar sequences visible in the browser | File written by PowerShell or a background agent; BOM + Windows-1252/UTF-8 mismatch | Always 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 document | Reference data not read before build; source material misspellings carried through | Read reference data first, every time; all proper nouns override transcript spellings |
| Parking lot items invented | Parking lot contains plausible-sounding future improvements with no extraction basis | Agent filled section because the section exists and the golden example has items | Delete invented items; parking lot is populated from extraction only |
| Draft treated as complete source | SOP built from a 2-page PDF with no extraction; major sections thin or missing | Gap protocol not run before build started | Run Gate 1 before every build; draft-only sources always have gaps |
| Visual verification skipped | Encoded file delivered without browser check; flow diagram has gaps, step cards don't expand | Production pressure; assumption that code-based checks are sufficient | Visual verification is non-negotiable; code checks and browser checks catch different things |
| Golden example CSS values not extracted | SOP uses wrong opacity values, wrong step number size, wrong phase divider tint | Builder worked from memory rather than opening the golden example file | Open the golden example file for every build; extract values explicitly before writing CSS |