fabro/docs/public/images/example-dod.svg
Bryan Helmkamp 283eab181f
refactor(docs): split docs/ into public/ and internal/
Invert the docs convention so the Mintlify-published site lives under
docs/public/ and internal artifacts (strategy docs, brainstorms, plans,
etc.) sit at docs/ root or docs/internal/. Tools that default to writing
into docs/ now land in the catch-all instead of leaking into the
published tree.

- Move Mintlify content (administration/, agents/, api-reference/,
  changelog/, core-concepts/, examples/, execution/, getting-started/,
  human-tools/, integrations/, languages/, reference/, tutorials/,
  workflows/, images/, logo/, docs.json, favicon.svg, dot-highlight.js)
  into docs/public/.
- Collapse docs-internal/ into docs/internal/.
- Update Rust path references (fabro-api/build.rs, fabro-server,
  fabro-dev), TypeScript generator arg, CI path filters, clippy.toml
  reasons, AGENTS.md/CLAUDE.md, and README.md image refs.

Mintlify dashboard project root must be updated to docs/public/ in a
follow-up. .mintignore move/trim and .claude/skills/ updates land in a
separate commit.
2026-04-27 07:21:13 -07:00

117 lines
6.4 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="870" height="170" viewBox="0 0 870 170" xmlns="http://www.w3.org/2000/svg">
<style>
@media (prefers-color-scheme: dark) {
[fill="#1a1a1a"] { fill: #e5e5e5; }
[fill="#666666"] { fill: #aaaaaa; }
[stroke="#666666"] { stroke: #aaaaaa; }
[stroke="#999999"] { stroke: #777777; }
}
</style>
<g>
<!-- START (Mdiamond) at (40, 50) -->
<polygon fill="none" stroke="#357f9e" points="40,32 10,50 40,68 70,50"/>
<polyline fill="none" stroke="#357f9e" points="20,44 20,56"/>
<polyline fill="none" stroke="#357f9e" points="30,62 50,62"/>
<polyline fill="none" stroke="#357f9e" points="60,56 60,44"/>
<polyline fill="none" stroke="#357f9e" points="50,38 30,38"/>
<text xml:space="preserve" text-anchor="middle" x="40" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Start</text>
<!-- AUDIT LLM (ellipse) at (155, 50) -->
<ellipse fill="none" stroke="#357f9e" cx="155" cy="50" rx="42" ry="18"/>
<text xml:space="preserve" text-anchor="middle" x="155" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Audit LLM</text>
<!-- AUDIT AGENT (ellipse) at (278, 50) -->
<ellipse fill="none" stroke="#357f9e" cx="278" cy="50" rx="48" ry="18"/>
<text xml:space="preserve" text-anchor="middle" x="278" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Audit Agent</text>
<!-- TRIAGE (ellipse) at (390, 50) -->
<ellipse fill="none" stroke="#357f9e" cx="390" cy="50" rx="28" ry="18"/>
<text xml:space="preserve" text-anchor="middle" x="390" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Triage</text>
<!-- FIX (ellipse) at (470, 50) -->
<ellipse fill="none" stroke="#357f9e" cx="470" cy="50" rx="18" ry="18"/>
<text xml:space="preserve" text-anchor="middle" x="470" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Fix</text>
<!-- BUILD (parallelogram) at ~(560, 50) -->
<polygon fill="none" stroke="#357f9e" points="530,32 598,32 590,68 522,68"/>
<text xml:space="preserve" text-anchor="middle" x="560" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Build</text>
<!-- VERIFY (ellipse) at (660, 50) -->
<ellipse fill="none" stroke="#357f9e" cx="660" cy="50" rx="28" ry="18"/>
<text xml:space="preserve" text-anchor="middle" x="660" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Verify</text>
<!-- REVIEW (hexagon) at (752, 50) -->
<polygon fill="none" stroke="#357f9e" points="724,50 734,32 770,32 780,50 770,68 734,68"/>
<text xml:space="preserve" text-anchor="middle" x="752" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Review</text>
<!-- EXIT (Msquare) at (840, 50) -->
<polygon fill="none" stroke="#357f9e" points="825,32 855,32 855,68 825,68"/>
<polyline fill="none" stroke="#357f9e" points="835,32 825,42"/>
<polyline fill="none" stroke="#357f9e" points="825,58 835,68"/>
<polyline fill="none" stroke="#357f9e" points="845,68 855,58"/>
<polyline fill="none" stroke="#357f9e" points="855,42 845,32"/>
<text xml:space="preserve" text-anchor="middle" x="840" y="54" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Exit</text>
<!-- BUILD FIX (ellipse) at (560, 132) -->
<ellipse fill="none" stroke="#357f9e" cx="560" cy="132" rx="36" ry="18"/>
<text xml:space="preserve" text-anchor="middle" x="560" y="136" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Build Fix</text>
<!-- === FORWARD EDGES === -->
<!-- start → audit_llm -->
<path fill="none" stroke="#666666" d="M70,50 L103,50"/>
<polygon fill="#666666" stroke="#666666" points="103,46.5 113,50 103,53.5"/>
<!-- audit_llm → audit_agent -->
<path fill="none" stroke="#666666" d="M197,50 L220,50"/>
<polygon fill="#666666" stroke="#666666" points="220,46.5 230,50 220,53.5"/>
<!-- audit_agent → triage -->
<path fill="none" stroke="#666666" d="M326,50 L352,50"/>
<polygon fill="#666666" stroke="#666666" points="352,46.5 362,50 352,53.5"/>
<!-- triage → fix -->
<path fill="none" stroke="#666666" d="M418,50 L442,50"/>
<polygon fill="#666666" stroke="#666666" points="442,46.5 452,50 442,53.5"/>
<text xml:space="preserve" text-anchor="middle" x="435" y="45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Fix</text>
<!-- fix → build -->
<path fill="none" stroke="#666666" d="M488,50 L514,50"/>
<polygon fill="#666666" stroke="#666666" points="514,46.5 524,50 514,53.5"/>
<!-- build → verify [OK] -->
<path fill="none" stroke="#666666" d="M594,50 L622,50"/>
<polygon fill="#666666" stroke="#666666" points="622,46.5 632,50 622,53.5"/>
<text xml:space="preserve" text-anchor="middle" x="614" y="45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">OK</text>
<!-- verify → review -->
<path fill="none" stroke="#666666" d="M688,50 L714,50"/>
<polygon fill="#666666" stroke="#666666" points="714,46.5 724,50 714,53.5"/>
<!-- review → exit [Accept] -->
<path fill="none" stroke="#666666" d="M780,50 L815,50"/>
<polygon fill="#666666" stroke="#666666" points="815,46.5 825,50 815,53.5"/>
<text xml:space="preserve" text-anchor="middle" x="802" y="45" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Accept</text>
<!-- === LOOPS === -->
<!-- fix self-loop (above) -->
<path fill="none" stroke="#666666" d="M462,34 C456,12 484,12 478,34"/>
<polygon fill="#666666" stroke="#666666" points="474,28 478,38 482,28"/>
<!-- build → build_fix [Fail] -->
<path fill="none" stroke="#666666" d="M568,68 L568,104"/>
<polygon fill="#666666" stroke="#666666" points="564.5,104 568,114 571.5,104"/>
<text xml:space="preserve" text-anchor="middle" x="582" y="93" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Fail</text>
<!-- build_fix → build (curved left) -->
<path fill="none" stroke="#666666" d="M534,120 C508,105 508,72 530,58"/>
<polygon fill="#666666" stroke="#666666" points="526,62 530,52 534,62"/>
<!-- verify → triage [More work] (backward arc below) -->
<path fill="none" stroke="#666666" d="M655,68 C655,162 395,162 395,68"/>
<polygon fill="#666666" stroke="#666666" points="391,74 395,64 399,74"/>
<text xml:space="preserve" text-anchor="middle" x="525" y="162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">More work</text>
</g>
</svg>