arkitect · git:20260913.f5cb88e · 2026-09-13 · sha256 ec7a9ec9b9a4efd9

arkitect git:20260913.f5cb88eA

Immutable. This exact content never changes and is served at /api/v1/blob/ec7a9ec9b9a4efd9.

---
description: Draw editable Draw.io and Excalidraw architecture, system and flow diagrams with Arkitect
globs:
alwaysApply: false
---

# Arkitect

This project draws **native, editable** architecture diagrams: `.drawio`
(Draw.io / diagrams.net) and `.excalidraw` (Excalidraw). Never hand over a
screenshot, and never Mermaid as the final artifact, when a real diagram was
asked for.

**Read `AGENTS.md` at the repository root before drawing.** It is the full
contract: which engine to pick, the build loop, the icon rules and the privacy
rules. In short:

- **Draw.io** for formal solution architecture, AWS-heavy designs, client-facing
  decks. **Excalidraw** for system design, block diagrams, flows, README art.
- **Resolve icons before laying out** — 4,796 marks in 18 packs for Draw.io,
  1,162 bundled library items for Excalidraw. Never substitute one product's
  mark for another; use a named placeholder and say so in the report.
- **Generate from a spec**, validate, render, and *look at the PNG* before
  calling it done.
- **Nothing is uploaded.** Only a public product logo or the public Excalidraw
  catalogue ever leaves the machine, and never with anything from the diagram in
  the query.

```bash
node bin/arkitect.mjs                                  # every command
node bin/arkitect.mjs drawio icon "bedrock"
node bin/arkitect.mjs drawio build spec.json --out docs/arch.drawio
node bin/arkitect.mjs excalidraw icon "postgres"
node bin/arkitect.mjs excalidraw build spec.json --out docs/arch.excalidraw
node bin/arkitect.mjs excalidraw validate docs/arch.excalidraw
```

Using Arkitect from *another* project? Run `node bin/arkitect.mjs install cursor`
there — it writes this rule with the absolute path baked in.