Compare commits

...
Author SHA1 Message Date
jarvis-at-skic 29fdd2218c fix: correct architecture diagram connectors
Build and publish Corp v1 Board portal / build (pull_request) Successful in 34s
2026-08-24 12:56:17 +00:00
jarvis-at-skic 13465fafcb Merge PR #5: rename and reorder Architecture menu
Build and publish Corp v1 Board portal / build (push) Successful in 1m52s
Exact-head portal validation and Gitea Actions task 1350 passed.
2026-08-24 04:48:20 -07:00
jarvis-at-skic c124929bad docs: rename and reorder architecture menu
Build and publish Corp v1 Board portal / build (pull_request) Successful in 1m52s
2026-08-24 11:44:44 +00:00
jarvis-at-skic 845ce82490 Merge PR #4: enforce architecture documentation contracts
Build and publish Corp v1 Board portal / build (push) Successful in 35s
Independent final review PASS; exact-head Gitea Actions task 1348 passed. Enforces exact sidebar source and well-formed Draw.io XML.
2026-08-24 04:37:21 -07:00
jarvis-at-skic 00415bb359 fix: reject alternate sidebar entries
Build and publish Corp v1 Board portal / build (pull_request) Successful in 35s
2026-08-24 11:34:18 +00:00
jarvis-at-skic 60d46ceb42 fix: enforce architecture documentation contracts
Build and publish Corp v1 Board portal / build (pull_request) Successful in 34s
2026-08-24 11:31:07 +00:00
jarvis-at-skic ee6bf409bc Merge PR #3: add high-level Corp v1 architecture
Build and publish Corp v1 Board portal / build (push) Successful in 35s
Reviewed exact head ad2cea37a4161c8bfe73d6c1ee9bba1617f1866d; local portal validation/build and Gitea Actions task 1345 passed.
2026-08-24 04:26:27 -07:00
8 changed files with 377 additions and 148 deletions
@@ -2,35 +2,64 @@
<diagram id="corp-v1-corp-v1-—-project-channels" name="CORP V1 — PROJECT CHANNELS">
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="title" value="CORP V1 — PROJECT CHANNELS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1"><mxGeometry x="50" y="24" width="1200" height="40" as="geometry"/></mxCell>
<mxCell id="subtitle" value="Six channels create explicit concern boundaries; mapped project skills carry the operating guidance" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1"><mxGeometry x="50" y="62" width="1300" height="30" as="geometry"/></mxCell>
<mxCell id="general" value="GENERAL
Announcements · questions
shared coordination" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="70" y="170" width="360" height="105" as="geometry"/></mxCell>
<mxCell id="scope" value="SCOPE
Ideas · value · Epics · Features
solution approval" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="570" y="170" width="360" height="105" as="geometry"/></mxCell>
<mxCell id="architecture" value="ARCHITECTURE
Requirements · ADRs · design
implementation Tasks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1070" y="170" width="360" height="105" as="geometry"/></mxCell>
<mxCell id="kanban" value="KANBAN
Board · Focus
flow and human task admission" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="70" y="480" width="360" height="105" as="geometry"/></mxCell>
<mxCell id="delivery" value="DELIVERY
Planning · implementation · PRs
CI results and blockers" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="570" y="480" width="360" height="105" as="geometry"/></mxCell>
<mxCell id="releases" value="RELEASES
Readiness · deployment · rollback
outcomes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1070" y="480" width="360" height="105" as="geometry"/></mxCell>
<mxCell id="e0" value="intent and coordination" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0F766E;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="general" target="scope"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e1" value="Feature approved for solution" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C2410C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="scope" target="architecture"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2" value="Tasks proposed" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="architecture" target="kanban"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e3" value="human-admitted work" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#7E22CE;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="kanban" target="delivery"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e4" value="validated release candidate" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="delivery" target="releases"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e5" value="status and outcome" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#BE123C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="releases" target="general"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="title" value="CORP V1 — PROJECT CHANNELS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1">
<mxGeometry x="80" y="20" width="1200" height="40" as="geometry" />
</mxCell>
<mxCell id="subtitle" value="Six channels create explicit concern boundaries and operating guidance" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1">
<mxGeometry x="80" y="60" width="1300" height="40" as="geometry" />
</mxCell>
<mxCell id="general" value="GENERAL Announcements · questions shared coordination" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="160" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="scope" value="SCOPE Ideas · value · Epics · Features solution approval" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="520" y="160" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="architecture" value="ARCHITECTURE Requirements · ADRs · design implementation Tasks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="960" y="160" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="kanban" value="KANBAN Board · Focus flow and human task admission" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="440" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="delivery" value="DELIVERY Planning · implementation · PRs CI results and blockers" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="520" y="440" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="releases" value="RELEASES Readiness · deployment · rollback outcomes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="960" y="440" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="e0" value="intent and coordination" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0F766E;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="general" target="scope">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e1" value="Feature approved for solution" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C2410C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="scope" target="architecture">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e2" value="Tasks proposed" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="architecture" target="kanban">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1160" y="320" />
<mxPoint x="280" y="320" />
<mxPoint x="280" y="420" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e3" value="human-admitted work" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#7E22CE;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="kanban" target="delivery">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e4" value="validated release candidate" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="delivery" target="releases">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e5" value="status and outcome" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#BE123C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="releases" target="general">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1400" y="500" />
<mxPoint x="1400" y="120" />
<mxPoint x="280" y="120" />
<mxPoint x="280" y="140" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
</mxfile>
@@ -2,29 +2,77 @@
<diagram id="corp-v1-corp-v1-—-operating-context" name="CORP V1 — OPERATING CONTEXT">
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="title" value="CORP V1 — OPERATING CONTEXT" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1"><mxGeometry x="50" y="24" width="1200" height="40" as="geometry"/></mxCell>
<mxCell id="subtitle" value="Governed project delivery: people, collaboration, source control, and runtime evidence" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1"><mxGeometry x="50" y="62" width="1300" height="30" as="geometry"/></mxCell>
<mxCell id="board" value="Corp v1 Board
Lifecycle authority and portfolio decisions" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="80" y="320" width="270" height="110" as="geometry"/></mxCell>
<mxCell id="model" value="Corp v1 operating model
Governance portal + approved operating contract" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="510" y="285" width="390" height="180" as="geometry"/></mxCell>
<mxCell id="teams" value="Project teams
Human owners and Hermes/code agents" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1080" y="140" width="300" height="100" as="geometry"/></mxCell>
<mxCell id="collab" value="Discord project channels
Six purpose-specific workspaces" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1080" y="290" width="300" height="100" as="geometry"/></mxCell>
<mxCell id="source" value="Gitea organizations and repositories
Versioned source, decisions, skills, CI" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1080" y="440" width="300" height="110" as="geometry"/></mxCell>
<mxCell id="platform" value="Delivery platform
Pages · Harbor · GitOps/Argo CD · runtimes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1080" y="610" width="300" height="110" as="geometry"/></mxCell>
<mxCell id="e0" value="approves and governs" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0F766E;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="board" target="model"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e1" value="defines ownership boundary" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="model" target="teams"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2" value="routes work by concern" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="model" target="collab"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e3" value="records durable evidence" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="model" target="source"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e4" value="validated artifacts and desired state" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="source" target="platform"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e5" value="deployed readback" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#BE123C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="platform" target="model"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="title" value="CORP V1 — OPERATING CONTEXT" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1">
<mxGeometry x="80" y="20" width="1200" height="40" as="geometry" />
</mxCell>
<mxCell id="subtitle" value="Governed delivery across people, collaboration, source, and runtime evidence" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1">
<mxGeometry x="80" y="60" width="1300" height="40" as="geometry" />
</mxCell>
<mxCell id="board" value="Corp v1 Board Lifecycle authority and portfolio decisions" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="320" width="280" height="120" as="geometry" />
</mxCell>
<mxCell id="model" value="Corp v1 operating model Governance portal + approved operating contract" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="520" y="280" width="400" height="200" as="geometry" />
</mxCell>
<mxCell id="teams" value="Project teams Human owners and Hermes/code agents" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="1080" y="120" width="320" height="120" as="geometry" />
</mxCell>
<mxCell id="collab" value="Discord project channels Six purpose-specific workspaces" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="1080" y="280" width="320" height="120" as="geometry" />
</mxCell>
<mxCell id="source" value="Gitea organizations and repositories Versioned source, decisions, skills, CI" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="1080" y="440" width="320" height="120" as="geometry" />
</mxCell>
<mxCell id="platform" value="Delivery platform Pages · Harbor · GitOps/Argo CD · runtimes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="1080" y="600" width="320" height="120" as="geometry" />
</mxCell>
<mxCell id="e0" value="approves and governs" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0F766E;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="board" target="model">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e1" value="defines ownership boundary" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="model" target="teams">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1000" y="380" />
<mxPoint x="1000" y="180" />
<mxPoint x="1060" y="180" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e2" value="routes work by concern" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="model" target="collab">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1000" y="380" />
<mxPoint x="1060" y="380" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e3" value="records durable evidence" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="model" target="source">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1000" y="380" />
<mxPoint x="1000" y="500" />
<mxPoint x="1060" y="500" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e4" value="validated artifacts and desired state" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="source" target="platform">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e5" value="deployed readback" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#BE123C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="platform" target="model">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1040" y="660" />
<mxPoint x="1000" y="660" />
<mxPoint x="1000" y="760" />
<mxPoint x="440" y="760" />
<mxPoint x="440" y="380" />
<mxPoint x="500" y="380" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
</mxfile>
@@ -2,38 +2,93 @@
<diagram id="corp-v1-corp-v1-—-project-operating-flow" name="CORP V1 — PROJECT OPERATING FLOW">
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="title" value="CORP V1 — PROJECT OPERATING FLOW" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1"><mxGeometry x="50" y="24" width="1200" height="40" as="geometry"/></mxCell>
<mxCell id="subtitle" value="One governed pattern repeated for each approved project" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1"><mxGeometry x="50" y="62" width="1300" height="30" as="geometry"/></mxCell>
<mxCell id="approve" value="1 BOARD APPROVAL
Kickoff, purpose, lead, members, visibility" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="60" y="170" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="scope" value="2 SCOPE
Ideas → Epics → Features
Human solution approval" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="370" y="170" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="arch" value="3 ARCHITECTURE
Requirements, ADRs, Draw.io views, Tasks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="680" y="170" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="focus" value="4 KANBAN / FOCUS
Human task admission and flow visibility" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="990" y="170" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="deliver" value="5 DELIVERY
Branch, PR, exact-head CI, implementation" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="370" y="430" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="release" value="6 RELEASE
Readiness, immutable artifacts, deployment" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="680" y="430" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="verify" value="7 VERIFY &amp; RECORD
Runtime/Pages readback and durable evidence" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#475569;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="990" y="430" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="skills" value="PROJECT-OWNED GUIDANCE
6 channel skills + 7 engineering skills
No scheduler jobs" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFBEB;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="60" y="430" width="250" height="100" as="geometry"/></mxCell>
<mxCell id="e0" value="approved project starts" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0F766E;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="approve" target="scope"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e1" value="Feature approved for solution" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C2410C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="scope" target="arch"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2" value="implementation Tasks prepared" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="arch" target="focus"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e3" value="Task admitted to Focus" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#7E22CE;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="focus" target="deliver"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e4" value="validated candidate" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="deliver" target="release"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e5" value="deploy and observe" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#BE123C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="release" target="verify"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e6" value="constrains" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="skills" target="scope"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e7" value="constrains" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="skills" target="arch"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e8" value="constrains" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="skills" target="deliver"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="title" value="CORP V1 — PROJECT OPERATING FLOW" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1">
<mxGeometry x="80" y="20" width="1200" height="40" as="geometry" />
</mxCell>
<mxCell id="subtitle" value="One governed pattern repeated for each approved project" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1">
<mxGeometry x="80" y="60" width="1300" height="40" as="geometry" />
</mxCell>
<mxCell id="approve" value="1 BOARD APPROVAL Kickoff, purpose, lead, members, visibility" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="160" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="scope" value="2 SCOPE Ideas → Epics → Features Human solution approval" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="360" y="160" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="arch" value="3 ARCHITECTURE Requirements, ADRs, Draw.io views, Tasks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="640" y="160" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="focus" value="4 KANBAN / FOCUS Human task admission and flow visibility" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="920" y="160" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="deliver" value="5 DELIVERY Branch, PR, exact-head CI, implementation" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="920" y="440" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="release" value="6 RELEASE Readiness, immutable artifacts, deployment" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="640" y="440" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="verify" value="7 VERIFY &amp; RECORD Runtime/Pages readback and durable evidence" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#475569;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="360" y="440" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="skills" value="PROJECT-OWNED GUIDANCE 6 channel skills + 7 engineering skills No scheduler jobs" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFBEB;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="440" width="240" height="120" as="geometry" />
</mxCell>
<mxCell id="e0" value="approved project starts" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#0F766E;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="approve" target="scope">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e1" value="Feature approved for solution" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C2410C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="scope" target="arch">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e2" value="implementation Tasks prepared" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="arch" target="focus">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e3" value="Task admitted to Focus" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#7E22CE;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="focus" target="deliver">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1180" y="220" />
<mxPoint x="1200" y="220" />
<mxPoint x="1200" y="500" />
<mxPoint x="1180" y="500" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e4" value="validated candidate" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="deliver" target="release">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e5" value="deploy and observe" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#BE123C;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="release" target="verify">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e6" value="constrains" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="skills" target="scope">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="500" />
<mxPoint x="340" y="220" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e7" value="constrains" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="skills" target="arch">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="500" />
<mxPoint x="340" y="320" />
<mxPoint x="620" y="320" />
<mxPoint x="620" y="220" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e8" value="constrains" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="skills" target="deliver">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="340" y="500" />
<mxPoint x="340" y="600" />
<mxPoint x="1200" y="600" />
<mxPoint x="1200" y="500" />
<mxPoint x="1180" y="500" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
</mxfile>
@@ -1,36 +1,79 @@
<mxfile host="app.diagrams.net" modified="2026-08-24T00:00:00.000Z" agent="Hermes Agent" version="26.0.16" type="device">
<diagram id="corp-v1-repositories-delivery" name="CORP V1 — ORGANIZATIONS, REPOSITORIES &amp; DELIVERY">
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="900" math="0" shadow="0">
<mxGraphModel dx="1500" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2000" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="title" value="CORP V1 — ORGANIZATIONS, REPOSITORIES &amp; DELIVERY" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1"><mxGeometry x="50" y="24" width="1200" height="40" as="geometry"/></mxCell>
<mxCell id="subtitle" value="Separate project source from adopted agent guidance; connect both through reviewed delivery evidence" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1"><mxGeometry x="50" y="62" width="1300" height="30" as="geometry"/></mxCell>
<mxCell id="projectorg" value="corp-v1-&amp;lt;code&amp;gt;
PROJECT ORGANIZATION" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="60" y="150" width="390" height="90" as="geometry"/></mxCell>
<mxCell id="docs" value="corp-v1-&amp;lt;code&amp;gt;-documentation
Docusaurus portal + editable Draw.io" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="80" y="290" width="350" height="90" as="geometry"/></mxCell>
<mxCell id="app" value="corp-v1-&amp;lt;code&amp;gt;
pnpm/TypeScript application monorepo" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="80" y="440" width="350" height="90" as="geometry"/></mxCell>
<mxCell id="skillsorg" value="corp-v1-&amp;lt;code&amp;gt;-skills-code-agent
SKILLS ORGANIZATION" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFBEB;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="560" y="150" width="390" height="90" as="geometry"/></mxCell>
<mxCell id="channelskills" value="6 adopted channel-skill repositories
general · scope · architecture · kanban · delivery · releases" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="580" y="290" width="350" height="100" as="geometry"/></mxCell>
<mxCell id="engskills" value="7 adopted engineering-skill repositories
branching · monorepo · scripts · CI/CD · GitOps · docs · templates" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="580" y="450" width="350" height="110" as="geometry"/></mxCell>
<mxCell id="ci" value="GITEA ACTIONS
Exact-head validation and artifact publication" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1060" y="220" width="350" height="100" as="geometry"/></mxCell>
<mxCell id="pages" value="LEGO CLOUD PAGES
Published documentation" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1060" y="390" width="350" height="90" as="geometry"/></mxCell>
<mxCell id="runtime" value="HARBOR → GITOPS / ARGO CD → RUNTIME
Immutable images and reconciled desired state" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1"><mxGeometry x="1060" y="540" width="350" height="100" as="geometry"/></mxCell>
<mxCell id="e0" value="guides documentation work" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="channelskills" target="docs"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e1" value="guides engineering work" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="engskills" target="app"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e2" value="commit / PR" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="docs" target="ci"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e3" value="commit / PR" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="app" target="ci"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e4" value="publish docs" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="ci" target="pages"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="e5" value="publish and deploy apps" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="ci" target="runtime"><mxGeometry relative="1" as="geometry"/></mxCell>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="title" value="CORP V1 — ORGANIZATIONS, REPOSITORIES &amp; DELIVERY" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1">
<mxGeometry x="80" y="20" width="1200" height="40" as="geometry" />
</mxCell>
<mxCell id="subtitle" value="Separate project source from adopted guidance through reviewed delivery evidence" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1">
<mxGeometry x="80" y="60" width="1300" height="40" as="geometry" />
</mxCell>
<mxCell id="projectorg" value="corp-v1-&amp;lt;code&amp;gt; PROJECT ORGANIZATION" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="560" y="160" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="docs" value="corp-v1-&amp;lt;code&amp;gt;-documentation Docusaurus portal + editable Draw.io" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="560" y="320" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="app" value="corp-v1-&amp;lt;code&amp;gt; pnpm/TypeScript application monorepo" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="560" y="480" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="skillsorg" value="corp-v1-&amp;lt;code&amp;gt;-skills-code-agent SKILLS ORGANIZATION" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFBEB;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="160" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="channelskills" value="6 channel skills: general · scope · architecture · kanban · delivery · releases" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="320" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="engskills" value="7 eng. skills: branch · monorepo · scripts · CI/CD · GitOps · docs · templates" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="80" y="480" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="ci" value="GITEA ACTIONS Exact-head validation and artifact publication" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="1040" y="240" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="pages" value="LEGO CLOUD PAGES Published documentation" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="1040" y="440" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="runtime" value="HARBOR → GITOPS / ARGO CD → RUNTIME Immutable images and desired state" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF1F2;strokeColor=#BE123C;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
<mxGeometry x="1520" y="440" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="e0" value="guides documentation work" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="channelskills" target="docs">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e1" value="guides engineering work" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#A16207;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="engskills" target="app">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e2" value="commit / PR" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="docs" target="ci">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1000" y="380" />
<mxPoint x="1020" y="380" />
<mxPoint x="1020" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e3" value="commit / PR" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="app" target="ci">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1000" y="540" />
<mxPoint x="1020" y="540" />
<mxPoint x="1020" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e4" value="publish docs" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="ci" target="pages">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e5" value="publish and deploy apps" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="ci" target="runtime">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1240" y="400" />
<mxPoint x="1720" y="400" />
<mxPoint x="1720" y="420" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
</mxfile>
+2 -2
View File
@@ -62,19 +62,19 @@ const config: Config = {
navbar: {
title: 'CORP V1 / BOARD',
items: [
{type: 'docSidebar', sidebarId: 'architectureHighLevelSidebar', docsPluginId: 'architecture-high-level', label: 'Architecture High Level', position: 'left'},
{type: 'docSidebar', sidebarId: 'projectsSidebar', docsPluginId: 'projects', label: 'Projects', position: 'left'},
{type: 'docSidebar', sidebarId: 'teamsSidebar', docsPluginId: 'teams', label: 'Teams', position: 'left'},
{type: 'docSidebar', sidebarId: 'membersSidebar', docsPluginId: 'members', label: 'Members', position: 'left'},
{type: 'docSidebar', sidebarId: 'boardSidebar', docsPluginId: 'board', label: 'Board', position: 'left'},
{type: 'docSidebar', sidebarId: 'governanceSidebar', docsPluginId: 'governance', label: 'Governance', position: 'left'},
{type: 'docSidebar', sidebarId: 'architectureHighLevelSidebar', docsPluginId: 'architecture-high-level', label: 'Architecture', position: 'left'},
{href: 'https://gitea.lego-cloud.eu/corp-v1/portal', label: 'Gitea ↗', position: 'right'},
],
},
footer: {
style: 'light',
links: [{title: 'Registry', items: [
{label: 'Architecture High Level', to: '/architecture-high-level/context/'},
{label: 'Architecture', to: '/architecture-high-level/context/'},
{label: 'Projects', to: '/projects/'},
{label: 'Teams', to: '/teams/'},
{label: 'Members', to: '/members/'},
+1
View File
@@ -32,6 +32,7 @@
"@docusaurus/tsconfig": "3.10.2",
"@docusaurus/types": "3.10.2",
"@types/react": "^19.0.0",
"fast-xml-parser": "^5.11.0",
"raw-loader": "^4.0.2",
"typescript": "~6.0.2"
},
+58 -24
View File
@@ -51,6 +51,9 @@ importers:
'@types/react':
specifier: ^19.0.0
version: 19.2.18
fast-xml-parser:
specifier: ^5.11.0
version: 5.11.0
raw-loader:
specifier: ^4.0.2
version: 4.0.2(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26))
@@ -1462,6 +1465,9 @@ packages:
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
'@nodable/entities@3.0.0':
resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==}
'@node-rs/jieba-android-arm-eabi@1.10.4':
resolution: {integrity: sha512-MhyvW5N3Fwcp385d0rxbCWH42kqDBatQTyP8XbnYbju2+0BO/eTeCCLYj7Agws4pwxn2LtdldXRSKavT7WdzNA==}
engines: {node: '>= 10'}
@@ -1503,28 +1509,24 @@ packages:
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@node-rs/jieba-linux-arm64-musl@1.10.4':
resolution: {integrity: sha512-Y/tiJ1+HeS5nnmLbZOE+66LbsPOHZ/PUckAYVeLlQfpygLEpLYdlh0aPpS5uiaWMjAXYZYdFkpZHhxDmSLpwpw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@node-rs/jieba-linux-x64-gnu@1.10.4':
resolution: {integrity: sha512-WZO8ykRJpWGE9MHuZpy1lu3nJluPoeB+fIJJn5CWZ9YTVhNDWoCF4i/7nxz1ntulINYGQ8VVuCU9LD86Mek97g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@node-rs/jieba-linux-x64-musl@1.10.4':
resolution: {integrity: sha512-uBBD4S1rGKcgCyAk6VCKatEVQb6EDD5I40v/DxODi5CuZVCANi9m5oee/MQbAoaX7RydA2f0OSCE9/tcwXEwUg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
libc: [musl]
'@node-rs/jieba-wasm32-wasi@1.10.4':
resolution: {integrity: sha512-Y2umiKHjuIJy0uulNDz9SDYHdfq5Hmy7jY5nORO99B4pySKkcrMjpeVrmWXJLIsEKLJwcCXHxz8tjwU5/uhz0A==}
@@ -1631,25 +1633,21 @@ packages:
resolution: {integrity: sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@rspack/binding-linux-arm64-musl@1.7.12':
resolution: {integrity: sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@rspack/binding-linux-x64-gnu@1.7.12':
resolution: {integrity: sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@rspack/binding-linux-x64-musl@1.7.12':
resolution: {integrity: sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==}
cpu: [x64]
os: [linux]
libc: [musl]
'@rspack/binding-wasm32-wasi@1.7.12':
resolution: {integrity: sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==}
@@ -1815,42 +1813,36 @@ packages:
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@swc/core-linux-arm64-musl@1.15.47':
resolution: {integrity: sha512-3Yu3Uq/VgytqsPjTMbkPU1ExADytbdWbruJYhA584E9jrpE2Ki+R6VVPoZCeAVk1Cb7QxcRTgblw6bSa6a/R+w==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@swc/core-linux-ppc64-gnu@1.15.47':
resolution: {integrity: sha512-wfdMi5IaOaNtmh2/6geRoxIdNfqylUZFdtzTKS655y1axWfIWyx7As74vv0wVdjeCIZ3WmCI9odDd4rUttXOSQ==}
engines: {node: '>=10'}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@swc/core-linux-s390x-gnu@1.15.47':
resolution: {integrity: sha512-3hHYBY0yx8Ez7GMRrkhXHQzMdR5IZA6Wq5Ee4svlgwvSECLpnAJ9+0AimEGUFDvuLwE7nV/2+PYe8+Nm4rvNcQ==}
engines: {node: '>=10'}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@swc/core-linux-x64-gnu@1.15.47':
resolution: {integrity: sha512-TjfhjgP/jGCfFHYC3JQPhJA1HwErbIJ9JfREDc1KNkvY6P0LodCgKVIlQ5deeTbkG7ih3bF5PHJLuLpaZjdRyQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@swc/core-linux-x64-musl@1.15.47':
resolution: {integrity: sha512-CQpS8Ge/avfjZd0UEwG/sds83Uu32deQXcV1Jo3jD0mmvQQqtYAjpsDZXugmheeAwmt+YIuoVtVHro8LMYHqsQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [musl]
'@swc/core-win32-arm64-msvc@1.15.47':
resolution: {integrity: sha512-0W8IKHsUTYiT7G2RqtOoVWk+89yzZikIiDUb/sCK6BmQDBhN91hQSfyUtW12jhEWLzYgcfmisfsZrmZE+84U1A==}
@@ -1905,42 +1897,36 @@ packages:
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@swc/html-linux-arm64-musl@1.15.47':
resolution: {integrity: sha512-NyXRQiVBkeutgCwCxUUaFqZdDmpZONs7Zz3AZGoY35s9GwXF412Nt22fK/e7lO/sM6G/+S3rOom/0xTmUQSK6A==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@swc/html-linux-ppc64-gnu@1.15.47':
resolution: {integrity: sha512-rQ+XLJHFzu0e4M5p1+8kF2FKzI7WO9KPPji87OuicHZVrDCEqg7/jSGu3hys9CjIQIYVfR+tAFuZz3Q1/jOoNA==}
engines: {node: '>=10'}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@swc/html-linux-s390x-gnu@1.15.47':
resolution: {integrity: sha512-w6bitHrllrE3lqmf14cT3spmWhZHGts1O08O4adzxztSPto7O5GM3IerqZm/NtsqlxNsfbVHnhaNXxXWe/8Q+Q==}
engines: {node: '>=10'}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@swc/html-linux-x64-gnu@1.15.47':
resolution: {integrity: sha512-FTA7E29gcyadd71prg8sJUVacYrIhAXS8L7p48yCfgcNOKquofN1TDOrHVOyYMoxplL3FUwwbN+AZxWO7QfWPQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@swc/html-linux-x64-musl@1.15.47':
resolution: {integrity: sha512-g+K1GKUrj+S9o8Qsgii2g7ooMzZ750R4IAqH5CVElIA5FTMAx7KGnu9ga6aEnRwwLYxY3s1k/nN+ls0NEk240g==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [musl]
'@swc/html-win32-arm64-msvc@1.15.47':
resolution: {integrity: sha512-5Iw3i00JdTySi+ccc2CM5bxY+8TZivQmcTqUC6mUdAY0/KYBgSe1/L294UJQ4OTLQqNDOYXY9jdb070zZUX7jg==}
@@ -2251,6 +2237,9 @@ packages:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
anynum@1.0.1:
resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==}
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
@@ -3075,6 +3064,13 @@ packages:
fast-uri@3.1.5:
resolution: {integrity: sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==}
fast-xml-builder@1.3.1:
resolution: {integrity: sha512-pIM/1n3ntFXKYrUZwW7QCK0gAW7XY+wzj1YMIV3tLDvPj/V+zTGJK5e3/4WJfwj0qWw2ElNXiTixda/R+3YSug==}
fast-xml-parser@5.11.0:
resolution: {integrity: sha512-9IGxMqvqLOnqP+Egi1nqDHKv5k8aZ7r9n558enxcucmyVGEBNPAU+MOg/8jPIS7rO7sSq4gFm1/nHtiaubMruw==}
hasBin: true
fastq@1.20.1:
resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
@@ -3546,6 +3542,9 @@ packages:
is-typedarray@1.0.0:
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
is-unsafe@2.0.2:
resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==}
is-wsl@2.2.0:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
@@ -3682,28 +3681,24 @@ packages:
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
lightningcss-linux-arm64-musl@1.33.0:
resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
lightningcss-linux-x64-gnu@1.33.0:
resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
lightningcss-linux-x64-musl@1.33.0:
resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
lightningcss-win32-arm64-msvc@1.33.0:
resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
@@ -4273,6 +4268,10 @@ packages:
resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
path-expression-matcher@1.6.2:
resolution: {integrity: sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==}
engines: {node: '>=14.0.0'}
path-is-inside@1.0.2:
resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
@@ -5214,6 +5213,9 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
strnum@2.4.2:
resolution: {integrity: sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==}
style-to-js@1.1.21:
resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==}
@@ -5638,6 +5640,10 @@ packages:
resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
hasBin: true
xml-naming@0.3.0:
resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==}
engines: {node: '>=16.0.0'}
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
@@ -8134,6 +8140,8 @@ snapshots:
'@noble/hashes@1.4.0': {}
'@nodable/entities@3.0.0': {}
'@node-rs/jieba-android-arm-eabi@1.10.4':
optional: true
@@ -8945,6 +8953,8 @@ snapshots:
normalize-path: 3.0.0
picomatch: 2.3.2
anynum@1.0.1: {}
arg@5.0.2: {}
argparse@2.0.1: {}
@@ -9839,6 +9849,20 @@ snapshots:
fast-uri@3.1.5: {}
fast-xml-builder@1.3.1:
dependencies:
path-expression-matcher: 1.6.2
xml-naming: 0.3.0
fast-xml-parser@5.11.0:
dependencies:
'@nodable/entities': 3.0.0
fast-xml-builder: 1.3.1
is-unsafe: 2.0.2
path-expression-matcher: 1.6.2
strnum: 2.4.2
xml-naming: 0.3.0
fastq@1.20.1:
dependencies:
reusify: 1.1.0
@@ -10365,6 +10389,8 @@ snapshots:
is-typedarray@1.0.0: {}
is-unsafe@2.0.2: {}
is-wsl@2.2.0:
dependencies:
is-docker: 2.2.1
@@ -11330,6 +11356,8 @@ snapshots:
path-exists@5.0.0: {}
path-expression-matcher@1.6.2: {}
path-is-inside@1.0.2: {}
path-key@3.1.1: {}
@@ -12434,6 +12462,10 @@ snapshots:
strip-json-comments@3.1.1: {}
strnum@2.4.2:
dependencies:
anynum: 1.0.1
style-to-js@1.1.21:
dependencies:
style-to-object: 1.0.14
@@ -12901,6 +12933,8 @@ snapshots:
dependencies:
sax: 1.6.1
xml-naming@0.3.0: {}
yallist@3.1.1: {}
yocto-queue@1.2.2: {}
+27 -8
View File
@@ -1,6 +1,7 @@
import assert from 'node:assert/strict';
import {existsSync, readFileSync, readdirSync} from 'node:fs';
import {join} from 'node:path';
import {XMLValidator} from 'fast-xml-parser';
const root = process.cwd();
const read = (path) => readFileSync(join(root, path), 'utf8');
@@ -22,9 +23,15 @@ for (const section of ['projects', 'teams', 'members', 'board', 'governance']) {
}
assert.match(config, /id:\s*'architecture-high-level'/, 'Architecture High Level docs plugin is missing');
assert.match(config, /sidebarId:\s*'architectureHighLevelSidebar'/, 'Architecture High Level navbar item does not target its dedicated sidebar');
assert.match(config, /label:\s*'Architecture High Level'/, 'Architecture High Level navbar label is missing');
assert.match(config, /label:\s*'Architecture'/, 'Architecture navbar label is missing');
assert.doesNotMatch(config, /label:\s*'Architecture High Level'/, 'legacy Architecture High Level menu label must not remain');
assert.ok(existsSync(join(root, 'sidebars/architecture-high-level.ts')), 'Architecture High Level sidebar file is missing');
const expectedLeftNavLabels = ['Projects', 'Teams', 'Members', 'Board', 'Governance', 'Architecture'];
const leftNavLabels = [...config.matchAll(/\{type:\s*'docSidebar',[^\n]+label:\s*'([^']+)',\s*position:\s*'left'\}/g)]
.map((match) => match[1]);
assert.deepEqual(leftNavLabels, expectedLeftNavLabels, 'Architecture must be the final left-side menu item');
assert.match(config, /baseUrl:\s*'\/corp-v1\/portal\/'/, 'Pages base URL must follow the renamed repository');
assert.match(config, /projectName:\s*'portal'/, 'Docusaurus project name must be portal');
assert.doesNotMatch(config, /sterring-commitee/, 'legacy repository name must not remain in Docusaurus config');
@@ -66,13 +73,23 @@ for (const route of ['/', 'architecture-high-level', 'projects', 'teams', 'membe
}
const architectureSidebar = read('sidebars/architecture-high-level.ts');
const architectureItems = ['Context', 'Overview', 'Overview Channels', 'Overview Repositories'];
let architectureCursor = -1;
for (const label of architectureItems) {
const next = architectureSidebar.indexOf(`label: '${label}'`, architectureCursor + 1);
assert.ok(next > architectureCursor, `Architecture High Level sidebar is missing or out of order: ${label}`);
architectureCursor = next;
}
const expectedArchitectureSidebar = `import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
const sidebars: SidebarsConfig = {
architectureHighLevelSidebar: [
{type: 'doc', id: 'context', label: 'Context'},
{type: 'doc', id: 'overview', label: 'Overview'},
{type: 'doc', id: 'overview-channels', label: 'Overview Channels'},
{type: 'doc', id: 'overview-repositories', label: 'Overview Repositories'},
],
};
export default sidebars;`;
assert.equal(
architectureSidebar.trim(),
expectedArchitectureSidebar,
'Architecture High Level sidebar must contain exactly the four requested documents in order',
);
const architecturePages = {
context: read('docs/architecture-high-level/context.mdx'),
overview: read('docs/architecture-high-level/overview.mdx'),
@@ -92,6 +109,8 @@ for (const [name, markers] of Object.entries({
'repositories.drawio': ['CORP V1 — ORGANIZATIONS, REPOSITORIES &amp; DELIVERY', 'PROJECT ORGANIZATION', 'SKILLS ORGANIZATION', 'GITEA ACTIONS'],
})) {
const diagram = read(`docs/architecture-high-level/diagrams/${name}`);
const xmlResult = XMLValidator.validate(diagram);
assert.equal(xmlResult, true, `${name} is malformed XML: ${JSON.stringify(xmlResult)}`);
assert.match(diagram, /<mxfile[\s>]/, `${name} is not a Draw.io source file`);
for (const marker of markers) assert.ok(diagram.includes(marker), `${name} is missing: ${marker}`);
}