architecture-figures

Generate publication-grade architecture, pipeline, lifecycle, and Gantt figures with matplotlib primitives.

Updated Apr 18, 2026
One-click install
npx skills add https://github.com/ppavlidis/skillz --skill architecture-figures-ppavlidis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: architecture-figures
Source: https://github.com/ppavlidis/skillz/tree/main/skills/architecture-figures
Command: npx skills add https://github.com/ppavlidis/skillz --skill architecture-figures-ppavlidis

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires matplotlib, and includes assets (resource) components.

What problem does it solve? Hand-authored architecture and methods figures in matplotlib repeatedly hit the same visual problems: overflowing box labels, inconsistent palettes, spindly arrows, broken SVG exports in Illustrator, and ad-hoc figure sizes. This Skill encodes hard-won layout and styling lessons as reusable primitives so every figure starts from correct defaults. ## Core Features & Use Cases - Diagram primitives: stage_box, dual_stage_box, stack_box, card, oval, circle, labeled_arrow, lane_arrow, perf_gauge, legend_block, and fit_text for auto-shrinking overflowing labels. - Gantt and lifecycle support: gantt_bar, today_line, variance overlays, two-tier snapshot diffs, fork-join parallel-track routing, and graphviz-driven autolayout via dot. - Three palettes: flat ACCENT actor palette, modern CARD_* card palette with drop shadows, and colour-blind-safe Okabe-Ito / Tol muted scientific palettes on a warm-paper base. - SVG round-trip hygiene: Helvetica-only fonts, ASCII-safe glyphs, svg_safe() clip stripping, and editable text for clean Illustrator imports. - Use Case: Ask for a side-by-side pipeline architecture figure contrasting LLM and deterministic stages with a performance gauge, and get a 16:9 SVG that opens cleanly in Illustrator. ## Quick Start Use the architecture-figures skill to draw a left-to-right pipeline diagram with three stages, an LLM stage in blue, a deterministic stage in slate, and a labeled feedback arrow, exported as SVG.

Frequently Asked Questions about architecture-figures

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an architecture diagram in matplotlib?

Add the skill's python directory to sys.path, call apply_rcparams() and figure(shape="wide_half"), then place stage_box, arrow, and legend_block primitives on a 0-100 coordinate canvas. fit_text auto-shrinks labels that would overflow their boxes.

How do I make a Gantt chart in matplotlib with progress status?

Use GanttTask to define each row's planned span, done span, and status, then render with gantt_bar and today_line. Overlays like gantt_variance mark rows behind schedule, and gantt_bar_two_tier diffs two snapshot dates.

What colour-blind-safe palettes does matplotlib support for scientific figures?

The skill ships Okabe-Ito and Tol muted palettes via apply_sci_rcparams(), which sets a warm-paper base, warm ink, and a four-colour prop_cycle. Both palettes are deuteranopia- and protanopia-safe for scatter, bar, and line figures.

Why does my matplotlib SVG show font problems in Illustrator?

Illustrator lacks matplotlib's bundled DejaVu Sans, triggering missing-font dialogs. Set font.family to Helvetica, Arial, sans-serif, keep svg.fonttype as none, avoid non-ASCII glyphs, and call svg_safe() to strip clipPath wrappers before saving.

Can I use graphviz to lay out a matplotlib pipeline diagram?

Yes, the pavlab_arch.autolayout module wraps graphviz dot: define nodes and edges in a GraphSpec with rankdir LR, call layout_graph, then render stage_box primitives at the returned coordinates with bezier edge paths.

When should I not use fit_text for box labels?

Pass fit=False when you have manually wrapped labels with newlines and want consistent font sizes across a row. If fit_text shrinks a label to its 6.5pt floor, widen the box instead of shrinking the font further.