mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-08 22:21:45 +00:00
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.
129 lines
7.4 KiB
XML
129 lines
7.4 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
<svg width="1060" height="170" viewBox="0 0 1060 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, 48) -->
|
|
<polygon fill="none" stroke="#357f9e" points="40,30 10,48 40,66 70,48"/>
|
|
<polyline fill="none" stroke="#357f9e" points="20,42 20,54"/>
|
|
<polyline fill="none" stroke="#357f9e" points="30,60 50,60"/>
|
|
<polyline fill="none" stroke="#357f9e" points="60,54 60,42"/>
|
|
<polyline fill="none" stroke="#357f9e" points="50,36 30,36"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="40" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Start</text>
|
|
|
|
<!-- DUAL AUDIT (ellipse) at (155, 48) -->
|
|
<ellipse fill="none" stroke="#357f9e" cx="155" cy="48" rx="42" ry="18"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="155" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Dual Audit</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="155" y="80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Opus + GPT</text>
|
|
|
|
<!-- CRITIQUE (ellipse) at (280, 48) -->
|
|
<ellipse fill="none" stroke="#357f9e" cx="280" cy="48" rx="34" ry="18"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="280" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Critique</text>
|
|
|
|
<!-- CONSENSUS (ellipse) at (395, 48) -->
|
|
<ellipse fill="none" stroke="#357f9e" cx="395" cy="48" rx="40" ry="18"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="395" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Consensus</text>
|
|
|
|
<!-- TRIAGE (ellipse) at (510, 48) -->
|
|
<ellipse fill="none" stroke="#357f9e" cx="510" cy="48" rx="28" ry="18"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="510" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Triage</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="510" y="80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Opus + GPT</text>
|
|
|
|
<!-- FIX CYCLE (ellipse) at (620, 48) -->
|
|
<ellipse fill="none" stroke="#357f9e" cx="620" cy="48" rx="36" ry="18"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="620" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Fix Cycle</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="620" y="80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Codex ↔ Opus</text>
|
|
|
|
<!-- BUILD (parallelogram) at ~(740, 48) -->
|
|
<polygon fill="none" stroke="#357f9e" points="710,30 778,30 770,66 702,66"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="740" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Build</text>
|
|
|
|
<!-- VERIFY (ellipse) at (845, 48) -->
|
|
<ellipse fill="none" stroke="#357f9e" cx="845" cy="48" rx="28" ry="18"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="845" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Verify</text>
|
|
<text xml:space="preserve" text-anchor="middle" x="845" y="80" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Opus + GPT</text>
|
|
|
|
<!-- REVIEW (hexagon) at (940, 48) -->
|
|
<polygon fill="none" stroke="#357f9e" points="912,48 922,30 958,30 968,48 958,66 922,66"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="940" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Review</text>
|
|
|
|
<!-- EXIT (Msquare) at (1030, 48) -->
|
|
<polygon fill="none" stroke="#357f9e" points="1015,30 1045,30 1045,66 1015,66"/>
|
|
<polyline fill="none" stroke="#357f9e" points="1025,30 1015,40"/>
|
|
<polyline fill="none" stroke="#357f9e" points="1015,56 1025,66"/>
|
|
<polyline fill="none" stroke="#357f9e" points="1035,66 1045,56"/>
|
|
<polyline fill="none" stroke="#357f9e" points="1045,40 1035,30"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="1030" y="52" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Exit</text>
|
|
|
|
<!-- BUILD FIX (ellipse) at (740, 132) -->
|
|
<ellipse fill="none" stroke="#357f9e" cx="740" cy="132" rx="36" ry="18"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="740" y="136" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#1a1a1a">Build Fix</text>
|
|
|
|
<!-- === FORWARD EDGES === -->
|
|
|
|
<!-- start → dual_audit -->
|
|
<path fill="none" stroke="#666666" d="M70,48 L103,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="103,44.5 113,48 103,51.5"/>
|
|
|
|
<!-- dual_audit → critique -->
|
|
<path fill="none" stroke="#666666" d="M197,48 L236,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="236,44.5 246,48 236,51.5"/>
|
|
|
|
<!-- critique → consensus -->
|
|
<path fill="none" stroke="#666666" d="M314,48 L345,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="345,44.5 355,48 345,51.5"/>
|
|
|
|
<!-- consensus → triage -->
|
|
<path fill="none" stroke="#666666" d="M435,48 L472,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="472,44.5 482,48 472,51.5"/>
|
|
|
|
<!-- triage → fix_cycle -->
|
|
<path fill="none" stroke="#666666" d="M538,48 L574,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="574,44.5 584,48 574,51.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="561" y="43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Fix</text>
|
|
|
|
<!-- fix_cycle → build -->
|
|
<path fill="none" stroke="#666666" d="M656,48 L694,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="694,44.5 704,48 694,51.5"/>
|
|
|
|
<!-- build → verify [OK] -->
|
|
<path fill="none" stroke="#666666" d="M774,48 L807,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="807,44.5 817,48 807,51.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="796" y="43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">OK</text>
|
|
|
|
<!-- verify → review -->
|
|
<path fill="none" stroke="#666666" d="M873,48 L902,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="902,44.5 912,48 902,51.5"/>
|
|
|
|
<!-- review → exit [Accept] -->
|
|
<path fill="none" stroke="#666666" d="M968,48 L1005,48"/>
|
|
<polygon fill="#666666" stroke="#666666" points="1005,44.5 1015,48 1005,51.5"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="991" y="43" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Accept</text>
|
|
|
|
<!-- === LOOPS === -->
|
|
|
|
<!-- fix_cycle self-loop (above) -->
|
|
<path fill="none" stroke="#666666" d="M612,32 C606,10 634,10 628,32"/>
|
|
<polygon fill="#666666" stroke="#666666" points="624,26 628,36 632,26"/>
|
|
|
|
<!-- build → build_fix [Fail] -->
|
|
<path fill="none" stroke="#666666" d="M748,66 L748,104"/>
|
|
<polygon fill="#666666" stroke="#666666" points="744.5,104 748,114 751.5,104"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="762" y="91" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">Fail</text>
|
|
|
|
<!-- build_fix → build (curved left) -->
|
|
<path fill="none" stroke="#666666" d="M714,120 C688,105 688,72 710,58"/>
|
|
<polygon fill="#666666" stroke="#666666" points="706,62 710,52 714,62"/>
|
|
|
|
<!-- verify → triage [More work] (backward arc below) -->
|
|
<path fill="none" stroke="#666666" d="M840,66 C840,162 515,162 515,66"/>
|
|
<polygon fill="#666666" stroke="#666666" points="511,72 515,62 519,72"/>
|
|
<text xml:space="preserve" text-anchor="middle" x="678" y="162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#666666">More work</text>
|
|
</g>
|
|
</svg>
|