# What Anti-Patterns Indicate AI‑Generated Diagrams: A Complete Guide for the diagram-design System

> Discover anti-patterns in AI-generated diagrams. Learn to identify unusual glows, identical nodes, diagonal connectors, and "AI magic" sparkles that signal non-human design.

- Repository: [Cathryn Lavery/diagram-design](https://github.com/cathrynlavery/diagram-design)
- Tags: how-to-guide
- Published: 2026-08-14

---

**AI‑generated diagrams reveal themselves through specific visual anti‑patterns—dark‑mode cyan glows, identical node boxes, diagonal connectors, and "AI magic" sparkles—that violate editorial design standards.**

The **diagram-design** skill from cathrynlavery/diagram-design establishes strict visual rules to distinguish professional diagrams from generative AI output. When these rules are broken, the result is what the maintainers call "AI slop": generic, over‑styled visuals that signal mechanical generation rather than human craft. This guide covers every anti‑pattern defined in the repository, organized by scope and diagram type, with verification scripts you can run today.

---

## Universal Anti‑Patterns: Signs in Every Diagram Type

The [`SKILL.md`](https://github.com/cathrynlavery/diagram-design/blob/main/SKILL.md) file defines **16 universal anti‑patterns** that apply regardless of diagram type. These are the strongest signals of AI‑generated content.

### Visual Style Violations

- **Dark‑mode + cyan or purple glow** — A common AI default that looks "techy" but violates editorial restraint.
- **JetBrains Mono used as a blanket "dev" font** — Context‑aware typography matters; monospace everywhere is a template smell.
- **Identical boxes for every node** — Human designers vary shape and weight by semantic role.
- **Any shadow on elements** — The design system rejects depth effects entirely.
- **Rounded‑2xl corners on boxes** — Excessive rounding is a generative default.
- **Coral used on every "important" node** — Color over‑use indicates automated emphasis without hierarchy.

### Layout and Structural Errors

- **Legend floating inside the diagram area** — Proper legends sit outside the visual field.
- **Three equal‑width summary cards as a default grid** — Generic grids reveal template‑driven output.
- **Re‑producing Mermaid's automatic layout** — AI tools often default to Mermaid; manual layout shows intent.

### Connector and Label Problems

- **Arrow‑label masks that touch the line** — Precise clearance is required.
- **Vertical `writing-mode` text on arrows** — Forced rotation harms readability.
- **Arrow label sitting on or touching its connector** — Mechanical placement without optical correction.
- **Arrow label mask overlapping a node box** — Spatial awareness errors typical of generative tools.
- **Two connectors overlapping or sharing the same path** — Route planning failures.
- **Two connectors sharing a single attach point on a box** — Attachment discipline violations.
- **Diagonal / slanted connectors between off‑axis nodes** — Organic angles that look "designed" but are actually errors.
- **Connector routed behind a non‑endpoint box without need** — Obscured paths that confuse hierarchy.

Running [`skills/diagram-design/scripts/self_check.py`](https://github.com/cathrynlavery/diagram-design/blob/main/skills/diagram-design/scripts/self_check.py) flags these automatically:

```bash
python3 skills/diagram-design/scripts/self_check.py path/to/generated.html

# Output: FAIL Dark mode + cyan/purple glow

```

---

## Type‑Specific Anti‑Patterns: Quadrant Diagrams

The `type‑quadrant.md` file documents failures specific to **quadrant diagrams**, where position conveys meaning.

### Standard Quadrant Errors

| Anti‑pattern | Why It Signals AI |
|-------------|-------------------|
| **Four filled quadrants each with a different colour** | Eliminates positional semantics; looks like a filled template. |
| **Items placed directly on the axis lines** | Destroys the quadrant boundary logic. |
| **Missing axis names** | Axes without labels are meaningless scaffolding. |

### Consultant Variant Violations

The **quadrant consultant variant** has additional strictures in `type‑quadrant.md`:

- **Plain white background** — Must use warm paper + dot pattern.
- **Sans‑serif page title** — Requires **Instrument Serif**.
- **Unnamed cells** — "Scenario 1/2/3/4" placeholders indicate unconfigured generation.
- **Coral on more than one cell** — Single‑emphasis rule violated.
- **3×3 or 2×3 grids** — Wrong grid structure entirely.
- **Positioning dots inside cells** — Should use standard quadrant instead.
- **Bold axis labels, arrow glyphs in text, or "HIGH / LOW" parentheticals** — Breaks prescribed typographic voice.

Verify axis presence with:

```bash
grep -i "axis" path/to/quadrant.svg | grep -v "label"

# Empty result triggers "Missing axis names" anti‑pattern

```

---

## Semantic Anti‑Patterns: "AI Slop" Direct References

The [`semantic-patterns.md`](https://github.com/cathrynlavery/diagram-design/blob/main/semantic-patterns.md) file defines **5 anti‑patterns** that explicitly reference AI‑generated artefacts—the most damning signals of all.

- **"AI magic" sparkle between two boxes** — Visual metaphor for unexplained transformation.
- **Artifact shown as another chat bubble** — Reduces complex outputs to conversational UI cliché.
- **Fields appearing without sources** — Data without provenance.
- **Inventing certainty for missing facts** — Confidence without evidence.
- **Typing animation as the only readable copy** — Prioritizes effect over information.

These patterns "masquerade AI‑generated content as a legitimate schematic" according to the source documentation.

---

## Automated Detection with Verification Scripts

The repository provides **three verification mechanisms** to catch anti‑patterns in CI pipelines.

### Self‑Check: Universal Rules

```bash
python3 skills/diagram-design/scripts/self_check.py path/to/generated.html

```

Reports `FAIL` lines for style violations like dark‑mode glows and font mis‑use.

### Geometry Verification

```python
import subprocess, sys

result = subprocess.run(
    ["python3", "scripts/verify-geometry.py", "path/to/generated.html"],
    capture_output=True, text=True
)

if result.returncode != 0:
    sys.stderr.write(result.stdout)
    # Outputs: diagonal connectors, overlapping arrows, shared attach points

```

Catches connector routing errors and spatial overlaps that human designers avoid.

### SVG Inspection

```bash
grep -i "axis" path/to/quadrant.svg | grep -v "label"

```

Simple text search for structural elements missing required labels.

---

## Key Source Files for Anti‑Pattern Research

| File | Location | Contents |
|------|----------|----------|
| [`SKILL.md`](https://github.com/cathrynlavery/diagram-design/blob/main/SKILL.md) | Repository root | Universal anti‑patterns (16 rules) |
| `type‑quadrant.md` | Type documentation | Quadrant and consultant variant rules |
| [`semantic-patterns.md`](https://github.com/cathrynlavery/diagram-design/blob/main/semantic-patterns.md) | Pattern library | "AI slop" direct references |
| [`scripts/self_check.py`](https://github.com/cathrynlavery/diagram-design/blob/main/scripts/self_check.py) | `/scripts/` | Automated universal checks |
| [`scripts/verify-geometry.py`](https://github.com/cathrynlavery/diagram-design/blob/main/scripts/verify-geometry.py) | `/scripts/` | Connector and geometry validation |

All paths reference the cathrynlavery/diagram-design main branch.

---

## Summary

The **diagram-design** skill identifies AI‑generated diagrams through:

- **16 universal visual rules** covering color, typography, shape, and connector discipline
- **Quadrant‑specific prohibitions** against filled colors, axis misuse, and wrong grids
- **"AI slop" semantic patterns** that explicitly reference generative artefacts
- **Automated verification scripts** ([`self_check.py`](https://github.com/cathrynlavery/diagram-design/blob/main/self_check.py), [`verify-geometry.py`](https://github.com/cathrynlavery/diagram-design/blob/main/verify-geometry.py)) for CI enforcement

Any diagram exhibiting one or more of these anti‑patterns fails editorial standards and likely originated from generative AI rather than human design judgment.

---

## Frequently Asked Questions

### What is the fastest way to check if a diagram was AI‑generated?

Run `python3 skills/diagram-design/scripts/self_check.py path/to/file.html`. This single command validates against all 16 universal anti‑patterns and returns explicit `FAIL` lines for violations.

### Why do dark mode and cyan glows indicate AI generation?

These are default visual settings in many generative tools. The diagram‑design system explicitly prohibits them because they create a generic "tech aesthetic" without editorial purpose—what the documentation calls "over‑styled, mechanically generated" output.

### Can I use these rules for non‑quadrant diagrams?

Yes. The **universal anti‑patterns** in [`SKILL.md`](https://github.com/cathrynlavery/diagram-design/blob/main/SKILL.md) apply to every diagram type. Only the quadrant‑specific rules (filled colors, axis placement, grid structure) are type‑restricted.

### What does "AI slop" mean in this context?

Per [`semantic-patterns.md`](https://github.com/cathrynlavery/diagram-design/blob/main/semantic-patterns.md), "AI slop" refers to visual clichés like sparkle effects between boxes, chat‑bubble artefacts, and typing animations—patterns that "masquerade AI‑generated content as a legitimate schematic" rather than communicating clearly.