AI-Slop Typography Audit
Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com.
Use When
- Reviewing an existing artifact (site, DOCX/PPTX/PDF, UI screen) for typographic slop.
- A deliverable "feels AI-generated" and you need to find and fix the tells.
- Gate-checking a product before it ships under the Chwezi name.
Do Not Use When
- Choosing fonts from scratch — use
font-selection-and-pairing.
- The artifact has no type, or fonts are fixed by a binding brand guideline.
Required Inputs
| Input |
Supplied by |
Required? |
Why |
| Rendered artefact and styles |
Requester |
yes |
Enables visual and source inspection |
| Audience, medium, and voice |
Brief or owner |
yes |
Tests contextual fitness |
| Current doctrine and banned list |
Design engine |
yes |
Prevents stale findings |
- The artifact or its source (CSS/HTML, the document file, screenshots, or a style spec).
- The intended context and design voice (so the remediation maps to the right font category).
Workflow
- Detect primary typefaces. Read the CSS
font-family stacks / document style / theme.
Flag any banned face from doctrine/references/ai-slop-banned-fonts.md used as primary,
and flag bare system stacks used alone.
- Detect secondary slop. Flag Space Grotesk/Poppins/Montserrat/Nunito and standalone
Source Sans used as the distinctive choice.
- Detect structural slop: one font for everything; mid-weights only (no extremes);
near-identical size steps; wide-tracked body; pure-black body text.
- Score each finding (primary-font slop is critical; structural slop is major/minor).
- Remediate deliberately: propose a non-slop pairing + scale for the artifact's category via
font-selection-and-pairing; state the replacement and reason.
- Report findings → fixes, with before/after.
Anti-Patterns
- Swapping Inter for another single sans and calling it fixed.
- Removing a banned font but keeping monotype, timid weights, or wide-tracked body.
- Calling a face slop from personal taste alone; cite the current list or a documented convergence tell.
- Recommending an unlicensed or unavailable replacement; route the brief through selection and scan.
- Auditing only headings; inspect body, controls, data, errors, and responsive states too.
Outputs
| Output |
Consumer |
Evidence / acceptance |
| Typography finding register |
Designer and owner |
Location, tell, severity, evidence, and rule |
| Gate verdict |
Pre-launch QA |
PASS, CONDITIONAL, or BLOCKED with rationale |
| Replacement brief |
Typeface selector |
Role, voice, hierarchy, and constraints |
- A findings list (each tagged critical/major/minor with the rule it breaks) and a stated,
non-slop remediation ready to apply.
Examples
- Use the worked example in
examples/ as the required findings-to-remediation model.
Quality Standards
- Tie every finding to visible evidence and a current doctrine rule; taste alone is insufficient.
- Inspect display, body, data, and state text at representative sizes and widths.
- Block release for a banned primary face or faux typography until remediated and re-audited.
Decision Rules
| Condition |
Decision |
Wrong-choice failure |
| Primary face is currently banned |
Block and replace |
Convergent type ships |
| Face is allowed but hierarchy is timid |
Fail the system, not the family |
Font swap is mistaken for design |
| Distinctiveness harms readability |
Find another authored option |
Novelty excludes users |
| Evidence is subjective dislike only |
Record critique, not gate failure |
Taste becomes doctrine |
Capability Contract
Read and visual inspection are required. Review remains read-only unless remediation is requested. Search may inspect styles; rendering is preferred. Current-definition research routes to the doctrine-refresh skill.
Degraded Mode
Without styles, audit the render and mark causes unverified. Without a render, return a checklist and do not issue a pass. If doctrine currency is uncertain, stop and route to refresh.
examples/typography-audit-filled.md — a filled audit of a sample SaaS landing-page stylesheet
(Inter body + Geist display + Space Grotesk accent over a bare system stack): each banned and
secondary-slop face detected with the rule it breaks, scored critical/major/minor, then one
deliberate non-slop remediation (Bricolage Grotesque 800 -> Hanken Grotesk 400, 03 Modern
Product / Grotesque) mapped
finding-by-finding with the before/after CSS.
References
doctrine/references/ai-slop-banned-fonts.md, pairing-principles.md,
type-scale-and-spacing.md.
1---2name: ai-slop-typography-audit3description: Use when auditing an existing artefact for banned or convergent type, weak hierarchy, monotype systems, or unstated choices. Unlike visual-product-slop-audit, this inspects typography only; font selection owns the replacement design.4---56# AI-Slop Typography Audit7Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com.89<!-- dual-compat-start -->10## Use When1112- Reviewing an existing artifact (site, DOCX/PPTX/PDF, UI screen) for typographic slop.13- A deliverable "feels AI-generated" and you need to find and fix the tells.14- Gate-checking a product before it ships under the Chwezi name.1516## Do Not Use When1718- Choosing fonts from scratch — use `font-selection-and-pairing`.19- The artifact has no type, or fonts are fixed by a binding brand guideline.2021## Required Inputs2223| Input | Supplied by | Required? | Why |24|---|---|---|---|25| Rendered artefact and styles | Requester | yes | Enables visual and source inspection |26| Audience, medium, and voice | Brief or owner | yes | Tests contextual fitness |27| Current doctrine and banned list | Design engine | yes | Prevents stale findings |2829- The artifact or its source (CSS/HTML, the document file, screenshots, or a style spec).30- The intended context and design voice (so the remediation maps to the right font category).3132## Workflow33341. **Detect primary typefaces.** Read the CSS `font-family` stacks / document style / theme.35 Flag any banned face from `doctrine/references/ai-slop-banned-fonts.md` used as primary,36 and flag bare system stacks used alone.372. **Detect secondary slop.** Flag Space Grotesk/Poppins/Montserrat/Nunito and standalone38 Source Sans used as the distinctive choice.393. **Detect structural slop:** one font for everything; mid-weights only (no extremes);40 near-identical size steps; wide-tracked body; pure-black body text.414. **Score** each finding (primary-font slop is critical; structural slop is major/minor).425. **Remediate deliberately:** propose a non-slop pairing + scale for the artifact's category via43 `font-selection-and-pairing`; state the replacement and reason.446. **Report** findings → fixes, with before/after.4546## Anti-Patterns4748- Swapping Inter for another single sans and calling it fixed.49- Removing a banned font but keeping monotype, timid weights, or wide-tracked body.50- Calling a face slop from personal taste alone; cite the current list or a documented convergence tell.51- Recommending an unlicensed or unavailable replacement; route the brief through selection and scan.52- Auditing only headings; inspect body, controls, data, errors, and responsive states too.5354## Outputs5556| Output | Consumer | Evidence / acceptance |57|---|---|---|58| Typography finding register | Designer and owner | Location, tell, severity, evidence, and rule |59| Gate verdict | Pre-launch QA | PASS, CONDITIONAL, or BLOCKED with rationale |60| Replacement brief | Typeface selector | Role, voice, hierarchy, and constraints |6162- A findings list (each tagged critical/major/minor with the rule it breaks) and a stated,63 non-slop remediation ready to apply.6465## Examples6667- Use the worked example in `examples/` as the required findings-to-remediation model.6869## Quality Standards7071- Tie every finding to visible evidence and a current doctrine rule; taste alone is insufficient.72- Inspect display, body, data, and state text at representative sizes and widths.73- Block release for a banned primary face or faux typography until remediated and re-audited.7475## Decision Rules7677| Condition | Decision | Wrong-choice failure |78|---|---|---|79| Primary face is currently banned | Block and replace | Convergent type ships |80| Face is allowed but hierarchy is timid | Fail the system, not the family | Font swap is mistaken for design |81| Distinctiveness harms readability | Find another authored option | Novelty excludes users |82| Evidence is subjective dislike only | Record critique, not gate failure | Taste becomes doctrine |8384## Capability Contract8586Read and visual inspection are required. Review remains read-only unless remediation is requested. Search may inspect styles; rendering is preferred. Current-definition research routes to the doctrine-refresh skill.8788## Degraded Mode8990Without styles, audit the render and mark causes unverified. Without a render, return a checklist and do not issue a pass. If doctrine currency is uncertain, stop and route to refresh.9192- `examples/typography-audit-filled.md` — a filled audit of a sample SaaS landing-page stylesheet93 (Inter body + Geist display + Space Grotesk accent over a bare system stack): each banned and94 secondary-slop face detected with the rule it breaks, scored critical/major/minor, then one95 deliberate non-slop remediation (Bricolage Grotesque 800 -> Hanken Grotesk 400, 03 Modern96 Product / Grotesque) mapped97 finding-by-finding with the before/after CSS.9899## References100101- `doctrine/references/ai-slop-banned-fonts.md`, `pairing-principles.md`,102 `type-scale-and-spacing.md`.103<!-- dual-compat-end -->