Install
openclaw skills install @leostehlik/visual-architectureCreate deterministic, local-first architecture artifacts from typed JSON or TypeScript-aware repo extraction: validate specs, render SVG/HTML diagrams, and emit source-backed receipts agents can cite.
openclaw skills install @leostehlik/visual-architectureCreate architecture artifacts with the bundled Python renderer instead of hand-writing SVG. v1.8 adds a public TypeScript-monorepo case study path on top of the v1.7 extraction engine: source-backed case-study docs, generated artifacts, README quick-starts, and gallery conversion proof.
Use this when the user needs a trustworthy system map, agent workflow, sequence, data-flow, lifecycle/state diagram, repo-evidence diagram, or PR delta review sketch that should stay local, deterministic, and reviewable.
mode, title, nodes, and edges.
architecture, workflow, sequence, dataflow, lifecycle, pr-delta.classic for documentation, showcase for README/release proof images.python3 skills/visual-architecture/scripts/render_architecture.py extract-repo . --output repo-map.json --title "Generated Repo Map"
python3 skills/visual-architecture/scripts/render_architecture.py layout repo-map.json repo-map.layout.json --mode architecture
python3 skills/visual-architecture/scripts/render_architecture.py validate input.json --json
python3 skills/visual-architecture/scripts/render_architecture.py deliver input.json output.html --json
Use .svg for a static docs artifact or .html for a self-contained presentation artifact.
For PR delta review, either extract a PR concern map from git refs or compare two specs:
python3 skills/visual-architecture/scripts/render_architecture.py extract-pr --base origin/master --head HEAD --output pr-delta.json
python3 skills/visual-architecture/scripts/render_architecture.py compare base.json head.json pr-delta.html --spec pr-delta.json --json
rsvg-convert is available and you need a bitmap preview, run:rsvg-convert -o output.png output.svg
{
"title": "Service Map",
"mode": "architecture",
"theme": "classic",
"summary": "One local request path with async work and model access.",
"nodes": [
{
"id": "web",
"label": "Web App",
"subtitle": "User interface",
"kind": "service",
"x": 120,
"y": 160
},
{
"id": "api",
"label": "API",
"subtitle": "Business logic",
"kind": "service",
"x": 360,
"y": 160
}
],
"edges": [
{
"from": "web",
"to": "api",
"kind": "primary-data",
"label": "HTTP"
}
]
}
service: rounded rectanglellm: double-border rounded rectangleagent: hexagonmemory: cylinderEach node requires:
id: unique stringlabel: primary titlekind: one of the node kinds abovex, y: grid-aligned center coordinatesOptional:
subtitle: smaller secondary labelshow_grid: set true to display the editing grid in the exported SVGtheme: set showcase on the top-level spec for dark public-facing artifactsevidence: object or list with source, optional line/lines, commit, confidence, and noteprimary-data: blue solid arrowmemory-write: green dashed arrowcontrol: slate dashed arrowEach edge requires:
from: source node idto: target node idOptional:
label: rendered on the route with a shielding background rectsource_side, target_side: force edge anchors (left, right, top, bottom)via: array of orthogonal turn points, each with x and ylabel_segment: zero-based segment index to place the label onlabel_offset: [dx, dy] shift for fine label placementextract-repo, layout, extract-pr, and bundle turn repo evidence into checked artifacts without hand-placing every node--min-quality can fail delivery or bundle export when the artifact is not presentation-gradeSRC n on nodes with source-backed evidencedeliver for handoff. A passing render without a receipt is a draft.Use examples/service-map.json as a generic architecture starting point. Use examples/agent-runtime.json, examples/sequence-cache-miss.json, examples/dataflow-analytics.json, and examples/lifecycle-agent-task.json for the non-architecture modes. Use examples/repo-evidence-map.json for source-pinned evidence, and examples/pr-delta-before.json plus examples/pr-delta-head.json for generated PR deltas.