Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6170e09db6 | ||
|
|
fe473d9f83 |
@@ -22,14 +22,10 @@ jobs:
|
||||
version: 9.15.9
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
- name: Validate portal contracts
|
||||
run: pnpm verify:portal
|
||||
- name: Typecheck
|
||||
run: pnpm typecheck
|
||||
- name: Build site
|
||||
run: pnpm build
|
||||
- name: Validate built routes and search index
|
||||
run: pnpm verify:portal
|
||||
- name: Publish to LEGO Cloud Pages
|
||||
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main'
|
||||
shell: bash
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
id: context
|
||||
title: "Context"
|
||||
description: "See the people, collaboration systems, repositories, and delivery platforms around the Corp v1 operating model."
|
||||
---
|
||||
|
||||
import Drawio from '@theme/Drawio';
|
||||
import contextDiagram from '!!raw-loader!./diagrams/context.drawio';
|
||||
|
||||
# Context
|
||||
|
||||
Corp v1 is the **governed operating model for project delivery**. It is not an application runtime architecture. The Board supplies lifecycle authority and shared guardrails; project teams retain ownership of their scope, architecture, implementation, and release outcomes.
|
||||
|
||||
<Drawio content={contextDiagram} title="Corp v1 operating context" toolbar="zoom layers lightbox" responsive maxHeight={720} />
|
||||
|
||||
## System boundary
|
||||
|
||||
The operating model joins four evidence-bearing environments:
|
||||
|
||||
- **Discord** routes work into six project channels with distinct concerns.
|
||||
- **Gitea** preserves decisions, documentation, application source, adopted skills, pull requests, and CI evidence.
|
||||
- **Delivery platforms** publish documentation through LEGO Cloud Pages and applications through Harbor plus GitOps/Argo CD.
|
||||
- **This Board portal** records project, team, member, repository, lifecycle, and verification state.
|
||||
|
||||
The model does not approve a project's target solution architecture. Each project must separately record its approved context, containers, requirements, decisions, and implementation Tasks.
|
||||
@@ -1,36 +0,0 @@
|
||||
<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-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>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -1,30 +0,0 @@
|
||||
<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-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>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -1,39 +0,0 @@
|
||||
<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-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 & 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>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -1,36 +0,0 @@
|
||||
<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 & 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">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="title" value="CORP V1 — ORGANIZATIONS, REPOSITORIES & 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-&lt;code&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-&lt;code&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-&lt;code&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-&lt;code&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>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
id: overview-channels
|
||||
title: "Overview Channels"
|
||||
description: "Understand how the six Corp v1 project channels divide responsibilities and hand work to one another."
|
||||
---
|
||||
|
||||
import Drawio from '@theme/Drawio';
|
||||
import channelsDiagram from '!!raw-loader!./diagrams/channels.drawio';
|
||||
|
||||
# Overview Channels
|
||||
|
||||
A project receives exactly six purpose-specific Discord channels. The channels are concern boundaries, not isolated teams: evidence and decisions move forward through explicit handoffs.
|
||||
|
||||
<Drawio content={channelsDiagram} title="Corp v1 project channel flow" toolbar="zoom layers lightbox" responsive maxHeight={720} />
|
||||
|
||||
| Channel | Owns | Typical handoff |
|
||||
|---|---|---|
|
||||
| General | Announcements, questions, shared coordination | Routes product intent to Scope and broadcasts outcomes |
|
||||
| Scope | Ideas, Epics, Features, value, acceptance outcomes, solution approval | Sends an approved Feature to Architecture |
|
||||
| Architecture | Requirements, ADRs, Draw.io views, technical design, implementation Tasks | Sends prepared Tasks to Kanban |
|
||||
| Kanban | Board, Focus, flow visibility, explicit human Task admission | Sends admitted work to Delivery |
|
||||
| Delivery | Planning, implementation, pull requests, CI evidence, blockers | Sends a validated release candidate to Releases |
|
||||
| Releases | Readiness, versions, deployment, rollback, post-release outcomes | Reports deployment state and outcomes to the project |
|
||||
|
||||
Each channel loads its mapped project-adopted channel skill. Relevant engineering skills are loaded alongside it for branching, monorepo structure, scripts, CI/CD, GitOps, documentation, and templates. A green build or agent statement never substitutes for a required human approval or deployed readback.
|
||||
@@ -1,37 +0,0 @@
|
||||
---
|
||||
id: overview-repositories
|
||||
title: "Overview Repositories"
|
||||
description: "See how each Corp v1 project separates application and documentation source from adopted skills and delivery evidence."
|
||||
---
|
||||
|
||||
import Drawio from '@theme/Drawio';
|
||||
import repositoriesDiagram from '!!raw-loader!./diagrams/repositories.drawio';
|
||||
|
||||
# Overview Repositories
|
||||
|
||||
Each project has two Gitea organization boundaries and fifteen required repositories: two project repositories plus thirteen adopted skill repositories.
|
||||
|
||||
<Drawio content={repositoriesDiagram} title="Corp v1 organizations, repositories, and delivery" toolbar="zoom layers lightbox" responsive maxHeight={720} />
|
||||
|
||||
## Project organization: `corp-v1-<code>`
|
||||
|
||||
| Repository | Purpose |
|
||||
|---|---|
|
||||
| `corp-v1-<code>-documentation` | Docusaurus project portal, governed records, and editable Draw.io architecture sources |
|
||||
| `corp-v1-<code>` | pnpm/TypeScript application monorepo with `applications/`, `packages/`, Docker, Helm, Taskfiles, and GitOps inputs |
|
||||
|
||||
A project team grants access to both repositories. Project-specific environment variables use `CORP_V1_<CODE>_*`.
|
||||
|
||||
## Skills organization: `corp-v1-<code>-skills-code-agent`
|
||||
|
||||
The corresponding skills team grants access to:
|
||||
|
||||
- six adopted channel-skill repositories;
|
||||
- seven adopted engineering-skill repositories;
|
||||
- their complete supporting assets, scripts, templates, references, and preserved adoption history.
|
||||
|
||||
The global `drawio-main` and `corp-v1--glossary` remain shared references unless an explicit project decision adopts a local copy.
|
||||
|
||||
## Delivery evidence
|
||||
|
||||
Documentation commits are validated and published to LEGO Cloud Pages. Deployable application commits produce immutable Harbor images and update GitOps/Argo CD desired state. Completion requires exact-commit CI plus deployed page or runtime readback; a local build or accepted push alone is not delivery evidence.
|
||||
@@ -1,30 +0,0 @@
|
||||
---
|
||||
id: overview
|
||||
title: "Overview"
|
||||
description: "Follow a Corp v1 project from Board approval through governed scope, delivery, deployment, and verified evidence."
|
||||
---
|
||||
|
||||
import Drawio from '@theme/Drawio';
|
||||
import overviewDiagram from '!!raw-loader!./diagrams/overview.drawio';
|
||||
|
||||
# Overview
|
||||
|
||||
Every approved Corp v1 project repeats the same high-level operating flow while keeping its own decisions and delivery boundary.
|
||||
|
||||
<Drawio content={overviewDiagram} title="Corp v1 project operating flow" toolbar="zoom layers lightbox" responsive maxHeight={720} />
|
||||
|
||||
## How projects operate
|
||||
|
||||
1. **Board approval** establishes the project purpose, code, lead, members, visibility, initial deliverable, and required resources.
|
||||
2. **Scope** turns evidence-backed intent into Ideas, Epics, and Features. A human project member approves a Feature for solution work.
|
||||
3. **Architecture** defines requirements, decisions, diagrams, and implementation Tasks without treating documentation scaffolding as an approved target design.
|
||||
4. **Kanban** exposes unfinished work. A human project member explicitly admits an exact Task to Focus before Delivery may execute it.
|
||||
5. **Delivery** implements through reviewable branches and pull requests; Gitea Actions validates the exact candidate.
|
||||
6. **Releases** assess immutable artifacts, risk, rollback, deployment, and acceptance evidence.
|
||||
7. **Verification** reads the deployed page or runtime back and updates durable project and governance records.
|
||||
|
||||
## Project-owned operating guidance
|
||||
|
||||
Each project adopts six channel skills and seven engineering skills into its dedicated skills/code-agent organization. Those copies preserve project naming, environment namespaces, repository links, authority decisions, and operating lessons. Central changes are compared and deliberately synchronized; they never silently overwrite project decisions.
|
||||
|
||||
Corp v1 projects and channels do **not** use cronjobs or scheduler jobs under the current approved model. Coordination is human- or event-driven.
|
||||
+4
-2
@@ -7,7 +7,7 @@ sidebar_position: 1
|
||||
|
||||
# Board Members
|
||||
|
||||
The Corp v1 Board has exactly four members:
|
||||
The Corp v1 Board has exactly six members:
|
||||
|
||||
| Discord member | Account | Board authority |
|
||||
|---|---|---|
|
||||
@@ -15,6 +15,8 @@ The Corp v1 Board has exactly four members:
|
||||
| `<@476287310627864587>` | Panther Skeleton (`pantherskeleton`) | Start/close projects; approve `corp-v1--main` changes |
|
||||
| `<@773109855497093191>` | MartynasP (`w4rl0ck_21`) | Start/close projects; approve `corp-v1--main` changes |
|
||||
| `<@364383883778850827>` | Eduard (`eduardanichess`) | Start/close projects; approve `corp-v1--main` changes |
|
||||
| `<@1483820991720329227>` | Linas (`linas_02251`) | Start/close projects; approve `corp-v1--main` changes |
|
||||
| `<@1540035254746882048>` | Jenny (`elprup16`) | Start/close projects; approve `corp-v1--main` changes |
|
||||
|
||||
Only these Board members may approve a project kickoff or project closure. Approval must be explicit and attributable to one of the Discord IDs above.
|
||||
|
||||
@@ -26,4 +28,4 @@ Only these Board members may approve changes to `corp-v1--main`. Other members a
|
||||
2. Obtain explicit Board approval before publishing the central reference change.
|
||||
3. Ask each affected project channel to review and synchronize its project-adopted channel skill (`corp-v1-channel-*--<code>`).
|
||||
4. Preserve project-specific decisions during synchronization and return conflicts to the Board instead of overwriting them.
|
||||
5. Verify the central commit, every project adoption commit, runtime skill copy, and attached synchronization job before recording completion.
|
||||
5. Verify the central commit, every project adoption commit, runtime skill copy, and absence of Corp v1 scheduler jobs before recording completion.
|
||||
|
||||
@@ -8,7 +8,9 @@ sidebar_position: 2
|
||||
|
||||
| Date | Decision | Scope | Owner | Record |
|
||||
|---|---|---|---|---|
|
||||
| 2026-08-20 | Add Jenny to the Corp v1 Board and every active project | Corp v1 governance, AeroSim, and Maze Next Gen | RootAtSkic | [Jenny Board and project membership](/governance/decisions/jenny-board-and-project-membership/) |
|
||||
| 2026-08-17 | Authorize Maze Next Gen kickoff and begin provisioning | Maze Next Gen | RootAtSkic | [Maze Next Gen kickoff](/governance/decisions/mazeng-kickoff/) |
|
||||
| 2026-08-17 | Add Linas to the Corp v1 Board and AeroSim team | Corp v1 governance and AeroSim | RootAtSkic | [Linas Board and AeroSim membership](/governance/decisions/linas-board-and-aerosim-membership/) |
|
||||
| 2026-08-14 | Add Eduard to the Corp v1 Board and expand the AeroSim team | Corp v1 governance and AeroSim | RootAtSkic | [Board and AeroSim membership expansion](/governance/decisions/board-and-aerosim-membership-expansion/) |
|
||||
| 2026-08-14 | Establish the Corp v1 Board, main skill, portal, membership, and skill-change authority | Corp v1 governance | RootAtSkic | [Corp v1 Board migration](/governance/decisions/corp-v1-board-migration/) |
|
||||
| 2026-08-13 | Align managed projects to the six-channel Scope/Kanban lifecycle and hourly synchronization model | Corp v1 managed projects | RootAtSkic | [Managed-project six-channel alignment](/governance/decisions/managed-project-six-channel-alignment/) |
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: "Jenny Board and project membership"
|
||||
description: "Record the approved addition of Jenny to the Corp v1 Board and every active project."
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Jenny Board and project membership
|
||||
|
||||
- **Date:** 2026-08-20
|
||||
- **Status:** Discord access applied and verified; Gitea access pending first login
|
||||
- **Approved by:** RootAtSkic (`<@1518725627845283888>`)
|
||||
- **Approval evidence:** `corp-v1-board` channel `1537070875503886356`, message `1540045796152709180`
|
||||
- **Scope:** Corp v1 Board authority plus AeroSim and Maze Next Gen project membership for Jenny (`<@1540035254746882048>`)
|
||||
|
||||
## Decision
|
||||
|
||||
1. Add Jenny (`<@1540035254746882048>`, `elprup16`, display name Jenny) to the Corp v1 Board.
|
||||
2. Add Jenny to every active Corp v1 human project team: AeroSim and Maze Next Gen.
|
||||
3. Preserve RootAtSkic as sponsor and accountable lead for both projects.
|
||||
4. Defer Gitea organization-team access until Jenny signs in to Gitea at least once and her username is verified; do not guess an identity or add direct collaborators.
|
||||
5. Preserve every earlier governance decision as historical evidence.
|
||||
|
||||
## Applied and verified state
|
||||
|
||||
- Effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` permissions were verified in `corp-v1-board` and all twelve active-project channels.
|
||||
- Member-specific overwrites restore `VIEW_CHANNEL`; inherited guild permissions supply `SEND_MESSAGES` and `READ_MESSAGE_HISTORY`.
|
||||
- A fresh scheduler inventory found no Corp v1 project or channel jobs.
|
||||
- Gitea membership was intentionally not changed.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Jenny may exercise Board authority attributable to immutable Discord ID `1540035254746882048`.
|
||||
- Jenny is a human team member of AeroSim and Maze Next Gen and may exercise each project's human approval gates.
|
||||
- The Corp v1 Board now has six members.
|
||||
- AeroSim now has six human members plus the Hermes code agent; Maze Next Gen now has two human members plus the Hermes code agent.
|
||||
- Repository access remains a visible follow-up: Jenny must first log in at `https://gitea.lego-cloud.eu/`.
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: "Linas Board and AeroSim membership"
|
||||
description: "Record the approved addition of Linas to the Corp v1 Board and AeroSim team."
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Linas Board and AeroSim membership
|
||||
|
||||
- **Date:** 2026-08-17
|
||||
- **Status:** Approved and applied; Gitea login activation pending
|
||||
- **Approved by:** RootAtSkic (`<@1518725627845283888>`)
|
||||
- **Approval evidence:** `corp-v1-board` channel `1537070875503886356`, message `1538808717301252116`
|
||||
- **Scope:** Corp v1 Board authority and AeroSim team membership for Linas (`<@1483820991720329227>`)
|
||||
|
||||
## Decision
|
||||
|
||||
1. Add Linas (`<@1483820991720329227>`, `linas_02251`, display name Linas) to the Corp v1 Board.
|
||||
2. Add Linas to the AeroSim human project team while preserving RootAtSkic as sponsor and accountable lead.
|
||||
3. Apply repository access through the existing organization teams rather than direct collaborators.
|
||||
4. Preserve every earlier governance decision as historical evidence; this dated record changes the current roster without rewriting the 2026-08-12 or 2026-08-14 decisions.
|
||||
|
||||
## Applied and verified state
|
||||
|
||||
- Effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` permissions were verified in `corp-v1-board` and all six AeroSim channels. Existing permissions already provided access, so no Discord permission mutation was made.
|
||||
- The Gitea mapping is unambiguous: `linas`, user ID `21`, full name Linas Ramanauskas.
|
||||
- `linas` is verified in `aerosim-maintainers` (team ID `23`), which covers both required repositories in `corp-v1-aerosim`.
|
||||
- `linas` is verified in `aerosim-skill-maintainers` (team ID `24`), which covers all thirteen adopted skill repositories in `corp-v1-aerosim-skills-code-agent`.
|
||||
- The membership update was announced in `corp-v1-aerosim-general` as message `1538811290925928505`.
|
||||
|
||||
## Caveat and consequences
|
||||
|
||||
- Linas may exercise the Board and AeroSim human approval gates attributable to immutable Discord ID `1483820991720329227`.
|
||||
- Gitea team access assignment is complete, but login activation remains pending: user ID `21` reports `active=false`.
|
||||
- The Corp v1 Board now has five members; the AeroSim registry has five human members plus the Hermes code agent.
|
||||
@@ -9,7 +9,7 @@ sidebar_position: 1
|
||||
|
||||
## Board authority
|
||||
|
||||
Only the four people listed in [Board Members](/board/) may approve a project kickoff, project closure, or a change to the global `corp-v1--main` governance skill. Approval must be explicit and attributable to a listed Discord ID. Agents and other members may prepare proposals and evidence but cannot approve these actions.
|
||||
Only the six people listed in [Board Members](/board/) may approve a project kickoff, project closure, or a change to the global `corp-v1--main` governance skill. Approval must be explicit and attributable to a listed Discord ID. Agents and other members may prepare proposals and evidence but cannot approve these actions.
|
||||
|
||||
## 1. Proposed
|
||||
|
||||
@@ -25,7 +25,7 @@ Maintain current status, decisions, risks, milestones, and material scope change
|
||||
|
||||
### Project-channel skill changes
|
||||
|
||||
A proposed change to a central project-channel reference skill (`corp-v1-channel-*`) must be presented to the Board before publication. After explicit Board approval and central publication, ask every affected project channel to review and synchronize its project-adopted channel skill (`corp-v1-channel-*--<code>`). Synchronization must preserve project-specific decisions, report conflicts for Board review, update runtime copies, and verify attached channel jobs.
|
||||
A proposed change to a central project-channel reference skill (`corp-v1-channel-*`) must be presented to the Board before publication. After explicit Board approval and central publication, ask every affected project channel to review and synchronize its project-adopted channel skill (`corp-v1-channel-*--<code>`). Synchronization must preserve project-specific decisions, report conflicts for Board review, update runtime copies, and verify that no Corp v1 scheduler job exists.
|
||||
|
||||
## 4. Paused
|
||||
|
||||
|
||||
@@ -13,5 +13,7 @@ sidebar_position: 1
|
||||
| [Panther Skeleton](/members/panther-skeleton/) | Active | Board member; AeroSim member | AeroSim Team | 1 |
|
||||
| [MartynasP](/members/martynasp/) | Active | Board member; AeroSim member | AeroSim Team | 1 |
|
||||
| [Eduard](/members/eduard/) | Active | Board member; AeroSim member | AeroSim Team | 1 |
|
||||
| [Linas](/members/linas/) | Active | Board member; AeroSim member | AeroSim Team | 1 |
|
||||
| [Jenny](/members/jenny/) | Active | Board member; AeroSim and Maze Next Gen member | AeroSim Team; Maze Next Gen Team | 2 |
|
||||
|
||||
Only governance-relevant professional information belongs here. Do not store secrets, credentials, private contact details, or unnecessary personal data.
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: "Jenny"
|
||||
description: "Identify Jenny's Corp v1 Board and active-project responsibilities and access state."
|
||||
sidebar_position: 7
|
||||
---
|
||||
|
||||
# Jenny
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Discord | `<@1540035254746882048>` — `elprup16` / Jenny |
|
||||
| Governance roles | Corp v1 Board member; AeroSim and Maze Next Gen human team member |
|
||||
| Teams | [AeroSim Team](/teams/aerosim/); [Maze Next Gen Team](/teams/mazeng/) |
|
||||
| Active projects | [AeroSim](/projects/aerosim/); [Maze Next Gen](/projects/mazeng/) |
|
||||
| Gitea | Pending first login and verified username |
|
||||
|
||||
On 2026-08-20, effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access was verified in `corp-v1-board` and all twelve active-project channels. Member-specific overwrites restore `VIEW_CHANNEL`; inherited guild permissions supply `SEND_MESSAGES` and `READ_MESSAGE_HISTORY`.
|
||||
|
||||
Jenny must sign in to [Gitea](https://gitea.lego-cloud.eu/) at least once before organization-team access can be granted. No Gitea username was guessed and no repository or team membership was provisioned.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: "Linas"
|
||||
description: "Identify Linas's Corp v1 Board and AeroSim project responsibilities and verified access state."
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
# Linas
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Full name | Linas Ramanauskas |
|
||||
| Discord | `<@1483820991720329227>` — `linas_02251` / Linas |
|
||||
| Governance roles | Corp v1 Board member; AeroSim human team member |
|
||||
| Team | [AeroSim Team](/teams/aerosim/) |
|
||||
| Active projects | [AeroSim](/projects/aerosim/) |
|
||||
| Gitea | `linas` (user ID `21`) — verified in both AeroSim organization teams; account reports `active=false` |
|
||||
|
||||
On 2026-08-17, effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access was verified in `corp-v1-board` and all six AeroSim channels. Existing effective permissions were sufficient, so no Discord permission mutation was made.
|
||||
|
||||
The unambiguous Gitea identity `linas` belongs to `aerosim-maintainers` (team ID `23`) and `aerosim-skill-maintainers` (team ID `24`). Those teams cover both required project repositories and all thirteen adopted skill repositories. Access assignment is complete, but Gitea login activation remains pending because the account reports `active=false`.
|
||||
@@ -11,7 +11,7 @@ sidebar_position: 1
|
||||
| Status | Active — lifecycle alignment reviewed |
|
||||
| Started | 2026-08-12 |
|
||||
| Sponsor and accountable lead | RootAtSkic |
|
||||
| Team members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; `jarvis-at-skic` / Hermes code agent |
|
||||
| Team members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; Linas; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||
| Team | [AeroSim Team](/teams/aerosim/) |
|
||||
|
||||
## Purpose
|
||||
@@ -63,18 +63,9 @@ Exactly six same-project channels exist under category `corp-v1` (`1537070242335
|
||||
- `corp-v1-aerosim-delivery` — `1537227683191197807`
|
||||
- `corp-v1-aerosim-releases` — `1537388451501056081`
|
||||
|
||||
Hermes bot `1526860732917088266` successfully read and posted project guidance. The general introduction is pinned as message `1537227685657444484`; Scope purpose guidance is message `1537544176621715506`; Kanban purpose guidance is message `1537548582003933326`; Releases purpose guidance is message `1537388452658815077`. Effective access is verified for RootAtSkic (`1518725627845283888`), Panther Skeleton (`476287310627864587`), MartynasP (`773109855497093191`), and Eduard (`364383883778850827`) across all six project channels.
|
||||
Hermes bot `1526860732917088266` successfully read and posted project guidance. The general introduction is pinned as message `1537227685657444484`; Scope purpose guidance is message `1537544176621715506`; Kanban purpose guidance is message `1537548582003933326`; Releases purpose guidance is message `1537388452658815077`. Effective access is verified for RootAtSkic (`1518725627845283888`), Panther Skeleton (`476287310627864587`), MartynasP (`773109855497093191`), Eduard (`364383883778850827`), Linas (`1483820991720329227`), and Jenny (`1540035254746882048`) across all six project channels. Jenny has effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY`. The Jenny team update was announced in General as message `1540048209152573550`.
|
||||
|
||||
Six staggered recurring synchronization jobs are active. Every job runs each hour, monitors only the other five AeroSim channels, loads its mapped adopted channel skill, proactively performs useful safe work within that channel's purpose, and records durable work in project documentation:
|
||||
|
||||
- General: `6fc9c6a1328e`, `0 * * * *`, skill `corp-v1-channel-general--aerosim`, target `1537227679374508132`
|
||||
- Scope: `dd548489178e`, `10 * * * *`, skill `corp-v1-channel-scope--aerosim`, target `1537544173366943886`
|
||||
- Architecture: `c236b1e9642e`, `15 * * * *`, skill `corp-v1-channel-architecture--aerosim`, target `1537227680590733383`
|
||||
- Kanban: `73378876d226`, `20 * * * *`, skill `corp-v1-channel-kanban--aerosim`, target `1537548579856580739`
|
||||
- Delivery: `fdb061087f2f`, `30 * * * *`, skill `corp-v1-channel-delivery--aerosim`, target `1537227683191197807`
|
||||
- Releases: `9deaa76e0077`, `45 * * * *`, skill `corp-v1-channel-releases--aerosim`, target `1537388451501056081`
|
||||
|
||||
All six jobs are enabled, explicitly constrained to the complete six-channel AeroSim boundary, and restricted from cross-project inspection and approval-required, destructive, secret-bearing, or high-impact autonomous actions.
|
||||
The current Corp v1 operating model prohibits project cronjobs and scheduler jobs. A fresh scheduler inventory on 2026-08-20 found no job targeting an AeroSim channel.
|
||||
|
||||
## Adopted project skills
|
||||
|
||||
@@ -103,7 +94,7 @@ Each repository records the central source branch and commit in `ADOPTION.md`. A
|
||||
- Documentation lifecycle alignment commit `5f674525f6c8b5ce29fe2653350c6188fb97ea01` and Actions run `609`: successful.
|
||||
- Application tests: four passed across web, API, and shared flight core.
|
||||
- Application and documentation production builds: passed.
|
||||
- Project-team access to both project repositories: verified for `jarvis-at-skic`, `root-at-skic`, and `martynas-pazusis`; pending verified Gitea identities for Panther Skeleton and Eduard.
|
||||
- Project-team access to both project repositories: verified for `jarvis-at-skic`, `root-at-skic`, `martynas-pazusis`, and `linas`; pending verified Gitea identities for Panther Skeleton and Eduard. Linas's assignment is complete through team ID `23`, but login activation remains pending because Gitea user ID `21` reports `active=false`.
|
||||
- Skills-team organization contains all thirteen adopted skill repositories on default branch `test`: verified.
|
||||
- Harbor organization variable names and secret name `HL_V1_HARBOR_ROBOT_GITEA_ACTIONS_V1_SECRET`: verified without reading secret values.
|
||||
- Product lifecycle, solution traceability, and release-readiness registries now exist in project documentation. No Epic or Feature was assigned human approval retrospectively.
|
||||
@@ -113,4 +104,6 @@ Each repository records the central source branch and commit in `ADOPTION.md`. A
|
||||
|
||||
A human team member must approve the desired branch-protection policy for both project `test` branches before protection is configured. No protection was added autonomously because required approvals and merge semantics are a governance decision.
|
||||
|
||||
Panther Skeleton and Eduard must provide or create their Gitea usernames before they can be added to `aerosim-maintainers` and `aerosim-skill-maintainers`. Their Discord project access is already verified.
|
||||
Panther Skeleton, Eduard, and Jenny must provide or create their Gitea usernames before they can be added to `aerosim-maintainers` and `aerosim-skill-maintainers`. Jenny must first sign in to Gitea at least once. Their Discord project access is already verified.
|
||||
|
||||
Linas is assigned to `aerosim-maintainers` (team ID `23`, covering both required project repositories) and `aerosim-skill-maintainers` (team ID `24`, covering all thirteen adopted skill repositories). The account owner or Gitea administrator must activate user ID `21`; until `active=false` is cleared, team assignment is complete but interactive login remains pending.
|
||||
|
||||
+5
-12
@@ -11,7 +11,7 @@ sidebar_position: 2
|
||||
| Status | Active — Harbor gated |
|
||||
| Started | 2026-08-17 |
|
||||
| Sponsor and accountable lead | RootAtSkic |
|
||||
| Initial technical member | `jarvis-at-skic` / Hermes code agent |
|
||||
| Team members | RootAtSkic; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||
| Team | [Maze Next Gen Team](/teams/mazeng/) |
|
||||
|
||||
## Purpose
|
||||
@@ -45,18 +45,11 @@ Exactly six channels exist under category `corp-v1` (`1537070242335821924`):
|
||||
- `corp-v1-mazeng-delivery` — `1539019973043683358`; purpose `1539019975203885068`; pinned skills `1539021530317463572`
|
||||
- `corp-v1-mazeng-releases` — `1539019976977948694`; purpose `1539019979590991963`; pinned skills `1539021536621756458`
|
||||
|
||||
General introduction `1539019982682325132` and all six skill-guidance messages are pinned. Hermes read/post/pin operations succeeded in all channels. Harbor request message: `1539020766203617390`.
|
||||
General introduction `1539019982682325132` and all six skill-guidance messages are pinned. Hermes read/post/pin operations succeeded in all channels. Jenny (`1540035254746882048`) has verified effective view/send/history access across all six channels. The Jenny team update was announced in General as message `1540048213090771034`. Harbor request message: `1539020766203617390`.
|
||||
|
||||
## Synchronization jobs
|
||||
## Project automation
|
||||
|
||||
All six are enabled, hourly, staggered, exact-targeted, limited to the six Maze channels, and attach the mapped adopted skill:
|
||||
|
||||
- General: `f5465bc1b05d`, `0 * * * *`, skill `corp-v1-channel-general--mazeng`, target `1539019955738116096`
|
||||
- Scope: `ab278de9e046`, `10 * * * *`, skill `corp-v1-channel-scope--mazeng`, target `1539019959135633580`
|
||||
- Architecture: `9c9e0206f05b`, `15 * * * *`, skill `corp-v1-channel-architecture--mazeng`, target `1539019963568758835`
|
||||
- Kanban: `e8de02062193`, `20 * * * *`, skill `corp-v1-channel-kanban--mazeng`, target `1539019969323466883`
|
||||
- Delivery: `11f63507301a`, `30 * * * *`, skill `corp-v1-channel-delivery--mazeng`, target `1539019973043683358`
|
||||
- Releases: `f04ab31a499e`, `45 * * * *`, skill `corp-v1-channel-releases--mazeng`, target `1539019976977948694`
|
||||
The current Corp v1 operating model prohibits project cronjobs and scheduler jobs. A fresh scheduler inventory on 2026-08-20 found no job targeting a Maze Next Gen channel.
|
||||
|
||||
## Adopted project skills
|
||||
|
||||
@@ -78,7 +71,7 @@ Global diagram source: [`drawio-main`](https://gitea.lego-cloud.eu/home-v1-skill
|
||||
|
||||
## Access and Harbor
|
||||
|
||||
Team identifier `maze-next-gen-team` exists in both private organizations, includes all repositories, grants per-unit write access, and contains verified members `root-at-skic` and `jarvis-at-skic`. Thirty effective repository permission checks passed across fifteen repositories.
|
||||
Team identifier `maze-next-gen-team` exists in both private organizations, includes all repositories, grants per-unit write access, and contains verified members `root-at-skic` and `jarvis-at-skic`. Thirty effective repository permission checks passed across fifteen repositories. Jenny's Gitea access remains pending until she signs in at least once and supplies a verified username.
|
||||
|
||||
Verified variables on `corp-v1-mazeng`:
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ sidebar_position: 1
|
||||
|---|---|
|
||||
| Status | Active |
|
||||
| Lead | RootAtSkic |
|
||||
| Members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; `jarvis-at-skic` / Hermes code agent |
|
||||
| Members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; Linas; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||
| Assigned project | [AeroSim](/projects/aerosim/) |
|
||||
|
||||
## Mandate
|
||||
@@ -27,9 +27,11 @@ Deliver the AeroSim browser flight-simulation platform, its documentation, and t
|
||||
|
||||
- `aerosim-maintainers` in `corp-v1-aerosim` covers both project repositories.
|
||||
- `aerosim-skill-maintainers` in `corp-v1-aerosim-skills-code-agent` covers all thirteen adopted skill repositories.
|
||||
- `jarvis-at-skic`, `root-at-skic`, and `martynas-pazusis` membership and effective repository assignments are verified in both teams.
|
||||
- `jarvis-at-skic`, `root-at-skic`, `martynas-pazusis`, and `linas` membership and repository assignments are verified in both teams.
|
||||
- Linas maps unambiguously to Gitea user ID `21` (`linas`, Linas Ramanauskas). Access assignment is complete, but login activation remains pending because the account reports `active=false`.
|
||||
- Panther Skeleton and Eduard have verified Discord identities and channel access, but no matching Gitea accounts could be resolved on 2026-08-14. Their Gitea team access remains pending verified usernames or account creation.
|
||||
- Jenny has verified Discord access. Gitea access is pending until she signs in to Gitea at least once and supplies a verified username; no username was guessed and no direct collaborator was added.
|
||||
|
||||
## Communication
|
||||
|
||||
Exactly six AeroSim channels exist under the `corp-v1` category: `general`, `scope`, `architecture`, `kanban`, `delivery`, and `releases`. RootAtSkic, Panther Skeleton, MartynasP, Eduard, and Hermes have verified effective access. Guidance messages, the pinned general introduction, and six isolated same-project hourly synchronization jobs are verified.
|
||||
Exactly six AeroSim channels exist under the `corp-v1` category: `general`, `scope`, `architecture`, `kanban`, `delivery`, and `releases`. RootAtSkic, Panther Skeleton, MartynasP, Eduard, Linas, Jenny, and Hermes have verified effective access. Jenny's effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` permissions were verified in all six channels. The membership update was announced in General as message `1540048209152573550`. Corp v1 project scheduler jobs are prohibited by the current operating model.
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@ sidebar_position: 1
|
||||
|
||||
| Team | Status | Lead | Members | Active projects |
|
||||
|---|---|---|---:|---:|
|
||||
| [AeroSim Team](/teams/aerosim/) | Active | RootAtSkic | 5 | 1 |
|
||||
| [Maze Next Gen Team](/teams/mazeng/) | Active | RootAtSkic | 2 | 1 |
|
||||
| [AeroSim Team](/teams/aerosim/) | Active | RootAtSkic | 7 | 1 |
|
||||
| [Maze Next Gen Team](/teams/mazeng/) | Active | RootAtSkic | 3 | 1 |
|
||||
|
||||
A team record defines its mandate, lead, members, responsibilities, communication channels, and assigned projects.
|
||||
|
||||
@@ -9,7 +9,7 @@ sidebar_position: 2
|
||||
|---|---|
|
||||
| Status | Active |
|
||||
| Lead | RootAtSkic |
|
||||
| Technical member | `jarvis-at-skic` / Hermes code agent |
|
||||
| Members | RootAtSkic; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||
| Assigned project | [Maze Next Gen](/projects/mazeng/) |
|
||||
|
||||
## Mandate
|
||||
@@ -18,11 +18,11 @@ Deliver the Maze Next Gen multi-cloud inventory and visualization platform, docu
|
||||
|
||||
## Gitea access
|
||||
|
||||
`maze-next-gen-team` exists independently in `corp-v1-mazeng` and `corp-v1-mazeng-skills-code-agent`, includes all repositories, and contains `root-at-skic` and `jarvis-at-skic`. Effective write access is verified for both members across two project and thirteen skill repositories.
|
||||
`maze-next-gen-team` exists independently in `corp-v1-mazeng` and `corp-v1-mazeng-skills-code-agent`, includes all repositories, and contains `root-at-skic` and `jarvis-at-skic`. Effective write access is verified for both existing Gitea members across two project and thirteen skill repositories. Jenny's repository access is pending until she signs in to Gitea at least once and supplies a verified username.
|
||||
|
||||
## Communication
|
||||
|
||||
Six exact Maze channels, purpose messages, pinned guidance, and six isolated staggered hourly synchronization jobs are verified.
|
||||
Six exact Maze channels and their purpose messages and pinned guidance are verified. Jenny has effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access in all six. The membership update was announced in General as message `1540048213090771034`. Corp v1 project scheduler jobs are prohibited by the current operating model.
|
||||
|
||||
## Remaining gate
|
||||
|
||||
|
||||
@@ -34,8 +34,6 @@ const config: Config = {
|
||||
} satisfies Preset.Options,
|
||||
]],
|
||||
plugins: [
|
||||
['drawio', {lib: '/corp-v1/portal/drawio/viewer.min.js'}],
|
||||
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'architecture-high-level', path: 'docs/architecture-high-level', routeBasePath: 'architecture-high-level', sidebarPath: './sidebars/architecture-high-level.ts'}],
|
||||
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'projects', path: 'docs/projects', routeBasePath: 'projects', sidebarPath: './sidebars/projects.ts'}],
|
||||
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'teams', path: 'docs/teams', routeBasePath: 'teams', sidebarPath: './sidebars/teams.ts'}],
|
||||
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'members', path: 'docs/members', routeBasePath: 'members', sidebarPath: './sidebars/members.ts'}],
|
||||
@@ -49,7 +47,7 @@ const config: Config = {
|
||||
indexDocs: true,
|
||||
indexBlog: false,
|
||||
indexPages: true,
|
||||
docsRouteBasePath: ['/', 'architecture-high-level', 'projects', 'teams', 'members', 'board', 'governance'],
|
||||
docsRouteBasePath: ['/', 'projects', 'teams', 'members', 'board', 'governance'],
|
||||
language: ['en'],
|
||||
highlightSearchTermsOnTargetPage: true,
|
||||
explicitSearchResultPath: true,
|
||||
@@ -62,7 +60,6 @@ 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'},
|
||||
@@ -74,7 +71,6 @@ const config: Config = {
|
||||
footer: {
|
||||
style: 'light',
|
||||
links: [{title: 'Registry', items: [
|
||||
{label: 'Architecture High Level', to: '/architecture-high-level/context/'},
|
||||
{label: 'Projects', to: '/projects/'},
|
||||
{label: 'Teams', to: '/teams/'},
|
||||
{label: 'Members', to: '/members/'},
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
"@easyops-cn/docusaurus-search-local": "^0.55.3",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
"clsx": "^2.0.0",
|
||||
"docusaurus-plugin-drawio": "^0.4.0",
|
||||
"prism-react-renderer": "^2.3.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0"
|
||||
@@ -32,8 +31,6 @@
|
||||
"@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"
|
||||
},
|
||||
"browserslist": {
|
||||
|
||||
Generated
+3
-137
@@ -26,9 +26,6 @@ importers:
|
||||
clsx:
|
||||
specifier: ^2.0.0
|
||||
version: 2.1.1
|
||||
docusaurus-plugin-drawio:
|
||||
specifier: ^0.4.0
|
||||
version: 0.4.0(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26))
|
||||
prism-react-renderer:
|
||||
specifier: ^2.3.0
|
||||
version: 2.4.1(react@19.2.8)
|
||||
@@ -51,12 +48,6 @@ 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))
|
||||
typescript:
|
||||
specifier: ~6.0.2
|
||||
version: 6.0.3
|
||||
@@ -1465,9 +1456,6 @@ 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'}
|
||||
@@ -2237,9 +2225,6 @@ 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==}
|
||||
|
||||
@@ -2836,9 +2821,6 @@ packages:
|
||||
resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
docusaurus-plugin-drawio@0.4.0:
|
||||
resolution: {integrity: sha512-7y3cgtwdQ3evWY/phq/iGJectDlRzpRrKzbcBeT79o+w+OStU0noTcTOmVd/oTiylu2OJXhQWF9z+4CoxTgAtA==}
|
||||
|
||||
dom-converter@0.2.0:
|
||||
resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
|
||||
|
||||
@@ -3064,13 +3046,6 @@ 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==}
|
||||
|
||||
@@ -3542,9 +3517,6 @@ 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'}
|
||||
@@ -4268,10 +4240,6 @@ 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==}
|
||||
|
||||
@@ -4782,12 +4750,6 @@ packages:
|
||||
resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
raw-loader@4.0.2:
|
||||
resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==}
|
||||
engines: {node: '>= 10.13.0'}
|
||||
peerDependencies:
|
||||
webpack: ^4.0.0 || ^5.0.0
|
||||
|
||||
rc@1.2.8:
|
||||
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||
hasBin: true
|
||||
@@ -5213,9 +5175,6 @@ 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==}
|
||||
|
||||
@@ -5640,10 +5599,6 @@ 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==}
|
||||
|
||||
@@ -7053,9 +7008,9 @@ snapshots:
|
||||
browserslist: 4.28.8
|
||||
lightningcss: 1.33.0
|
||||
semver: 7.8.5
|
||||
swc-loader: 0.2.7(@swc/core@1.15.47)(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26))
|
||||
swc-loader: 0.2.7(@swc/core@1.15.47)(webpack@5.109.2(@swc/core@1.15.47)(@swc/html@1.15.47)(lightningcss@1.33.0)(postcss@8.5.26))
|
||||
tslib: 2.8.1
|
||||
webpack: 5.109.2(@swc/core@1.15.47)(@swc/html@1.15.47)(lightningcss@1.33.0)(postcss@8.5.26)
|
||||
webpack: 5.109.2(@swc/core@1.15.47)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.26))(html-minifier-terser@7.2.0)(postcss@8.5.26)
|
||||
transitivePeerDependencies:
|
||||
- '@minify-html/node'
|
||||
- '@swc/css'
|
||||
@@ -8140,8 +8095,6 @@ snapshots:
|
||||
|
||||
'@noble/hashes@1.4.0': {}
|
||||
|
||||
'@nodable/entities@3.0.0': {}
|
||||
|
||||
'@node-rs/jieba-android-arm-eabi@1.10.4':
|
||||
optional: true
|
||||
|
||||
@@ -8953,8 +8906,6 @@ snapshots:
|
||||
normalize-path: 3.0.0
|
||||
picomatch: 2.3.2
|
||||
|
||||
anynum@1.0.1: {}
|
||||
|
||||
arg@5.0.2: {}
|
||||
|
||||
argparse@2.0.1: {}
|
||||
@@ -9581,12 +9532,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@leichtgewicht/ip-codec': 2.0.5
|
||||
|
||||
docusaurus-plugin-drawio@0.4.0(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26)):
|
||||
dependencies:
|
||||
raw-loader: 4.0.2(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26))
|
||||
transitivePeerDependencies:
|
||||
- webpack
|
||||
|
||||
dom-converter@0.2.0:
|
||||
dependencies:
|
||||
utila: 0.4.0
|
||||
@@ -9849,20 +9794,6 @@ 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
|
||||
@@ -10389,8 +10320,6 @@ snapshots:
|
||||
|
||||
is-typedarray@1.0.0: {}
|
||||
|
||||
is-unsafe@2.0.2: {}
|
||||
|
||||
is-wsl@2.2.0:
|
||||
dependencies:
|
||||
is-docker: 2.2.1
|
||||
@@ -11146,19 +11075,6 @@ snapshots:
|
||||
|
||||
minimist@1.2.8: {}
|
||||
|
||||
minimizer-webpack-plugin@5.6.1(@swc/core@1.15.47)(@swc/html@1.15.47)(lightningcss@1.33.0)(postcss@8.5.26)(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26)):
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
jest-worker: 27.5.1
|
||||
schema-utils: 4.3.3
|
||||
terser: 5.50.0
|
||||
webpack: 5.109.2(@swc/core@1.15.47)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.26))(html-minifier-terser@7.2.0)(postcss@8.5.26)
|
||||
optionalDependencies:
|
||||
'@swc/core': 1.15.47
|
||||
'@swc/html': 1.15.47
|
||||
lightningcss: 1.33.0
|
||||
postcss: 8.5.26
|
||||
|
||||
minimizer-webpack-plugin@5.6.1(@swc/core@1.15.47)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.26))(html-minifier-terser@7.2.0)(postcss@8.5.26)(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26)):
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
@@ -11356,8 +11272,6 @@ snapshots:
|
||||
|
||||
path-exists@5.0.0: {}
|
||||
|
||||
path-expression-matcher@1.6.2: {}
|
||||
|
||||
path-is-inside@1.0.2: {}
|
||||
|
||||
path-key@3.1.1: {}
|
||||
@@ -11907,12 +11821,6 @@ snapshots:
|
||||
iconv-lite: 0.4.24
|
||||
unpipe: 1.0.0
|
||||
|
||||
raw-loader@4.0.2(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26)):
|
||||
dependencies:
|
||||
loader-utils: 2.0.4
|
||||
schema-utils: 3.3.0
|
||||
webpack: 5.109.2(@swc/core@1.15.47)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.26))(html-minifier-terser@7.2.0)(postcss@8.5.26)
|
||||
|
||||
rc@1.2.8:
|
||||
dependencies:
|
||||
deep-extend: 0.6.0
|
||||
@@ -12462,10 +12370,6 @@ 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
|
||||
@@ -12502,7 +12406,7 @@ snapshots:
|
||||
picocolors: 1.1.1
|
||||
sax: 1.6.1
|
||||
|
||||
swc-loader@0.2.7(@swc/core@1.15.47)(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26)):
|
||||
swc-loader@0.2.7(@swc/core@1.15.47)(webpack@5.109.2(@swc/core@1.15.47)(@swc/html@1.15.47)(lightningcss@1.33.0)(postcss@8.5.26)):
|
||||
dependencies:
|
||||
'@swc/core': 1.15.47
|
||||
'@swc/counter': 0.1.3
|
||||
@@ -12800,42 +12704,6 @@ snapshots:
|
||||
|
||||
webpack-sources@3.5.1: {}
|
||||
|
||||
webpack@5.109.2(@swc/core@1.15.47)(@swc/html@1.15.47)(lightningcss@1.33.0)(postcss@8.5.26):
|
||||
dependencies:
|
||||
'@types/estree': 1.0.9
|
||||
'@types/json-schema': 7.0.15
|
||||
'@webassemblyjs/ast': 1.14.1
|
||||
'@webassemblyjs/wasm-edit': 1.14.1
|
||||
'@webassemblyjs/wasm-parser': 1.14.1
|
||||
acorn: 8.18.0
|
||||
browserslist: 4.28.8
|
||||
chrome-trace-event: 1.0.4
|
||||
enhanced-resolve: 5.24.5
|
||||
es-module-lexer: 2.3.1
|
||||
eslint-scope: 5.1.1
|
||||
events: 3.3.0
|
||||
graceful-fs: 4.2.11
|
||||
mime-db: 1.54.0
|
||||
minimizer-webpack-plugin: 5.6.1(@swc/core@1.15.47)(@swc/html@1.15.47)(lightningcss@1.33.0)(postcss@8.5.26)(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26))
|
||||
neo-async: 2.6.2
|
||||
schema-utils: 4.3.3
|
||||
tapable: 2.3.3
|
||||
watchpack: 2.5.2
|
||||
webpack-sources: 3.5.1
|
||||
transitivePeerDependencies:
|
||||
- '@minify-html/node'
|
||||
- '@swc/core'
|
||||
- '@swc/css'
|
||||
- '@swc/html'
|
||||
- clean-css
|
||||
- cssnano
|
||||
- csso
|
||||
- esbuild
|
||||
- html-minifier-terser
|
||||
- lightningcss
|
||||
- postcss
|
||||
- uglify-js
|
||||
|
||||
webpack@5.109.2(@swc/core@1.15.47)(clean-css@5.3.3)(cssnano@6.1.2(postcss@8.5.26))(html-minifier-terser@7.2.0)(postcss@8.5.26):
|
||||
dependencies:
|
||||
'@types/estree': 1.0.9
|
||||
@@ -12933,8 +12801,6 @@ snapshots:
|
||||
dependencies:
|
||||
sax: 1.6.1
|
||||
|
||||
xml-naming@0.3.0: {}
|
||||
|
||||
yallist@3.1.1: {}
|
||||
|
||||
yocto-queue@1.2.2: {}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
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');
|
||||
@@ -21,18 +20,13 @@ for (const section of ['projects', 'teams', 'members', 'board', 'governance']) {
|
||||
assert.match(config, new RegExp(`sidebarId:\\s*'${section}Sidebar'`), `${section} navbar item does not target its dedicated sidebar`);
|
||||
assert.ok(existsSync(join(root, `sidebars/${section}.ts`)), `${section} sidebar file is missing`);
|
||||
}
|
||||
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.ok(existsSync(join(root, 'sidebars/architecture-high-level.ts')), 'Architecture High Level sidebar file is missing');
|
||||
|
||||
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');
|
||||
assert.doesNotMatch(config, /Pilot Model|docs\/pilot|routeBasePath:\s*'pilot'/, 'legacy Pilot Model navigation must not remain');
|
||||
|
||||
const board = read('docs/board/index.md');
|
||||
for (const memberId of ['1518725627845283888', '476287310627864587', '773109855497093191', '364383883778850827']) {
|
||||
for (const memberId of ['1518725627845283888', '476287310627864587', '773109855497093191', '364383883778850827', '1483820991720329227', '1540035254746882048']) {
|
||||
assert.ok(board.includes(memberId), `board page is missing Discord member ${memberId}`);
|
||||
}
|
||||
assert.match(board, /Only these Board members may approve a project kickoff or project closure/i);
|
||||
@@ -51,69 +45,16 @@ for (const section of ['projects', 'teams', 'members']) {
|
||||
|
||||
assert.ok(packageJson.dependencies?.['@easyops-cn/docusaurus-search-local'], 'local search dependency is missing');
|
||||
assert.match(config, /@easyops-cn\/docusaurus-search-local/, 'local search theme is not configured');
|
||||
assert.ok(packageJson.dependencies?.['docusaurus-plugin-drawio'], 'Draw.io plugin dependency is missing');
|
||||
assert.ok(packageJson.devDependencies?.['raw-loader'], 'Draw.io raw-loader dependency is missing');
|
||||
assert.match(config, /\['drawio',\s*\{lib:\s*'\/corp-v1\/portal\/drawio\/viewer\.min\.js'\}\]/, 'Draw.io plugin must use the self-hosted viewer');
|
||||
assert.ok(existsSync(join(root, 'static/drawio/viewer.min.js')), 'self-hosted Draw.io viewer is missing');
|
||||
const drawioLicense = read('static/drawio/LICENSE');
|
||||
assert.match(drawioLicense, /MIT License/, 'vendored Draw.io viewer license is missing');
|
||||
assert.match(drawioLicense, /Copyright \(c\) 2022 xiguaxigua/, 'vendored Draw.io viewer copyright notice is missing');
|
||||
assert.match(config, /indexPages:\s*true/, 'custom pages must be indexed');
|
||||
const searchRoutesMatch = config.match(/docsRouteBasePath:\s*\[([^\]]+)\]/);
|
||||
assert.ok(searchRoutesMatch, 'search route configuration is missing');
|
||||
const searchRoutes = searchRoutesMatch[1];
|
||||
for (const route of ['/', 'architecture-high-level', 'projects', 'teams', 'members', 'board', 'governance']) {
|
||||
assert.ok(searchRoutes.includes(`'${route}'`), `search does not include route base ${route}`);
|
||||
}
|
||||
|
||||
const architectureSidebar = read('sidebars/architecture-high-level.ts');
|
||||
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'),
|
||||
channels: read('docs/architecture-high-level/overview-channels.mdx'),
|
||||
repositories: read('docs/architecture-high-level/overview-repositories.mdx'),
|
||||
};
|
||||
for (const [name, page] of Object.entries(architecturePages)) {
|
||||
assert.match(page, /!!raw-loader!\.\/diagrams\/.+\.drawio/, `${name} page must render an editable Draw.io source`);
|
||||
}
|
||||
for (const term of ['six channel skills', 'seven engineering skills', 'Gitea Actions', 'scheduler jobs']) {
|
||||
assert.ok(Object.values(architecturePages).some((page) => page.includes(term)), `architecture explanation is missing: ${term}`);
|
||||
}
|
||||
for (const [name, markers] of Object.entries({
|
||||
'context.drawio': ['CORP V1 — OPERATING CONTEXT', 'Corp v1 Board', 'Gitea organizations and repositories', 'Delivery platform'],
|
||||
'overview.drawio': ['CORP V1 — PROJECT OPERATING FLOW', 'BOARD APPROVAL', 'KANBAN / FOCUS', 'VERIFY & RECORD'],
|
||||
'channels.drawio': ['CORP V1 — PROJECT CHANNELS', 'GENERAL', 'ARCHITECTURE', 'RELEASES'],
|
||||
'repositories.drawio': ['CORP V1 — ORGANIZATIONS, REPOSITORIES & 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}`);
|
||||
for (const route of ['/', 'projects', 'teams', 'members', 'board', 'governance']) {
|
||||
assert.ok(config.includes(`'${route}'`), `search does not include route base ${route}`);
|
||||
}
|
||||
|
||||
if (existsSync(join(root, 'build'))) {
|
||||
const filename = readdirSync(join(root, 'build')).find((name) => /^search-index(?:-[a-f0-9]+)?\.json$/.test(name));
|
||||
assert.ok(filename, 'production search index is missing');
|
||||
const search = readFileSync(join(root, 'build', filename), 'utf8').toLowerCase();
|
||||
for (const term of ['projects registry', 'teams registry', 'members registry', 'board members', 'project lifecycle', 'corp v1 board', 'overview channels', 'overview repositories']) {
|
||||
for (const term of ['projects registry', 'teams registry', 'members registry', 'board members', 'project lifecycle', 'corp v1 board']) {
|
||||
assert.ok(search.includes(term), `search index is missing: ${term}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
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;
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 xiguaxigua
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Vendored
-4168
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user