docs: add high-level Corp v1 architecture
Build and publish Corp v1 Board portal / build (pull_request) Successful in 38s
Build and publish Corp v1 Board portal / build (pull_request) Successful in 38s
This commit is contained in:
@@ -22,10 +22,14 @@ jobs:
|
|||||||
version: 9.15.9
|
version: 9.15.9
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install --frozen-lockfile
|
run: pnpm install --frozen-lockfile
|
||||||
|
- name: Validate portal contracts
|
||||||
|
run: pnpm verify:portal
|
||||||
- name: Typecheck
|
- name: Typecheck
|
||||||
run: pnpm typecheck
|
run: pnpm typecheck
|
||||||
- name: Build site
|
- name: Build site
|
||||||
run: pnpm build
|
run: pnpm build
|
||||||
|
- name: Validate built routes and search index
|
||||||
|
run: pnpm verify:portal
|
||||||
- name: Publish to LEGO Cloud Pages
|
- name: Publish to LEGO Cloud Pages
|
||||||
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main'
|
if: gitea.event_name == 'push' && gitea.ref == 'refs/heads/main'
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
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.
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<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>
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<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>
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
<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>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<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>
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
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.
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
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.
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
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.
|
||||||
@@ -34,6 +34,8 @@ const config: Config = {
|
|||||||
} satisfies Preset.Options,
|
} satisfies Preset.Options,
|
||||||
]],
|
]],
|
||||||
plugins: [
|
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: '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: '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'}],
|
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'members', path: 'docs/members', routeBasePath: 'members', sidebarPath: './sidebars/members.ts'}],
|
||||||
@@ -47,7 +49,7 @@ const config: Config = {
|
|||||||
indexDocs: true,
|
indexDocs: true,
|
||||||
indexBlog: false,
|
indexBlog: false,
|
||||||
indexPages: true,
|
indexPages: true,
|
||||||
docsRouteBasePath: ['/', 'projects', 'teams', 'members', 'board', 'governance'],
|
docsRouteBasePath: ['/', 'architecture-high-level', 'projects', 'teams', 'members', 'board', 'governance'],
|
||||||
language: ['en'],
|
language: ['en'],
|
||||||
highlightSearchTermsOnTargetPage: true,
|
highlightSearchTermsOnTargetPage: true,
|
||||||
explicitSearchResultPath: true,
|
explicitSearchResultPath: true,
|
||||||
@@ -60,6 +62,7 @@ const config: Config = {
|
|||||||
navbar: {
|
navbar: {
|
||||||
title: 'CORP V1 / BOARD',
|
title: 'CORP V1 / BOARD',
|
||||||
items: [
|
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: 'projectsSidebar', docsPluginId: 'projects', label: 'Projects', position: 'left'},
|
||||||
{type: 'docSidebar', sidebarId: 'teamsSidebar', docsPluginId: 'teams', label: 'Teams', 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: 'membersSidebar', docsPluginId: 'members', label: 'Members', position: 'left'},
|
||||||
@@ -71,6 +74,7 @@ const config: Config = {
|
|||||||
footer: {
|
footer: {
|
||||||
style: 'light',
|
style: 'light',
|
||||||
links: [{title: 'Registry', items: [
|
links: [{title: 'Registry', items: [
|
||||||
|
{label: 'Architecture High Level', to: '/architecture-high-level/context/'},
|
||||||
{label: 'Projects', to: '/projects/'},
|
{label: 'Projects', to: '/projects/'},
|
||||||
{label: 'Teams', to: '/teams/'},
|
{label: 'Teams', to: '/teams/'},
|
||||||
{label: 'Members', to: '/members/'},
|
{label: 'Members', to: '/members/'},
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"@easyops-cn/docusaurus-search-local": "^0.55.3",
|
"@easyops-cn/docusaurus-search-local": "^0.55.3",
|
||||||
"@mdx-js/react": "^3.0.0",
|
"@mdx-js/react": "^3.0.0",
|
||||||
"clsx": "^2.0.0",
|
"clsx": "^2.0.0",
|
||||||
|
"docusaurus-plugin-drawio": "^0.4.0",
|
||||||
"prism-react-renderer": "^2.3.0",
|
"prism-react-renderer": "^2.3.0",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0"
|
"react-dom": "^19.0.0"
|
||||||
@@ -31,6 +32,7 @@
|
|||||||
"@docusaurus/tsconfig": "3.10.2",
|
"@docusaurus/tsconfig": "3.10.2",
|
||||||
"@docusaurus/types": "3.10.2",
|
"@docusaurus/types": "3.10.2",
|
||||||
"@types/react": "^19.0.0",
|
"@types/react": "^19.0.0",
|
||||||
|
"raw-loader": "^4.0.2",
|
||||||
"typescript": "~6.0.2"
|
"typescript": "~6.0.2"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
|
|||||||
Generated
+103
-3
@@ -26,6 +26,9 @@ importers:
|
|||||||
clsx:
|
clsx:
|
||||||
specifier: ^2.0.0
|
specifier: ^2.0.0
|
||||||
version: 2.1.1
|
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:
|
prism-react-renderer:
|
||||||
specifier: ^2.3.0
|
specifier: ^2.3.0
|
||||||
version: 2.4.1(react@19.2.8)
|
version: 2.4.1(react@19.2.8)
|
||||||
@@ -48,6 +51,9 @@ importers:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: ^19.0.0
|
specifier: ^19.0.0
|
||||||
version: 19.2.18
|
version: 19.2.18
|
||||||
|
raw-loader:
|
||||||
|
specifier: ^4.0.2
|
||||||
|
version: 4.0.2(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26))
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ~6.0.2
|
specifier: ~6.0.2
|
||||||
version: 6.0.3
|
version: 6.0.3
|
||||||
@@ -1497,24 +1503,28 @@ packages:
|
|||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@node-rs/jieba-linux-arm64-musl@1.10.4':
|
'@node-rs/jieba-linux-arm64-musl@1.10.4':
|
||||||
resolution: {integrity: sha512-Y/tiJ1+HeS5nnmLbZOE+66LbsPOHZ/PUckAYVeLlQfpygLEpLYdlh0aPpS5uiaWMjAXYZYdFkpZHhxDmSLpwpw==}
|
resolution: {integrity: sha512-Y/tiJ1+HeS5nnmLbZOE+66LbsPOHZ/PUckAYVeLlQfpygLEpLYdlh0aPpS5uiaWMjAXYZYdFkpZHhxDmSLpwpw==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@node-rs/jieba-linux-x64-gnu@1.10.4':
|
'@node-rs/jieba-linux-x64-gnu@1.10.4':
|
||||||
resolution: {integrity: sha512-WZO8ykRJpWGE9MHuZpy1lu3nJluPoeB+fIJJn5CWZ9YTVhNDWoCF4i/7nxz1ntulINYGQ8VVuCU9LD86Mek97g==}
|
resolution: {integrity: sha512-WZO8ykRJpWGE9MHuZpy1lu3nJluPoeB+fIJJn5CWZ9YTVhNDWoCF4i/7nxz1ntulINYGQ8VVuCU9LD86Mek97g==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@node-rs/jieba-linux-x64-musl@1.10.4':
|
'@node-rs/jieba-linux-x64-musl@1.10.4':
|
||||||
resolution: {integrity: sha512-uBBD4S1rGKcgCyAk6VCKatEVQb6EDD5I40v/DxODi5CuZVCANi9m5oee/MQbAoaX7RydA2f0OSCE9/tcwXEwUg==}
|
resolution: {integrity: sha512-uBBD4S1rGKcgCyAk6VCKatEVQb6EDD5I40v/DxODi5CuZVCANi9m5oee/MQbAoaX7RydA2f0OSCE9/tcwXEwUg==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@node-rs/jieba-wasm32-wasi@1.10.4':
|
'@node-rs/jieba-wasm32-wasi@1.10.4':
|
||||||
resolution: {integrity: sha512-Y2umiKHjuIJy0uulNDz9SDYHdfq5Hmy7jY5nORO99B4pySKkcrMjpeVrmWXJLIsEKLJwcCXHxz8tjwU5/uhz0A==}
|
resolution: {integrity: sha512-Y2umiKHjuIJy0uulNDz9SDYHdfq5Hmy7jY5nORO99B4pySKkcrMjpeVrmWXJLIsEKLJwcCXHxz8tjwU5/uhz0A==}
|
||||||
@@ -1621,21 +1631,25 @@ packages:
|
|||||||
resolution: {integrity: sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==}
|
resolution: {integrity: sha512-C8owWG+yvo7X0oVLIXetkoJhIFBP1LYNcAQqtgLmJnQLQDklGuP83dKC+zISGQWpjawHfZ1ER96vLgoTrxKZdw==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rspack/binding-linux-arm64-musl@1.7.12':
|
'@rspack/binding-linux-arm64-musl@1.7.12':
|
||||||
resolution: {integrity: sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==}
|
resolution: {integrity: sha512-i51WWI64aRpsfSki6rN0aepPqXkVfS+vZM7+4bWDcmnhUmdMvhIPcYg0QRk3DtyJnu33jqNLM0WHY78k00NyfA==}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@rspack/binding-linux-x64-gnu@1.7.12':
|
'@rspack/binding-linux-x64-gnu@1.7.12':
|
||||||
resolution: {integrity: sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==}
|
resolution: {integrity: sha512-MSos0FuPEefqo9V92ULd5hggKG29EkSNg1zDcypy0OkpsKh5pfjVxTLYFXgTcVyFoUQQbdG8zFBzYbwmJ8V4ew==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@rspack/binding-linux-x64-musl@1.7.12':
|
'@rspack/binding-linux-x64-musl@1.7.12':
|
||||||
resolution: {integrity: sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==}
|
resolution: {integrity: sha512-JcAMVKXOnjfpC3coWjCFPWD3Yl8RBw6a+IXQQ8mfRlHaHMIiOv8IfZqx15XRxMUn49CtP7Z0Na8iiAg2aKrcfw==}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@rspack/binding-wasm32-wasi@1.7.12':
|
'@rspack/binding-wasm32-wasi@1.7.12':
|
||||||
resolution: {integrity: sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==}
|
resolution: {integrity: sha512-n+ZqP6ZMc0nhOgvadg5VhEs9ojtbES80AcWeFnmGkbzIszvGSO63GKNiRkXtjJ9KFuRzytbbmsCqkUVH+Tywxg==}
|
||||||
@@ -1801,36 +1815,42 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/core-linux-arm64-musl@1.15.47':
|
'@swc/core-linux-arm64-musl@1.15.47':
|
||||||
resolution: {integrity: sha512-3Yu3Uq/VgytqsPjTMbkPU1ExADytbdWbruJYhA584E9jrpE2Ki+R6VVPoZCeAVk1Cb7QxcRTgblw6bSa6a/R+w==}
|
resolution: {integrity: sha512-3Yu3Uq/VgytqsPjTMbkPU1ExADytbdWbruJYhA584E9jrpE2Ki+R6VVPoZCeAVk1Cb7QxcRTgblw6bSa6a/R+w==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@swc/core-linux-ppc64-gnu@1.15.47':
|
'@swc/core-linux-ppc64-gnu@1.15.47':
|
||||||
resolution: {integrity: sha512-wfdMi5IaOaNtmh2/6geRoxIdNfqylUZFdtzTKS655y1axWfIWyx7As74vv0wVdjeCIZ3WmCI9odDd4rUttXOSQ==}
|
resolution: {integrity: sha512-wfdMi5IaOaNtmh2/6geRoxIdNfqylUZFdtzTKS655y1axWfIWyx7As74vv0wVdjeCIZ3WmCI9odDd4rUttXOSQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/core-linux-s390x-gnu@1.15.47':
|
'@swc/core-linux-s390x-gnu@1.15.47':
|
||||||
resolution: {integrity: sha512-3hHYBY0yx8Ez7GMRrkhXHQzMdR5IZA6Wq5Ee4svlgwvSECLpnAJ9+0AimEGUFDvuLwE7nV/2+PYe8+Nm4rvNcQ==}
|
resolution: {integrity: sha512-3hHYBY0yx8Ez7GMRrkhXHQzMdR5IZA6Wq5Ee4svlgwvSECLpnAJ9+0AimEGUFDvuLwE7nV/2+PYe8+Nm4rvNcQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/core-linux-x64-gnu@1.15.47':
|
'@swc/core-linux-x64-gnu@1.15.47':
|
||||||
resolution: {integrity: sha512-TjfhjgP/jGCfFHYC3JQPhJA1HwErbIJ9JfREDc1KNkvY6P0LodCgKVIlQ5deeTbkG7ih3bF5PHJLuLpaZjdRyQ==}
|
resolution: {integrity: sha512-TjfhjgP/jGCfFHYC3JQPhJA1HwErbIJ9JfREDc1KNkvY6P0LodCgKVIlQ5deeTbkG7ih3bF5PHJLuLpaZjdRyQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/core-linux-x64-musl@1.15.47':
|
'@swc/core-linux-x64-musl@1.15.47':
|
||||||
resolution: {integrity: sha512-CQpS8Ge/avfjZd0UEwG/sds83Uu32deQXcV1Jo3jD0mmvQQqtYAjpsDZXugmheeAwmt+YIuoVtVHro8LMYHqsQ==}
|
resolution: {integrity: sha512-CQpS8Ge/avfjZd0UEwG/sds83Uu32deQXcV1Jo3jD0mmvQQqtYAjpsDZXugmheeAwmt+YIuoVtVHro8LMYHqsQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@swc/core-win32-arm64-msvc@1.15.47':
|
'@swc/core-win32-arm64-msvc@1.15.47':
|
||||||
resolution: {integrity: sha512-0W8IKHsUTYiT7G2RqtOoVWk+89yzZikIiDUb/sCK6BmQDBhN91hQSfyUtW12jhEWLzYgcfmisfsZrmZE+84U1A==}
|
resolution: {integrity: sha512-0W8IKHsUTYiT7G2RqtOoVWk+89yzZikIiDUb/sCK6BmQDBhN91hQSfyUtW12jhEWLzYgcfmisfsZrmZE+84U1A==}
|
||||||
@@ -1885,36 +1905,42 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/html-linux-arm64-musl@1.15.47':
|
'@swc/html-linux-arm64-musl@1.15.47':
|
||||||
resolution: {integrity: sha512-NyXRQiVBkeutgCwCxUUaFqZdDmpZONs7Zz3AZGoY35s9GwXF412Nt22fK/e7lO/sM6G/+S3rOom/0xTmUQSK6A==}
|
resolution: {integrity: sha512-NyXRQiVBkeutgCwCxUUaFqZdDmpZONs7Zz3AZGoY35s9GwXF412Nt22fK/e7lO/sM6G/+S3rOom/0xTmUQSK6A==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@swc/html-linux-ppc64-gnu@1.15.47':
|
'@swc/html-linux-ppc64-gnu@1.15.47':
|
||||||
resolution: {integrity: sha512-rQ+XLJHFzu0e4M5p1+8kF2FKzI7WO9KPPji87OuicHZVrDCEqg7/jSGu3hys9CjIQIYVfR+tAFuZz3Q1/jOoNA==}
|
resolution: {integrity: sha512-rQ+XLJHFzu0e4M5p1+8kF2FKzI7WO9KPPji87OuicHZVrDCEqg7/jSGu3hys9CjIQIYVfR+tAFuZz3Q1/jOoNA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [ppc64]
|
cpu: [ppc64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/html-linux-s390x-gnu@1.15.47':
|
'@swc/html-linux-s390x-gnu@1.15.47':
|
||||||
resolution: {integrity: sha512-w6bitHrllrE3lqmf14cT3spmWhZHGts1O08O4adzxztSPto7O5GM3IerqZm/NtsqlxNsfbVHnhaNXxXWe/8Q+Q==}
|
resolution: {integrity: sha512-w6bitHrllrE3lqmf14cT3spmWhZHGts1O08O4adzxztSPto7O5GM3IerqZm/NtsqlxNsfbVHnhaNXxXWe/8Q+Q==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [s390x]
|
cpu: [s390x]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/html-linux-x64-gnu@1.15.47':
|
'@swc/html-linux-x64-gnu@1.15.47':
|
||||||
resolution: {integrity: sha512-FTA7E29gcyadd71prg8sJUVacYrIhAXS8L7p48yCfgcNOKquofN1TDOrHVOyYMoxplL3FUwwbN+AZxWO7QfWPQ==}
|
resolution: {integrity: sha512-FTA7E29gcyadd71prg8sJUVacYrIhAXS8L7p48yCfgcNOKquofN1TDOrHVOyYMoxplL3FUwwbN+AZxWO7QfWPQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
'@swc/html-linux-x64-musl@1.15.47':
|
'@swc/html-linux-x64-musl@1.15.47':
|
||||||
resolution: {integrity: sha512-g+K1GKUrj+S9o8Qsgii2g7ooMzZ750R4IAqH5CVElIA5FTMAx7KGnu9ga6aEnRwwLYxY3s1k/nN+ls0NEk240g==}
|
resolution: {integrity: sha512-g+K1GKUrj+S9o8Qsgii2g7ooMzZ750R4IAqH5CVElIA5FTMAx7KGnu9ga6aEnRwwLYxY3s1k/nN+ls0NEk240g==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
'@swc/html-win32-arm64-msvc@1.15.47':
|
'@swc/html-win32-arm64-msvc@1.15.47':
|
||||||
resolution: {integrity: sha512-5Iw3i00JdTySi+ccc2CM5bxY+8TZivQmcTqUC6mUdAY0/KYBgSe1/L294UJQ4OTLQqNDOYXY9jdb070zZUX7jg==}
|
resolution: {integrity: sha512-5Iw3i00JdTySi+ccc2CM5bxY+8TZivQmcTqUC6mUdAY0/KYBgSe1/L294UJQ4OTLQqNDOYXY9jdb070zZUX7jg==}
|
||||||
@@ -2821,6 +2847,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
|
resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
docusaurus-plugin-drawio@0.4.0:
|
||||||
|
resolution: {integrity: sha512-7y3cgtwdQ3evWY/phq/iGJectDlRzpRrKzbcBeT79o+w+OStU0noTcTOmVd/oTiylu2OJXhQWF9z+4CoxTgAtA==}
|
||||||
|
|
||||||
dom-converter@0.2.0:
|
dom-converter@0.2.0:
|
||||||
resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
|
resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==}
|
||||||
|
|
||||||
@@ -3653,24 +3682,28 @@ packages:
|
|||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
lightningcss-linux-arm64-musl@1.33.0:
|
lightningcss-linux-arm64-musl@1.33.0:
|
||||||
resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
|
resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
lightningcss-linux-x64-gnu@1.33.0:
|
lightningcss-linux-x64-gnu@1.33.0:
|
||||||
resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
|
resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [glibc]
|
||||||
|
|
||||||
lightningcss-linux-x64-musl@1.33.0:
|
lightningcss-linux-x64-musl@1.33.0:
|
||||||
resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
|
resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
|
||||||
engines: {node: '>= 12.0.0'}
|
engines: {node: '>= 12.0.0'}
|
||||||
cpu: [x64]
|
cpu: [x64]
|
||||||
os: [linux]
|
os: [linux]
|
||||||
|
libc: [musl]
|
||||||
|
|
||||||
lightningcss-win32-arm64-msvc@1.33.0:
|
lightningcss-win32-arm64-msvc@1.33.0:
|
||||||
resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
|
resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
|
||||||
@@ -4750,6 +4783,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==}
|
resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==}
|
||||||
engines: {node: '>= 0.8'}
|
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:
|
rc@1.2.8:
|
||||||
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -7008,9 +7047,9 @@ snapshots:
|
|||||||
browserslist: 4.28.8
|
browserslist: 4.28.8
|
||||||
lightningcss: 1.33.0
|
lightningcss: 1.33.0
|
||||||
semver: 7.8.5
|
semver: 7.8.5
|
||||||
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))
|
swc-loader: 0.2.7(@swc/core@1.15.47)(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26))
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
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)
|
webpack: 5.109.2(@swc/core@1.15.47)(@swc/html@1.15.47)(lightningcss@1.33.0)(postcss@8.5.26)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@minify-html/node'
|
- '@minify-html/node'
|
||||||
- '@swc/css'
|
- '@swc/css'
|
||||||
@@ -9532,6 +9571,12 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@leichtgewicht/ip-codec': 2.0.5
|
'@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:
|
dom-converter@0.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
utila: 0.4.0
|
utila: 0.4.0
|
||||||
@@ -11075,6 +11120,19 @@ snapshots:
|
|||||||
|
|
||||||
minimist@1.2.8: {}
|
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)):
|
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:
|
dependencies:
|
||||||
'@jridgewell/trace-mapping': 0.3.31
|
'@jridgewell/trace-mapping': 0.3.31
|
||||||
@@ -11821,6 +11879,12 @@ snapshots:
|
|||||||
iconv-lite: 0.4.24
|
iconv-lite: 0.4.24
|
||||||
unpipe: 1.0.0
|
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:
|
rc@1.2.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
deep-extend: 0.6.0
|
deep-extend: 0.6.0
|
||||||
@@ -12406,7 +12470,7 @@ snapshots:
|
|||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
sax: 1.6.1
|
sax: 1.6.1
|
||||||
|
|
||||||
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)):
|
swc-loader@0.2.7(@swc/core@1.15.47)(webpack@5.109.2(@swc/core@1.15.47)(postcss@8.5.26)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@swc/core': 1.15.47
|
'@swc/core': 1.15.47
|
||||||
'@swc/counter': 0.1.3
|
'@swc/counter': 0.1.3
|
||||||
@@ -12704,6 +12768,42 @@ snapshots:
|
|||||||
|
|
||||||
webpack-sources@3.5.1: {}
|
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):
|
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:
|
dependencies:
|
||||||
'@types/estree': 1.0.9
|
'@types/estree': 1.0.9
|
||||||
|
|||||||
@@ -20,10 +20,15 @@ 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.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.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, /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.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, /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');
|
const board = read('docs/board/index.md');
|
||||||
for (const memberId of ['1518725627845283888', '476287310627864587', '773109855497093191', '364383883778850827']) {
|
for (const memberId of ['1518725627845283888', '476287310627864587', '773109855497093191', '364383883778850827']) {
|
||||||
@@ -45,16 +50,57 @@ for (const section of ['projects', 'teams', 'members']) {
|
|||||||
|
|
||||||
assert.ok(packageJson.dependencies?.['@easyops-cn/docusaurus-search-local'], 'local search dependency is missing');
|
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.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');
|
assert.match(config, /indexPages:\s*true/, 'custom pages must be indexed');
|
||||||
for (const route of ['/', 'projects', 'teams', 'members', 'board', 'governance']) {
|
const searchRoutesMatch = config.match(/docsRouteBasePath:\s*\[([^\]]+)\]/);
|
||||||
assert.ok(config.includes(`'${route}'`), `search does not include route base ${route}`);
|
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 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 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}`);
|
||||||
|
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}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (existsSync(join(root, 'build'))) {
|
if (existsSync(join(root, 'build'))) {
|
||||||
const filename = readdirSync(join(root, 'build')).find((name) => /^search-index(?:-[a-f0-9]+)?\.json$/.test(name));
|
const filename = readdirSync(join(root, 'build')).find((name) => /^search-index(?:-[a-f0-9]+)?\.json$/.test(name));
|
||||||
assert.ok(filename, 'production search index is missing');
|
assert.ok(filename, 'production search index is missing');
|
||||||
const search = readFileSync(join(root, 'build', filename), 'utf8').toLowerCase();
|
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']) {
|
for (const term of ['projects registry', 'teams registry', 'members registry', 'board members', 'project lifecycle', 'corp v1 board', 'overview channels', 'overview repositories']) {
|
||||||
assert.ok(search.includes(term), `search index is missing: ${term}`);
|
assert.ok(search.includes(term), `search index is missing: ${term}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
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;
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
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