excalidash-cqrs-diagrammer

Generates and validates CQRS architecture diagrams with separated write and read lanes in Excalidraw.

2|Updated Jun 17, 2026
One-click install
npx skills add https://github.com/gabedsam01/excalidash-v2 --skill excalidash-cqrs-diagrammer-gabedsam01
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: excalidash-cqrs-diagrammer
Source: https://github.com/gabedsam01/excalidash-v2/tree/main/skills/excalidash/excalidash-cqrs-diagrammer
Command: npx skills add https://github.com/gabedsam01/excalidash-v2 --skill excalidash-cqrs-diagrammer-gabedsam01

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Drawing a correct CQRS (Command-Query Responsibility Segregation) diagram is error-prone: teams routinely merge the write and read models into one box, forget the event bus bridge, or leave the eventual-consistency gap unannotated. This Skill produces or reviews a two-lane CQRS diagram that enforces the segregation invariant and passes automated lint, scoring, and architecture validation. ## Core Features & Use Cases - Two-lane CQRS generation: Builds a WRITE lane (command -> command handler -> write model/aggregate -> event bus) on top and a READ lane (projection -> read model -> query handler -> query) on the bottom, with the event bus as the single bridge. - Multiple creation paths: Generate from an architecture pattern, reverse-engineer a codebase into command handlers/aggregates/projections, convert an existing container or event-driven drawing, or start from a template. - Quality and validation loop: Runs lint, score (minimum 95), repair, polish, and architecture validation to confirm no shared model, no command reading the read side, and no query writing the write side. - Use Case: Ask to diagram an Order Service where PlaceOrder flows through a handler to a Postgres write model emitting OrderPlaced, while a projection builds an order_summary read model in Elasticsearch — the Skill draws both lanes, marks the projection edge eventually consistent, and exports a validated SVG. ## Quick Start Ask the AI to draw your Order Service as a CQRS diagram with commands and handlers on top, projections and the read model on the bottom, and the event bus as the only bridge between them.

Frequently Asked Questions about excalidash-cqrs-diagrammer

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

FAQPage Schema
How do I draw a CQRS architecture diagram with separate write and read models?

Describe your system's commands, handlers, write model, events, projections, read model, and queries, and the Skill generates a two-lane diagram: the write lane on top flowing left-to-right into the event bus, and the read lane on the bottom fed by a projection. It then validates that the two models stay distinct.

Can I generate a CQRS diagram from an existing codebase?

Yes. The create_from_repo_analysis path classifies code by naming conventions — CommandHandler and handle(Command) for the write side, AggregateRoot for the write model, Projection and on(Event) for projections, QueryHandler for the read side — and builds the diagram from that analysis.

When should I use a CQRS diagram instead of an event-driven or C4 container diagram?

Use CQRS when the point is the write/read model split joined by an event bus. Use an event-driven diagram when the subject is the bus topology itself (topics, fan-out, DLQ), and a C4 container diagram when showing runnable apps and datastores without a command/query split.

What makes a CQRS diagram fail architecture validation?

Validation fails when the command and query sides share one model, a command handler reads the read model, a query handler writes the write model, a read model has no projection feeding it, or any edge other than bus-to-projection crosses between the lanes.

How are database credentials and broker secrets handled in exported diagrams?

Connection strings for both the write and read stores and broker SASL credentials are redacted to typed placeholders like [REDACTED_DATABASE_URL] before any tool call, and the exported SVG or PNG is re-scanned to confirm no live secrets appear in labels.