The home-lab's dev-ops toolbelt for pi-agent: Mermaid + Archify for diagrams, Vikunja for tasks, Outline for docs. See Home Network Map Overview and Docker Containers for the machines/containers themselves — this note documents the tools.
The four tools at a glance
Tool
What it does
For whom
Model
Mermaid
Text diagrams in Markdown (```mermaid), rendered to SVG/PNG
Humans (visual)
Declarative diagram-as-code
Archify
Compiles JSON IR → interactive self-contained HTML architecture maps
What: mermaid-js diagram syntax inside standard Markdown fenced blocks.
Rendering engines available:
mmdc (mermaid-cli, v11.16.0) — renders .mmd source → PNG/SVG/PDF. Installed via nixpkgs pkgs.mermaid-cli in home.packages on .27, .13, .51 (bundles its own Chromium from the Nix store — deterministic, offline, private). Check: which mmdc.
Obsidian renders ```mermaid blocks natively (viewing in vault = zero tooling).
pi-mermaid extension (v0.3.0) — renders Mermaid blocks as ASCII in the pi TUI for in-chat preview + parser warnings/errors. Activated per project (/config-add ext pi-mermaid).
Project artifacts (per-project convention, see below): source <project>/docs/<topic>.mmd; images <project>/docs/diagrams/<topic>.png|svg.
Focus: high-level dependencies and data flows; avoid complex layout overlaps. Split busy topics into multiple diagrams.
Archify
What: tt-a1i/archify (MIT, v2.14) — an AI-agent skill that turns a small typed JSON IR spec into a self-contained interactive HTML diagram (inline SVG, dark/light themes, pan/zoom, search, route tracing, PNG/SVG/WebM export).
Vendored location: ~/.agents/skills/archify/ (pure Node ≥18, zero npm deps). Pushed via Gitea pi-config.
Transient 401 flake: retry once with the same token before assuming it's wrong.
Machines use the API to open/update tasks and move them between stages; humans use the web UI.
Full API notes + code: ~/.agents/skills/project-ops/SKILL.md (section 2).
Outline — documentation (for AI agents)
Base API: https://outline.lab.audasmedia.com.au/api (key OL_API_KEY; endpoints are POST).
Known flakiness: public (Caddy) endpoint intermittently 502s on writes/reads — retry once; for reliable create/update go direct to the container from .13: POST http://127.0.0.1:3000/api/....
Intended use: per-project documentation + configs with comprehensive overviews so AI agents can resume work after a break.
Full API notes + code: ~/.agents/skills/project-ops/SKILL.md (section 3).
pi-agent skills (the orchestration layer)
Skill
Purpose
project-diagramming-mermaid
Outline a codebase/project as Mermaid → save <project>/docs/<topic>.mmd → render to <project>/docs/diagrams/ via mmdc → prompt user to create/update the Archify doc.
project-diagramming-archify
From Mermaid or plain language → author JSON IR → validate (showcase) → deliver interactive HTML under <project>/docs/.
Workflow (from pi-agent): 1) call Mermaid to create/update the project's Mermaid doc; 2) pi prompts to update/create the Archify doc after Mermaid; 3) Archify doc can be created on demand any time.
PER-PROJECT CONVENTION (important)
Everything is per-project. No global output, no global skills config.
Activation is per project via /config-add (pi-config extension) — never global — to keep LLM context lean. Currently active in: sys_config, sys_config/ai_setup, archify_mermaid_install.