254 lines
13 KiB
XML
254 lines
13 KiB
XML
<svg viewBox="0 0 900 560" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<defs>
|
|
<marker id="arr-a" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
|
<path d="M0 .5 L7 3 L0 5.5Z" fill="#E8A838"/>
|
|
</marker>
|
|
<marker id="arr-s" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
|
<path d="M0 .5 L7 3 L0 5.5Z" fill="#5A6A7C"/>
|
|
</marker>
|
|
<marker id="arr-o" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
|
|
<path d="M0 .5 L7 3 L0 5.5Z" fill="#2A5080"/>
|
|
</marker>
|
|
</defs>
|
|
|
|
<!-- background -->
|
|
<rect width="900" height="560" fill="#0D1117"/>
|
|
|
|
<!-- ─────────────────────────────────────────
|
|
CONSUMER
|
|
───────────────────────────────────────── -->
|
|
<rect x="20" y="20" width="860" height="62" rx="6"
|
|
fill="#0F1623" stroke="#2A3A50" stroke-width="1.5" stroke-dasharray="6,4"/>
|
|
<text x="44" y="43"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" font-weight="600"
|
|
fill="#3A5070" letter-spacing=".1em">CONSUMER PROJECT</text>
|
|
<text x="44" y="63"
|
|
font-family="'IBM Plex Mono',monospace" font-size="12" fill="#8090A4">ontoref</text>
|
|
<text x="190" y="63"
|
|
font-family="'IBM Plex Mono',monospace" font-size="12"
|
|
fill="#3A5070"> · .ontoref/config.ncl · ONTOREF_PROJECT_ROOT</text>
|
|
|
|
<!-- Consumer → Tooling -->
|
|
<line x1="280" y1="82" x2="280" y2="112"
|
|
stroke="#E8A838" stroke-width="1.5" marker-end="url(#arr-a)"/>
|
|
<text x="292" y="101"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9" fill="#B87000">exec · ONTOREF_PROJECT_ROOT</text>
|
|
|
|
<!-- ─────────────────────────────────────────
|
|
TOOLING LAYER
|
|
───────────────────────────────────────── -->
|
|
<rect x="20" y="116" width="548" height="192" rx="6"
|
|
fill="#111827" stroke="#E8A838" stroke-width="1.5" stroke-opacity=".6"/>
|
|
<text x="30" y="132"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" font-weight="600"
|
|
fill="#E8A838" letter-spacing=".1em">TOOLING LAYER</text>
|
|
|
|
<!-- ./ontoref -->
|
|
<rect x="40" y="148" width="138" height="46" rx="5"
|
|
fill="#1C2535" stroke="#E8A838" stroke-width="1" stroke-opacity=".5"/>
|
|
<text x="109" y="167"
|
|
font-family="'IBM Plex Mono',monospace" font-size="11" font-weight="600"
|
|
fill="#E8A838" text-anchor="middle">./ontoref</text>
|
|
<text x="109" y="183"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#5A6A7C" text-anchor="middle">bash · actor detection</text>
|
|
|
|
<!-- ./ontoref → ontoref.nu -->
|
|
<line x1="178" y1="171" x2="208" y2="171"
|
|
stroke="#E8A838" stroke-width="1.5" marker-end="url(#arr-a)"/>
|
|
|
|
<!-- ontoref.nu -->
|
|
<rect x="208" y="148" width="174" height="46" rx="5"
|
|
fill="#1C2535" stroke="#E8A838" stroke-width="1" stroke-opacity=".5"/>
|
|
<text x="295" y="167"
|
|
font-family="'IBM Plex Mono',monospace" font-size="11" font-weight="600"
|
|
fill="#E8A838" text-anchor="middle">ontoref.nu</text>
|
|
<text x="295" y="183"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#5A6A7C" text-anchor="middle">Nushell dispatcher</text>
|
|
|
|
<!-- ontoref.nu → modules -->
|
|
<line x1="295" y1="194" x2="295" y2="220"
|
|
stroke="#E8A838" stroke-width="1.5" marker-end="url(#arr-a)"/>
|
|
|
|
<!-- 16 Nushell modules -->
|
|
<rect x="40" y="220" width="506" height="72" rx="5"
|
|
fill="#1C2535" stroke="#5A6A7C" stroke-width="1" stroke-opacity=".5"/>
|
|
<text x="293" y="240"
|
|
font-family="'IBM Plex Mono',monospace" font-size="11" font-weight="500"
|
|
fill="#C0CCD8" text-anchor="middle">reflection/modules/ · 16 Nushell modules</text>
|
|
<text x="293" y="257"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#5A6A7C" text-anchor="middle">adr · backlog · coder · describe · sync · store · services · nats · …</text>
|
|
<text x="293" y="274"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#1E3A58" text-anchor="middle">subprocess fallback: direct nickel export when daemon unavailable</text>
|
|
|
|
<!-- ─────────────────────────────────────────
|
|
RUST CRATES
|
|
───────────────────────────────────────── -->
|
|
<rect x="584" y="116" width="296" height="192" rx="6"
|
|
fill="#111827" stroke="#8090A4" stroke-width="1.5" stroke-opacity=".4"/>
|
|
<text x="594" y="132"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" font-weight="600"
|
|
fill="#8090A4" letter-spacing=".1em">RUST CRATES</text>
|
|
|
|
<!-- ontoref-ontology -->
|
|
<rect x="600" y="148" width="264" height="38" rx="4"
|
|
fill="#1C2535" stroke="#5A6A7C" stroke-width="1"/>
|
|
<text x="732" y="164"
|
|
font-family="'IBM Plex Mono',monospace" font-size="11" font-weight="500"
|
|
fill="#C0CCD8" text-anchor="middle">ontoref-ontology</text>
|
|
<text x="732" y="178"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#5A6A7C" text-anchor="middle">.ontology/*.ncl → typed Rust structs</text>
|
|
|
|
<!-- ontoref-reflection -->
|
|
<rect x="600" y="198" width="264" height="38" rx="4"
|
|
fill="#1C2535" stroke="#5A6A7C" stroke-width="1"/>
|
|
<text x="732" y="214"
|
|
font-family="'IBM Plex Mono',monospace" font-size="11" font-weight="500"
|
|
fill="#C0CCD8" text-anchor="middle">ontoref-reflection</text>
|
|
<text x="732" y="228"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#5A6A7C" text-anchor="middle">load + validate + execute NCL DAG modes</text>
|
|
|
|
<!-- ontoref-daemon (optional) -->
|
|
<rect x="600" y="248" width="264" height="44" rx="4"
|
|
fill="#0E1825" stroke="#2A5080" stroke-width="1" stroke-dasharray="5,3"/>
|
|
<text x="732" y="266"
|
|
font-family="'IBM Plex Mono',monospace" font-size="11" font-weight="500"
|
|
fill="#3A6A9A" text-anchor="middle">ontoref-daemon</text>
|
|
<text x="732" y="280"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#2A4A6A" text-anchor="middle">NCL cache · file watcher · actor registry · HTTP</text>
|
|
<text x="862" y="249"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#2A5080" text-anchor="end">optional</text>
|
|
|
|
<!-- modules → daemon (HTTP, optional) -->
|
|
<line x1="546" y1="258" x2="600" y2="265"
|
|
stroke="#2A5080" stroke-width="1.2" stroke-dasharray="4,3" marker-end="url(#arr-o)"/>
|
|
<text x="553" y="251"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9" fill="#2A4060">HTTP</text>
|
|
|
|
<!-- ─────────────────────────────────────────
|
|
INTER-ROW ARROWS
|
|
───────────────────────────────────────── -->
|
|
|
|
<!-- Modules → Protocol (nickel export) -->
|
|
<line x1="190" y1="292" x2="148" y2="338"
|
|
stroke="#5A6A7C" stroke-width="1.2" marker-end="url(#arr-s)"/>
|
|
<text x="123" y="321"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#3A5070" text-anchor="middle">nickel</text>
|
|
<text x="123" y="332"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9"
|
|
fill="#3A5070" text-anchor="middle">export</text>
|
|
|
|
<!-- ontoref-reflection → Protocol (executes modes) -->
|
|
<path d="M650 308 C642 326 430 330 368 338"
|
|
stroke="#5A6A7C" stroke-width="1.2" marker-end="url(#arr-s)"/>
|
|
|
|
<!-- ontoref-ontology → Self-description (reads .ontology/) -->
|
|
<line x1="732" y1="308" x2="695" y2="338"
|
|
stroke="#5A6A7C" stroke-width="1.2" marker-end="url(#arr-s)"/>
|
|
<text x="748" y="326"
|
|
font-family="'IBM Plex Mono',monospace" font-size="9" fill="#3A5070">reads</text>
|
|
|
|
<!-- ─────────────────────────────────────────
|
|
PROTOCOL LAYER
|
|
───────────────────────────────────────── -->
|
|
<rect x="20" y="342" width="420" height="170" rx="6"
|
|
fill="#111827" stroke="#E8A838" stroke-width="1.5" stroke-opacity=".45"/>
|
|
<text x="30" y="358"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" font-weight="600"
|
|
fill="#E8A838" letter-spacing=".1em">PROTOCOL LAYER</text>
|
|
|
|
<text x="230" y="381"
|
|
font-family="'IBM Plex Mono',monospace" font-size="12"
|
|
fill="#A8B4C8" text-anchor="middle">ontology/schemas/</text>
|
|
<text x="230" y="396"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10"
|
|
fill="#5A6A7C" text-anchor="middle">core · gate · state · manifest (NCL defaults)</text>
|
|
|
|
<line x1="36" y1="408" x2="424" y2="408" stroke="#1E2A3A" stroke-width="1"/>
|
|
|
|
<text x="230" y="425"
|
|
font-family="'IBM Plex Mono',monospace" font-size="12"
|
|
fill="#A8B4C8" text-anchor="middle">adrs/</text>
|
|
<text x="230" y="440"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10"
|
|
fill="#5A6A7C" text-anchor="middle">schema · constraints · lifecycle forms</text>
|
|
|
|
<line x1="36" y1="452" x2="424" y2="452" stroke="#1E2A3A" stroke-width="1"/>
|
|
|
|
<text x="230" y="469"
|
|
font-family="'IBM Plex Mono',monospace" font-size="12"
|
|
fill="#A8B4C8" text-anchor="middle">reflection/schemas/ · modes/ · forms/</text>
|
|
<text x="230" y="484"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10"
|
|
fill="#5A6A7C" text-anchor="middle">9 schemas · 10 NCL DAG modes · 7 forms</text>
|
|
|
|
<!-- ─────────────────────────────────────────
|
|
SELF-DESCRIPTION LAYER
|
|
───────────────────────────────────────── -->
|
|
<rect x="456" y="342" width="424" height="170" rx="6"
|
|
fill="#111827" stroke="#8090A4" stroke-width="1.5" stroke-opacity=".35" stroke-dasharray="8,4"/>
|
|
<text x="466" y="358"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" font-weight="600"
|
|
fill="#8090A4" letter-spacing=".1em">SELF-DESCRIPTION · .ontology/</text>
|
|
|
|
<text x="668" y="381"
|
|
font-family="'IBM Plex Mono',monospace" font-size="12"
|
|
fill="#A8B4C8" text-anchor="middle">ontoref consuming its own protocol</text>
|
|
|
|
<line x1="472" y1="393" x2="872" y2="393" stroke="#1E2A3A" stroke-width="1"/>
|
|
|
|
<text x="668" y="413"
|
|
font-family="'IBM Plex Mono',monospace" font-size="11"
|
|
fill="#8090A4" text-anchor="middle">core.ncl · state.ncl · gate.ncl · manifest.ncl</text>
|
|
|
|
<line x1="472" y1="426" x2="872" y2="426" stroke="#1E2A3A" stroke-width="1"/>
|
|
|
|
<text x="668" y="446"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10"
|
|
fill="#5A6A7C" text-anchor="middle">4 axioms · 2 tensions · 9 practices · 19 edges</text>
|
|
<text x="668" y="462"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10"
|
|
fill="#5A6A7C" text-anchor="middle">3 state dimensions: protocol-maturity · self-description · ecosystem</text>
|
|
|
|
<line x1="472" y1="474" x2="872" y2="474" stroke="#1E2A3A" stroke-width="1"/>
|
|
|
|
<text x="668" y="493"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10"
|
|
fill="#2A4A6A" text-anchor="middle">ADR-001: self-describing axiom in practice</text>
|
|
|
|
<!-- ─────────────────────────────────────────
|
|
LEGEND
|
|
───────────────────────────────────────── -->
|
|
<line x1="30" y1="532" x2="52" y2="532"
|
|
stroke="#E8A838" stroke-width="1.5" marker-end="url(#arr-a)"/>
|
|
<text x="57" y="537"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" fill="#5A6A7C">active flow</text>
|
|
|
|
<line x1="145" y1="532" x2="167" y2="532"
|
|
stroke="#5A6A7C" stroke-width="1.2" marker-end="url(#arr-s)"/>
|
|
<text x="172" y="537"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" fill="#5A6A7C">reads / executes</text>
|
|
|
|
<line x1="290" y1="532" x2="312" y2="532"
|
|
stroke="#2A5080" stroke-width="1.2" stroke-dasharray="4,3" marker-end="url(#arr-o)"/>
|
|
<text x="317" y="537"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" fill="#5A6A7C">optional</text>
|
|
|
|
<rect x="393" y="525" width="12" height="12" rx="2"
|
|
fill="none" stroke="#8090A4" stroke-opacity=".5" stroke-width="1" stroke-dasharray="4,2"/>
|
|
<text x="410" y="537"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10" fill="#5A6A7C">self-description</text>
|
|
|
|
<text x="878" y="537"
|
|
font-family="'IBM Plex Mono',monospace" font-size="10"
|
|
fill="#1E2A3A" text-anchor="end">ontoref architecture</text>
|
|
</svg>
|