What Anti-Patterns Are Explicitly Forbidden in Diagram Creation: The Complete Ruleset
The Diagram Design skill explicitly forbids specific anti-patterns for each visual type—including flowchart diamonds with four or more exits, Venn diagrams with four circles, and scatter plots with forced trend lines—to enforce readability, honesty, and consistency.
The cathrynlavery/diagram-design repository maintains strict visual grammar rules that prohibit common design mistakes across seven diagram categories. Understanding what anti-patterns are explicitly forbidden in diagram creation ensures your visualizations adhere to the repository's semantic standards and communicate data without misleading the audience.
Forbidden Anti-Patterns by Diagram Type
The repository defines prohibited constructions in dedicated reference files under skills/diagram-design/references/. Each file contains an "## Anti-patterns" section listing rules that must never be violated.
Flowchart Anti-Patterns
According to skills/diagram-design/references/type-flowchart.md (lines 15-19), the following are explicitly forbidden:
- Using fill colour to indicate node type (shape already conveys type)
- Decision diamonds with four or more exits—these must be refactored into nested diamonds
- Unlabelled decision branches
Venn and Set Overlap Anti-Patterns
The type-venn.md file (lines 15-22) prohibits:
- Unlabelled regions
- Circles that do not overlap when overlap is the point of interest
- Equal-sized circles for sets clearly of different sizes (dishonest representation)
- Applying coral accent to multiple overlap regions
- Labels sitting on top of circle strokes (illegible)
- Using four or more circles when two-three suffice
Tree and Hierarchy Anti-Patterns
Per type-tree.md (lines 14-20):
- Trees deeper than five levels on a single page (illegible)
- Nodes with wildly varying widths (more than two distinct widths)
- Diagonal connector lines (must be orthogonal)
- Skipped levels (connecting a parent directly to a grand-child)
- Using coral on both the root and a leaf
Timeline Anti-Patterns
From type-timeline.md (lines 12-16):
- Displaying events with equal visual spacing when underlying temporal intervals are unequal
- Omitting axis labels (e.g., "what unit is this?")
- Crowded labels without vertical offset, making them unreadable
Scatter Plot Anti-Patterns
The type-scatter.md reference (lines 27-34) forbids:
- Plotting more than 30 points without clustering (creates "jitter" or "mush")
- Adding a forced trend line when data is genuinely scattered (dishonest)
- Labelling every point (only focal/outlier points may be labelled)
- Using bubble-size encoding (area perception is unreliable)
- Omitting a zero baseline when absolute position matters, or including it when the range is tiny and far from zero
Gantt Chart Anti-Patterns
According to type-gantt.md (lines 33-40):
- More than 12 tasks in a single view (must split into sub-plans)
- More than 5 parallel tracks per phase (causes illegible overlap)
- Adding dependency arrows between tasks in version 1 (only when essential)
- Placing start/end dates inside the bar label (must belong on axis or tooltip)
- Giving all bars equal visual weight (focal task must stand out)
Semantic Pattern Anti-Patterns
For behaviour-first diagrams, semantic-patterns.md (lines 27-30) prohibits:
- "Equal-width pipeline" that hides contention
- Merged arrows that cannot be traced individually
- Conveying capacity only by box size
- Decorative pile-up of items
- Animations that reorder items
- Using red colour alone to indicate overload
Code Examples of Violations
The repository includes SVG examples demonstrating forbidden constructions. Below are violations of the anti-pattern rules:
Flowchart violation (four exits):
<!-- Flowchart anti‑pattern: decision diamond with 4 exits -->
<svg width="200" height="150">
<polygon points="100,20 140,60 100,100 60,60" stroke="black" fill="none"/>
<line x1="100" y1="100" x2="100" y2="130" stroke="black"/>
<line x1="100" y1="20" x2="80" y2="0" stroke="black"/>
<line x1="100" y1="20" x2="120" y2="0" stroke="black"/>
<line x1="100" y1="20" x2="140" y2="-20" stroke="black"/>
<line x1="100" y1="20" x2="60" y2="-20" stroke="black"/>
</svg>
Venn violation (four circles):
<!-- Venn anti‑pattern: four circles (too many) -->
<svg width="200" height="200">
<circle cx="60" cy="100" r="50" fill="rgba(45,49,66,0.04)"/>
<circle cx="100" cy="100" r="50" fill="rgba(45,49,66,0.04)"/>
<circle cx="140" cy="100" r="50" fill="rgba(45,49,66,0.04)"/>
<circle cx="180" cy="100" r="50" fill="rgba(45,49,66,0.04)"/>
</svg>
Scatter plot violation (forced trend line):
<!-- Scatter anti‑pattern: forced trend line on scattered data -->
<svg width="300" height="200">
<circle cx="50" cy="150" r="5" fill="#f5f5f5"/>
<circle cx="100" cy="80" r="5" fill="#f5f5f5"/>
<circle cx="150" cy="130" r="5" fill="#f5f5f5"/>
<circle cx="200" cy="60" r="5" fill="#f5f5f5"/>
<circle cx="250" cy="140" r="5" fill="#f5f5f5"/>
<!-- Forced linear trend line -->
<line x1="40" y1="160" x2="260" y2="50" stroke="#eb6c36" stroke-dasharray="4,3"/>
</svg>
Why These Anti-Patterns Are Forbidden
The Diagram Design skill enforces these prohibitions to maintain three core principles:
Readability. Unlabelled elements, overly dense layouts, or ambiguous colour usage make diagrams hard to scan. Rules like the five-level tree limit and the twelve-task Gantt maximum prevent visual overload.
Honesty. Misrepresenting quantitative information—such as equal spacing for unequal intervals or forced trend lines on scattered data—misleads the audience. The repository explicitly forbids four-circle Venn diagrams and bubble-size encoding when they distort underlying data relationships.
Consistency. The visual grammar—where shape conveys meaning, connectors remain orthogonal, and coral accent indicates a single focal point—provides a shared visual language. Violating these rules breaks the contract between the diagram and the viewer.
Summary
- The cathrynlavery/diagram-design repository defines specific anti-patterns for seven diagram categories in individual reference files under
skills/diagram-design/references/ - Flowcharts must not use fill colour for types or diamonds with four exits
- Venn diagrams cannot exceed three circles or use coral on multiple overlaps
- Trees must remain under five levels with orthogonal connectors only
- Timelines require proportional spacing and labeled axes
- Scatter plots must not exceed 30 unclustered points or use forced trend lines
- Gantt charts are limited to 12 tasks and 5 parallel tracks per phase
- Semantic patterns must avoid equal-width pipelines and red-only overload indicators
- Additional diagram types (Radar, Quadrant, Architecture, etc.) follow the same structure in their respective reference files
Frequently Asked Questions
Where are the anti-pattern rules defined in the source code?
Each diagram type's forbidden constructions are documented in dedicated markdown files within the skills/diagram-design/references/ directory. For example, flowchart rules reside in type-flowchart.md (lines 15-19), while scatter plot restrictions appear in type-scatter.md (lines 27-34). Each file contains a "## Anti-patterns" section listing the prohibited constructions.
What happens if I use a forbidden anti-pattern in my diagram?
Using explicitly forbidden anti-patterns degrades readability, misleads your audience, or breaks the visual grammar contract. The Diagram Design skill expects authors to avoid these constructions to maintain consistency across all generated diagrams. Violations such as unlabelled decision branches or dishonest trend lines directly contradict the repository's semantic standards.
Can I override these restrictions for special visualization needs?
The repository structure indicates these rules are mandatory rather than configurable. Each reference file lists absolute prohibitions using definitive language like "must never" and "explicitly forbidden," indicating no override mechanism exists within the standard specification. Authors must refactor diagrams to comply with the limits (e.g., splitting a deep tree into multiple pages).
How do the anti-pattern rules differ between timeline and Gantt chart diagrams?
While both visualize temporal data, timelines focus on proportional accuracy—forbidding equal visual spacing for unequal intervals and requiring axis labels. Gantt charts enforce density limits—prohibiting more than 12 tasks per view and restricting parallel tracks to 5 per phase to prevent overlap. Timelines prioritize honest time representation, while Gantt charts prioritize manageable visual complexity.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →