arkitect · git:20261014.b699db5 · 2026-10-14 · sha256 6d8bca375d485502

arkitect git:20261014.b699db5A

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

---
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,850 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.