Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6170e09db6 | ||
|
|
fe473d9f83 |
@@ -22,14 +22,10 @@ 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
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
---
|
|
||||||
id: context
|
|
||||||
title: "Context"
|
|
||||||
description: "See the Corp v1 home-lab system boundary, its human actors, and its only external systems: the LLM provider and Discord."
|
|
||||||
---
|
|
||||||
|
|
||||||
import Drawio from '@theme/Drawio';
|
|
||||||
import contextDiagram from '!!raw-loader!./diagrams/context.drawio';
|
|
||||||
|
|
||||||
# Context
|
|
||||||
|
|
||||||
The target system is the **Corp v1 managed delivery platform in Lego's home lab**. The boundary follows operational responsibility: services and managed service slices that Lego deploys, configures, versions, upgrades, secures, or restores are inside the Corp v1 system boundary.
|
|
||||||
|
|
||||||
<Drawio content={contextDiagram} title="Corp v1 home-lab system context" toolbar="zoom layers lightbox" responsive maxHeight={760} />
|
|
||||||
|
|
||||||
## Human actors
|
|
||||||
|
|
||||||
| Actor | Relationship to Corp v1 |
|
|
||||||
|---|---|
|
|
||||||
| **Corp v1 Board members** | Govern the portfolio and approve project lifecycle, membership, the global operating model, and central channel-reference changes. |
|
|
||||||
| **Project leads and contributors** | Define value, approve solution work and Task admission, review architecture and UI/UX, implement changes, and accept releases. |
|
|
||||||
| **Prospective project sponsors and contributors** | May request or join future Corp v1 projects after explicit Board approval and onboarding. |
|
|
||||||
| **Solution users and reviewers** | Provide needs, usability feedback, acceptance observations, and evidence about the products delivered through Corp v1. |
|
|
||||||
|
|
||||||
Human authority remains outside automation. Hermes, CI, deployments, inferred intent, and silence never substitute for an approval reserved to a listed person.
|
|
||||||
|
|
||||||
## External systems
|
|
||||||
|
|
||||||
Corp v1 currently has only two external software systems:
|
|
||||||
|
|
||||||
| External system | Relationship to Corp v1 |
|
|
||||||
|---|---|
|
|
||||||
| **LLM Provider** | Supplies model inference to Hermes Agent. The currently used providers are ICA or GPT Codex. Model execution is consumed as an external capability; Corp v1 does not deploy or maintain the provider platform. |
|
|
||||||
| **Communication Service — Discord** | Carries Board governance and project conversations. Corp v1 configures and maintains its channel structure, permissions, guidance, and pins, while Discord operates the communication platform itself. |
|
|
||||||
|
|
||||||
## Inside the system boundary
|
|
||||||
|
|
||||||
Hermes Agent and the home-lab services it depends on are internal containers in this architecture: Gitea, Actions runners, Penpot, the Board portal, Pages, Harbor, Argo CD, the access and identity stack, MicroK8s, and the hosted workloads. Their Corp v1 configuration is not modeled as an external dependency because Lego is responsible for its lifecycle and operational state.
|
|
||||||
|
|
||||||
The [Container Overview](/architecture-high-level/overview/) shows those internal containers and their delivery relationships. The [Operating Model](/architecture-high-level/operating-model/) separately explains Board authority, channel sessions, skills, approvals, and handoffs.
|
|
||||||
|
|
||||||
## Product boundary
|
|
||||||
|
|
||||||
A project product delivered through Corp v1 remains its own product boundary. Corp v1 operates the delivery platform and governs the lifecycle, while every project must maintain its own product context, requirements, architecture, data, security, UI/UX, and release decisions.
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
<mxfile host="app.diagrams.net" modified="2026-08-25T00:00:00.000Z" agent="Hermes Agent" version="26.0.16" type="device">
|
|
||||||
<diagram id="corp-v1-home-lab-containers-v2" name="CORP V1 — HOME-LAB CONTAINERS">
|
|
||||||
<mxGraphModel dx="2080" dy="1100" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2080" pageHeight="1100" math="0" shadow="0" adaptiveColors="auto">
|
|
||||||
<root>
|
|
||||||
<mxCell id="0"/>
|
|
||||||
<mxCell id="1" parent="0"/>
|
|
||||||
<mxCell id="title" value="CORP V1 — HOME-LAB CONTAINER OVERVIEW" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1"><mxGeometry x="80" y="20" width="1920" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="subtitle" value="Two external services · internally deployed and maintained delivery containers" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1"><mxGeometry x="80" y="70" width="1920" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="humans" value="HUMAN ACTORS · Board · project teams · solution users" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="80" y="140" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="discord" value="EXTERNAL · DISCORD · communication service" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="360" y="140" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="hermes" value="INTERNAL · HERMES AGENT · tools · sessions · verification" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=3;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="640" y="140" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="llm" value="EXTERNAL · LLM PROVIDER · ICA OR GPT CODEX" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="920" y="140" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="humans" target="discord"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="discord" target="hermes"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="hermes" target="llm"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="tools-arrow" value="TOOLS" style="shape=singleArrow;direction=south;whiteSpace=wrap;html=1;fillColor=#2563EB;strokeColor=#2563EB;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="720" y="340" width="80" height="80" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="internal-label" value="INTERNAL CONTAINERS · DEPLOYED AND MAINTAINED BY LEGO" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontStyle=1;fontColor=#334E68;" vertex="1" parent="1"><mxGeometry x="80" y="420" width="1920" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="penpot" value="PENPOT · UI/UX service · sources · reviews · handoff" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="80" y="500" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="skills" value="SKILLS & SESSIONS · governed runtime configuration" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="360" y="500" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="gitea" value="GITEA · source · docs · skills · PRs · GitOps state" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="640" y="500" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="actions" value="GITEA ACTIONS RUNNERS · exact-head build and publication" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="920" y="500" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="portal" value="BOARD PORTAL · Docusaurus application · registries · architecture" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1200" y="500" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="pages" value="LEGO CLOUD PAGES · protected documentation publication" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1480" y="500" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="access" value="ACCESS EDGE · Cloudflare config · Keycloak · OAuth · Nginx" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1760" y="500" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="gitea" target="actions"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="actions" target="portal"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="portal" target="pages"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="pages" target="access"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="image-arrow" value="IMAGE" style="shape=singleArrow;direction=south;whiteSpace=wrap;html=1;fillColor=#2563EB;strokeColor=#2563EB;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="1000" y="700" width="80" height="80" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="runtime-arrow" value="ROUTE" style="shape=singleArrow;direction=north;whiteSpace=wrap;html=1;fillColor=#2563EB;strokeColor=#2563EB;fontColor=#FFFFFF;fontSize=11;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="1840" y="700" width="80" height="80" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="harbor" value="HARBOR · registry · immutable images · retention" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="920" y="820" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="argocd" value="ARGO CD · GitOps desired state · sync · health" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1200" y="820" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="microk8s" value="GONDOR MICROK8S · 3-node runtime · namespaces · workloads" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1480" y="820" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="workloads" value="PROJECT WORKLOADS · Services · routes · releases · readback" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1760" y="820" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="harbor" target="argocd"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="argocd" target="microk8s"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e10" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="microk8s" target="workloads"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="evidence" value="OWNERSHIP = CONFIGURE · VERSION · DEPLOY · UPGRADE · SECURE · RESTORE · VERIFY" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=16;fontStyle=1;align=center;" vertex="1" parent="1"><mxGeometry x="80" y="1020" width="1920" height="40" as="geometry"/></mxCell>
|
|
||||||
</root>
|
|
||||||
</mxGraphModel>
|
|
||||||
</diagram>
|
|
||||||
</mxfile>
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
<mxfile host="app.diagrams.net" modified="2026-08-27T00:00:00.000Z" agent="Hermes Agent" version="26.0.16" type="device">
|
|
||||||
<diagram id="corp-v1-project-channels-v3" name="CORP V1 — BOARD, GUILD & PROJECT CHANNELS">
|
|
||||||
<mxGraphModel dx="1500" dy="1240" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="1240" math="0" shadow="0" adaptiveColors="auto">
|
|
||||||
<root>
|
|
||||||
<mxCell id="0" />
|
|
||||||
<mxCell id="1" parent="0" />
|
|
||||||
<mxCell id="title" value="CORP V1 — BOARD, GUILD & PROJECT CHANNELS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="20" width="1240" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="subtitle" value="2 central workspaces · 7 project sessions · one skilled agent" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="70" width="1240" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="board" value="CORP-V1-BOARD · PORTFOLIO GOVERNANCE · approvals · lifecycle · authority" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=3;fontColor=#102A43;fontSize=16;fontStyle=1;spacing=16;align=center;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="130" width="600" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="guild" value="CORP-V1-GUILD · IMPROVEMENT · skills · references · portal · rollout" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=3;fontColor=#102A43;fontSize=16;fontStyle=1;spacing=16;align=center;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="720" y="130" width="600" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="approval-band" value="BOARD APPROVES THE PROJECT BOUNDARY · PROJECT CHANNELS OWN DELIVERY DECISIONS" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0F766E;strokeColor=#0F766E;fontColor=#FFFFFF;fontSize=13;fontStyle=1;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="400" y="310" width="600" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="project-zone-label" value="ONE APPROVED PROJECT · SEVEN ORDERED CHANNEL SESSIONS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontStyle=1;fontColor=#334E68;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="410" width="1240" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="general" value="1 · GENERAL · onboarding · questions · coordination · outcomes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="490" width="280" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="scope" value="2 · SCOPE · value · Epics · Features · acceptance · approval" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="400" y="490" width="280" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="architecture" value="3 · ARCHITECTURE · requirements · ADRs · interfaces · Tasks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="720" y="490" width="280" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="uiux" value="4 · UI/UX · journeys · information architecture · Penpot · handoff" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="1040" y="490" width="280" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="kanban" value="5 · KANBAN · Board · Focus · dependencies · human Task admission" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="1040" y="730" width="280" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="delivery" value="6 · DELIVERY · implementation · branches · PRs · reviews · CI" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="720" y="730" width="280" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="releases" value="7 · RELEASES · readiness · versions · deploy · rollback · outcomes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="400" y="730" width="280" height="160" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e-general-scope" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="general" target="scope">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e-scope-architecture" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="scope" target="architecture">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e-architecture-uiux" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="architecture" target="uiux">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e-uiux-kanban" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="uiux" target="kanban">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e-kanban-delivery" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="kanban" target="delivery">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e-delivery-releases" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="delivery" target="releases">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="agent" value="ONE HERMES AGENT · shared identity and governance" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#64748B;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=14;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="1030" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="sessions" value="MULTIPLE FOCUSED SESSIONS · concern · history · approvals" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#64748B;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=14;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="520" y="1030" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="skills" value="SPECIALISED PROJECT SKILLS · 7 channel + 7 engineering" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#64748B;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=14;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="960" y="1030" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
</root>
|
|
||||||
</mxGraphModel>
|
|
||||||
</diagram>
|
|
||||||
</mxfile>
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<mxfile host="app.diagrams.net" modified="2026-08-25T00:00:00.000Z" agent="Hermes Agent" version="26.0.16" type="device">
|
|
||||||
<diagram id="corp-v1-home-lab-context-v3" name="CORP V1 — HOME-LAB SYSTEM CONTEXT">
|
|
||||||
<mxGraphModel dx="1440" dy="960" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1440" pageHeight="960" math="0" shadow="0" adaptiveColors="auto">
|
|
||||||
<root>
|
|
||||||
<mxCell id="0"/>
|
|
||||||
<mxCell id="1" parent="0"/>
|
|
||||||
<mxCell id="title" value="CORP V1 — HOME-LAB SYSTEM CONTEXT" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1"><mxGeometry x="80" y="20" width="1280" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="subtitle" value="Owned home-lab platform · human authority · only two external systems" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1"><mxGeometry x="80" y="70" width="1280" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="actors-label" value="HUMAN ACTORS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontStyle=1;fontColor=#334E68;" vertex="1" parent="1"><mxGeometry x="80" y="120" width="1280" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="board" value="BOARD MEMBERS · portfolio authority · lifecycle · global policy" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="80" y="180" width="400" height="120" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="teams" value="PROJECT LEADS & CONTRIBUTORS · decisions · design · delivery" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="520" y="180" width="400" height="120" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="future" value="SPONSORS & SOLUTION USERS · requests · feedback · acceptance" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="960" y="180" width="400" height="120" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="actor-relation" value="GOVERN · DIRECT · COLLABORATE · REVIEW" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0F766E;strokeColor=#0F766E;fontColor=#FFFFFF;fontSize=14;fontStyle=1;align=center;" vertex="1" parent="1"><mxGeometry x="480" y="340" width="480" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="target" value="TARGET SYSTEM · CORP V1 MANAGED HOME-LAB DELIVERY PLATFORM" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=3;fontColor=#102A43;fontSize=18;fontStyle=1;spacing=20;align=center;" vertex="1" parent="1"><mxGeometry x="320" y="420" width="800" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="system-relation" value="MODEL INFERENCE · HUMAN COMMUNICATION" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#C2410C;strokeColor=#C2410C;fontColor=#FFFFFF;fontSize=14;fontStyle=1;align=center;" vertex="1" parent="1"><mxGeometry x="480" y="620" width="480" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="systems-label" value="EXTERNAL SYSTEMS · ONLY TWO" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=16;fontStyle=1;fontColor=#334E68;" vertex="1" parent="1"><mxGeometry x="80" y="700" width="1280" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="discord" value="COMMUNICATION SERVICE · DISCORD" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=16;fontStyle=1;spacing=16;" vertex="1" parent="1"><mxGeometry x="280" y="780" width="400" height="120" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="llm" value="LLM PROVIDER · ICA OR GPT CODEX" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF7ED;strokeColor=#C2410C;strokeWidth=2;fontColor=#102A43;fontSize=16;fontStyle=1;spacing=16;" vertex="1" parent="1"><mxGeometry x="760" y="780" width="400" height="120" as="geometry"/></mxCell>
|
|
||||||
</root>
|
|
||||||
</mxGraphModel>
|
|
||||||
</diagram>
|
|
||||||
</mxfile>
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
<mxfile host="app.diagrams.net" modified="2026-08-25T00:00:00.000Z" agent="Hermes Agent" version="26.0.16" type="device">
|
|
||||||
<diagram id="corp-v1-operating-model-v3" name="CORP V1 — OPERATING MODEL FLOW">
|
|
||||||
<mxGraphModel dx="1500" dy="960" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="960" math="0" shadow="0" adaptiveColors="auto">
|
|
||||||
<root>
|
|
||||||
<mxCell id="0"/>
|
|
||||||
<mxCell id="1" parent="0"/>
|
|
||||||
<mxCell id="title" value="CORP V1 — OPERATING MODEL FLOW" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1"><mxGeometry x="80" y="20" width="1360" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="subtitle" value="One agent · multiple channel sessions · explicit human gates · durable evidence" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1"><mxGeometry x="80" y="70" width="1360" height="40" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="board" value="1 · CORP-V1-BOARD · BOARD APPROVAL · purpose · lead · members" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="80" y="160" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="general" value="2 · GENERAL · onboarding · coordination · questions · outcomes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="360" y="160" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="scope" value="3 · SCOPE · Ideas → Epics → Features · value · approval" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="640" y="160" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="architecture" value="4 · ARCHITECTURE · requirements · ADRs · interfaces · Tasks" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="920" y="160" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="uiux" value="5 · UI/UX · journeys · IA · Penpot · accessibility · handoff" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1200" y="160" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="kanban" value="6 · KANBAN / FOCUS · flow · blockers · human Task admission" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="1200" y="480" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="delivery" value="7 · DELIVERY · implementation · branches · PRs · reviews · CI" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="920" y="480" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="releases" value="8 · RELEASES · candidate · readiness · deploy · rollback · outcomes" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="640" y="480" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="verify" value="9 · VERIFY & RECORD · runtime readback · docs · Board evidence" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=12;" vertex="1" parent="1"><mxGeometry x="360" y="480" width="240" height="160" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="board" target="general"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="general" target="scope"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="scope" target="architecture"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="architecture" target="uiux"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="uiux" target="kanban"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e6" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="kanban" target="delivery"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e7" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="delivery" target="releases"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e8" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="releases" target="verify"><mxGeometry relative="1" as="geometry"/></mxCell>
|
|
||||||
<mxCell id="e9" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#0F766E;strokeWidth=2;dashed=1;endArrow=block;endFill=1;" edge="1" parent="1" source="verify" target="board">
|
|
||||||
<mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="340" y="560"/><mxPoint x="40" y="560"/><mxPoint x="40" y="240"/><mxPoint x="60" y="240"/></Array></mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="guidance" value="ONE AGENT · MULTIPLE SESSIONS · 14 PROJECT SKILLS · NO SCHEDULERS" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#64748B;strokeWidth=2;fontColor=#102A43;fontSize=16;fontStyle=1;spacing=16;align=center;" vertex="1" parent="1"><mxGeometry x="80" y="760" width="1360" height="120" as="geometry"/></mxCell>
|
|
||||||
</root>
|
|
||||||
</mxGraphModel>
|
|
||||||
</diagram>
|
|
||||||
</mxfile>
|
|
||||||
@@ -1,79 +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="2000" 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="80" y="20" width="1200" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="subtitle" value="Project repositories + adopted agent guidance meet in reviewed delivery evidence" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="60" width="1300" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="projectorg" value="corp-v1-&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="560" y="160" width="400" height="120" 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="560" y="320" width="400" height="120" 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="560" y="480" width="400" height="120" 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="80" y="160" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="channelskills" value="7 adopted channel-skill repos · General through Releases · UI/UX included" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="320" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="engskills" value="7 adopted eng-skill repos: branch · mono · scripts · CI · GitOps · docs · tpl" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#A16207;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="480" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="ci" value="GITEA ACTIONS Exact-head validation and artifact publication" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F0FDF4;strokeColor=#15803D;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="1040" y="240" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="pages" value="LEGO CLOUD PAGES Published documentation" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=14;spacing=12;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="1040" y="440" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="runtime" value="HARBOR → GITOPS / ARGO CD → RUNTIME Immutable images; 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="1520" y="440" width="400" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e0" value="" 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="" 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="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="docs" target="ci">
|
|
||||||
<mxGeometry relative="1" as="geometry">
|
|
||||||
<Array as="points">
|
|
||||||
<mxPoint x="1000" y="380" />
|
|
||||||
<mxPoint x="1020" y="380" />
|
|
||||||
<mxPoint x="1020" y="300" />
|
|
||||||
</Array>
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#2563EB;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="app" target="ci">
|
|
||||||
<mxGeometry relative="1" as="geometry">
|
|
||||||
<Array as="points">
|
|
||||||
<mxPoint x="1000" y="540" />
|
|
||||||
<mxPoint x="1020" y="540" />
|
|
||||||
<mxPoint x="1020" y="300" />
|
|
||||||
</Array>
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e4" value="" 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="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#15803D;strokeWidth=2;endArrow=block;endFill=1;fontSize=12;fontColor=#334E68;labelBackgroundColor=#FFFFFF;" edge="1" parent="1" source="ci" target="runtime">
|
|
||||||
<mxGeometry relative="1" as="geometry">
|
|
||||||
<Array as="points">
|
|
||||||
<mxPoint x="1240" y="400" />
|
|
||||||
<mxPoint x="1720" y="400" />
|
|
||||||
<mxPoint x="1720" y="420" />
|
|
||||||
</Array>
|
|
||||||
</mxGeometry>
|
|
||||||
</mxCell>
|
|
||||||
</root>
|
|
||||||
</mxGraphModel>
|
|
||||||
</diagram>
|
|
||||||
</mxfile>
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
<mxfile host="app.diagrams.net" modified="2026-08-25T00:00:00.000Z" agent="Hermes Agent" version="26.0.16" type="device">
|
|
||||||
<diagram id="corp-v1-skills-model-v1" name="CORP V1 — SKILLS MODEL">
|
|
||||||
<mxGraphModel dx="1840" dy="760" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1840" pageHeight="760" math="0" shadow="0" adaptiveColors="auto">
|
|
||||||
<root>
|
|
||||||
<mxCell id="0" />
|
|
||||||
<mxCell id="1" parent="0" />
|
|
||||||
<mxCell id="title" value="CORP V1 — SKILLS MODEL" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=24;fontStyle=1;fontColor=#102A43;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="20" width="1680" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="subtitle" value="Central references → deliberate project adoption → focused execution" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=14;fontColor=#486581;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="70" width="1680" height="40" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="central" value="CENTRAL SOURCES · CORP-V1--MAIN · CORP-V1--GUILD · 7 CHANNEL REFERENCES" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E6FFFA;strokeColor=#0F766E;strokeWidth=2;fontColor=#102A43;fontSize=15;fontStyle=1;spacing=16;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="180" width="360" height="200" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="adoption" value="DELIBERATE ADOPTION · compare · preserve authority · record source SHA" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=15;fontStyle=1;spacing=16;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="520" y="180" width="360" height="200" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="project" value="PROJECT COPIES · 14 repositories · suffix --code · local decisions" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#EFF6FF;strokeColor=#2563EB;strokeWidth=2;fontColor=#102A43;fontSize=15;fontStyle=1;spacing=16;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="960" y="180" width="360" height="200" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="session" value="FOCUSED SESSION · mapped channel skill + execution skills on demand" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FAF5FF;strokeColor=#7E22CE;strokeWidth=2;fontColor=#102A43;fontSize=15;fontStyle=1;spacing=16;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="1400" y="180" width="360" height="200" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="central" target="adoption">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="adoption" target="project">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="e3" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeColor=#475569;strokeWidth=3;endArrow=block;endFill=1;" edge="1" parent="1" source="project" target="session">
|
|
||||||
<mxGeometry relative="1" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="shared" value="SHARED GLOBAL · drawio-main · glossary · Discord · Gitea operations" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#64748B;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=14;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="80" y="500" width="520" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="engineering" value="ENGINEERING ON DEMAND · debugging · TDD · review · QA" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#64748B;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=14;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="640" y="500" width="520" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="runtime" value="RUNTIME ON DEMAND · Gondor · Argo CD · MicroK8s · readback" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8FAFC;strokeColor=#64748B;strokeWidth=2;fontColor=#102A43;fontSize=14;fontStyle=1;spacing=14;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="1200" y="500" width="520" height="120" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
</root>
|
|
||||||
</mxGraphModel>
|
|
||||||
</diagram>
|
|
||||||
</mxfile>
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
---
|
|
||||||
id: operating-model
|
|
||||||
title: "Operating Model"
|
|
||||||
description: "Follow Corp v1 from Board governance and Guild improvement through project delivery and verified evidence."
|
|
||||||
---
|
|
||||||
|
|
||||||
import Drawio from '@theme/Drawio';
|
|
||||||
import operatingModelDiagram from '!!raw-loader!./diagrams/operating-model.drawio';
|
|
||||||
|
|
||||||
# Operating Model
|
|
||||||
|
|
||||||
Corp v1 is an SDLC operating-model pilot: **one AI agent works across multiple focused Discord sessions, each governed by specialised project skills and explicit human decision rights**. Every approved project repeats the same flow while keeping its decisions, repositories, and delivery evidence isolated.
|
|
||||||
|
|
||||||
<Drawio content={operatingModelDiagram} title="Corp v1 governed project operating flow" toolbar="zoom layers lightbox" responsive maxHeight={820} />
|
|
||||||
|
|
||||||
## How the setup fits together
|
|
||||||
|
|
||||||
1. **`corp-v1-board` governs the portfolio.** Listed Board members approve project kickoffs, closures, membership changes, and changes to the global operating model.
|
|
||||||
2. **`corp-v1-guild` improves the operating system.** RootAtSkic and Hermes identify recurring cross-channel friction, inventory affected skills and repositories, route decisions to their owners, and verify coordinated rollout without replacing Board or project authority.
|
|
||||||
3. **General establishes the project workspace.** It handles onboarding, shared coordination, questions, and broadcasts verified outcomes.
|
|
||||||
4. **Scope decides what creates value.** Ideas become Epics and Features; a human project member approves an exact Feature for solution work.
|
|
||||||
5. **Architecture decides how the system should work.** Requirements, ADRs, interfaces, constraints, and implementation Tasks become durable project evidence.
|
|
||||||
6. **UI/UX makes the frontend experience implementable.** User journeys, information architecture, accessibility, Penpot designs, prototypes, and handoff evidence bridge Architecture and execution.
|
|
||||||
7. **Kanban controls admission and flow.** A human project member admits an exact Task to Focus before Delivery may execute it.
|
|
||||||
8. **Delivery produces a reviewed candidate.** Work proceeds through branches, pull requests, exact-head validation, and reviewable implementation evidence.
|
|
||||||
9. **Releases control deployment and outcomes.** Immutable artifacts, risk, rollback, deployment, acceptance, and post-release evidence are assessed explicitly.
|
|
||||||
10. **Verification closes the evidence loop.** Hermes reads the deployed page or runtime back, updates project documentation and the Board portal, and reports remaining gates honestly.
|
|
||||||
|
|
||||||
## Why sessions and skills are separated
|
|
||||||
|
|
||||||
Each channel is a concern boundary with its own session. The same agent can coordinate the whole project, while the loaded project-adopted channel skill prevents responsibilities and approval rules from blurring together. The project uses seven channel skills to define the workspaces and seven engineering skills to provide reusable execution practices.
|
|
||||||
|
|
||||||
Project copies preserve project-specific authority, terminology, repository links, environment namespaces, and operating lessons. Central skill changes are compared and deliberately adopted; they never silently overwrite project decisions.
|
|
||||||
|
|
||||||
## Automation boundary
|
|
||||||
|
|
||||||
Corp v1 projects and channels do **not** use cronjobs or scheduler jobs under the current approved model. Work advances through explicit human decisions, Discord events, reviewed repository changes, exact-commit CI, and deployed readback.
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
---
|
|
||||||
id: overview-channels
|
|
||||||
title: "Overview Channels"
|
|
||||||
description: "Understand the Corp v1 Board and Guild channels, seven project workspaces, session boundaries, skills, and SDLC handoffs."
|
|
||||||
---
|
|
||||||
|
|
||||||
import Drawio from '@theme/Drawio';
|
|
||||||
import channelsDiagram from '!!raw-loader!./diagrams/channels.drawio';
|
|
||||||
|
|
||||||
# Overview Channels
|
|
||||||
|
|
||||||
Corp v1 uses **two central portfolio workspaces** and **seven purpose-specific channels per project**. The central Board and Guild channels serve different purposes; neither is an eighth project channel. All channels are operating boundaries for one AI agent and the human team—not separate delivery teams.
|
|
||||||
|
|
||||||
<Drawio content={channelsDiagram} title="Corp v1 Board, Guild, and project channel operating model" toolbar="zoom layers lightbox" responsive maxHeight={820} />
|
|
||||||
|
|
||||||
## Improvement coordination: `corp-v1-guild`
|
|
||||||
|
|
||||||
`corp-v1-guild` is the shared improvement workspace for RootAtSkic and Hermes. It correlates recurring friction across Corp v1 channels, skills, reference skills, repositories, and this portal; inventories the affected owners; and coordinates a verified rollout.
|
|
||||||
|
|
||||||
The Guild does not grant approval that belongs to the Board or a project channel. It routes product, architecture, design, flow, implementation, and release decisions back to their owning project workspace. Its authoritative operating skill is [`corp-v1-guild`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-guild).
|
|
||||||
|
|
||||||
## Portfolio governance: `corp-v1-board`
|
|
||||||
|
|
||||||
`corp-v1-board` exists once for the whole Corp v1 pilot. It is the authoritative Discord workspace for decisions that change the portfolio operating model:
|
|
||||||
|
|
||||||
- approve project kickoffs, closures, and membership changes;
|
|
||||||
- approve changes to the global `corp-v1-main` governance skill;
|
|
||||||
- approve central `corp-v1-channel-*` reference-skill changes;
|
|
||||||
- resolve conflicts that cannot be decided inside one project;
|
|
||||||
- review portfolio-level evidence and remaining gates.
|
|
||||||
|
|
||||||
A Board message is evidence only when approval is explicit and attributable to a listed Board member. The Board channel does **not** replace project Scope, Architecture, UI/UX, Delivery, or Releases decisions.
|
|
||||||
|
|
||||||
## Project workspaces
|
|
||||||
|
|
||||||
Every active project receives these seven channels in this exact order:
|
|
||||||
|
|
||||||
| Channel | Owns | Sends forward |
|
|
||||||
|---|---|---|
|
|
||||||
| **General** | Project announcements, questions, onboarding, shared coordination, and outcome broadcasts | Product intent and questions to Scope; cross-cutting needs to the owning channel |
|
|
||||||
| **Scope** | Ideas, Epics, Features, value, acceptance outcomes, roadmap, and human approval for solution work | An exact approved Feature to Architecture |
|
|
||||||
| **Architecture** | Requirements, ADRs, system design, interfaces, constraints, and implementation Tasks | Design intent to UI/UX and prepared technical work toward Kanban |
|
|
||||||
| **UI/UX** | User journeys, information architecture, interaction and visual design, accessibility, Penpot sources, prototypes, and design handoff | Reviewed design evidence and implementation-ready UX decisions to Kanban and Delivery |
|
|
||||||
| **Kanban** | Board and Focus visibility, dependencies, sequencing, blockers, and explicit human Task admission | An exact admitted Task to Delivery |
|
|
||||||
| **Delivery** | Implementation planning, branches, pull requests, reviews, exact-head CI, and engineering blockers | A validated immutable candidate to Releases |
|
|
||||||
| **Releases** | Readiness, version decisions, deployment, rollback, acceptance evidence, and post-release outcomes | Verified status and outcomes back to General and durable records |
|
|
||||||
|
|
||||||
## One agent, multiple sessions, specialised skills
|
|
||||||
|
|
||||||
The same Hermes agent operates across the pilot, but each Discord channel has its own focused session and mapped channel skill. This gives the pilot:
|
|
||||||
|
|
||||||
1. **Shared identity and governance** — one agent follows the same Board-approved operating model.
|
|
||||||
2. **Focused context** — Scope discussion does not become Delivery execution, and one project's decisions do not silently become another project's decisions.
|
|
||||||
3. **Specialised behavior** — the mapped `corp-v1-channel-<channel>-<code>` skill defines the channel's responsibilities, approvals, evidence, and handoffs.
|
|
||||||
4. **Engineering depth on demand** — relevant project engineering skills are loaded alongside the channel skill for documentation, branching, monorepo work, CI/CD, GitOps, scripts, and templates.
|
|
||||||
5. **Durable evidence** — decisions and current state are written to Discord, Gitea, project documentation, and the Board portal rather than existing only in an agent session.
|
|
||||||
|
|
||||||
## Handoff rule
|
|
||||||
|
|
||||||
A handoff is not “continue the conversation elsewhere.” It carries an exact governed artifact: an approved Feature, requirement set, ADR, Penpot design, admitted Task, reviewed commit, immutable release candidate, or deployed readback.
|
|
||||||
|
|
||||||
Green CI, a merge, an agent statement, or silence never substitutes for required human approval. Corp v1 currently uses no project cronjobs or scheduler jobs; coordination is human- or event-driven.
|
|
||||||
@@ -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 sixteen required repositories: two project repositories plus fourteen 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:
|
|
||||||
|
|
||||||
- seven adopted channel-skill repositories—General, Scope, Architecture, UI/UX, Kanban, Delivery, and Releases;
|
|
||||||
- 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 by Gitea Actions 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,77 +0,0 @@
|
|||||||
---
|
|
||||||
id: overview-skills
|
|
||||||
title: "Overview Skills"
|
|
||||||
description: "Understand Corp v1 governance and channel skills, project-adopted copies, mandatory engineering skills, and useful shared Hermes skills."
|
|
||||||
---
|
|
||||||
|
|
||||||
import Drawio from '@theme/Drawio';
|
|
||||||
import skillsDiagram from '!!raw-loader!./diagrams/skills.drawio';
|
|
||||||
|
|
||||||
# Overview Skills
|
|
||||||
|
|
||||||
Skills are the operating instructions loaded by Hermes for a task. They are **versioned guidance**, not autonomous workers and not substitutes for human approval. Corp v1 combines a central governance layer, channel-specific references, deliberate project adoptions, and useful generic execution skills.
|
|
||||||
|
|
||||||
<Drawio content={skillsDiagram} title="Corp v1 central, adopted, and shared skill model" toolbar="zoom layers lightbox" responsive maxHeight={720} />
|
|
||||||
|
|
||||||
## Central `corp-v1-*` skills
|
|
||||||
|
|
||||||
The central sources live in [`home-v1-skills-code-agent`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent):
|
|
||||||
|
|
||||||
| Skill | Purpose |
|
|
||||||
|---|---|
|
|
||||||
| [`corp-v1-main`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-main) | Board authority, project lifecycle, resource model, membership, adoption, publication, and verification rules. |
|
|
||||||
| [`corp-v1-guild`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-guild) | Cross-channel improvement intake, impact inventory, ownership routing, coordinated rollout, and convergence verification. |
|
|
||||||
| [`corp-v1-glossary`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-glossary) | Shared terminology and rules for keeping canonical definitions in project documentation. |
|
|
||||||
| [`corp-v1-channel-general`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-general) | Onboarding, coordination, questions, and outcome broadcasts. |
|
|
||||||
| [`corp-v1-channel-scope`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-scope) | Ideas, Epics, Features, value, acceptance outcomes, and human solution approval. |
|
|
||||||
| [`corp-v1-channel-architecture`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-architecture) | Requirements, ADRs, interfaces, constraints, system design, and implementation Tasks. |
|
|
||||||
| [`corp-v1-channel-ui-ux`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-ui-ux) | Journeys, information architecture, Penpot, accessibility, prototypes, and implementation handoff. |
|
|
||||||
| [`corp-v1-channel-kanban`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-kanban) | Board/Focus visibility, dependencies, flow, blockers, and explicit Task admission. |
|
|
||||||
| [`corp-v1-channel-delivery`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-delivery) | Planning, implementation, reviews, exact-head CI, blockers, and delivery evidence. |
|
|
||||||
| [`corp-v1-channel-releases`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-releases) | Readiness, versioning, deployment, rollback, acceptance, and post-release outcomes. |
|
|
||||||
|
|
||||||
## Project-adopted skills
|
|
||||||
|
|
||||||
Every project owns fourteen adopted repositories in `corp-v1-<code>-skills-code-agent`:
|
|
||||||
|
|
||||||
- seven channel skills named `corp-v1-channel-<channel>-<code>`;
|
|
||||||
- seven engineering skills named `<source-skill>-<code>`.
|
|
||||||
|
|
||||||
A project adoption records the central source branch and commit, then adds the project code, repository links, environment namespace, approved authority, and operating lessons. Central updates are compared and adopted semantically; they never silently overwrite project-specific decisions or authorization overrides.
|
|
||||||
|
|
||||||
`corp-v1-guild` remains central because it coordinates improvements across projects. It is not copied as a fifteenth project skill and does not replace any mapped project channel skill.
|
|
||||||
|
|
||||||
At runtime, a focused channel session loads its mapped project channel skill plus only the engineering or global skills needed for the current work.
|
|
||||||
|
|
||||||
## Mandatory engineering skills
|
|
||||||
|
|
||||||
These generic sources become project-owned copies during kickoff:
|
|
||||||
|
|
||||||
| Source skill | Used for |
|
|
||||||
|---|---|
|
|
||||||
| [`development-branching-strategy`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/development-branching-strategy) | Branches, pull requests, integration, and release branching. |
|
|
||||||
| [`development-gitops-argo-cd`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/development-gitops-argo-cd) | GitOps repositories, environments, Argo CD applications, and reconciliation evidence. |
|
|
||||||
| [`development-monorepo-pnpm`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/development-monorepo-pnpm) | pnpm/TypeScript monorepo structure, applications, packages, and workspace validation. |
|
|
||||||
| [`development-scripts`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/development-scripts) | Taskfiles, `.scripts`, environment handling, logging, and Devbox. |
|
|
||||||
| [`devsecops-ci-cd-gitea`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/devsecops-ci-cd-gitea) | Gitea Actions, validation, Harbor publication, and delivery gates. |
|
|
||||||
| [`documentation-docusaurus`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/documentation-docusaurus) | Docusaurus structure, content quality, diagrams, build, and Pages publication. |
|
|
||||||
| [`template-engine-copier`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/template-engine-copier) | Copier/Jinja templates and reusable project scaffolding. |
|
|
||||||
|
|
||||||
## Useful shared generic skills
|
|
||||||
|
|
||||||
These are loaded globally when relevant; they are not additional mandatory project repositories:
|
|
||||||
|
|
||||||
| Skill | Useful when |
|
|
||||||
|---|---|
|
|
||||||
| [`drawio-main`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/drawio-main) | Creating and validating editable architecture diagrams with layout and connector quality gates. |
|
|
||||||
| [`home-v1-discord`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/home-v1-discord) | Discovering and operating Discord channels, permissions, messages, pins, and effective access. |
|
|
||||||
| `gitea-repository-operations` | Discovering, creating, changing, and independently reading back Gitea organizations, teams, repositories, PRs, and refs. |
|
|
||||||
| `systematic-debugging` | Investigating a defect from evidence and root cause before applying a fix. |
|
|
||||||
| `test-driven-development` | Building behavior through RED, GREEN, and refactoring. |
|
|
||||||
| `requesting-code-review` | Applying pre-commit security and quality gates and resolving findings. |
|
|
||||||
| `dogfood` | Performing evidence-backed exploratory QA of deployed web applications. |
|
|
||||||
| `gondor-v1-nodes` | Inspecting Argo CD, MicroK8s workloads, images, routes, and runtime evidence on Gondor v1. |
|
|
||||||
|
|
||||||
## Selection rule
|
|
||||||
|
|
||||||
The channel skill defines **why the work belongs here and which approvals and artifacts are required**. Engineering and generic skills define **how to execute the work safely**. If instructions conflict, explicit Corp v1 governance and preserved project authority win. No skill grants a human approval that has not actually been given.
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
---
|
|
||||||
id: overview
|
|
||||||
title: "Container Overview"
|
|
||||||
description: "See the internal containers Lego deploys and maintains for Corp v1, from Hermes and Gitea through Pages, Harbor, Argo CD, identity, ingress, and MicroK8s."
|
|
||||||
---
|
|
||||||
|
|
||||||
import Drawio from '@theme/Drawio';
|
|
||||||
import architectureDiagram from '!!raw-loader!./diagrams/architecture-overview.drawio';
|
|
||||||
|
|
||||||
# Container Overview
|
|
||||||
|
|
||||||
This view treats the **Corp v1 managed home-lab platform** as the software system. A container here is an independently operated service or managed service slice for which Lego owns configuration, versioning, deployment, upgrades, access, backup or recovery, and operational verification.
|
|
||||||
|
|
||||||
<Drawio content={architectureDiagram} title="Corp v1 internal container architecture" toolbar="zoom layers lightbox" responsive maxHeight={860} />
|
|
||||||
|
|
||||||
## Internal containers
|
|
||||||
|
|
||||||
| Container | Corp v1 responsibility |
|
|
||||||
|---|---|
|
|
||||||
| **Hermes Agent** | Agent runtime, connected tools, model-provider integration, focused sessions, skill loading, execution, and evidence verification. |
|
|
||||||
| **Corp v1 Board portal** | Docusaurus source, registries, architecture, decisions, build, publication, navigation, and deployed-content readback. |
|
|
||||||
| **Gitea** | Service operation plus Corp organizations, teams, repositories, branches, pull requests, variables, permissions, skills, documentation, application source, and GitOps state. |
|
|
||||||
| **Gitea Actions runners** | Runner operation, workflow versions, exact-head validation, documentation builds, image publication, and delivery evidence. |
|
|
||||||
| **Penpot** | Service deployment and the project design workspaces, editable design sources, review state, accessibility evidence, and handoff. |
|
|
||||||
| **LEGO Cloud Pages** | Pages workload, route structure, publication behavior, OAuth-protected access, and content readback. |
|
|
||||||
| **Harbor** | Registry service, projects, repositories, robot integration, immutable application images, retention, and availability. |
|
|
||||||
| **Argo CD** | Service lifecycle, AppProjects, Applications, repository access, desired-state reconciliation, health, and sync evidence. |
|
|
||||||
| **Identity and access** | Keycloak, OAuth proxy configuration, protected routes, clients, policies, and sign-in behavior. |
|
|
||||||
| **Ingress edge** | Cloudflare configuration, Osgiliath Nginx, ACME, Kubernetes ingress, routing, certificates, and public endpoints. |
|
|
||||||
| **Gondor v1 MicroK8s** | Three-node runtime, namespaces, workloads, Services, Ingress, storage integration, readiness, image identity, and runtime readback. |
|
|
||||||
| **Project workloads** | Approved application Deployments, Services, routes, configuration, release candidates, rollback state, and observable behavior. |
|
|
||||||
|
|
||||||
## External connections
|
|
||||||
|
|
||||||
Only two software systems cross the Corp v1 boundary:
|
|
||||||
|
|
||||||
- **Discord** supplies the communication service. Corp v1 owns the managed channel configuration represented in its operating model.
|
|
||||||
- **ICA or GPT Codex** supplies LLM inference to Hermes Agent.
|
|
||||||
|
|
||||||
## Documentation path
|
|
||||||
|
|
||||||
`Hermes → Gitea → Gitea Actions → Board portal build → LEGO Cloud Pages → identity/ingress → deployed readback`
|
|
||||||
|
|
||||||
A documentation delivery claim requires successful exact-commit CI and distinctive content from the deployed Pages service path.
|
|
||||||
|
|
||||||
## Application path
|
|
||||||
|
|
||||||
`Hermes → Gitea → Gitea Actions → Harbor → GitOps state → Argo CD → MicroK8s workload → ingress → runtime readback`
|
|
||||||
|
|
||||||
Argo CD also reads desired state from Gitea. A repository or image alone is not a deployed product; the runtime image identity, readiness, route, and user-visible behavior must be verified.
|
|
||||||
|
|
||||||
## Related views
|
|
||||||
|
|
||||||
- [Context](/architecture-high-level/context/) defines the home-lab boundary, human actors, and two external systems.
|
|
||||||
- [Operating Model](/architecture-high-level/operating-model/) explains governance and the delivery lifecycle.
|
|
||||||
- [Overview Skills](/architecture-high-level/overview-skills/) explains the instructions Hermes loads to operate these containers safely.
|
|
||||||
- [Overview Repositories](/architecture-high-level/overview-repositories/) explains the versioned project and skill sources.
|
|
||||||
+11
-17
@@ -7,31 +7,25 @@ sidebar_position: 1
|
|||||||
|
|
||||||
# Board Members
|
# Board Members
|
||||||
|
|
||||||
The Corp v1 Board has exactly eight members. Seven human members retain approval authority; Jarvis is the Board's executing code agent and does not substitute for an explicit human Board decision.
|
The Corp v1 Board has exactly six members:
|
||||||
|
|
||||||
| Discord member | Account | Board authority |
|
| Discord member | Account | Board authority |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `<@1518725627845283888>` | RootAtSkic (`root_at_skic`) | Start/close projects; approve `corp-v1-main` changes |
|
| `<@1518725627845283888>` | RootAtSkic (`root_at_skic`) | Start/close projects; approve `corp-v1--main` changes |
|
||||||
| `<@476287310627864587>` | Panther Skeleton (`pantherskeleton`) | Start/close projects; approve `corp-v1-main` changes |
|
| `<@476287310627864587>` | Panther Skeleton (`pantherskeleton`) | Start/close projects; approve `corp-v1--main` changes |
|
||||||
| `<@773109855497093191>` | MartynasP (`w4rl0ck_21`) | 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 |
|
| `<@364383883778850827>` | Eduard (`eduardanichess`) | Start/close projects; approve `corp-v1--main` changes |
|
||||||
| `<@1483820991720329227>` | Linas (`linas_02251`) | 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 |
|
| `<@1540035254746882048>` | Jenny (`elprup16`) | Start/close projects; approve `corp-v1--main` changes |
|
||||||
| `<@501954115690168321>` | Piotras (`piotras0262`) | Start/close projects; approve `corp-v1-main` changes |
|
|
||||||
| `<@1526860732917088266>` | Jarvis (`jarvis-jr-at-skic-hermes`) | Board member and executing code agent; implements and verifies explicitly approved Board work |
|
|
||||||
|
|
||||||
Only the seven human Board members may approve a project kickoff or project closure. Approval must be explicit and attributable to one of their Discord IDs above; Jarvis cannot approve its own execution.
|
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.
|
||||||
|
|
||||||
Only the seven human Board members may approve changes to `corp-v1-main`. Jarvis and other agents may identify gaps, prepare proposals, and execute an approved change, but they must not originate approval or infer it from silence.
|
Only these Board members may approve changes to `corp-v1--main`. Other members and agents may identify gaps and prepare proposals, but they must not publish governance changes as approved.
|
||||||
|
|
||||||
## Operational agents
|
|
||||||
|
|
||||||
Friday Jr (`<@1542987400358404268>`, Discord account `friday-jr-at-skic-hermes`) has operational access to the Board workspace as a code agent. This access permits reading history, posting evidence, and supporting approved work; it does **not** make the service identity a Board member or grant human approval authority.
|
|
||||||
|
|
||||||
## Channel-skill change flow
|
## Channel-skill change flow
|
||||||
|
|
||||||
1. Propose a change to a central project-channel reference skill (`corp-v1-channel-*`) to the Board.
|
1. Propose a change to a central project-channel reference skill (`corp-v1-channel-*`) to the Board.
|
||||||
2. Obtain explicit Board approval before publishing the central reference change.
|
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>`).
|
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.
|
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, Discord access, and absence of Corp v1 synchronization schedulers 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,16 +8,9 @@ sidebar_position: 2
|
|||||||
|
|
||||||
| Date | Decision | Scope | Owner | Record |
|
| Date | Decision | Scope | Owner | Record |
|
||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| 2026-09-05 | Add Jarvis to the Corp v1 Board and every current project as executing code agent | Corp v1 governance, AeroSim, Maze Next Gen, E-Shop v1, 3D Architecture Wizzard, DPVP | RootAtSkic | [Jarvis Board and all-project membership](/governance/decisions/jarvis-board-all-project-membership/) |
|
| 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-09-05 | Onboard Friday Jr as a non-human Board-support and all-project code agent | Corp v1 governance and all five project Discord workspaces; provisioned Gitea projects | RootAtSkic | [Friday Jr Board-support and all-project agent access](/governance/decisions/friday-board-support-all-project-access/) |
|
|
||||||
| 2026-08-27 | Authorize secret-safe use of the Bitwarden-injected shared Corp v1 SSO identity for approved system tasks | Corp v1 governance and all project channels | RootAtSkic | [Shared Corp v1 system SSO credentials](/governance/decisions/shared-system-sso-credentials/) |
|
|
||||||
| 2026-08-27 | Separate each project's lifecycle channels into one dedicated Discord category | Corp v1 governance, AeroSim, Maze Next Gen, E-Shop v1 | RootAtSkic | [Dedicated Discord category per project](/governance/decisions/project-discord-category-separation/) |
|
|
||||||
| 2026-08-27 | Establish the Corp v1 Guild improvement workspace, skill, Gitea source, and portal architecture representation | Corp v1 governance and operating-model improvement | RootAtSkic | [Corp v1 Guild establishment](/governance/decisions/corp-v1-guild-establishment/) |
|
|
||||||
| 2026-08-26 | Authorize E-Shop v1 kickoff, toothbrush-commerce MVP, and bounded bootstrap autonomy | E-Shop v1 | RootAtSkic | [E-Shop v1 kickoff and bootstrap autonomy](/governance/decisions/eshopv1-kickoff-bootstrap-autonomy/) |
|
|
||||||
| 2026-08-25 | Add Piotras to the Corp v1 Board and every active project | Corp v1 governance, AeroSim, Maze Next Gen | RootAtSkic | [Piotras Board and all-project membership](/governance/decisions/piotras-board-all-project-membership/) |
|
|
||||||
| 2026-08-20 | Add Jenny to the Corp v1 Board and every active project | Corp v1 governance, AeroSim, Maze Next Gen | RootAtSkic | [Jenny Board and all-project membership](/governance/decisions/jenny-board-all-project-membership/) |
|
|
||||||
| 2026-08-17 | Add Linas to the Corp v1 Board and AeroSim | Corp v1 governance and AeroSim | RootAtSkic | [Linas Board and AeroSim membership](/governance/decisions/linas-board-aerosim-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 | 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 | 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-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/) |
|
| 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/) |
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
---
|
|
||||||
title: 3D Architecture Wizzard kickoff
|
|
||||||
---
|
|
||||||
|
|
||||||
# 3D Architecture Wizzard kickoff — 2026-08-31
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
Provision **3D Architecture Wizzard**, code `3darch`, as a public Corp v1 project. Linas (`discord:1483820991720329227`) is the accountable team lead and initial member.
|
|
||||||
|
|
||||||
RootAtSkic (`discord:1518725627845283888`) explicitly requested project setup in Board message `1543918340882436166` and approved the complete kickoff proposal in the same Board session. RootAtSkic explicitly retained the spelling **Wizzard**.
|
|
||||||
|
|
||||||
## Purpose
|
|
||||||
|
|
||||||
Create an interactive 3D application for exploring, designing, and communicating software and system architecture.
|
|
||||||
|
|
||||||
## Initial deliverable
|
|
||||||
|
|
||||||
A browser-based proof of concept that visualizes one architecture model in navigable 3D.
|
|
||||||
|
|
||||||
## Authorized resources
|
|
||||||
|
|
||||||
- Dedicated category `corp-v1-3darch` with exactly seven lifecycle channels in approved order.
|
|
||||||
- Project organization `corp-v1-3darch` and skills organization `corp-v1-3darch-skills-code-agent`.
|
|
||||||
- Application and documentation repositories.
|
|
||||||
- Seven adopted engineering skills and seven adopted channel skills.
|
|
||||||
- Project and skills organization teams for verified Gitea user `linas`.
|
|
||||||
- Required Harbor non-secret variables and secret-name-only validation.
|
|
||||||
- Global Draw.io and glossary references.
|
|
||||||
- No project cronjobs or scheduler jobs.
|
|
||||||
|
|
||||||
## Current state
|
|
||||||
|
|
||||||
Provisioned and remotely verified. Application `847c8291f100547ec9104743ab7d0d8761a5ec20` and documentation `73cf70f0f333c187b28821fb76a44c779bdfbbdb` have successful exact-head Actions; the documentation page body was read back through the Gondor operator route. Exactly seven project channels, two organizations, two teams, two project repositories, and fourteen adopted skills exist.
|
|
||||||
|
|
||||||
The project is **Active — lead activation pending**. Gitea user `linas` is assigned to both teams but remains inactive. The Harbor secret name is present; its value was neither requested nor accessed.
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
---
|
|
||||||
title: "AeroSim channel membership alignment"
|
|
||||||
description: "Record the approved onboarding of four channel-authorized people into the AeroSim team."
|
|
||||||
---
|
|
||||||
|
|
||||||
# AeroSim channel membership alignment
|
|
||||||
|
|
||||||
- **Approved by:** RootAtSkic (`<@1518725627845283888>`)
|
|
||||||
- **Approval evidence:** AeroSim General message `1543962382978514964`
|
|
||||||
- **Date:** 2026-08-31
|
|
||||||
|
|
||||||
Andrius (`<@204689314796273674>`, account `whyt6249`), Dovydas (`<@1543952051212656684>`, account `dovydaszelenkevicius`), Giedrius K (`<@1543940246071410706>`, account `giedriusk_62552`), and Jone Tamulaite - Nong (`<@1067100220321714278>`, account `jtamul`) are AeroSim human project members.
|
|
||||||
|
|
||||||
Each person has verified effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access to `corp-v1-aerosim-general`. Their Gitea identities remain unresolved, so membership in `aerosim-maintainers` and `aerosim-skill-maintainers` is pending verified usernames or account creation. No Gitea identity was inferred from display-name similarity.
|
|
||||||
@@ -20,7 +20,7 @@ The initial deliverable is a playable browser MVP for trainer, airliner, and fig
|
|||||||
- `corp-v1-aerosim` project organization.
|
- `corp-v1-aerosim` project organization.
|
||||||
- `corp-v1-aerosim-skills-code-agent` skills organization.
|
- `corp-v1-aerosim-skills-code-agent` skills organization.
|
||||||
- Application and documentation repositories.
|
- Application and documentation repositories.
|
||||||
- Eight adopted project-scoped skills using suffix `-aerosim`.
|
- Eight adopted project-scoped skills using suffix `--aerosim`.
|
||||||
- Corresponding organization teams.
|
- Corresponding organization teams.
|
||||||
- Three same-project cross-channel review jobs.
|
- Three same-project cross-channel review jobs.
|
||||||
- Harbor non-secret variables and validation of secret-name presence only.
|
- Harbor non-secret variables and validation of secret-name presence only.
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
---
|
|
||||||
title: AeroSim Scope Owner Transition
|
|
||||||
description: Record Jone Tamulaite - Nong's offboarding and MartynasP's appointment as primary AeroSim Scope owner.
|
|
||||||
---
|
|
||||||
|
|
||||||
# AeroSim Scope Owner Transition
|
|
||||||
|
|
||||||
- **Status:** Approved
|
|
||||||
- **Decision date:** 2026-09-28
|
|
||||||
- **Approver:** RootAtSkic (`discord:1518725627845283888`)
|
|
||||||
- **Evidence:** AeroSim Scope message `1554069052773900391`
|
|
||||||
- **Affected project:** [AeroSim](/projects/aerosim/)
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
1. Jone Tamulaite - Nong (`discord:1067100220321714278`) leaves the AeroSim project and relinquishes the primary Scope-owner role.
|
|
||||||
2. MartynasP (`discord:773109855497093191`) succeeds Jone as primary AeroSim Scope owner.
|
|
||||||
3. MartynasP may make routine Epic and Feature lifecycle, priority, outcome, and `Approved for Solution` decisions under the existing AeroSim Scope authority contract.
|
|
||||||
4. RootAtSkic remains backup owner across all AeroSim domains.
|
|
||||||
5. Historical decisions made under the prior ownership assignment remain preserved; this decision changes current authority prospectively.
|
|
||||||
|
|
||||||
## Access consequences
|
|
||||||
|
|
||||||
- MartynasP was already an AeroSim team member and has a verified Gitea identity, `martynas-pazusis`, in both AeroSim organization teams; onboarding does not require duplicate team membership.
|
|
||||||
- Jone never had a verified Gitea mapping or membership in either AeroSim organization team, so there is no Gitea team membership to revoke.
|
|
||||||
- Jone's Discord project access must be removed and MartynasP's effective view, send, and history permissions across the current eight-channel project topology must be freshly verified before operational offboarding/onboarding is closed.
|
|
||||||
@@ -21,7 +21,7 @@ sidebar_position: 1
|
|||||||
|
|
||||||
## Applied state
|
## Applied state
|
||||||
|
|
||||||
- Eduard is listed in `corp-v1-main` and the Board registry with authority to approve project kickoff, project closure, and changes to `corp-v1-main`.
|
- Eduard is listed in `corp-v1--main` and the Board registry with authority to approve project kickoff, project closure, and changes to `corp-v1--main`.
|
||||||
- Discord identity and effective channel access are verified for all requested members. Existing permission overwrites already covered `corp-v1-board` and all six AeroSim channels; no additional Discord permission mutation was required.
|
- Discord identity and effective channel access are verified for all requested members. Existing permission overwrites already covered `corp-v1-board` and all six AeroSim channels; no additional Discord permission mutation was required.
|
||||||
- The applied team update was announced in `corp-v1-aerosim-general` as message `1537793704465801256`.
|
- The applied team update was announced in `corp-v1-aerosim-general` as message `1537793704465801256`.
|
||||||
- Gitea identity `martynas-pazusis` is verified and was added to `aerosim-maintainers` and `aerosim-skill-maintainers`.
|
- Gitea identity `martynas-pazusis` is verified and was added to `aerosim-maintainers` and `aerosim-skill-maintainers`.
|
||||||
|
|||||||
@@ -15,14 +15,14 @@ slug: /decisions/corp-v1-board-migration/
|
|||||||
## Decision
|
## Decision
|
||||||
|
|
||||||
1. Replace the steering committee channel with the Corp v1 Board channel. Discord canonicalized the requested `corp-v1--board` text-channel name to `corp-v1-board`; the immutable channel ID remains `1537070875503886356`.
|
1. Replace the steering committee channel with the Corp v1 Board channel. Discord canonicalized the requested `corp-v1--board` text-channel name to `corp-v1-board`; the immutable channel ID remains `1537070875503886356`.
|
||||||
2. Rename the global governance skill and repository to `corp-v1-main`.
|
2. Rename the global governance skill and repository to `corp-v1--main`.
|
||||||
3. Rename `corp-v1/sterring-commitee` to `corp-v1/portal` and deploy it at `https://pages.apps.lego-cloud.eu/corp-v1/portal/`.
|
3. Rename `corp-v1/sterring-commitee` to `corp-v1/portal` and deploy it at `https://pages.apps.lego-cloud.eu/corp-v1/portal/`.
|
||||||
4. Establish exactly these Board members:
|
4. Establish exactly these Board members:
|
||||||
- RootAtSkic (`<@1518725627845283888>`)
|
- RootAtSkic (`<@1518725627845283888>`)
|
||||||
- Panther Skeleton (`<@476287310627864587>`)
|
- Panther Skeleton (`<@476287310627864587>`)
|
||||||
- MartynasP (`<@773109855497093191>`)
|
- MartynasP (`<@773109855497093191>`)
|
||||||
5. Only these Board members may approve a project kickoff, project closure, or a change to `corp-v1-main`.
|
5. Only these Board members may approve a project kickoff, project closure, or a change to `corp-v1--main`.
|
||||||
6. Central `corp-v1-channel-*` reference-skill changes require Board approval. After publication, every affected project channel must be asked to review and synchronize its project-adopted `corp-v1-channel-*-<code>` skill; synchronization must preserve project-specific decisions.
|
6. Central `corp-v1-channel-*` reference-skill changes require Board approval. After publication, every affected project channel must be asked to review and synchronize its project-adopted `corp-v1-channel-*--<code>` skill; synchronization must preserve project-specific decisions.
|
||||||
|
|
||||||
## Consequences
|
## Consequences
|
||||||
|
|
||||||
|
|||||||
@@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
title: Corp v1 Guild Establishment
|
|
||||||
---
|
|
||||||
|
|
||||||
# Corp v1 Guild Establishment
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
On 2026-08-27, RootAtSkic (`discord:1518725627845283888`) established `corp-v1-guild` as the central improvement workspace shared with Hermes.
|
|
||||||
|
|
||||||
The approved implementation includes:
|
|
||||||
|
|
||||||
- Discord channel `corp-v1-guild` (`1542596418215092264`) under the `corp-v1` category;
|
|
||||||
- central operating skill `corp-v1-guild`;
|
|
||||||
- private Gitea source repository [`home-v1-skills-code-agent/corp-v1-guild`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-guild) on default branch `test`;
|
|
||||||
- runtime installation of the published skill;
|
|
||||||
- Guild guidance linked and pinned in the channel;
|
|
||||||
- Corp v1 portal architecture updates that distinguish Guild improvement coordination from Board governance and the seven project delivery channels.
|
|
||||||
|
|
||||||
## Evidence
|
|
||||||
|
|
||||||
The approving instruction is Discord message `1542596833266761748` in channel `1542596418215092264`. RootAtSkic requested a skill similar in durability to `corp-v1-main`, defined the channel's purpose as improvements across channels, their skills, and reference skills, and required both portal architecture and Gitea publication.
|
|
||||||
|
|
||||||
## Authority boundary
|
|
||||||
|
|
||||||
The Guild coordinates improvement discovery, impact inventory, ownership routing, implementation, rollout, and verification. It does not replace:
|
|
||||||
|
|
||||||
- the Corp v1 Board for project lifecycle, membership, `corp-v1-main`, or central channel-reference approvals;
|
|
||||||
- project Scope, Architecture, UI/UX, Kanban, Delivery, or Releases decisions;
|
|
||||||
- preserved project-local authorization overrides;
|
|
||||||
- repository validation, review, exact-head CI, deployed readback, or destructive-action safeguards.
|
|
||||||
|
|
||||||
The Guild is a central portfolio workspace, not an eighth project channel and not an additional project-adopted skill.
|
|
||||||
|
|
||||||
## Consequences
|
|
||||||
|
|
||||||
1. Cross-cutting improvement work has one durable intake and coordination surface.
|
|
||||||
2. Every material improvement records exact evidence, affected surfaces, owner, required approvals, rollout boundary, and verification.
|
|
||||||
3. Central reference changes still follow Board approval and deliberate semantic adoption into every affected project copy.
|
|
||||||
4. Portal architecture and channel guidance must remain synchronized with the Guild operating contract.
|
|
||||||
5. No scheduler job is created for `corp-v1-guild`; project automation retains its separately recorded authority and is not changed by this decision.
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
---
|
|
||||||
title: "E-Shop v1 kickoff and bootstrap autonomy"
|
|
||||||
description: "Record the approved E-Shop v1 kickoff, MVP scope, and bounded General-channel bootstrap authority."
|
|
||||||
---
|
|
||||||
|
|
||||||
# E-Shop v1 kickoff and bootstrap autonomy — 2026-08-26
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
Begin provisioning **E-Shop v1**, code `eshopv1`, as a restricted Corp v1 project with RootAtSkic as sponsor and accountable lead and Hermes (`jarvis-at-skic`) as the initial technical member.
|
|
||||||
|
|
||||||
Approval was explicit from Board member RootAtSkic (`discord:1518725627845283888`) in Discord message `1542278257833939087` on 2026-08-26 after review of the complete proposal.
|
|
||||||
|
|
||||||
## MVP outcome
|
|
||||||
|
|
||||||
Deliver a functional toothbrush e-commerce website with:
|
|
||||||
|
|
||||||
- twelve sourced AliExpress toothbrush products;
|
|
||||||
- locally stored product images with source attribution rather than hotlinking;
|
|
||||||
- EUR retail prices calculated from captured AliExpress item prices using `source price × 1.50`, rounded to cents;
|
|
||||||
- product listing and gallery;
|
|
||||||
- shopping cart;
|
|
||||||
- PayPal Sandbox checkout through a server-side credential boundary;
|
|
||||||
- order confirmation;
|
|
||||||
- responsive and accessibility checks;
|
|
||||||
- private source and documentation repositories, CI/CD, home-lab deployment, and deployed readback.
|
|
||||||
|
|
||||||
Live PayPal payments, purchases, spending, vendor-account changes, legal/commercial go-live, and any secret value remain separately gated.
|
|
||||||
|
|
||||||
## Authorized resources
|
|
||||||
|
|
||||||
- Exactly seven same-project Discord channels under `corp-v1`: General, Scope, Architecture, UI/UX, Kanban, Delivery, and Releases.
|
|
||||||
- Private project organization `corp-v1-eshopv1`.
|
|
||||||
- Private skills organization `corp-v1-eshopv1-skills-code-agent`.
|
|
||||||
- Application repository `corp-v1-eshopv1` and documentation repository `corp-v1-eshopv1-documentation`.
|
|
||||||
- Seven adopted engineering skills and seven adopted channel skills, all suffixed `-eshopv1`.
|
|
||||||
- Project and skills organization teams for RootAtSkic and `jarvis-at-skic`.
|
|
||||||
- One 30-minute bootstrap job delivered only to `corp-v1-eshopv1-general`.
|
|
||||||
|
|
||||||
## Project-local authorization
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
override_id: ESHOPV1-BOOTSTRAP-AUTONOMY-20260826
|
|
||||||
authorization_evidence: discord-message-1542278257833939087
|
|
||||||
project: eshopv1
|
|
||||||
delegator: discord-user-1518725627845283888-root-at-skic
|
|
||||||
delegate: hermes-agent-operating-eshopv1
|
|
||||||
cadence: every-30-minutes
|
|
||||||
channel_boundary:
|
|
||||||
- corp-v1-eshopv1-general
|
|
||||||
- corp-v1-eshopv1-scope
|
|
||||||
- corp-v1-eshopv1-architecture
|
|
||||||
- corp-v1-eshopv1-ui-ux
|
|
||||||
- corp-v1-eshopv1-kanban
|
|
||||||
- corp-v1-eshopv1-delivery
|
|
||||||
- corp-v1-eshopv1-releases
|
|
||||||
scope:
|
|
||||||
- create and maintain project scope, architecture, UI/UX, Kanban, delivery, and release artifacts
|
|
||||||
- create branches, commits, pushes, pull requests, and review evidence
|
|
||||||
- merge eligible exact-head-green project changes
|
|
||||||
- build, publish, deploy, and verify the approved Sandbox MVP
|
|
||||||
- keep the seven-channel lifecycle moving through project-adopted skills
|
|
||||||
stop_condition: first-human-authored-message-in-any-project-channel
|
|
||||||
preserve_on_reference_adoption: true
|
|
||||||
```
|
|
||||||
|
|
||||||
Before every mutation, the job must scan only the seven project channels and distinguish human authors from Hermes, bots, and webhooks. The first human-authored project-channel message ends bootstrap autonomy. The run must make no further autonomous mutation, cite the stopping message, report in General, and pause or remove the job.
|
|
||||||
|
|
||||||
The delegation does not authorize secret-value access or disclosure, spending, purchases, production-payment enablement, vendor-account changes, legal/commercial commitments, unrelated infrastructure changes, or destructive/irreversible operations.
|
|
||||||
|
|
||||||
## Current state
|
|
||||||
|
|
||||||
Approved. Provisioning and independently verified completion evidence will be appended as resources become available.
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Friday Jr Board-support and all-project agent access"
|
|
||||||
description: "Record Friday Jr's operational access across Corp v1 without granting human decision authority."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Friday Jr Board-support and all-project agent access
|
|
||||||
|
|
||||||
## Authority
|
|
||||||
|
|
||||||
- **Approved by:** RootAtSkic (`<@1518725627845283888>`)
|
|
||||||
- **Approval evidence:** Discord Board message `1545758343489130598`
|
|
||||||
- **Date:** 2026-09-05
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
Onboard Discord service identity `<@1542987400358404268>` (`friday-jr-at-skic-hermes`) as an operational code agent in the Corp v1 Board workspace and every current project workspace: 3D Architecture Wizzard, AeroSim, DPVP, E-Shop v1, and Maze Next Gen.
|
|
||||||
|
|
||||||
This decision grants operational access only. Friday Jr is not added to the seven-person human Board roster and receives no authority to approve project lifecycle changes, human task readiness, designs, releases, spending, credentials, or governance changes.
|
|
||||||
|
|
||||||
## Verified access
|
|
||||||
|
|
||||||
- Discord role `friday-jr-v1-hermes` has Administrator. Fresh effective-permission evaluation verified view, send, and history access in the Board channel and all thirty-five lifecycle channels across the five project categories.
|
|
||||||
- Gitea account `friday-at-skic` (user ID `92`) is assigned through team `corp-v1-code-agents` and both project/skill teams for 3D Architecture Wizzard, AeroSim, DPVP, E-Shop v1, and Maze Next Gen.
|
|
||||||
- The eleven verified teams currently cover one governance repository, twelve project-organization repositories, and fifty-six project-skill repositories. DPVP's two new teams contain Friday but have no repositories yet.
|
|
||||||
|
|
||||||
## Outstanding activation
|
|
||||||
|
|
||||||
Gitea reports `friday-at-skic` as inactive and its own API token returns HTTP `403`. The executing account cannot administer users, so a Gitea administrator must activate Friday before operational repository access can be exercised. DPVP's Discord workspace, both organizations, and both team memberships are ready; repository coverage will begin when DPVP repositories are provisioned.
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
---
|
|
||||||
title: Jarvis Board and all-project membership
|
|
||||||
description: "Record the approval, access changes, verification, and consequences of onboarding Jarvis across Corp v1."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Jarvis Board and all-project membership
|
|
||||||
|
|
||||||
## Context
|
|
||||||
|
|
||||||
Jarvis already served as an executing Hermes code agent in several Corp v1 projects, but the Board and project registries did not consistently record its role or access across every current project. DPVP also had a Discord workspace but no published portal project record or Gitea organization boundary.
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
On 2026-09-05, RootAtSkic (`discord:1518725627845283888`) explicitly approved in Board message `1545759332845490208`:
|
|
||||||
|
|
||||||
- adding Jarvis (`discord:1526860732917088266`, Gitea `jarvis-at-skic`, user ID `24`) as the eighth Corp v1 Board member and executing code agent;
|
|
||||||
- adding Jarvis as a technical member/code agent of AeroSim, Maze Next Gen, E-Shop v1, 3D Architecture Wizzard, and DPVP;
|
|
||||||
- verifying Board and all 35 project lifecycle-channel permissions;
|
|
||||||
- assigning Jarvis through each project's project and skills/code-agent organization teams; and
|
|
||||||
- publishing synchronized Board, member, team, and project records, including DPVP.
|
|
||||||
|
|
||||||
Jarvis's Board membership is operational: it executes and verifies explicitly approved work. The seven human Board members retain approval authority, and Jarvis cannot approve its own execution or substitute for an explicit human decision.
|
|
||||||
|
|
||||||
## Verification
|
|
||||||
|
|
||||||
- Discord identity `1526860732917088266` is the guild member `jarvis-jr-at-skic-hermes` and has administrator permission.
|
|
||||||
- Effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access passed for `corp-v1-board` and each of the 35 lifecycle channels.
|
|
||||||
- Gitea `jarvis-at-skic` is active and verified in ten all-repository teams: `23`, `24`, `29`, `31`, `35`, `36`, `39`, `40`, `45`, and `47`.
|
|
||||||
- Existing memberships and permissions were preserved; only missing Jarvis memberships and the absent DPVP organization/team boundaries were added.
|
|
||||||
|
|
||||||
## Consequences
|
|
||||||
|
|
||||||
1. The Board registry contains eight members while preserving human approval gates.
|
|
||||||
2. Every current project identifies Jarvis as an executing code agent.
|
|
||||||
3. DPVP now has private project and skills/code-agent organizations with all-repository teams, but its repositories, adopted skills, Harbor configuration, and deployed documentation remain kickoff gates.
|
|
||||||
4. Secret values were neither accessed nor modified.
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Jenny Board and all-project membership"
|
|
||||||
description: "Record the approved addition of Jenny to the Corp v1 Board and every active project."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Jenny Board and all-project membership
|
|
||||||
|
|
||||||
- **Approved by:** RootAtSkic (`<@1518725627845283888>`)
|
|
||||||
- **Approval evidence:** Discord Board message `1540045796152709180`
|
|
||||||
- **Date:** 2026-08-20
|
|
||||||
|
|
||||||
Jenny (`<@1540035254746882048>`, account `elprup16`) is a Corp v1 Board member and a human member of AeroSim and Maze Next Gen. Discord access is verified. Gitea team membership remains pending first login and a verified username; no identity was guessed.
|
|
||||||
@@ -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/`.
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Linas Board and AeroSim membership"
|
|
||||||
description: "Record the approved addition of Linas to the Corp v1 Board and AeroSim."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Linas Board and AeroSim membership
|
|
||||||
|
|
||||||
- **Approved by:** RootAtSkic (`<@1518725627845283888>`)
|
|
||||||
- **Approval evidence:** Discord Board message `1538808717301252116`
|
|
||||||
- **Date:** 2026-08-17
|
|
||||||
|
|
||||||
Linas (`<@1483820991720329227>`, account `linas_02251`) is a Corp v1 Board member and an AeroSim human project member. Discord access is verified, and Gitea account `linas` is assigned to the AeroSim project and skills teams with login activation pending.
|
|
||||||
@@ -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.
|
||||||
@@ -10,7 +10,7 @@ Corp v1 lifecycle policy requires each managed project to operate six Discord wo
|
|||||||
|
|
||||||
## Decision
|
## Decision
|
||||||
|
|
||||||
Align every currently managed Corp v1 project to the six-channel lifecycle. For AeroSim, create and verify `corp-v1-aerosim-kanban`, attach `corp-v1-channel-kanban-aerosim`, create its staggered hourly job, and update every existing AeroSim synchronization job to the exact six-channel same-project boundary.
|
Align every currently managed Corp v1 project to the six-channel lifecycle. For AeroSim, create and verify `corp-v1-aerosim-kanban`, attach `corp-v1-channel-kanban--aerosim`, create its staggered hourly job, and update every existing AeroSim synchronization job to the exact six-channel same-project boundary.
|
||||||
|
|
||||||
Human gates remain unchanged: only a human team member may approve an Epic or Feature for solution, approve a Feature for implementation, admit an exact task to Focus `InBacklog`, approve final version allocation, or request a release.
|
Human gates remain unchanged: only a human team member may approve an Epic or Feature for solution, approve a Feature for implementation, admit an exact task to Focus `InBacklog`, approve final version allocation, or request a release.
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Approval was explicit from Board member `discord:1518725627845283888` in message
|
|||||||
- `corp-v1-mazeng` project organization.
|
- `corp-v1-mazeng` project organization.
|
||||||
- `corp-v1-mazeng-skills-code-agent` skills organization.
|
- `corp-v1-mazeng-skills-code-agent` skills organization.
|
||||||
- Application and documentation repositories.
|
- Application and documentation repositories.
|
||||||
- Seven adopted engineering skills and six adopted channel skills, all suffixed `-mazeng`.
|
- Seven adopted engineering skills and six adopted channel skills, all suffixed `--mazeng`.
|
||||||
- Six same-project staggered hourly synchronization jobs.
|
- Six same-project staggered hourly synchronization jobs.
|
||||||
- Corresponding project and skills organization teams for RootAtSkic and `jarvis-at-skic`.
|
- Corresponding project and skills organization teams for RootAtSkic and `jarvis-at-skic`.
|
||||||
- Two approved non-secret Harbor organization variables and secret-name-only validation.
|
- Two approved non-secret Harbor organization variables and secret-name-only validation.
|
||||||
|
|||||||
@@ -1,32 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Piotras Board and all-project membership"
|
|
||||||
description: "Record the approved addition of Piotras to the Corp v1 Board, AeroSim, and Maze Next Gen."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Piotras Board and all-project membership
|
|
||||||
|
|
||||||
## Authority
|
|
||||||
|
|
||||||
- **Approved by:** RootAtSkic (`<@1518725627845283888>`)
|
|
||||||
- **Approval evidence:** Discord Board message `1541770529600577577`
|
|
||||||
- **Date:** 2026-08-25
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
Add Piotras (`<@501954115690168321>`, account `piotras0262`) to:
|
|
||||||
|
|
||||||
- the Corp v1 Board;
|
|
||||||
- the AeroSim human project team;
|
|
||||||
- the Maze Next Gen human project team.
|
|
||||||
|
|
||||||
Piotras may exercise the human decision rights defined by Corp v1 and each project. Approval must remain explicit, exact in scope, and attributable to the immutable Discord identity.
|
|
||||||
|
|
||||||
## Access state
|
|
||||||
|
|
||||||
Effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access is verified for `corp-v1-board` and all seven channels in both active projects. Existing idempotent permission overwrites already supplied access, so no Discord permission mutation was required.
|
|
||||||
|
|
||||||
No unambiguous Gitea account matches `piotras0262` or `piotras`. Membership in both AeroSim teams and both Maze Next Gen organization teams remains pending a verified username or account creation. Governance membership and Discord access are active; repository access must not be inferred or assigned to a guessed account.
|
|
||||||
|
|
||||||
## Access completion update — 2026-08-25
|
|
||||||
|
|
||||||
RootAtSkic verified that Gitea account `piotras` (user ID `85`, `piotras.cimmperman@ibm.com`) belongs to Piotras. The account was added through `aerosim-maintainers`, `aerosim-skill-maintainers`, and both `maze-next-gen-team` organization teams. Independent membership and repository-coverage reads verified write access across all repositories covered by those teams; the original pending state above is retained as the decision-time record.
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
---
|
|
||||||
title: Dedicated Discord category per project
|
|
||||||
---
|
|
||||||
|
|
||||||
# Dedicated Discord category per project — 2026-08-27
|
|
||||||
|
|
||||||
## Context
|
|
||||||
|
|
||||||
All Corp v1 lifecycle channels previously shared the guild-level `corp-v1` category. As the pilot expanded across AeroSim, Maze Next Gen, and E-Shop v1, that flat topology made each project's working boundary harder to scan and increased the risk of mixing project-local channels with Board governance.
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
RootAtSkic (`discord:1518725627845283888`) approved one dedicated top-level Discord category per Corp v1 project in Board message `1542625777495965836`.
|
|
||||||
|
|
||||||
- Reserve `corp-v1` (`1537070242335821924`) for Board and shared governance channels.
|
|
||||||
- Name each project category `corp-v1-<code>`.
|
|
||||||
- Keep exactly seven lifecycle channels inside each project category in this order: General, Scope, Architecture, UI/UX, Kanban, Delivery, Releases.
|
|
||||||
- Preserve existing channel IDs, history, topics, pins, webhooks, permission overwrites, and delivery targets during migration.
|
|
||||||
- Apply the same topology to future kickoffs and delete only an empty project category during an approved sunset.
|
|
||||||
|
|
||||||
## Implementation
|
|
||||||
|
|
||||||
The central [`corp-v1-main`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-main) skill was updated to version `4.3.0` and merged through PR [8](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-main/pulls/8) at `785e57d6381f60a0caacefdedec791aa3b1fe2fd`.
|
|
||||||
|
|
||||||
Three categories were created with the existing approved permission-overwrite model:
|
|
||||||
|
|
||||||
| Project | Category | Discord ID |
|
|
||||||
|---|---|---|
|
|
||||||
| AeroSim | `corp-v1-aerosim` | `1542627633123299359` |
|
|
||||||
| Maze Next Gen | `corp-v1-mazeng` | `1542627645441839174` |
|
|
||||||
| E-Shop v1 | `corp-v1-eshopv1` | `1542627655189270719` |
|
|
||||||
|
|
||||||
The 21 existing lifecycle channels were moved by immutable channel ID. No project channel was recreated.
|
|
||||||
|
|
||||||
## Verification
|
|
||||||
|
|
||||||
A fresh full-guild readback confirmed:
|
|
||||||
|
|
||||||
- every project category exists as a category and retains nine permission overwrites;
|
|
||||||
- all seven exact channels for each project have the expected `parent_id` and lifecycle order;
|
|
||||||
- all 21 channel IDs are unchanged and each channel retains nine permission overwrites;
|
|
||||||
- the guild-level `corp-v1` category now contains only `corp-v1-board` and `corp-v1-guild`;
|
|
||||||
- Hermes can still read recent history in every moved lifecycle channel.
|
|
||||||
|
|
||||||
## Consequences
|
|
||||||
|
|
||||||
Project navigation and the governance boundary are now explicit without losing history or changing channel-targeted integrations. Project records must include the dedicated category ID, and future provisioning must reject lifecycle channels placed directly under the governance category.
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
---
|
|
||||||
title: Shared Corp v1 system SSO credentials
|
|
||||||
---
|
|
||||||
|
|
||||||
# Shared Corp v1 system SSO credentials — 2026-08-27
|
|
||||||
|
|
||||||
## Context
|
|
||||||
|
|
||||||
Hermes sometimes needs to authenticate to Corp v1 systems being built or operated in order to perform an explicitly authorized task. Asking project members to retransmit credentials through Discord or storing them in project artifacts would create avoidable exposure.
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
RootAtSkic (`discord:1518725627845283888`) approved use of the shared Bitwarden-injected Corp v1 SSO identity in Board message `1542636538305712199`.
|
|
||||||
|
|
||||||
Skills and records may contain only these runtime secret names:
|
|
||||||
|
|
||||||
- `HL_V1_SSO_EMAIL`
|
|
||||||
- `HL_V1_SSO_PASSWORD`
|
|
||||||
|
|
||||||
Credential values, Bitwarden object identifiers, and account metadata must not be copied into Discord, skills, repositories, prompts, command lines, URLs, files, screenshots, logs, CI output, or reports.
|
|
||||||
|
|
||||||
## Operating rules
|
|
||||||
|
|
||||||
- SSO secret availability is a capability, not authorization. Every login must serve an explicitly authorized project task and verified destination origin.
|
|
||||||
- Hermes checks only whether both runtime variables are present and uses them through a trusted login form or provider-supported secure runtime interface.
|
|
||||||
- Missing injection is reported by secret name only; no local fallback secret is created and no human is asked to paste a value into chat.
|
|
||||||
- Login does not authorize account recovery, MFA or credential changes, permission changes, billing, spending, destructive operations, or unrelated system/data access.
|
|
||||||
- Reports contain only the target system, authorized purpose, login result, and non-sensitive verification evidence.
|
|
||||||
|
|
||||||
## Implementation and verification
|
|
||||||
|
|
||||||
The central `corp-v1-main` skill was updated to version `4.4.0` and merged through PR [9](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-main/pulls/9) at `b11b0e521dab6b7a920337feed37c5a849d507bd`.
|
|
||||||
|
|
||||||
The same secret-safe login section was published central-first to all seven `corp-v1-channel-*` reference skills, then semantically adopted into all 21 project channel skills across AeroSim, Maze Next Gen, and E-Shop v1. Every project-local authorization override was hash-checked before and after adoption, project bindings and supporting files were preserved, and every pushed default ref and `SKILL.md` marker was read back. All 21 installed Hermes runtime packages were refreshed from the resulting project repositories. The exact repository, branch, commit, and override coverage is recorded in the [shared SSO skill rollout ledger](/governance/sso-skill-rollout/).
|
|
||||||
|
|
||||||
Runtime preflight confirmed both secret names are currently injected. No credential value was read into a report, persisted, or committed.
|
|
||||||
|
|
||||||
## Consequences
|
|
||||||
|
|
||||||
Every Corp v1 channel now follows one login path and one non-disclosure policy. Authentication can support authorized delivery work without turning credential availability into broader system authority.
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
title: Skill name separator migration
|
|
||||||
sidebar_position: 13
|
|
||||||
---
|
|
||||||
|
|
||||||
# Skill name separator migration
|
|
||||||
|
|
||||||
- **Improvement ID:** `GUILD-IMP-20260904-skill-name-separators`
|
|
||||||
- **Status:** Complete
|
|
||||||
- **Approved by:** RootAtSkic (`discord:1518725627845283888`)
|
|
||||||
- **Approval evidence:** Discord message `1545414655609016450`
|
|
||||||
- **Date:** 2026-09-04
|
|
||||||
|
|
||||||
## Decision
|
|
||||||
|
|
||||||
Corp v1 skill names use single hyphens only. Consecutive ASCII hyphens are not permitted in skill frontmatter names, installed package folders, project-adopted skill repository names, cross-skill references, automation attachments, portal records, or active channel guidance.
|
|
||||||
|
|
||||||
Project qualification now follows these forms:
|
|
||||||
|
|
||||||
```text
|
|
||||||
<source-skill>-<project-code>
|
|
||||||
corp-v1-channel-<channel>-<project-code>
|
|
||||||
```
|
|
||||||
|
|
||||||
Central examples include `corp-v1-main`, `corp-v1-guild`, `corp-v1-glossary`, and `corp-v1-presentation`.
|
|
||||||
|
|
||||||
## Applied scope
|
|
||||||
|
|
||||||
- Renamed and remotely verified 59 existing Gitea skill repositories across central Corp v1 governance and the 3D Architecture, AeroSim, E-Shop v1, and Maze Next Gen projects.
|
|
||||||
- Published the previously local-only `corp-v1-presentation` package as `home-v1-skills-code-agent/corp-v1-presentation`.
|
|
||||||
- Updated central channel references, project adoption manifests, supporting files, the active Hermes runtime packages, scheduled-job attachments and prompts, and pinned Discord guidance.
|
|
||||||
- Preserved project authorization overrides, source provenance, repository history, and inactive historical workspaces.
|
|
||||||
|
|
||||||
Legacy Gitea URLs may resolve through Gitea's rename alias, but organization repository inventories and all canonical links use the new single-hyphen names.
|
|
||||||
@@ -9,7 +9,7 @@ sidebar_position: 1
|
|||||||
|
|
||||||
## Board authority
|
## 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
|
## 1. Proposed
|
||||||
|
|
||||||
@@ -21,19 +21,11 @@ Obtain explicit Board approval. Record the approving Board member, decision evid
|
|||||||
|
|
||||||
## 3. Active
|
## 3. Active
|
||||||
|
|
||||||
Maintain current status, decisions, risks, milestones, and material scope changes. Project teams retain authority within their approved project boundaries; Board approval is still required for kickoff/closure and changes to `corp-v1-main`.
|
Maintain current status, decisions, risks, milestones, and material scope changes. Project teams retain authority within their approved project boundaries; Board approval is still required for kickoff/closure and changes to `corp-v1--main`.
|
||||||
|
|
||||||
### Discord topology
|
|
||||||
|
|
||||||
The guild-level `corp-v1` category is reserved for Board and shared governance channels. Every project uses one dedicated top-level category named `corp-v1-<code>` containing exactly seven lifecycle channels in this order: General, Scope, Architecture, UI/UX, Kanban, Delivery, Releases. Existing channels are moved by immutable ID so history, pins, permission overwrites, webhooks, and delivery targets remain intact.
|
|
||||||
|
|
||||||
### System login
|
|
||||||
|
|
||||||
For an explicitly authorized Corp v1 system task, Hermes may use the Bitwarden-injected runtime secrets named `HL_V1_SSO_EMAIL` and `HL_V1_SSO_PASSWORD`. Secret availability does not authorize unrelated access or account administration. Values and Bitwarden object metadata must never be printed, persisted, committed, posted, logged, placed in command lines or URLs, or requested through chat. Missing injection is reported by secret name only.
|
|
||||||
|
|
||||||
### Project-channel skill changes
|
### 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
|
## 4. Paused
|
||||||
|
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
---
|
|
||||||
title: Shared SSO skill rollout
|
|
||||||
---
|
|
||||||
|
|
||||||
# Shared SSO skill rollout — 2026-08-27
|
|
||||||
|
|
||||||
This ledger records the Board-approved secret-name-only login guidance published under Discord message `1542636538305712199`. All repositories were updated central-first, pushed to their actual default branches, and read back at the exact resulting commit. Project-local authorization override blocks were hash-compared before and after each adoption.
|
|
||||||
|
|
||||||
| Scope | Skill repository | Branch | Published commit | Preserved override blocks |
|
|
||||||
|---|---|---|---|---:|
|
|
||||||
| Central reference | [corp-v1-channel-general](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-general) | `test` | `a5e79c24dd4ec1fa0d1a3258ecc184d9808daa62` | 0 |
|
|
||||||
| Central reference | [corp-v1-channel-scope](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-scope) | `test` | `4554b78e20377863af55be3dca78cf22f1e98b75` | 0 |
|
|
||||||
| Central reference | [corp-v1-channel-architecture](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-architecture) | `test` | `c7620c804a0de210f35fc829a38a53e44d40bfd8` | 0 |
|
|
||||||
| Central reference | [corp-v1-channel-ui-ux](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-ui-ux) | `test` | `16faefef2af8f82ee4645a187057af74beae3260` | 0 |
|
|
||||||
| Central reference | [corp-v1-channel-kanban](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-kanban) | `test` | `87a50a926a7256201ce1771aad7764898f24ff60` | 0 |
|
|
||||||
| Central reference | [corp-v1-channel-delivery](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-delivery) | `test` | `20cb78ce0942b35fe6528399c22764fbfb4cf06a` | 0 |
|
|
||||||
| Central reference | [corp-v1-channel-releases](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-channel-releases) | `test` | `94d147880f6c957967d6612cbd846f9a2f2f6c00` | 0 |
|
|
||||||
| aerosim | [corp-v1-channel-general-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent/corp-v1-channel-general-aerosim) | `test` | `e50dc8878ebe74b6c58601204508e4723bb7803d` | 0 |
|
|
||||||
| aerosim | [corp-v1-channel-scope-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent/corp-v1-channel-scope-aerosim) | `test` | `0b6cee38a12803b4a7ceefe824e6a510ea35fec3` | 1 |
|
|
||||||
| aerosim | [corp-v1-channel-architecture-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent/corp-v1-channel-architecture-aerosim) | `test` | `c2c379ea6875d1b2c91cd6d02da588b8cf06bcb6` | 1 |
|
|
||||||
| aerosim | [corp-v1-channel-ui-ux-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent/corp-v1-channel-ui-ux-aerosim) | `test` | `26d786b310e86c87d70542a680367c768474d28e` | 1 |
|
|
||||||
| aerosim | [corp-v1-channel-kanban-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent/corp-v1-channel-kanban-aerosim) | `test` | `e75f81d559996e9cab97092bf94db33a324830d1` | 0 |
|
|
||||||
| aerosim | [corp-v1-channel-delivery-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent/corp-v1-channel-delivery-aerosim) | `test` | `af697f5d1ef708c66db3ab62fd1fa9094b7735a2` | 0 |
|
|
||||||
| aerosim | [corp-v1-channel-releases-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent/corp-v1-channel-releases-aerosim) | `test` | `e85df7e82daa004bf0dc5a8db9ea09a99507583b` | 0 |
|
|
||||||
| mazeng | [corp-v1-channel-general-mazeng](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-general-mazeng) | `test` | `12579704b8afad3af41b55b540ad21132e2ac299` | 1 |
|
|
||||||
| mazeng | [corp-v1-channel-scope-mazeng](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-scope-mazeng) | `test` | `51ee9f4722a6ba5f9bbd13384ae8674690e070f9` | 1 |
|
|
||||||
| mazeng | [corp-v1-channel-architecture-mazeng](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-architecture-mazeng) | `test` | `4c80704a0bd065accba49d523f6a83f51f8c1d2c` | 1 |
|
|
||||||
| mazeng | [corp-v1-channel-ui-ux-mazeng](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-ui-ux-mazeng) | `test` | `547aabf245cd032dd82f95f3273c27753adbbd00` | 2 |
|
|
||||||
| mazeng | [corp-v1-channel-kanban-mazeng](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-kanban-mazeng) | `test` | `a1dcadca90ccf18da54d415c87b47b77773730b9` | 1 |
|
|
||||||
| mazeng | [corp-v1-channel-delivery-mazeng](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-delivery-mazeng) | `test` | `190de977a647446510375aff1bf3192beb41f444` | 1 |
|
|
||||||
| mazeng | [corp-v1-channel-releases-mazeng](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-releases-mazeng) | `test` | `eddc0f9d788c28134775a70e02606a0ded326933` | 1 |
|
|
||||||
| eshopv1 | [corp-v1-channel-general-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-general-eshopv1) | `test` | `e2d6b628dbdd409cb3901384419ae69db8de256b` | 1 |
|
|
||||||
| eshopv1 | [corp-v1-channel-scope-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-scope-eshopv1) | `test` | `0b185c233a10d004a47f80b5d408cab582bbe058` | 1 |
|
|
||||||
| eshopv1 | [corp-v1-channel-architecture-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-architecture-eshopv1) | `test` | `9fcab760c09263b4432bf8a4a8028a22e4ca5532` | 1 |
|
|
||||||
| eshopv1 | [corp-v1-channel-ui-ux-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-ui-ux-eshopv1) | `test` | `42e3f4bea7f526020f9abd66fd453104c4879935` | 1 |
|
|
||||||
| eshopv1 | [corp-v1-channel-kanban-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-kanban-eshopv1) | `test` | `4c96798bfe678c97c8f820000a424fbd50a74e53` | 1 |
|
|
||||||
| eshopv1 | [corp-v1-channel-delivery-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-delivery-eshopv1) | `test` | `5562b81fb3e8ad6fbc0d02039d58deaf64adbf53` | 1 |
|
|
||||||
| eshopv1 | [corp-v1-channel-releases-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-releases-eshopv1) | `test` | `77dbd2841337bd24b642b08329bcc338d2cb44f6` | 1 |
|
|
||||||
|
|
||||||
## Coverage
|
|
||||||
|
|
||||||
- Seven central `corp-v1-channel-*` reference skills.
|
|
||||||
- Seven AeroSim channel-skill adoptions.
|
|
||||||
- Seven Maze Next Gen channel-skill adoptions.
|
|
||||||
- Seven E-Shop v1 channel-skill adoptions.
|
|
||||||
- Twenty-one installed Hermes runtime packages refreshed from the resulting project repositories.
|
|
||||||
|
|
||||||
The UI/UX source and three UI/UX adoptions include a follow-up correction that routes Penpot login through this shared SSO policy before reporting an authentication blocker; the table records those final commits.
|
|
||||||
|
|
||||||
Only the names `HL_V1_SSO_EMAIL` and `HL_V1_SSO_PASSWORD` are recorded. No value or Bitwarden object identifier is stored in this ledger.
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Andrius"
|
|
||||||
description: "Identify Andrius's AeroSim project membership and verified access state."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Andrius
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Active |
|
|
||||||
| Discord | `<@204689314796273674>` — `whyt6249` / Andrius |
|
|
||||||
| Governance roles | AeroSim human team member |
|
|
||||||
| Team | [AeroSim Team](/teams/aerosim/) |
|
|
||||||
| Active projects | [AeroSim](/projects/aerosim/) |
|
|
||||||
| Gitea | Pending a verified username or account |
|
|
||||||
|
|
||||||
Andrius has verified effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access to the AeroSim General channel. Gitea searches did not establish an unambiguous account mapping, so membership in `aerosim-maintainers` and `aerosim-skill-maintainers` remains pending.
|
|
||||||
|
|
||||||
The membership alignment was approved by RootAtSkic (`discord:1518725627845283888`) in AeroSim General message `1543962382978514964` on 2026-08-31.
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Dovydas"
|
|
||||||
description: "Identify Dovydas's AeroSim project membership and verified access state."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Dovydas
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Active |
|
|
||||||
| Discord | `<@1543952051212656684>` — `dovydaszelenkevicius` / Dovydas |
|
|
||||||
| Governance roles | AeroSim human team member |
|
|
||||||
| Team | [AeroSim Team](/teams/aerosim/) |
|
|
||||||
| Active projects | [AeroSim](/projects/aerosim/) |
|
|
||||||
| Gitea | Pending a verified username or account |
|
|
||||||
|
|
||||||
Dovydas has verified effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access to the AeroSim General channel. No matching Gitea account was resolved, so membership in `aerosim-maintainers` and `aerosim-skill-maintainers` remains pending.
|
|
||||||
|
|
||||||
The membership alignment was approved by RootAtSkic (`discord:1518725627845283888`) in AeroSim General message `1543962382978514964` on 2026-08-31.
|
|
||||||
@@ -15,6 +15,6 @@ sidebar_position: 5
|
|||||||
| Active projects | [AeroSim](/projects/aerosim/) |
|
| Active projects | [AeroSim](/projects/aerosim/) |
|
||||||
| Gitea | Pending a verified username or account |
|
| Gitea | Pending a verified username or account |
|
||||||
|
|
||||||
Eduard has verified effective access to `corp-v1-board` and all six AeroSim channels. Board authority covers project kickoff, project closure, and approval of changes to `corp-v1-main`.
|
Eduard has verified effective access to `corp-v1-board` and all six AeroSim channels. Board authority covers project kickoff, project closure, and approval of changes to `corp-v1--main`.
|
||||||
|
|
||||||
No matching Gitea account could be resolved on 2026-08-14. Membership in `aerosim-maintainers` and `aerosim-skill-maintainers` remains pending until the account identity is verified.
|
No matching Gitea account could be resolved on 2026-08-14. Membership in `aerosim-maintainers` and `aerosim-skill-maintainers` remains pending until the account identity is verified.
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
title: Friday Jr at SKIC
|
|
||||||
sidebar_position: 3
|
|
||||||
---
|
|
||||||
|
|
||||||
# Friday Jr at SKIC
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Discord and team assignment complete; Gitea account activation pending |
|
|
||||||
| Discord | `<@1542987400358404268>` — `friday-jr-at-skic-hermes` |
|
|
||||||
| Role | Board-support and all-project code agent; not a human member, owner, approver, or Board decision-maker |
|
|
||||||
| Projects | 3D Architecture Wizzard; AeroSim; E-Shop v1; Maze Next Gen; DPVP Discord workspace |
|
|
||||||
| Gitea | `friday-at-skic` (user ID `92`) — team memberships verified; account reports inactive and its token receives HTTP `403` |
|
|
||||||
|
|
||||||
The Discord identity holds the `friday-jr-v1-hermes` administrator role. Fresh effective-permission calculation verified `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` in `corp-v1-board` and every lifecycle channel across all five project categories.
|
|
||||||
|
|
||||||
The Gitea account is assigned through the Corp portal code-agent team and both project/skill teams for 3D Architecture Wizzard, AeroSim, DPVP, E-Shop v1, and Maze Next Gen. Those eleven teams currently cover one governance repository, twelve project-organization repositories, and fifty-six project-skill repositories. The new DPVP teams contain Friday but currently cover no repositories because DPVP repository provisioning is still pending. A Gitea administrator must activate `friday-at-skic` before the account can use its own API token or sign in.
|
|
||||||
|
|
||||||
RootAtSkic (`discord:1518725627845283888`) approved the onboarding in Board message `1545758343489130598` on 2026-09-05. The approval grants operational access only and does not alter the seven-person human Board roster.
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Giedrius K"
|
|
||||||
description: "Identify Giedrius K's AeroSim project membership and verified access state."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Giedrius K
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Active |
|
|
||||||
| Discord | `<@1543940246071410706>` — `giedriusk_62552` / Giedrius K |
|
|
||||||
| Governance roles | AeroSim human team member |
|
|
||||||
| Team | [AeroSim Team](/teams/aerosim/) |
|
|
||||||
| Active projects | [AeroSim](/projects/aerosim/) |
|
|
||||||
| Gitea | Pending a verified username or account |
|
|
||||||
|
|
||||||
Giedrius K has verified effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access to the AeroSim General channel. No matching Gitea account was resolved, so membership in `aerosim-maintainers` and `aerosim-skill-maintainers` remains pending.
|
|
||||||
|
|
||||||
The membership alignment was approved by RootAtSkic (`discord:1518725627845283888`) in AeroSim General message `1543962382978514964` on 2026-08-31.
|
|
||||||
@@ -9,17 +9,11 @@ sidebar_position: 1
|
|||||||
| Member | Status | Roles | Teams | Active projects |
|
| Member | Status | Roles | Teams | Active projects |
|
||||||
|---|---|---|---|---:|
|
|---|---|---|---|---:|
|
||||||
| [RootAtSkic](/members/rootatskic/) | Active | AeroSim and Maze Next Gen sponsor and lead | AeroSim Team; Maze Next Gen Team | 2 |
|
| [RootAtSkic](/members/rootatskic/) | Active | AeroSim and Maze Next Gen sponsor and lead | AeroSim Team; Maze Next Gen Team | 2 |
|
||||||
| [Jarvis at SKIC](/members/jarvis-at-skic/) | Active | Board member; executing code agent; all-project technical member | AeroSim; Maze Next Gen; E-Shop v1; 3D Architecture Wizzard; DPVP | 5 |
|
| [Jarvis at SKIC](/members/jarvis-at-skic/) | Active | AeroSim and Maze Next Gen technical member and code agent | AeroSim Team; Maze Next Gen Team | 2 |
|
||||||
| [Friday Jr at SKIC](/members/friday-at-skic/) | Access provisioned; Gitea activation pending | Board-support and all-project code agent; no human decision authority | 3D Architecture Wizzard; AeroSim; E-Shop v1; Maze Next Gen; DPVP Discord workspace | 5 |
|
|
||||||
| [Panther Skeleton](/members/panther-skeleton/) | Active | Board member; AeroSim member | AeroSim Team | 1 |
|
| [Panther Skeleton](/members/panther-skeleton/) | Active | Board member; AeroSim member | AeroSim Team | 1 |
|
||||||
| [MartynasP](/members/martynasp/) | Active | Board member; AeroSim primary Scope owner | 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 |
|
| [Eduard](/members/eduard/) | Active | Board member; AeroSim member | AeroSim Team | 1 |
|
||||||
| [Linas](/members/linas/) | 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 |
|
| [Jenny](/members/jenny/) | Active | Board member; AeroSim and Maze Next Gen member | AeroSim Team; Maze Next Gen Team | 2 |
|
||||||
| [Piotras](/members/piotras/) | Active | Board member; AeroSim and Maze Next Gen member | AeroSim Team; Maze Next Gen Team | 2 |
|
|
||||||
| [Andrius](/members/andrius/) | Active | AeroSim member | AeroSim Team | 1 |
|
|
||||||
| [Dovydas](/members/dovydas/) | Active | AeroSim member | AeroSim Team | 1 |
|
|
||||||
| [Giedrius K](/members/giedrius-k/) | Active | AeroSim member | AeroSim Team | 1 |
|
|
||||||
| [Jone Tamulaite - Nong](/members/jone-tamulaite-nong/) | Offboarded from AeroSim | Former AeroSim Scope owner | None | 0 |
|
|
||||||
|
|
||||||
Only governance-relevant professional information belongs here. Do not store secrets, credentials, private contact details, or unnecessary personal data.
|
Only governance-relevant professional information belongs here. Do not store secrets, credentials, private contact details, or unnecessary personal data.
|
||||||
|
|||||||
@@ -8,12 +8,9 @@ sidebar_position: 2
|
|||||||
| Field | Value |
|
| Field | Value |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Status | Active |
|
| Status | Active |
|
||||||
| Discord | `<@1526860732917088266>` — `jarvis-jr-at-skic-hermes` |
|
| Governance roles | AeroSim and Maze Next Gen technical member and executing code agent |
|
||||||
| Governance roles | Corp v1 Board member and executing code agent; technical member of every current project |
|
| Teams | [AeroSim Team](/teams/aerosim/); [Maze Next Gen Team](/teams/mazeng/) |
|
||||||
| Teams | [AeroSim](/teams/aerosim/); [Maze Next Gen](/teams/mazeng/); [E-Shop v1](/teams/eshopv1/); [3D Architecture Wizzard](/teams/3darch/); [DPVP](/teams/dpvp/) |
|
| Projects | [AeroSim](/projects/aerosim/); [Maze Next Gen](/projects/mazeng/) |
|
||||||
| Projects | [AeroSim](/projects/aerosim/); [Maze Next Gen](/projects/mazeng/); [E-Shop v1](/projects/eshopv1/); [3D Architecture Wizzard](/projects/3darch/); [DPVP](/projects/dpvp/) |
|
| Gitea | `jarvis-at-skic` — verified |
|
||||||
| Gitea | `jarvis-at-skic` (user ID `24`) — active and verified in all ten project/skills teams |
|
|
||||||
|
|
||||||
RootAtSkic approved Jarvis's Board and all-project onboarding in Board message `1545759332845490208` on 2026-09-05. Effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access is verified for `corp-v1-board` and all 35 lifecycle channels through the bot's administrator role. Gitea team membership is verified in each project's project and skills/code-agent organization; all teams include all current and future organization repositories.
|
The executing Hermes identity has verified membership in both AeroSim and both Maze Next Gen Gitea organization teams and verified read/post access across all six AeroSim Discord channels as bot `1526860732917088266`; the required pinned General guidance remains verified.
|
||||||
|
|
||||||
Jarvis participates as the Board's executing code agent. Human Board approval remains required for approval-gated governance decisions; Jarvis does not approve its own execution.
|
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
---
|
---
|
||||||
title: "Jenny"
|
title: "Jenny"
|
||||||
description: "Identify Jenny's Corp v1 Board and active-project responsibilities and current access state."
|
description: "Identify Jenny's Corp v1 Board and active-project responsibilities and access state."
|
||||||
|
sidebar_position: 7
|
||||||
---
|
---
|
||||||
|
|
||||||
# Jenny
|
# Jenny
|
||||||
|
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Status | Active |
|
|
||||||
| Discord | `<@1540035254746882048>` — `elprup16` / Jenny |
|
| Discord | `<@1540035254746882048>` — `elprup16` / Jenny |
|
||||||
| Governance roles | Corp v1 Board member; AeroSim and Maze Next Gen human team member |
|
| Governance roles | Corp v1 Board member; AeroSim and Maze Next Gen human team member |
|
||||||
| Gitea | Pending first login and a verified username |
|
| 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 |
|
||||||
|
|
||||||
Jenny has verified Discord access to the Board and active project channels. Repository access remains pending a verified Gitea account mapping; no identity was guessed.
|
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`.
|
||||||
|
|
||||||
The membership change was approved by RootAtSkic (`discord:1518725627845283888`) in Board message `1540045796152709180` on 2026-08-20.
|
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.
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Jone Tamulaite - Nong"
|
|
||||||
description: "Record Jone Tamulaite - Nong's former AeroSim project membership and offboarding state."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Jone Tamulaite - Nong
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Offboarded from AeroSim on 2026-09-28 |
|
|
||||||
| Discord | `<@1067100220321714278>` — `jtamul` / Jone Tamulaite - Nong |
|
|
||||||
| Governance roles | Former AeroSim human team member and primary Scope owner |
|
|
||||||
| Team | None |
|
|
||||||
| Active projects | None |
|
|
||||||
| Gitea | No verified AeroSim account mapping; no team membership existed to revoke |
|
|
||||||
|
|
||||||
RootAtSkic recorded Jone Tamulaite - Nong's departure from AeroSim in Scope message `1554069052773900391` on 2026-09-28. MartynasP (`discord:773109855497093191`) succeeded her as primary Scope owner. Jone never had a verified Gitea mapping or membership in `aerosim-maintainers` or `aerosim-skill-maintainers`; Discord project-access removal remains subject to fresh remote verification.
|
|
||||||
|
|
||||||
The original membership alignment was approved by RootAtSkic (`discord:1518725627845283888`) in AeroSim General message `1543962382978514964` on 2026-08-31 and is preserved as historical evidence.
|
|
||||||
@@ -1,17 +1,20 @@
|
|||||||
---
|
---
|
||||||
title: "Linas"
|
title: "Linas"
|
||||||
description: "Identify Linas's Corp v1 Board and AeroSim responsibilities and verified access state."
|
description: "Identify Linas's Corp v1 Board and AeroSim project responsibilities and verified access state."
|
||||||
|
sidebar_position: 6
|
||||||
---
|
---
|
||||||
|
|
||||||
# Linas
|
# Linas
|
||||||
|
|
||||||
| Field | Value |
|
| Field | Value |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Status | Active |
|
| Full name | Linas Ramanauskas |
|
||||||
| Discord | `<@1483820991720329227>` — `linas_02251` / Linas |
|
| Discord | `<@1483820991720329227>` — `linas_02251` / Linas |
|
||||||
| Governance roles | Corp v1 Board member; AeroSim human team member; 3D Architecture Wizzard team lead |
|
| Governance roles | Corp v1 Board member; AeroSim human team member |
|
||||||
| Gitea | `linas` — assigned; login activation pending |
|
| 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` |
|
||||||
|
|
||||||
Linas has verified Discord access to the Board and AeroSim channels and is assigned to both AeroSim Gitea organization teams and both 3D Architecture Wizzard teams. The `linas` account remains inactive, so effective 3D Architecture Wizzard Gitea access is pending activation.
|
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 membership change was approved by RootAtSkic (`discord:1518725627845283888`) in Board message `1538808717301252116` on 2026-08-17.
|
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`.
|
||||||
@@ -10,9 +10,9 @@ sidebar_position: 4
|
|||||||
|---|---|
|
|---|---|
|
||||||
| Status | Active |
|
| Status | Active |
|
||||||
| Discord | `<@773109855497093191>` — `w4rl0ck_21` / MartynasP |
|
| Discord | `<@773109855497093191>` — `w4rl0ck_21` / MartynasP |
|
||||||
| Governance roles | Corp v1 Board member; AeroSim human team member; primary AeroSim Scope owner |
|
| Governance roles | Corp v1 Board member; AeroSim human team member |
|
||||||
| Team | [AeroSim Team](/teams/aerosim/) |
|
| Team | [AeroSim Team](/teams/aerosim/) |
|
||||||
| Active projects | [AeroSim](/projects/aerosim/) |
|
| Active projects | [AeroSim](/projects/aerosim/) |
|
||||||
| Gitea | `martynas-pazusis` — verified in both AeroSim organization teams |
|
| Gitea | `martynas-pazusis` — verified in both AeroSim organization teams |
|
||||||
|
|
||||||
RootAtSkic assigned MartynasP as AeroSim's primary Scope owner in Scope message `1554069052773900391` on 2026-09-28, succeeding Jone Tamulaite - Nong. This authority covers routine Epic and Feature lifecycle, priority, outcome, and `Approved for Solution` decisions under the AeroSim Scope contract. MartynasP's verified Gitea identity already belongs to both `aerosim-maintainers` and `aerosim-skill-maintainers`; fresh effective Discord access verification across the current eight-channel topology remains part of transition closure. Board authority continues to cover project kickoff, project closure, and approval of changes to `corp-v1-main`.
|
MartynasP has verified effective access to `corp-v1-board` and all six AeroSim channels. The verified Gitea identity belongs to both `aerosim-maintainers` and `aerosim-skill-maintainers`, which cover the two project repositories and all thirteen adopted skill repositories. Board authority covers project kickoff, project closure, and approval of changes to `corp-v1--main`.
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ sidebar_position: 3
|
|||||||
| Active projects | [AeroSim](/projects/aerosim/) |
|
| Active projects | [AeroSim](/projects/aerosim/) |
|
||||||
| Gitea | Pending a verified username or account |
|
| Gitea | Pending a verified username or account |
|
||||||
|
|
||||||
Panther Skeleton has verified effective access to `corp-v1-board` and all six AeroSim channels. Board authority covers project kickoff, project closure, and approval of changes to `corp-v1-main`.
|
Panther Skeleton has verified effective access to `corp-v1-board` and all six AeroSim channels. Board authority covers project kickoff, project closure, and approval of changes to `corp-v1--main`.
|
||||||
|
|
||||||
No matching Gitea account could be resolved on 2026-08-14. Membership in `aerosim-maintainers` and `aerosim-skill-maintainers` remains pending until the account identity is verified.
|
No matching Gitea account could be resolved on 2026-08-14. Membership in `aerosim-maintainers` and `aerosim-skill-maintainers` remains pending until the account identity is verified.
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Piotras"
|
|
||||||
description: "Identify Piotras's Corp v1 Board and active-project responsibilities and verified access state."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Piotras
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Active |
|
|
||||||
| Discord | `<@501954115690168321>` — `piotras0262` / Piotras |
|
|
||||||
| Governance roles | Corp v1 Board member; AeroSim and Maze Next Gen human team member |
|
|
||||||
| Gitea | Pending a verified username or account |
|
|
||||||
|
|
||||||
Piotras has verified effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access to `corp-v1-board` and all seven channels in both active projects. Member-specific overwrites restore `VIEW_CHANNEL`; inherited guild permissions supply send and history access.
|
|
||||||
|
|
||||||
Piotras maps to verified Gitea account `piotras` (user ID `85`, `piotras.cimmperman@ibm.com`). On 2026-08-25, the account was added through the organization teams `aerosim-maintainers`, `aerosim-skill-maintainers`, and both `maze-next-gen-team` teams. Fresh membership reads verified write access through those teams across four AeroSim project repositories, fourteen AeroSim skill repositories, two Maze Next Gen project repositories, and fourteen Maze Next Gen skill repositories. No direct repository collaborator was added.
|
|
||||||
|
|
||||||
The membership change was approved by RootAtSkic (`discord:1518725627845283888`) in Board message `1541770529600577577` on 2026-08-25.
|
|
||||||
@@ -8,10 +8,10 @@ sidebar_position: 1
|
|||||||
| Field | Value |
|
| Field | Value |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Status | Active |
|
| Status | Active |
|
||||||
| Governance roles | AeroSim, Maze Next Gen, and E-Shop v1 sponsor and accountable lead |
|
| Governance roles | AeroSim and Maze Next Gen sponsor and accountable lead |
|
||||||
| Teams | [AeroSim Team](/teams/aerosim/); [Maze Next Gen Team](/teams/mazeng/); [E-Shop v1 Team](/teams/eshopv1/) |
|
| Teams | [AeroSim Team](/teams/aerosim/); [Maze Next Gen Team](/teams/mazeng/) |
|
||||||
| Projects | [AeroSim](/projects/aerosim/); [Maze Next Gen](/projects/mazeng/); [E-Shop v1](/projects/eshopv1/) |
|
| Projects | [AeroSim](/projects/aerosim/); [Maze Next Gen](/projects/mazeng/) |
|
||||||
| Discord | RootAtSkic — `1518725627845283888`, verified |
|
| Discord | RootAtSkic — `1518725627845283888`, verified |
|
||||||
| Gitea | `root-at-skic` — verified in both AeroSim, Maze Next Gen, and E-Shop v1 organization teams |
|
| Gitea | `root-at-skic` — verified in both AeroSim teams and both Maze Next Gen teams |
|
||||||
|
|
||||||
The Gitea identity was resolved by exact authenticated user search rather than inferred.
|
The Gitea identity was resolved by exact authenticated user search rather than inferred.
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ This repository is the authoritative governance workspace for starting, governin
|
|||||||
| [Projects](/projects/) | Portfolio status, ownership, lifecycle, and outcomes |
|
| [Projects](/projects/) | Portfolio status, ownership, lifecycle, and outcomes |
|
||||||
| [Teams](/teams/) | Team mandates, responsibilities, and project assignments |
|
| [Teams](/teams/) | Team mandates, responsibilities, and project assignments |
|
||||||
| [Members](/members/) | Member identity, roles, and team membership |
|
| [Members](/members/) | Member identity, roles, and team membership |
|
||||||
| [Board](/board/) | The only members authorized to approve project kickoff, project closure, and `corp-v1-main` changes |
|
| [Board](/board/) | The only members authorized to approve project kickoff, project closure, and `corp-v1--main` changes |
|
||||||
|
|
||||||
## Operating principle
|
## Operating principle
|
||||||
|
|
||||||
Every project has a named sponsor, accountable lead, team, explicit status, Board-approved kickoff decision, and—when closed—a Board-approved closure record with retained artifacts and lessons learned. Board and shared governance channels remain in `corp-v1`; each project's seven lifecycle channels live in one dedicated `corp-v1-<code>` category.
|
Every project has a named sponsor, accountable lead, team, explicit status, Board-approved kickoff decision, and—when closed—a Board-approved closure record with retained artifacts and lessons learned.
|
||||||
|
|||||||
@@ -1,88 +0,0 @@
|
|||||||
---
|
|
||||||
title: 3D Architecture Wizzard
|
|
||||||
sidebar_position: 4
|
|
||||||
---
|
|
||||||
|
|
||||||
# 3D Architecture Wizzard
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Code | `3darch` |
|
|
||||||
| Status | Active — lead activation pending |
|
|
||||||
| Started | 2026-08-31 |
|
|
||||||
| Sponsor | RootAtSkic |
|
|
||||||
| Accountable lead | Linas |
|
|
||||||
| Initial members | Linas; `jarvis-at-skic` / Hermes executing code agent |
|
|
||||||
| Operational code agent | `friday-at-skic` / Friday Jr; Gitea activation pending |
|
|
||||||
| Team | [3D Architecture Wizzard Team](/teams/3darch/) |
|
|
||||||
| Visibility | Public |
|
|
||||||
|
|
||||||
## Purpose
|
|
||||||
|
|
||||||
Create an interactive 3D application for exploring, designing, and communicating software and system architecture.
|
|
||||||
|
|
||||||
## Initial deliverable
|
|
||||||
|
|
||||||
A browser-based proof of concept that visualizes one architecture model in navigable 3D.
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
- Project organization: [corp-v1-3darch](https://gitea.lego-cloud.eu/corp-v1-3darch)
|
|
||||||
- Skills organization: [corp-v1-3darch-skills-code-agent](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent)
|
|
||||||
- [Application repository](https://gitea.lego-cloud.eu/corp-v1-3darch/corp-v1-3darch) — `test` at `847c8291f100547ec9104743ab7d0d8761a5ec20`
|
|
||||||
- [Documentation repository](https://gitea.lego-cloud.eu/corp-v1-3darch/corp-v1-3darch-documentation) — `test` at `73cf70f0f333c187b28821fb76a44c779bdfbbdb`
|
|
||||||
- [Published documentation](https://pages.apps.lego-cloud.eu/corp-v1-3darch/corp-v1-3darch-documentation/)
|
|
||||||
- Global [Draw.io](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/drawio-main) and [glossary governance](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/corp-v1-glossary) references.
|
|
||||||
|
|
||||||
## Discord
|
|
||||||
|
|
||||||
Dedicated category `corp-v1-3darch` (`1543925242832101387`) contains exactly seven channels in lifecycle order:
|
|
||||||
|
|
||||||
- `corp-v1-3darch-general` — `1543925245755392051`
|
|
||||||
- `corp-v1-3darch-scope` — `1543925247361814568`
|
|
||||||
- `corp-v1-3darch-architecture` — `1543925248917770251`
|
|
||||||
- `corp-v1-3darch-ui-ux` — `1543925251191349260`
|
|
||||||
- `corp-v1-3darch-kanban` — `1543925252474798100`
|
|
||||||
- `corp-v1-3darch-delivery` — `1543925253502406749`
|
|
||||||
- `corp-v1-3darch-releases` — `1543925255523803146`
|
|
||||||
|
|
||||||
Hermes bot `1526860732917088266` posted purpose guidance in every channel, pinned the general introduction, and pinned the mapped project-skill guidance in every channel. No project scheduler job exists.
|
|
||||||
|
|
||||||
## Adopted project skills
|
|
||||||
|
|
||||||
All fourteen repositories are public, use default branch `test`, retain source history and assets, record immutable central source commits, and are assigned to the skills team:
|
|
||||||
|
|
||||||
- [`development-branching-strategy-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/development-branching-strategy-3darch) — source `test` / `636aba2b9e0957705fc874f07b310a4be9916f1c`, adopted `d0653755bda8104213e1e5aa3ce293a4a99ee8b3`
|
|
||||||
- [`development-gitops-argo-cd-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/development-gitops-argo-cd-3darch) — source `test` / `510b2bb590118362804d6036cbbf37db72dc21d0`, adopted `f4dd556573380363129bc9843b71d2630f2db393`
|
|
||||||
- [`development-monorepo-pnpm-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/development-monorepo-pnpm-3darch) — source `test` / `ff69bcca2fb3b673297230710a74c70410fd1996`, adopted `d6c800285f3393dd653350b6b7e3923e9d4c03e8`
|
|
||||||
- [`development-scripts-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/development-scripts-3darch) — source `test` / `5960d5e74713e6b95a403962f479b2b97cb76286`, adopted `ffdb143782833225fa3519e0108256e36c221e16`
|
|
||||||
- [`devsecops-ci-cd-gitea-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/devsecops-ci-cd-gitea-3darch) — source `test` / `8f46c3faa5ba074b8a48971b87365e0d3e2a4c40`, adopted `2fa1db97207685555f7a03cf26765db89d10cf6f`
|
|
||||||
- [`documentation-docusaurus-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/documentation-docusaurus-3darch) — source `test` / `f810f8c92005e5d55b08700b67fd34a37be435bc`, adopted `aaa49271748024b4ca97a015fb33a1847d5287ec`
|
|
||||||
- [`template-engine-copier-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/template-engine-copier-3darch) — source `test` / `97991021fff9e1f73202a82d29eea496ea0eb7aa`, adopted `73e4b53ee916269fe3c5d481e0d05bab0176711e`
|
|
||||||
- [`corp-v1-channel-general-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/corp-v1-channel-general-3darch) — source `test` / `a5e79c24dd4ec1fa0d1a3258ecc184d9808daa62`, adopted `1fff9bf1c9fbfe2693601a0e46c7de4c82c50298`
|
|
||||||
- [`corp-v1-channel-scope-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/corp-v1-channel-scope-3darch) — source `test` / `1916761e471535356bff38e2239aeb4d8fcd232d`, adopted `83d98aed66ac569ea8edfb18c9da4548942c0f1a`
|
|
||||||
- [`corp-v1-channel-architecture-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/corp-v1-channel-architecture-3darch) — source `test` / `c7620c804a0de210f35fc829a38a53e44d40bfd8`, adopted `31c62cedcc89f6b9f2ebba5a2c76ca4ae3111e6e`
|
|
||||||
- [`corp-v1-channel-ui-ux-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/corp-v1-channel-ui-ux-3darch) — source `test` / `de8c40cf43e08a63ca0be38a4b4404fbe2427885`, adopted `7a5dd48846ffce24be9c2541f00c7022faa56975`
|
|
||||||
- [`corp-v1-channel-kanban-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/corp-v1-channel-kanban-3darch) — source `test` / `87a50a926a7256201ce1771aad7764898f24ff60`, adopted `8c1e7fd3a749993f477566c249b8ba9111f5705c`
|
|
||||||
- [`corp-v1-channel-delivery-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/corp-v1-channel-delivery-3darch) — source `test` / `20cb78ce0942b35fe6528399c22764fbfb4cf06a`, adopted `2945874b0475901facef3bf6b4c36a845975ccc3`
|
|
||||||
- [`corp-v1-channel-releases-3darch`](https://gitea.lego-cloud.eu/corp-v1-3darch-skills-code-agent/corp-v1-channel-releases-3darch) — source `test` / `94d147880f6c957967d6612cbd846f9a2f2f6c00`, adopted `ced7e30deb06aa933d4a10cc232ecc05d700f274`
|
|
||||||
|
|
||||||
## Verification
|
|
||||||
|
|
||||||
- Application exact-head Actions: `1621` (success) at `847c8291f100547ec9104743ab7d0d8761a5ec20`.
|
|
||||||
- Documentation exact-head Actions: `1619` (success) at `73cf70f0f333c187b28821fb76a44c779bdfbbdb`.
|
|
||||||
- Documentation page body was read back through the Gondor operator path with the project title and initial-deliverable markers.
|
|
||||||
- Project team `3darch-maintainers` (`39`) covers both project repositories.
|
|
||||||
- Skills team `3darch-skill-maintainers` (`40`) covers all fourteen project-skill repositories.
|
|
||||||
- Jarvis (`jarvis-at-skic`, user ID `24`) is verified in both teams; Discord view, send, and history access is verified across all seven project channels.
|
|
||||||
- Gitea account `linas` is assigned to both teams, but its account remains inactive; effective human Gitea access is not claimed.
|
|
||||||
- Both required non-secret Harbor variables are configured. The organization secret name is present; its value was never requested or accessed.
|
|
||||||
- Board portal kickoff record was published and verified by exact-head Actions and deployed body readback.
|
|
||||||
|
|
||||||
## Outstanding gate
|
|
||||||
|
|
||||||
Linas must activate/sign in to Gitea account `linas`; team membership is already assigned.
|
|
||||||
|
|
||||||
## Approval
|
|
||||||
|
|
||||||
RootAtSkic (`discord:1518725627845283888`) requested setup in Board message `1543918340882436166` and approved the complete proposal in the same Board session, retaining the spelling **3D Architecture Wizzard**.
|
|
||||||
+24
-49
@@ -11,7 +11,7 @@ sidebar_position: 1
|
|||||||
| Status | Active — lifecycle alignment reviewed |
|
| Status | Active — lifecycle alignment reviewed |
|
||||||
| Started | 2026-08-12 |
|
| Started | 2026-08-12 |
|
||||||
| Sponsor and accountable lead | RootAtSkic |
|
| Sponsor and accountable lead | RootAtSkic |
|
||||||
| Team members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; Linas; Jenny; Piotras; Andrius; Dovydas; Giedrius K; `jarvis-at-skic` / Hermes code agent; `friday-at-skic` / Friday code agent |
|
| Team members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; Linas; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||||
| Team | [AeroSim Team](/teams/aerosim/) |
|
| Team | [AeroSim Team](/teams/aerosim/) |
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
@@ -48,66 +48,42 @@ A playable MVP covering a light trainer, commercial airliner, and fighter-style
|
|||||||
|
|
||||||
- Project organization: [corp-v1-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim)
|
- Project organization: [corp-v1-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim)
|
||||||
- Skills organization: [corp-v1-aerosim-skills-code-agent](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent)
|
- Skills organization: [corp-v1-aerosim-skills-code-agent](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent)
|
||||||
- [Application repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim) — `test` at `09628fbb828380fbe159be7530da26f4bbf02129`
|
- [Application repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim) — `test` at `14b5c0e8f25215d8bb4f41edcc0cdff4a87c342c`
|
||||||
- [Documentation repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation) — `test` at `d8a45594c33efc3acbd1523955d4f235facc9a1f`
|
- [Documentation repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation) — `test` at `5f674525f6c8b5ce29fe2653350c6188fb97ea01`
|
||||||
- [Published documentation](https://pages.apps.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/) — protected by the existing Keycloak access layer
|
- [Published documentation](https://pages.apps.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/) — protected by the existing Keycloak access layer
|
||||||
|
|
||||||
## Delivery progress checkpoint — 2026-09-07
|
|
||||||
|
|
||||||
Release `1.0.0` contains 114 Tasks. Progress is reported by lifecycle checkpoint rather than collapsing implementation and release into one percentage.
|
|
||||||
|
|
||||||
| Measure | Progress | Meaning |
|
|
||||||
|---|---:|---|
|
|
||||||
| Canonical `ToBeReleased` | 49 / 114 (43.0%) | Canonical records place the Tasks in Waves 1–8 and 12–14 at the release-handoff state. This is not a release. |
|
|
||||||
| Repository-verified implementation pending reconciliation | 6 / 114 (5.3%) | `TASK-0048`, `TASK-0061`, `TASK-0065`, `TASK-0077`, `TASK-0083`, and `TASK-0111` are merged into the validated current application integration head, while their canonical records remain `InProgress`. This repository checkpoint does not replace canonical reconciliation. |
|
|
||||||
| Canonical `InProgress` | 7 / 114 (6.1%) | Wave 15 Tasks are claimed as one Delivery ownership unit and remain under implementation. |
|
|
||||||
| Canonical `ReadyForDelivery` | 58 / 114 (50.9%) | Unfinished Tasks in Waves 9–11 and 16–30 remain ready but unclaimed while Wave 15 is active. |
|
|
||||||
| Released | 0 / 114 (0.0%) | No Release `1.0.0` artifact has been approved and released. `ToBeReleased` is not release authorization. |
|
|
||||||
|
|
||||||
Wave 15 is active, and 6 of its 7 Tasks are repository-verified through merged application PRs #85, #89, #90, #95, #96, and #97. The current application integration head is `09628fbb828380fbe159be7530da26f4bbf02129`; its integrated tasks `2718`–`2720` succeeded. `TASK-0078` remains canonical `InProgress`, and its implementation PR #92 is closed without merge, so Wave 16 remains unclaimed. The canonical Wave 15 claim remains at documentation `test` SHA `d8a45594c33efc3acbd1523955d4f235facc9a1f`, verified by PR #155 exact-head build task `2581` and integrated build task `2582`. The authoritative task-level lifecycle remains in the [AeroSim documentation](https://pages.apps.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/); this Board record is a dated portfolio checkpoint, not a second task database.
|
|
||||||
|
|
||||||
## Discord
|
## Discord
|
||||||
|
|
||||||
Exactly seven same-project channels exist in dedicated category `corp-v1-aerosim` (`1542627633123299359`), in lifecycle order:
|
Exactly six same-project channels exist under category `corp-v1` (`1537070242335821924`):
|
||||||
|
|
||||||
- `corp-v1-aerosim-general` — `1537227679374508132`
|
- `corp-v1-aerosim-general` — `1537227679374508132`
|
||||||
- `corp-v1-aerosim-scope` — `1537544173366943886`
|
- `corp-v1-aerosim-scope` — `1537544173366943886`
|
||||||
- `corp-v1-aerosim-architecture` — `1537227680590733383`
|
- `corp-v1-aerosim-architecture` — `1537227680590733383`
|
||||||
- `corp-v1-aerosim-ui-ux` — `1541722108072169562`
|
|
||||||
- `corp-v1-aerosim-kanban` — `1537548579856580739`
|
- `corp-v1-aerosim-kanban` — `1537548579856580739`
|
||||||
- `corp-v1-aerosim-delivery` — `1537227683191197807`
|
- `corp-v1-aerosim-delivery` — `1537227683191197807`
|
||||||
- `corp-v1-aerosim-releases` — `1537388451501056081`
|
- `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 read access was reverified across all seven project channels after the category migration; channel IDs and permission overwrites are unchanged.
|
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:
|
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.
|
||||||
|
|
||||||
- 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.
|
|
||||||
|
|
||||||
## Adopted project skills
|
## Adopted project skills
|
||||||
|
|
||||||
All use default branch `test` and are primary for AeroSim work:
|
All use default branch `test` and are primary for AeroSim work:
|
||||||
|
|
||||||
- `development-branching-strategy-aerosim`
|
- `development-branching-strategy--aerosim`
|
||||||
- `development-gitops-argo-cd-aerosim`
|
- `development-gitops-argo-cd--aerosim`
|
||||||
- `development-monorepo-pnpm-aerosim`
|
- `development-monorepo-pnpm--aerosim`
|
||||||
- `development-scripts-aerosim`
|
- `development-scripts--aerosim`
|
||||||
- `devsecops-ci-cd-gitea-aerosim`
|
- `devsecops-ci-cd-gitea--aerosim`
|
||||||
- `documentation-docusaurus-aerosim`
|
- `documentation-docusaurus--aerosim`
|
||||||
- `template-engine-copier-aerosim`
|
- `template-engine-copier--aerosim`
|
||||||
- `corp-v1-channel-general-aerosim`
|
- `corp-v1-channel-general--aerosim`
|
||||||
- `corp-v1-channel-scope-aerosim`
|
- `corp-v1-channel-scope--aerosim`
|
||||||
- `corp-v1-channel-architecture-aerosim`
|
- `corp-v1-channel-architecture--aerosim`
|
||||||
- `corp-v1-channel-kanban-aerosim`
|
- `corp-v1-channel-kanban--aerosim`
|
||||||
- `corp-v1-channel-delivery-aerosim`
|
- `corp-v1-channel-delivery--aerosim`
|
||||||
- `corp-v1-channel-releases-aerosim`
|
- `corp-v1-channel-releases--aerosim`
|
||||||
|
|
||||||
Each repository records the central source branch and commit in `ADOPTION.md`. Architecture and documentation work reference the global [`drawio-main`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/drawio-main) skill.
|
Each repository records the central source branch and commit in `ADOPTION.md`. Architecture and documentation work reference the global [`drawio-main`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/drawio-main) skill.
|
||||||
|
|
||||||
@@ -118,11 +94,8 @@ Each repository records the central source branch and commit in `ADOPTION.md`. A
|
|||||||
- Documentation lifecycle alignment commit `5f674525f6c8b5ce29fe2653350c6188fb97ea01` and Actions run `609`: successful.
|
- Documentation lifecycle alignment commit `5f674525f6c8b5ce29fe2653350c6188fb97ea01` and Actions run `609`: successful.
|
||||||
- Application tests: four passed across web, API, and shared flight core.
|
- Application tests: four passed across web, API, and shared flight core.
|
||||||
- Application and documentation production builds: passed.
|
- Application and documentation production builds: passed.
|
||||||
- Project-team access across four current project-organization repositories: verified for `jarvis-at-skic`, `root-at-skic`, `martynas-pazusis`, and `piotras`; pending verified Gitea identities for Panther Skeleton, Eduard, and Jenny.
|
- 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`.
|
||||||
- Jarvis Board/all-project onboarding was reverified on 2026-09-05: Discord view, send, and history access passes in all seven channels; Gitea team IDs `23` and `24` include `jarvis-at-skic` and all organization repositories.
|
- Skills-team organization contains all thirteen adopted skill repositories on default branch `test`: verified.
|
||||||
- Andrius, Dovydas, and Giedrius K are recorded as AeroSim human team members from 2026-08-31. Effective General-channel view, send, and history access is verified; Gitea project-team and skills-team access remains pending verified account mappings.
|
|
||||||
- On 2026-09-28, RootAtSkic recorded Jone Tamulaite - Nong's departure from AeroSim and assigned MartynasP as the primary Scope owner. MartynasP was already an AeroSim member with verified membership in both AeroSim Gitea teams. Jone never had a verified Gitea mapping, so no Gitea team membership existed to revoke; Discord access removal requires fresh remote verification.
|
|
||||||
- Skills-team organization membership covers all fourteen current project-skill repositories for `piotras`: verified.
|
|
||||||
- Harbor organization variable names and secret name `HL_V1_HARBOR_ROBOT_GITEA_ACTIONS_V1_SECRET`: verified without reading secret values.
|
- 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.
|
- Product lifecycle, solution traceability, and release-readiness registries now exist in project documentation. No Epic or Feature was assigned human approval retrospectively.
|
||||||
- Both application and documentation `test` branches currently have no branch-protection rule.
|
- Both application and documentation `test` branches currently have no branch-protection rule.
|
||||||
@@ -131,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.
|
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, Eduard, Jenny, Andrius, Dovydas, and Giedrius K must provide or create their Gitea usernames before they can be added to `aerosim-maintainers` and `aerosim-skill-maintainers`. Piotras is mapped to Gitea account `piotras` and has verified membership in both teams, covering four current project repositories and fourteen project-skill repositories. Their recorded 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.
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
---
|
|
||||||
title: Debesijos paslaugų valdymo platforma
|
|
||||||
sidebar_position: 5
|
|
||||||
description: "Track the DPVP kickoff, team, access, resources, and remaining provisioning gates."
|
|
||||||
---
|
|
||||||
|
|
||||||
# Debesijos paslaugų valdymo platforma
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Code | `dpvp` |
|
|
||||||
| Status | Kickoff in progress — repositories, adopted skills, and deployed documentation pending |
|
|
||||||
| Started | 2026-09-02 |
|
|
||||||
| Sponsor and accountable lead | RootAtSkic |
|
|
||||||
| Members | RootAtSkic; Linas; `jarvis-at-skic` / Hermes executing code agent; `friday-at-skic` / Friday code agent |
|
|
||||||
| Team | [DPVP Team](/teams/dpvp/) |
|
|
||||||
| Visibility | Restricted |
|
|
||||||
|
|
||||||
## Purpose
|
|
||||||
|
|
||||||
Guide the VSSA Operator through governed cloud-service organization and project lifecycle management, with Jira as the system of record for originating, assigning, and approving organization and project changes.
|
|
||||||
|
|
||||||
## Initial deliverable
|
|
||||||
|
|
||||||
Deployed project documentation and an architecture baseline for the VSSA Operator organization/project onboarding journey, without a placeholder application.
|
|
||||||
|
|
||||||
## Discord
|
|
||||||
|
|
||||||
Dedicated category `corp-v1-dpvp` (`1544621887844388965`) contains exactly seven lifecycle channels:
|
|
||||||
|
|
||||||
1. `corp-v1-dpvp-general` — `1544621890994184224`
|
|
||||||
2. `corp-v1-dpvp-scope` — `1544621895159255040`
|
|
||||||
3. `corp-v1-dpvp-architecture` — `1544621899370340362`
|
|
||||||
4. `corp-v1-dpvp-ui-ux` — `1544621902142771250`
|
|
||||||
5. `corp-v1-dpvp-kanban` — `1544621905494016080`
|
|
||||||
6. `corp-v1-dpvp-delivery` — `1544621909176746005`
|
|
||||||
7. `corp-v1-dpvp-releases` — `1544621912385130556`
|
|
||||||
|
|
||||||
Jarvis (`discord:1526860732917088266`) has verified effective `VIEW_CHANNEL`, `SEND_MESSAGES`, and `READ_MESSAGE_HISTORY` access in every channel through its administrator role. Purpose guidance exists in all seven channels, and the General introduction is pinned as message `1544622184582877245`.
|
|
||||||
|
|
||||||
## Gitea
|
|
||||||
|
|
||||||
- Project organization: [corp-v1-dpvp](https://gitea.lego-cloud.eu/corp-v1-dpvp) — private; created and verified 2026-09-05.
|
|
||||||
- Skills/code-agent organization: [corp-v1-dpvp-skills-code-agent](https://gitea.lego-cloud.eu/corp-v1-dpvp-skills-code-agent) — private; created and verified 2026-09-05.
|
|
||||||
- Project team: `dpvp-maintainers` (`45`) — includes all repositories; `jarvis-at-skic` verified.
|
|
||||||
- Skills team: `dpvp-skill-maintainers` (`47`) — includes all repositories; `jarvis-at-skic` verified.
|
|
||||||
- Friday's Gitea account `friday-at-skic` is verified in both teams. The teams currently cover no repositories, and Friday's account activation remains pending.
|
|
||||||
|
|
||||||
## Approval
|
|
||||||
|
|
||||||
RootAtSkic requested the DPVP kickoff in Board message `1544616064162463854`; the dedicated Discord workspace was subsequently provisioned. RootAtSkic approved Jarvis's Board and all-project membership in Board message `1545759332845490208` on 2026-09-05.
|
|
||||||
|
|
||||||
## Outstanding gates
|
|
||||||
|
|
||||||
1. Create and assign the two required DPVP project repositories.
|
|
||||||
2. Adopt and verify the fourteen project-scoped skill repositories.
|
|
||||||
3. Configure the approved non-secret Harbor variables and validate only the required secret name's presence.
|
|
||||||
4. Build, publish, and read back the DPVP documentation site.
|
|
||||||
5. Complete project documentation and application kickoff acceptance without creating a placeholder application.
|
|
||||||
6. Add RootAtSkic and Linas to both Gitea teams after confirming the intended team permissions and Linas account activation state.
|
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
---
|
|
||||||
title: E-Shop v1
|
|
||||||
sidebar_position: 3
|
|
||||||
---
|
|
||||||
|
|
||||||
# E-Shop v1
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Code | `eshopv1` |
|
|
||||||
| Status | Active — application deployment gated |
|
|
||||||
| Started | 2026-08-26 |
|
|
||||||
| Sponsor and accountable lead | RootAtSkic |
|
|
||||||
| Technical member | `jarvis-at-skic` / Hermes code agent |
|
|
||||||
| Additional code agent | `friday-at-skic` / Friday Jr; Gitea activation pending |
|
|
||||||
| Team | [E-Shop v1 Team](/teams/eshopv1/) |
|
|
||||||
|
|
||||||
## Purpose and initial deliverable
|
|
||||||
|
|
||||||
Deliver a functional toothbrush storefront with an evidence-backed AliExpress catalog, local attributed product imagery, prices calculated at 150% of observed source prices, product galleries, cart, PayPal Sandbox checkout, and order confirmation.
|
|
||||||
|
|
||||||
The verified launch catalog contains nine defensible saleable products. AliExpress validation controls blocked three additional records; no product or price was invented. Production PayPal activation, spending, purchasing, and vendor-account changes remain outside bootstrap authority.
|
|
||||||
|
|
||||||
## Approval and bounded autonomy
|
|
||||||
|
|
||||||
RootAtSkic (`discord:1518725627845283888`) approved kickoff and override `ESHOPV1-BOOTSTRAP-AUTONOMY-20260826` in Board message `1542278257833939087` on 2026-08-26. The [durable decision](/governance/decisions/eshopv1-kickoff-bootstrap-autonomy/) permits one 30-minute General-channel job until the first human-authored message in any E-Shop v1 channel. The job must stop before further mutation and pause itself when that condition occurs.
|
|
||||||
|
|
||||||
## Resources
|
|
||||||
|
|
||||||
- Project organization: [corp-v1-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1) — private
|
|
||||||
- Skills organization: [corp-v1-eshopv1-skills-code-agent](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent) — private
|
|
||||||
- [Application repository](https://gitea.lego-cloud.eu/corp-v1-eshopv1/corp-v1-eshopv1) — `test` `3be141af869220620672b04681d335fb2803f425`
|
|
||||||
- [Documentation repository](https://gitea.lego-cloud.eu/corp-v1-eshopv1/corp-v1-eshopv1-documentation) — `test` `4d7a24fafb1fb9e9afc5b406407a1c8c670513be`
|
|
||||||
- [Published documentation](https://pages.apps.lego-cloud.eu/corp-v1-eshopv1/corp-v1-eshopv1-documentation/)
|
|
||||||
- Global diagram source: [drawio-main](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/drawio-main); no project copy exists.
|
|
||||||
|
|
||||||
## Discord lifecycle
|
|
||||||
|
|
||||||
Exactly seven ordered channels exist in dedicated category `corp-v1-eshopv1` (`1542627655189270719`); Hermes read access was reverified after migration, and channel IDs and permission overwrites are unchanged:
|
|
||||||
|
|
||||||
1. `corp-v1-eshopv1-general` — `1542281868269985912`
|
|
||||||
2. `corp-v1-eshopv1-scope` — `1542281871642198207`
|
|
||||||
3. `corp-v1-eshopv1-architecture` — `1542281874842583061`
|
|
||||||
4. `corp-v1-eshopv1-ui-ux` — `1542281878953005158`
|
|
||||||
5. `corp-v1-eshopv1-kanban` — `1542281882400723096`
|
|
||||||
6. `corp-v1-eshopv1-delivery` — `1542281895071719466`
|
|
||||||
7. `corp-v1-eshopv1-releases` — `1542281898913439886`
|
|
||||||
|
|
||||||
General introduction: `1542281930706391192`. Harbor secret request: `1542282741041729566`; it requests direct Gitea entry and never requests or exposes the value.
|
|
||||||
|
|
||||||
## Adopted project skills
|
|
||||||
|
|
||||||
All repositories are private, use default branch `test`, retain complete source provenance, and are assigned to the skills team.
|
|
||||||
|
|
||||||
| Adopted skill | Central source SHA | Adopted SHA |
|
|
||||||
|---|---|---|
|
|
||||||
| [development-branching-strategy-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/development-branching-strategy-eshopv1) | `636aba2b9e0957705fc874f07b310a4be9916f1c` | `6255c8811ca5bbf2607c4c36980a0347c3a5ee67` |
|
|
||||||
| [development-gitops-argo-cd-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/development-gitops-argo-cd-eshopv1) | `510b2bb590118362804d6036cbbf37db72dc21d0` | `add186a9910a915aee20124855440aa9dfdb4f9f` |
|
|
||||||
| [development-monorepo-pnpm-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/development-monorepo-pnpm-eshopv1) | `ff69bcca2fb3b673297230710a74c70410fd1996` | `489570b877af6b89f995a02646b161ddf79f85dd` |
|
|
||||||
| [development-scripts-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/development-scripts-eshopv1) | `5960d5e74713e6b95a403962f479b2b97cb76286` | `69c364ea595b0b1a35738847cca2d03f8cd14d56` |
|
|
||||||
| [devsecops-ci-cd-gitea-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/devsecops-ci-cd-gitea-eshopv1) | `8f46c3faa5ba074b8a48971b87365e0d3e2a4c40` | `5b66f8a0084743ce079da667e3c97b07febc6a20` |
|
|
||||||
| [documentation-docusaurus-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/documentation-docusaurus-eshopv1) | `f810f8c92005e5d55b08700b67fd34a37be435bc` | `c2f8d50d4ffd97c854f0cb06fadfa664c9947861` |
|
|
||||||
| [template-engine-copier-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/template-engine-copier-eshopv1) | `97991021fff9e1f73202a82d29eea496ea0eb7aa` | `6a38a58997eb278736648b163d4f3f89015acf16` |
|
|
||||||
| [corp-v1-channel-general-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-general-eshopv1) | `7137f18319b9716468485b68b99b4297a721c94f` | `e307890e65bf48280c0b798559c4925581ff1505` |
|
|
||||||
| [corp-v1-channel-scope-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-scope-eshopv1) | `729e7ff936ed99f7d1ee203defc02f3f1ce64085` | `8df61e824d6e28b53a26a63802d9c7ae45393896` |
|
|
||||||
| [corp-v1-channel-architecture-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-architecture-eshopv1) | `f9bef3bee6a59c74803e3aef5b26fdc61894f0ee` | `9c1cd5b238ebe53ed46d40985f70d57077a3c7f0` |
|
|
||||||
| [corp-v1-channel-ui-ux-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-ui-ux-eshopv1) | `2039d7e3f7ac3ec14064ead52c8a53ac233f519c` | `55d79260f8fdc72c547f4de928bb7effa5ca9c34` |
|
|
||||||
| [corp-v1-channel-kanban-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-kanban-eshopv1) | `73d8af5f18463ed55b510f1cc8a66e2f882b5552` | `fff4ace0c184c750e1e4d7ed0e7a806b78f8a075` |
|
|
||||||
| [corp-v1-channel-delivery-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-delivery-eshopv1) | `b629921b6f58c0f36de7d1f39a13ba14c25baab2` | `456297285484f4bfe2c43ba64e67e17af4edd89e` |
|
|
||||||
| [corp-v1-channel-releases-eshopv1](https://gitea.lego-cloud.eu/corp-v1-eshopv1-skills-code-agent/corp-v1-channel-releases-eshopv1) | `12891cf409378777eac72fbde9541b3c117e82aa` | `f2d2bfb78044dbc3cedc8bc998412e19234c78aa` |
|
|
||||||
|
|
||||||
## Access, automation, and Harbor
|
|
||||||
|
|
||||||
`e-shop-v1-team` exists independently in both organizations, includes all repositories, grants per-unit write access, and contains verified users `root-at-skic` and `jarvis-at-skic`. Jarvis is verified through team IDs `35` and `36`, covering four project-organization repositories and fourteen project-skill repositories; Discord view, send, and history access passes across all seven lifecycle channels.
|
|
||||||
|
|
||||||
Scheduler job `d6505c6ac0da` is the single approved 30-minute General job. It uses frozen high-watermarks, scans only the seven E-Shop channels, attaches all fourteen adopted skills, delivers only to General, and pauses on the first human message. RootAtSkic explicitly renewed foreground continuation and requested that the job be returned to service in Board message `1542470702525980672` on 2026-08-27.
|
|
||||||
|
|
||||||
Verified organization variables:
|
|
||||||
|
|
||||||
- `HL_V1_HARBOR_ADDRESS=harbor-v1.apps.lego-cloud.eu`
|
|
||||||
- `HL_V1_HARBOR_ROBOT_GITEA_ACTIONS_V1_USERNAME=robot$gondor-v1+gitea-actions-v1`
|
|
||||||
|
|
||||||
`HL_V1_HARBOR_ROBOT_GITEA_ACTIONS_V1_SECRET` presence: **verified by name** after RootAtSkic's confirmation in message `1542462573750784022`. Its value was never requested or accessed. A governed publication retry reached Harbor but registry authentication returned `unauthorized`; therefore the configured credential must be corrected or reconciled with the configured robot username before publication can succeed.
|
|
||||||
|
|
||||||
## Verification
|
|
||||||
|
|
||||||
- Application PR 1 reviewed head `ca4ed6e27c565a2775e82c8471e5a355536af6c6`; exact-head Actions task `1415`: success; merged default head `7fd6b88fc01e3834862fecfa063931d65ed0b786`; integrated task `1418`: success.
|
|
||||||
- Application PR 4 reviewed head `b2b28d9b82f12af822b705453b64e585b65bcd0f`; exact-head tasks `1446` and `1447`: success. It added a durable Argo CD AppProject/Application bootstrap, ingress, resource bounds, immutable Harbor image pin, and fail-closed optional PayPal secret references. Merged default head: `3be141af869220620672b04681d335fb2803f425`.
|
|
||||||
- Integrated artifact task `1448` failed at Harbor authentication with `unauthorized`; no image, chart, Argo Application, or deployed storefront is claimed.
|
|
||||||
- Documentation PR 1 reviewed head `d65c41749cfe99b8b58e317da3f87dd83b1a94eb`; merged default head `4d7a24fafb1fb9e9afc5b406407a1c8c670513be`; integrated task `1417`: success.
|
|
||||||
- Authorized Pages body readback found the E-Shop v1 and Bootstrap MVP markers.
|
|
||||||
- Local application validation passed lint, type checks, seven tests, production build, runtime rendering, and fail-closed PayPal behavior.
|
|
||||||
- Catalog validation passed for nine sourced products and zero fixtures.
|
|
||||||
|
|
||||||
## Outstanding gates
|
|
||||||
|
|
||||||
1. A member must correct or reconcile the existing Harbor organization secret directly in Gitea so it authenticates as the configured robot user; the value must never be sent to Hermes or Discord.
|
|
||||||
2. Publish the application image, apply the merged Argo CD bootstrap, and wait for `Synced` / `Healthy` convergence.
|
|
||||||
3. Verify the deployed storefront and inject PayPal Sandbox credentials through the approved secret path for an end-to-end Sandbox create/capture test.
|
|
||||||
4. Production payment go-live requires a separate explicit decision.
|
|
||||||
@@ -10,9 +10,6 @@ sidebar_position: 1
|
|||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|
|
||||||
| [AeroSim](/projects/aerosim/) | Active — Harbor gated | RootAtSkic | RootAtSkic | [AeroSim Team](/teams/aerosim/) | 2026-08-12 | — |
|
| [AeroSim](/projects/aerosim/) | Active — Harbor gated | RootAtSkic | RootAtSkic | [AeroSim Team](/teams/aerosim/) | 2026-08-12 | — |
|
||||||
| [Maze Next Gen](/projects/mazeng/) | Active — Harbor gated | RootAtSkic | RootAtSkic | [Maze Next Gen Team](/teams/mazeng/) | 2026-08-17 | — |
|
| [Maze Next Gen](/projects/mazeng/) | Active — Harbor gated | RootAtSkic | RootAtSkic | [Maze Next Gen Team](/teams/mazeng/) | 2026-08-17 | — |
|
||||||
| [E-Shop v1](/projects/eshopv1/) | Active — application deployment gated | RootAtSkic | RootAtSkic | [E-Shop v1 Team](/teams/eshopv1/) | 2026-08-26 | — |
|
|
||||||
| [3D Architecture Wizzard](/projects/3darch/) | Active — lead activation pending | RootAtSkic | Linas | [3D Architecture Wizzard Team](/teams/3darch/) | 2026-08-31 | — |
|
|
||||||
| [Debesijos paslaugų valdymo platforma](/projects/dpvp/) | Kickoff in progress — repositories and documentation pending | RootAtSkic | RootAtSkic | [DPVP Team](/teams/dpvp/) | 2026-09-02 | — |
|
|
||||||
|
|
||||||
## Required project record
|
## Required project record
|
||||||
|
|
||||||
|
|||||||
+19
-29
@@ -11,9 +11,7 @@ sidebar_position: 2
|
|||||||
| Status | Active — Harbor gated |
|
| Status | Active — Harbor gated |
|
||||||
| Started | 2026-08-17 |
|
| Started | 2026-08-17 |
|
||||||
| Sponsor and accountable lead | RootAtSkic |
|
| Sponsor and accountable lead | RootAtSkic |
|
||||||
| Initial technical member | `jarvis-at-skic` / Hermes code agent |
|
| Team members | RootAtSkic; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||||
| Additional code agent | `friday-at-skic` / Friday Jr; Gitea activation pending |
|
|
||||||
| Human team members | RootAtSkic; Jenny; Piotras |
|
|
||||||
| Team | [Maze Next Gen Team](/teams/mazeng/) |
|
| Team | [Maze Next Gen Team](/teams/mazeng/) |
|
||||||
|
|
||||||
## Purpose
|
## Purpose
|
||||||
@@ -38,50 +36,42 @@ RootAtSkic (`discord:1518725627845283888`) explicitly approved the updated six-c
|
|||||||
|
|
||||||
## Discord
|
## Discord
|
||||||
|
|
||||||
Exactly seven channels exist in dedicated category `corp-v1-mazeng` (`1542627645441839174`), in lifecycle order:
|
Exactly six channels exist under category `corp-v1` (`1537070242335821924`):
|
||||||
|
|
||||||
- `corp-v1-mazeng-general` — `1539019955738116096`; purpose `1539019957923483728`; pinned skills `1539021508326981683`
|
- `corp-v1-mazeng-general` — `1539019955738116096`; purpose `1539019957923483728`; pinned skills `1539021508326981683`
|
||||||
- `corp-v1-mazeng-scope` — `1539019959135633580`; purpose `1539019961329000479`; pinned skills `1539021514379370546`
|
- `corp-v1-mazeng-scope` — `1539019959135633580`; purpose `1539019961329000479`; pinned skills `1539021514379370546`
|
||||||
- `corp-v1-mazeng-architecture` — `1539019963568758835`; purpose `1539019966857355416`; pinned skills `1539021520230162540`
|
- `corp-v1-mazeng-architecture` — `1539019963568758835`; purpose `1539019966857355416`; pinned skills `1539021520230162540`
|
||||||
- `corp-v1-mazeng-ui-ux` — `1541722112841089074`
|
|
||||||
- `corp-v1-mazeng-kanban` — `1539019969323466883`; purpose `1539019971655372911`; pinned skills `1539021525657849896`
|
- `corp-v1-mazeng-kanban` — `1539019969323466883`; purpose `1539019971655372911`; pinned skills `1539021525657849896`
|
||||||
- `corp-v1-mazeng-delivery` — `1539019973043683358`; purpose `1539019975203885068`; pinned skills `1539021530317463572`
|
- `corp-v1-mazeng-delivery` — `1539019973043683358`; purpose `1539019975203885068`; pinned skills `1539021530317463572`
|
||||||
- `corp-v1-mazeng-releases` — `1539019976977948694`; purpose `1539019979590991963`; pinned skills `1539021536621756458`
|
- `corp-v1-mazeng-releases` — `1539019976977948694`; purpose `1539019979590991963`; pinned skills `1539021536621756458`
|
||||||
|
|
||||||
General introduction `1539019982682325132` and the recorded skill-guidance messages are pinned. Hermes read access was reverified across all seven channels after the category migration; channel IDs and permission overwrites are unchanged. 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:
|
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.
|
||||||
|
|
||||||
- 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`
|
|
||||||
|
|
||||||
## Adopted project skills
|
## Adopted project skills
|
||||||
|
|
||||||
- [`development-branching-strategy-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-branching-strategy-mazeng) — source `test` `636aba2b9e0957705fc874f07b310a4be9916f1c`; adopted `test` `c952824066f3e1440bdc1144097cef44b1f4b084`
|
- [`development-branching-strategy--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-branching-strategy--mazeng) — source `test` `636aba2b9e0957705fc874f07b310a4be9916f1c`; adopted `test` `c952824066f3e1440bdc1144097cef44b1f4b084`
|
||||||
- [`development-gitops-argo-cd-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-gitops-argo-cd-mazeng) — source `test` `510b2bb590118362804d6036cbbf37db72dc21d0`; adopted `test` `2faf48eeaef2e9f62dcc8903736d54cc4b7851e5`
|
- [`development-gitops-argo-cd--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-gitops-argo-cd--mazeng) — source `test` `510b2bb590118362804d6036cbbf37db72dc21d0`; adopted `test` `2faf48eeaef2e9f62dcc8903736d54cc4b7851e5`
|
||||||
- [`development-monorepo-pnpm-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-monorepo-pnpm-mazeng) — source `test` `ff69bcca2fb3b673297230710a74c70410fd1996`; adopted `test` `e55e354d33603c0d62a67a58352c0ed863884ceb`
|
- [`development-monorepo-pnpm--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-monorepo-pnpm--mazeng) — source `test` `ff69bcca2fb3b673297230710a74c70410fd1996`; adopted `test` `e55e354d33603c0d62a67a58352c0ed863884ceb`
|
||||||
- [`development-scripts-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-scripts-mazeng) — source `test` `5960d5e74713e6b95a403962f479b2b97cb76286`; adopted `test` `04df15a8739ba9ccbbbe21a0015322644aee2b91`
|
- [`development-scripts--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/development-scripts--mazeng) — source `test` `5960d5e74713e6b95a403962f479b2b97cb76286`; adopted `test` `04df15a8739ba9ccbbbe21a0015322644aee2b91`
|
||||||
- [`devsecops-ci-cd-gitea-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/devsecops-ci-cd-gitea-mazeng) — source `test` `8f46c3faa5ba074b8a48971b87365e0d3e2a4c40`; adopted `test` `9b663f59eaff284248b9abc009a520dbf4b10919`
|
- [`devsecops-ci-cd-gitea--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/devsecops-ci-cd-gitea--mazeng) — source `test` `8f46c3faa5ba074b8a48971b87365e0d3e2a4c40`; adopted `test` `9b663f59eaff284248b9abc009a520dbf4b10919`
|
||||||
- [`documentation-docusaurus-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/documentation-docusaurus-mazeng) — source `test` `f810f8c92005e5d55b08700b67fd34a37be435bc`; adopted `test` `63ac1e8c8a81516cb14b27615cce6970828e8f48`
|
- [`documentation-docusaurus--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/documentation-docusaurus--mazeng) — source `test` `f810f8c92005e5d55b08700b67fd34a37be435bc`; adopted `test` `63ac1e8c8a81516cb14b27615cce6970828e8f48`
|
||||||
- [`template-engine-copier-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/template-engine-copier-mazeng) — source `test` `97991021fff9e1f73202a82d29eea496ea0eb7aa`; adopted `test` `41ef4de05c27067b995167014c030744243cfa14`
|
- [`template-engine-copier--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/template-engine-copier--mazeng) — source `test` `97991021fff9e1f73202a82d29eea496ea0eb7aa`; adopted `test` `41ef4de05c27067b995167014c030744243cfa14`
|
||||||
- [`corp-v1-channel-general-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-general-mazeng) — source `test` `6d15b02f081f8adc534230a04d11d1ad3a74d40f`; adopted `test` `a60a30c63eeb7afb6cdf6d083d9a200e46a17590`
|
- [`corp-v1-channel-general--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-general--mazeng) — source `test` `6d15b02f081f8adc534230a04d11d1ad3a74d40f`; adopted `test` `a60a30c63eeb7afb6cdf6d083d9a200e46a17590`
|
||||||
- [`corp-v1-channel-scope-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-scope-mazeng) — source `test` `b9f9148c7c0558f8125e6d0125520708cf56d05f`; adopted `test` `35fbe7936e90486883fa3f839c883a0c887a71d4`
|
- [`corp-v1-channel-scope--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-scope--mazeng) — source `test` `b9f9148c7c0558f8125e6d0125520708cf56d05f`; adopted `test` `35fbe7936e90486883fa3f839c883a0c887a71d4`
|
||||||
- [`corp-v1-channel-architecture-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-architecture-mazeng) — source `test` `f29cf0e56b81ea16c7e760ad31690619a6196ce5`; adopted `test` `df20e7627cf0c7f8e3f7b6b293667199661d92ca`
|
- [`corp-v1-channel-architecture--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-architecture--mazeng) — source `test` `f29cf0e56b81ea16c7e760ad31690619a6196ce5`; adopted `test` `df20e7627cf0c7f8e3f7b6b293667199661d92ca`
|
||||||
- [`corp-v1-channel-kanban-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-kanban-mazeng) — source `test` `91ef9af76b7f00f6addc9a0f48d162bb0e7d511b`; adopted `test` `cecf06d9f5a6a886a183d8f36867cf8de933f218`
|
- [`corp-v1-channel-kanban--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-kanban--mazeng) — source `test` `91ef9af76b7f00f6addc9a0f48d162bb0e7d511b`; adopted `test` `cecf06d9f5a6a886a183d8f36867cf8de933f218`
|
||||||
- [`corp-v1-channel-delivery-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-delivery-mazeng) — source `test` `b201a502ce67f2e8e1fb72d81ab54970648d90f6`; adopted `test` `0b022af9b776fe799afd8e01901dd5ea6a90e1f8`
|
- [`corp-v1-channel-delivery--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-delivery--mazeng) — source `test` `b201a502ce67f2e8e1fb72d81ab54970648d90f6`; adopted `test` `0b022af9b776fe799afd8e01901dd5ea6a90e1f8`
|
||||||
- [`corp-v1-channel-releases-mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-releases-mazeng) — source `test` `50c933b0553acc83799b38aa8d1077313c7b7f79`; adopted `test` `47433ff46f9f4b2bf9c0e5086e74e4ee7cb9b632`
|
- [`corp-v1-channel-releases--mazeng`](https://gitea.lego-cloud.eu/corp-v1-mazeng-skills-code-agent/corp-v1-channel-releases--mazeng) — source `test` `50c933b0553acc83799b38aa8d1077313c7b7f79`; adopted `test` `47433ff46f9f4b2bf9c0e5086e74e4ee7cb9b632`
|
||||||
|
|
||||||
Global diagram source: [`drawio-main`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/drawio-main); no Maze copy exists. All thirteen adopted repositories have default branch `test`, preserved source provenance, project-scoped peer links, verified team access, and no Actions workflow configured.
|
Global diagram source: [`drawio-main`](https://gitea.lego-cloud.eu/home-v1-skills-code-agent/drawio-main); no Maze copy exists. All thirteen adopted repositories have default branch `test`, preserved source provenance, project-scoped peer links, verified team access, and no Actions workflow configured.
|
||||||
|
|
||||||
## Access and Harbor
|
## 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`, `jarvis-at-skic`, and `piotras`. Jarvis's membership is verified through team IDs `29` and `31`, covering two project repositories and fourteen project-skill repositories; Discord view, send, and history access passes across all seven lifecycle channels. Piotras's membership is also verified. Jenny has verified Discord project access; her Gitea membership remains pending a verified account mapping.
|
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`:
|
Verified variables on `corp-v1-mazeng`:
|
||||||
|
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
---
|
|
||||||
title: 3D Architecture Wizzard Team
|
|
||||||
sidebar_position: 4
|
|
||||||
---
|
|
||||||
|
|
||||||
# 3D Architecture Wizzard Team
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Active — Gitea lead activation pending |
|
|
||||||
| Lead | Linas |
|
|
||||||
| Members | Linas; `jarvis-at-skic` / Hermes executing code agent; `friday-at-skic` / Friday code agent |
|
|
||||||
| Assigned project | [3D Architecture Wizzard](/projects/3darch/) |
|
|
||||||
|
|
||||||
## Mandate
|
|
||||||
|
|
||||||
Deliver the 3D Architecture Wizzard browser experience, its documentation, and the project-specific engineering practices required to operate it.
|
|
||||||
|
|
||||||
## Responsibilities
|
|
||||||
|
|
||||||
- Product and delivery coordination.
|
|
||||||
- Interactive 3D architecture visualization and model contracts.
|
|
||||||
- Application, CI/CD, GitOps, and documentation delivery.
|
|
||||||
- Adoption and maintenance of the fourteen mandatory project skills.
|
|
||||||
|
|
||||||
## Access
|
|
||||||
|
|
||||||
- Discord: `<@1483820991720329227>` — `linas_02251`; seven project channels provisioned and verified.
|
|
||||||
- Gitea: `linas` (user ID `21`) is assigned to both project teams, covering two project repositories and fourteen skill repositories.
|
|
||||||
- Gitea: `jarvis-at-skic` (user ID `24`) is verified in `3darch-maintainers` (`39`) and `3darch-skill-maintainers` (`40`); both teams include all organization repositories.
|
|
||||||
- Discord: Jarvis has verified view, send, and history access across all seven lifecycle channels.
|
|
||||||
- Gitea reports the account inactive, so effective login/write access remains pending activation.
|
|
||||||
- Friday's Gitea account `friday-at-skic` is assigned to `3darch-maintainers` and `3darch-skill-maintainers`, covering two project repositories and fourteen skill repositories. The account itself remains inactive, so operational login/API use is pending administrator activation.
|
|
||||||
+9
-12
@@ -9,7 +9,7 @@ sidebar_position: 1
|
|||||||
|---|---|
|
|---|---|
|
||||||
| Status | Active |
|
| Status | Active |
|
||||||
| Lead | RootAtSkic |
|
| Lead | RootAtSkic |
|
||||||
| Members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; Linas; Jenny; Piotras; Andrius; Dovydas; Giedrius K; `jarvis-at-skic` / Hermes code agent; `friday-at-skic` / Friday code agent |
|
| Members | RootAtSkic; Panther Skeleton; MartynasP; Eduard; Linas; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||||
| Assigned project | [AeroSim](/projects/aerosim/) |
|
| Assigned project | [AeroSim](/projects/aerosim/) |
|
||||||
|
|
||||||
## Mandate
|
## Mandate
|
||||||
@@ -21,20 +21,17 @@ Deliver the AeroSim browser flight-simulation platform, its documentation, and t
|
|||||||
- Product and delivery coordination.
|
- Product and delivery coordination.
|
||||||
- Flight-simulation architecture and shared flight model.
|
- Flight-simulation architecture and shared flight model.
|
||||||
- Application, API, CI/CD, GitOps, and documentation delivery.
|
- Application, API, CI/CD, GitOps, and documentation delivery.
|
||||||
- Adoption and maintenance of the fourteen mandatory AeroSim project skills.
|
- Adoption and maintenance of the thirteen mandatory AeroSim project skills.
|
||||||
|
|
||||||
## Gitea access
|
## Gitea access
|
||||||
|
|
||||||
- `aerosim-maintainers` in `corp-v1-aerosim` covers four current project-organization repositories.
|
- `aerosim-maintainers` in `corp-v1-aerosim` covers both project repositories.
|
||||||
- `aerosim-skill-maintainers` in `corp-v1-aerosim-skills-code-agent` covers all fourteen adopted skill repositories.
|
- `aerosim-skill-maintainers` in `corp-v1-aerosim-skills-code-agent` covers all thirteen adopted skill repositories.
|
||||||
- `jarvis-at-skic`, `root-at-skic`, `martynas-pazusis`, and `piotras` 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.
|
||||||
- Jarvis's all-project onboarding was reverified on 2026-09-05: team IDs `23` and `24` include `jarvis-at-skic`, while Discord view, send, and history access passes across all seven lifecycle channels.
|
- 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`.
|
||||||
- `friday-at-skic` membership is verified in both teams, covering four project repositories and fourteen skill repositories. The account reports inactive, so its own login/API use remains pending administrator activation.
|
- 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.
|
||||||
- Piotras maps to Gitea account `piotras` and has verified membership in `aerosim-maintainers` and `aerosim-skill-maintainers`, covering four current project repositories and fourteen project-skill repositories.
|
- 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.
|
||||||
- Panther Skeleton, Eduard, and Jenny have verified Discord identities and project access, but no matching Gitea accounts could be resolved. Their Gitea team access remains pending verified usernames or account creation.
|
|
||||||
- Andrius, Dovydas, and Giedrius K have verified effective Discord access to the AeroSim General channel. Their Gitea team access remains pending verified usernames or account creation; no account mapping was inferred from names alone.
|
|
||||||
- Jone Tamulaite - Nong left AeroSim on 2026-09-28. MartynasP succeeded her as primary Scope owner and retains the already verified `aerosim-maintainers` and `aerosim-skill-maintainers` memberships.
|
|
||||||
|
|
||||||
## Communication
|
## Communication
|
||||||
|
|
||||||
Exactly seven AeroSim channels exist in dedicated category `corp-v1-aerosim` (`1542627633123299359`): `general`, `scope`, `architecture`, `ui-ux`, `kanban`, `delivery`, and `releases`. Channel IDs, permission overwrites, and history were preserved during migration; Hermes read access and lifecycle order were reverified. Existing purpose guidance, the pinned general introduction, and project automation records remain attached to the unchanged channel IDs.
|
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.
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
title: DPVP Team
|
|
||||||
sidebar_position: 5
|
|
||||||
description: "Identify the DPVP team, mandate, verified access, and remaining kickoff gates."
|
|
||||||
---
|
|
||||||
|
|
||||||
# DPVP Team
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Kickoff in progress |
|
|
||||||
| Lead | RootAtSkic |
|
|
||||||
| Members | RootAtSkic; Linas; `jarvis-at-skic` / Hermes executing code agent; `friday-at-skic` / Friday code agent |
|
|
||||||
| Assigned project | [Debesijos paslaugų valdymo platforma](/projects/dpvp/) |
|
|
||||||
|
|
||||||
## Mandate
|
|
||||||
|
|
||||||
Deliver the governed DPVP experience for VSSA Operator organization and project onboarding, its architecture baseline, documentation, and project-scoped engineering practices.
|
|
||||||
|
|
||||||
## Access
|
|
||||||
|
|
||||||
- Discord: all seven DPVP lifecycle channels exist; Jarvis view, send, and history permissions are verified.
|
|
||||||
- Gitea project team: `dpvp-maintainers` (`45`) in `corp-v1-dpvp`; includes all repositories and contains verified user `jarvis-at-skic`.
|
|
||||||
- Gitea skills team: `dpvp-skill-maintainers` (`47`) in `corp-v1-dpvp-skills-code-agent`; includes all repositories and contains verified user `jarvis-at-skic`.
|
|
||||||
- Both teams also contain verified Gitea user `friday-at-skic`; they currently cover no repositories, and Friday's account remains inactive pending administrator activation.
|
|
||||||
- RootAtSkic and Linas Gitea team assignment remains part of the incomplete DPVP kickoff; this membership change did not alter their access.
|
|
||||||
|
|
||||||
## Communication
|
|
||||||
|
|
||||||
Use the exact lifecycle order: General, Scope, Architecture, UI/UX, Kanban, Delivery, and Releases. Jira originates, assigns, and approves organization/project changes; the portal guides the VSSA Operator and records verified outcomes.
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
---
|
|
||||||
title: E-Shop v1 Team
|
|
||||||
sidebar_position: 3
|
|
||||||
---
|
|
||||||
|
|
||||||
# E-Shop v1 Team
|
|
||||||
|
|
||||||
| Field | Value |
|
|
||||||
|---|---|
|
|
||||||
| Status | Active |
|
|
||||||
| Lead | RootAtSkic |
|
|
||||||
| Members | RootAtSkic; `jarvis-at-skic` / Hermes code agent; `friday-at-skic` / Friday code agent |
|
|
||||||
| Assigned project | [E-Shop v1](/projects/eshopv1/) |
|
|
||||||
|
|
||||||
## Mandate
|
|
||||||
|
|
||||||
Deliver the governed E-Shop v1 toothbrush-commerce MVP, its source-evidence catalog, PayPal Sandbox boundary, documentation, CI, deployment assets, and release evidence.
|
|
||||||
|
|
||||||
## Gitea access
|
|
||||||
|
|
||||||
`e-shop-v1-team` exists independently in `corp-v1-eshopv1` (team `35`) and `corp-v1-eshopv1-skills-code-agent` (team `36`). Both teams include all repositories and grant per-unit write access. Membership for `root-at-skic`, `jarvis-at-skic`, and `friday-at-skic` is verified. Jarvis's Discord view, send, and history access passes across all seven lifecycle channels. Friday's assignments cover four project repositories and fourteen skill repositories, but its inactive account still requires administrator activation before operational login/API use.
|
|
||||||
|
|
||||||
## Communication and autonomy
|
|
||||||
|
|
||||||
Seven exact E-Shop v1 lifecycle channels exist in dedicated category `corp-v1-eshopv1` (`1542627655189270719`), with immutable channel IDs and permission overwrites preserved. Hermes read access and order were reverified after migration. One project-specific 30-minute General job is authorized under `ESHOPV1-BOOTSTRAP-AUTONOMY-20260826`; its authority ends at the first human-authored project-channel message.
|
|
||||||
|
|
||||||
## Remaining gates
|
|
||||||
|
|
||||||
Harbor image publication waits for organization secret name `HL_V1_HARBOR_ROBOT_GITEA_ACTIONS_V1_SECRET`, entered directly in Gitea. PayPal remains Sandbox-only and requires environment-injected credentials for an end-to-end capture test. Neither secret value may be sent to Hermes or Discord.
|
|
||||||
+2
-5
@@ -8,10 +8,7 @@ sidebar_position: 1
|
|||||||
|
|
||||||
| Team | Status | Lead | Members | Active projects |
|
| Team | Status | Lead | Members | Active projects |
|
||||||
|---|---|---|---:|---:|
|
|---|---|---|---:|---:|
|
||||||
| [AeroSim Team](/teams/aerosim/) | Active | RootAtSkic | 13 | 1 |
|
| [AeroSim Team](/teams/aerosim/) | Active | RootAtSkic | 7 | 1 |
|
||||||
| [Maze Next Gen Team](/teams/mazeng/) | Active | RootAtSkic | 5 | 1 |
|
| [Maze Next Gen Team](/teams/mazeng/) | Active | RootAtSkic | 3 | 1 |
|
||||||
| [E-Shop v1 Team](/teams/eshopv1/) | Active | RootAtSkic | 3 | 1 |
|
|
||||||
| [3D Architecture Wizzard Team](/teams/3darch/) | Active — Gitea account activation pending | Linas | 3 | 1 |
|
|
||||||
| [DPVP Team](/teams/dpvp/) | Kickoff in progress | RootAtSkic | 4 | 1 |
|
|
||||||
|
|
||||||
A team record defines its mandate, lead, members, responsibilities, communication channels, and assigned projects.
|
A team record defines its mandate, lead, members, responsibilities, communication channels, and assigned projects.
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ sidebar_position: 2
|
|||||||
|---|---|
|
|---|---|
|
||||||
| Status | Active |
|
| Status | Active |
|
||||||
| Lead | RootAtSkic |
|
| Lead | RootAtSkic |
|
||||||
| Members | RootAtSkic; Jenny; Piotras; `jarvis-at-skic` / Hermes code agent; `friday-at-skic` / Friday code agent |
|
| Members | RootAtSkic; Jenny; `jarvis-at-skic` / Hermes code agent |
|
||||||
| Assigned project | [Maze Next Gen](/projects/mazeng/) |
|
| Assigned project | [Maze Next Gen](/projects/mazeng/) |
|
||||||
|
|
||||||
## Mandate
|
## Mandate
|
||||||
@@ -18,11 +18,11 @@ Deliver the Maze Next Gen multi-cloud inventory and visualization platform, docu
|
|||||||
|
|
||||||
## Gitea access
|
## Gitea access
|
||||||
|
|
||||||
`maze-next-gen-team` exists independently in `corp-v1-mazeng` (team `29`) and `corp-v1-mazeng-skills-code-agent` (team `31`), includes all repositories, and contains `root-at-skic`, `jarvis-at-skic`, `piotras`, and `friday-at-skic`. Jarvis's, Piotras's, and Friday's verified memberships each cover two project repositories and fourteen project-skill repositories; Jarvis's Discord view, send, and history access passes across all seven lifecycle channels. Friday's inactive Gitea account still requires administrator activation before operational login/API use. Jenny has verified Discord access, but her Gitea team access remains pending a verified username or account creation; no identity was guessed.
|
`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
|
## Communication
|
||||||
|
|
||||||
Seven exact Maze channels exist in dedicated category `corp-v1-mazeng` (`1542627645441839174`) in lifecycle order. Channel IDs, permission overwrites, history, purpose messages, and pinned guidance remain attached to the moved channels; Hermes read access was reverified after migration.
|
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
|
## Remaining gate
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Ways of Working"
|
|
||||||
description: "Use the shared operating practices for participating safely and effectively in the Corp v1 pilot."
|
|
||||||
slug: /
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
# Ways of Working
|
|
||||||
|
|
||||||
Corp v1 is a governed AI-assisted delivery pilot. People set outcomes, authority, and constraints; Hermes helps turn those decisions into traceable designs, code, documentation, releases, and operated evidence.
|
|
||||||
|
|
||||||
Use this area to understand how to join the pilot, where work belongs, how decisions become delivery, and which evidence is required before something is called complete.
|
|
||||||
|
|
||||||
## Start here
|
|
||||||
|
|
||||||
1. Read [Onboarding](./onboarding) before contributing.
|
|
||||||
2. Find your project in the [project registry](/projects/).
|
|
||||||
3. Confirm your responsibilities in the [team](/teams/) and [member](/members/) registries.
|
|
||||||
4. Follow the [project lifecycle](/governance/project-lifecycle/) and the authority recorded for your project.
|
|
||||||
|
|
||||||
## Core principle
|
|
||||||
|
|
||||||
Keep conversation, decisions, implementation, deployment, and runtime proof connected—but do not treat them as the same thing. An approved idea is not implemented work; a merged change is not a deployed change; a healthy runtime is not release or product acceptance.
|
|
||||||
@@ -1,117 +0,0 @@
|
|||||||
---
|
|
||||||
title: "Onboarding"
|
|
||||||
description: "Join the Corp v1 pilot with the right access, context, channel routing, authority, security practices, and evidence expectations."
|
|
||||||
sidebar_position: 1
|
|
||||||
---
|
|
||||||
|
|
||||||
# Onboarding
|
|
||||||
|
|
||||||
Use this page when joining the Corp v1 pilot or entering a project for the first time. You should finish with the right access, a clear role, and enough context to contribute without bypassing project governance.
|
|
||||||
|
|
||||||
## What the pilot is
|
|
||||||
|
|
||||||
Corp v1 tests whether one AI agent can support several focused project workstreams while people retain explicit authority and durable oversight. The pilot currently includes:
|
|
||||||
|
|
||||||
- [AeroSim](/projects/aerosim/)
|
|
||||||
- [Maze Next Gen](/projects/mazeng/)
|
|
||||||
- [E-Shop v1](/projects/eshopv1/)
|
|
||||||
|
|
||||||
The [Board](/board/) governs project kickoff, closure, and changes to the main Corp v1 operating model. Each project has its own sponsor, team, approved scope, repositories, documentation, Discord category, and preserved authority decisions.
|
|
||||||
|
|
||||||
## Your first 20 minutes
|
|
||||||
|
|
||||||
1. **Confirm your identity and role.** Check the [member registry](/members/) and your [team record](/teams/). If either is wrong, raise it before taking ownership of work.
|
|
||||||
2. **Open the project record.** Read its purpose, initial deliverable, current status, resources, and outstanding gates in the [project registry](/projects/).
|
|
||||||
3. **Open the project documentation.** It is the durable source for scope, architecture, design, Kanban state, ways of working, engineering guidance, and release evidence.
|
|
||||||
4. **Verify Discord access.** Every project has one dedicated `corp-v1-<code>` category with seven lifecycle channels. Confirm that you can see the channels needed for your role and read their pinned guidance.
|
|
||||||
5. **Verify Gitea access.** Confirm access to the project and skills organizations through the appropriate teams. Do not request direct repository access when team membership is the intended route.
|
|
||||||
6. **Choose one current outcome.** Start from an existing Epic, Feature, task, issue, design package, or release gate. Do not create parallel records because an item is difficult to find.
|
|
||||||
|
|
||||||
## Use the seven channels correctly
|
|
||||||
|
|
||||||
Work moves through this shared lifecycle:
|
|
||||||
|
|
||||||
```text
|
|
||||||
General → Scope → Architecture → UI/UX → Kanban → Delivery → Releases
|
|
||||||
```
|
|
||||||
|
|
||||||
| Channel | Use it for |
|
|
||||||
|---|---|
|
|
||||||
| **General** | Project-wide direction, coordination, questions, outcomes, and cross-channel issues |
|
|
||||||
| **Scope** | Ideas, Epics, Features, value, acceptance outcomes, and product decisions |
|
|
||||||
| **Architecture** | Solution design, interfaces, constraints, risks, and implementation task definitions |
|
|
||||||
| **UI/UX** | User journeys, Penpot designs, responsive behavior, accessibility, and implementation handoff |
|
|
||||||
| **Kanban** | Flow visibility, task admission, sequencing, dependencies, and blockers |
|
|
||||||
| **Delivery** | Implementation, tests, reviews, CI, build health, and delivery evidence |
|
|
||||||
| **Releases** | Version readiness, changelogs, deployment approval, rollout, rollback, and runtime verification |
|
|
||||||
|
|
||||||
Post in the channel that owns the decision or artifact. Cross-link evidence instead of copying whole conversations between channels. Keep one project’s information inside that project’s seven-channel boundary unless a Board-level concern requires escalation.
|
|
||||||
|
|
||||||
## Understand authority
|
|
||||||
|
|
||||||
- **Board authority** covers project kickoff, project closure, and changes to `corp-v1-main`.
|
|
||||||
- **Project-team authority** covers decisions inside the project’s approved boundary.
|
|
||||||
- **Hermes authority** is project-specific. It may range from preparing proposals to full delegated delivery and merge authority. Use the preserved project record and channel skill; never infer authority from activity, silence, CI success, or an agent statement.
|
|
||||||
- **Explicit gates remain explicit.** A decision must identify the item, actor, conditions, and evidence. Delegation changes who may decide; it does not remove security, quality, traceability, or validation gates.
|
|
||||||
|
|
||||||
When authority is unclear, stop at a reversible proposal and ask in the owning channel.
|
|
||||||
|
|
||||||
## Know what “done” means
|
|
||||||
|
|
||||||
Keep these states separate:
|
|
||||||
|
|
||||||
1. **Approved** — an authorized person or delegate accepted the exact scope or decision.
|
|
||||||
2. **Implemented** — source changes exist and passed the required local/review checks.
|
|
||||||
3. **Merged** — the reviewed change is integrated into the repository’s default branch.
|
|
||||||
4. **Deployed / runtime verified** — the intended immutable revision is running and has passed live readback or acceptance checks.
|
|
||||||
5. **Released / accepted** — the project’s release authority approved the version and required outcomes.
|
|
||||||
|
|
||||||
Always state the highest level actually proven and link the evidence. Do not use “live” as a shortcut for release approval or product maturity.
|
|
||||||
|
|
||||||
## Security and credentials
|
|
||||||
|
|
||||||
- Never paste passwords, tokens, API keys, connection strings, secret values, or Bitwarden object metadata into Discord, issues, repositories, prompts, screenshots, or documentation.
|
|
||||||
- Use the approved SSO and secret-injection paths. A credential being available does not authorize unrelated access, account administration, spending, or destructive work.
|
|
||||||
- Record secret **names and readiness only** when governance requires it.
|
|
||||||
- Report suspected exposure immediately in the owning project and follow the approved rotation path.
|
|
||||||
- Treat private project repositories, project-channel history, and customer or operational data as project-bound information.
|
|
||||||
|
|
||||||
## How to make a useful contribution
|
|
||||||
|
|
||||||
A useful contribution is small enough to review and complete, but durable enough to help the next person:
|
|
||||||
|
|
||||||
- start from a stable item or create a clearly marked proposal;
|
|
||||||
- cite the source message, decision, requirement, design, issue, or runtime observation;
|
|
||||||
- work in the owning channel and canonical repository;
|
|
||||||
- preserve project naming, branch, testing, and documentation conventions;
|
|
||||||
- run the required validation and match CI to the exact commit;
|
|
||||||
- read back remote and deployed state before claiming completion;
|
|
||||||
- report the outcome, evidence, remaining gates, owner, and next action concisely.
|
|
||||||
|
|
||||||
If a task crosses channels, finish the source-owned result and hand off one clear requested action with evidence and unresolved risks.
|
|
||||||
|
|
||||||
## Where truth lives
|
|
||||||
|
|
||||||
| Information | Authoritative location |
|
|
||||||
|---|---|
|
|
||||||
| Portfolio governance, Board decisions, teams, and project registry | This Corp v1 portal |
|
|
||||||
| Product scope and project delivery records | Project documentation repository and deployed documentation |
|
|
||||||
| Source, reviews, commits, CI, and releases | Project Gitea repositories |
|
|
||||||
| Discussion, approvals, coordination, and handoffs | Exact project Discord channels and message IDs |
|
|
||||||
| Deployment and runtime state | GitOps source, Argo CD, workload state, and live acceptance evidence |
|
|
||||||
| Editable interface design | Project-owned Penpot files linked from project records |
|
|
||||||
|
|
||||||
No single status message replaces these sources. Reconcile them when they disagree.
|
|
||||||
|
|
||||||
## Onboarding complete
|
|
||||||
|
|
||||||
You are ready to contribute when you can answer:
|
|
||||||
|
|
||||||
- Which project and outcome am I supporting?
|
|
||||||
- What is my role and decision authority?
|
|
||||||
- Which channel owns my next action?
|
|
||||||
- Where is the canonical record?
|
|
||||||
- What evidence is required before I call it complete?
|
|
||||||
- Which security or release gates still apply?
|
|
||||||
|
|
||||||
If any answer is missing, ask in the project’s **General** channel and link the record you already checked.
|
|
||||||
@@ -34,12 +34,9 @@ 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'}],
|
||||||
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'ways-of-working', path: 'docs/ways-of-working', routeBasePath: 'ways-of-working', sidebarPath: './sidebars/ways-of-working.ts'}],
|
|
||||||
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'board', path: 'docs/board', routeBasePath: 'board', sidebarPath: './sidebars/board.ts'}],
|
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'board', path: 'docs/board', routeBasePath: 'board', sidebarPath: './sidebars/board.ts'}],
|
||||||
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'governance', path: 'docs/governance', routeBasePath: 'governance', sidebarPath: './sidebars/governance.ts'}],
|
['@docusaurus/plugin-content-docs', {...docsCommon, id: 'governance', path: 'docs/governance', routeBasePath: 'governance', sidebarPath: './sidebars/governance.ts'}],
|
||||||
],
|
],
|
||||||
@@ -50,7 +47,7 @@ const config: Config = {
|
|||||||
indexDocs: true,
|
indexDocs: true,
|
||||||
indexBlog: false,
|
indexBlog: false,
|
||||||
indexPages: true,
|
indexPages: true,
|
||||||
docsRouteBasePath: ['/', 'architecture-high-level', 'projects', 'teams', 'members', 'ways-of-working', 'board', 'governance'],
|
docsRouteBasePath: ['/', 'projects', 'teams', 'members', 'board', 'governance'],
|
||||||
language: ['en'],
|
language: ['en'],
|
||||||
highlightSearchTermsOnTargetPage: true,
|
highlightSearchTermsOnTargetPage: true,
|
||||||
explicitSearchResultPath: true,
|
explicitSearchResultPath: true,
|
||||||
@@ -63,22 +60,18 @@ const config: Config = {
|
|||||||
navbar: {
|
navbar: {
|
||||||
title: 'CORP V1 / BOARD',
|
title: 'CORP V1 / BOARD',
|
||||||
items: [
|
items: [
|
||||||
{type: 'docSidebar', sidebarId: 'boardSidebar', docsPluginId: 'board', label: 'Board', 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'},
|
||||||
|
{type: 'docSidebar', sidebarId: 'boardSidebar', docsPluginId: 'board', label: 'Board', position: 'left'},
|
||||||
{type: 'docSidebar', sidebarId: 'governanceSidebar', docsPluginId: 'governance', label: 'Governance', position: 'left'},
|
{type: 'docSidebar', sidebarId: 'governanceSidebar', docsPluginId: 'governance', label: 'Governance', position: 'left'},
|
||||||
{type: 'docSidebar', sidebarId: 'waysOfWorkingSidebar', docsPluginId: 'ways-of-working', label: 'Ways of Working', position: 'left'},
|
|
||||||
{type: 'docSidebar', sidebarId: 'architectureHighLevelSidebar', docsPluginId: 'architecture-high-level', label: 'Architecture', position: 'left'},
|
|
||||||
{href: 'https://gitea.lego-cloud.eu/corp-v1/portal', label: 'Gitea ↗', position: 'right'},
|
{href: 'https://gitea.lego-cloud.eu/corp-v1/portal', label: 'Gitea ↗', position: 'right'},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
footer: {
|
footer: {
|
||||||
style: 'light',
|
style: 'light',
|
||||||
links: [{title: 'Registry', items: [
|
links: [{title: 'Registry', items: [
|
||||||
{label: 'Architecture', to: '/architecture-high-level/context/'},
|
|
||||||
{label: 'Projects', to: '/projects/'},
|
{label: 'Projects', to: '/projects/'},
|
||||||
{label: 'Ways of Working', to: '/ways-of-working/'},
|
|
||||||
{label: 'Teams', to: '/teams/'},
|
{label: 'Teams', to: '/teams/'},
|
||||||
{label: 'Members', to: '/members/'},
|
{label: 'Members', to: '/members/'},
|
||||||
{label: 'Board', to: '/board/'},
|
{label: 'Board', to: '/board/'},
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
"@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"
|
||||||
@@ -32,8 +31,6 @@
|
|||||||
"@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",
|
||||||
"fast-xml-parser": "^5.11.0",
|
|
||||||
"raw-loader": "^4.0.2",
|
|
||||||
"typescript": "~6.0.2"
|
"typescript": "~6.0.2"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
@@ -50,11 +47,5 @@
|
|||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=20.0"
|
"node": ">=20.0"
|
||||||
},
|
|
||||||
"pnpm": {
|
|
||||||
"overrides": {
|
|
||||||
"fast-uri": "3.1.6",
|
|
||||||
"serialize-javascript": "7.0.3"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+21
-151
@@ -4,10 +4,6 @@ settings:
|
|||||||
autoInstallPeers: true
|
autoInstallPeers: true
|
||||||
excludeLinksFromLockfile: false
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
overrides:
|
|
||||||
fast-uri: 3.1.6
|
|
||||||
serialize-javascript: 7.0.3
|
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
.:
|
.:
|
||||||
@@ -30,9 +26,6 @@ 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)
|
||||||
@@ -55,12 +48,6 @@ importers:
|
|||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: ^19.0.0
|
specifier: ^19.0.0
|
||||||
version: 19.2.18
|
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:
|
typescript:
|
||||||
specifier: ~6.0.2
|
specifier: ~6.0.2
|
||||||
version: 6.0.3
|
version: 6.0.3
|
||||||
@@ -1469,9 +1456,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
|
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
|
||||||
engines: {node: '>= 16'}
|
engines: {node: '>= 16'}
|
||||||
|
|
||||||
'@nodable/entities@3.0.0':
|
|
||||||
resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==}
|
|
||||||
|
|
||||||
'@node-rs/jieba-android-arm-eabi@1.10.4':
|
'@node-rs/jieba-android-arm-eabi@1.10.4':
|
||||||
resolution: {integrity: sha512-MhyvW5N3Fwcp385d0rxbCWH42kqDBatQTyP8XbnYbju2+0BO/eTeCCLYj7Agws4pwxn2LtdldXRSKavT7WdzNA==}
|
resolution: {integrity: sha512-MhyvW5N3Fwcp385d0rxbCWH42kqDBatQTyP8XbnYbju2+0BO/eTeCCLYj7Agws4pwxn2LtdldXRSKavT7WdzNA==}
|
||||||
engines: {node: '>= 10'}
|
engines: {node: '>= 10'}
|
||||||
@@ -2241,9 +2225,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
|
|
||||||
anynum@1.0.1:
|
|
||||||
resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==}
|
|
||||||
|
|
||||||
arg@5.0.2:
|
arg@5.0.2:
|
||||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||||
|
|
||||||
@@ -2840,9 +2821,6 @@ 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==}
|
||||||
|
|
||||||
@@ -3065,15 +3043,8 @@ packages:
|
|||||||
fast-json-stable-stringify@2.1.0:
|
fast-json-stable-stringify@2.1.0:
|
||||||
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
|
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
|
||||||
|
|
||||||
fast-uri@3.1.6:
|
fast-uri@3.1.5:
|
||||||
resolution: {integrity: sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==}
|
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:
|
fastq@1.20.1:
|
||||||
resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
|
resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==}
|
||||||
@@ -3546,9 +3517,6 @@ packages:
|
|||||||
is-typedarray@1.0.0:
|
is-typedarray@1.0.0:
|
||||||
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
|
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
|
||||||
|
|
||||||
is-unsafe@2.0.2:
|
|
||||||
resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==}
|
|
||||||
|
|
||||||
is-wsl@2.2.0:
|
is-wsl@2.2.0:
|
||||||
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
|
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -4272,10 +4240,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
|
resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
|
||||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
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:
|
path-is-inside@1.0.2:
|
||||||
resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
|
resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
|
||||||
|
|
||||||
@@ -4767,6 +4731,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
|
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
randombytes@2.1.0:
|
||||||
|
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
|
||||||
|
|
||||||
range-parser@1.2.0:
|
range-parser@1.2.0:
|
||||||
resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
|
resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
@@ -4783,12 +4750,6 @@ 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
|
||||||
@@ -5036,9 +4997,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==}
|
resolution: {integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==}
|
||||||
engines: {node: '>= 0.8.0'}
|
engines: {node: '>= 0.8.0'}
|
||||||
|
|
||||||
serialize-javascript@7.0.3:
|
serialize-javascript@6.0.2:
|
||||||
resolution: {integrity: sha512-h+cZ/XXarqDgCjo+YSyQU/ulDEESGGf8AMK9pPNmhNSl/FzPl6L8pMp1leca5z6NuG6tvV/auC8/43tmovowww==}
|
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
|
||||||
engines: {node: '>=20.0.0'}
|
|
||||||
|
|
||||||
serve-handler@6.1.7:
|
serve-handler@6.1.7:
|
||||||
resolution: {integrity: sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==}
|
resolution: {integrity: sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==}
|
||||||
@@ -5215,9 +5175,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
strnum@2.4.2:
|
|
||||||
resolution: {integrity: sha512-rDG3Ah4TV0k1hWvLSzkZtMmLN9+eS+h3knq4MP6A42Y3Yh5qGNnOUs1jJkoSr8FG5dsL28c7KgkIBzSEykqtuw==}
|
|
||||||
|
|
||||||
style-to-js@1.1.21:
|
style-to-js@1.1.21:
|
||||||
resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==}
|
resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==}
|
||||||
|
|
||||||
@@ -5642,10 +5599,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
|
resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
xml-naming@0.3.0:
|
|
||||||
resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==}
|
|
||||||
engines: {node: '>=16.0.0'}
|
|
||||||
|
|
||||||
yallist@3.1.1:
|
yallist@3.1.1:
|
||||||
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
|
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
|
||||||
|
|
||||||
@@ -7055,9 +7008,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)(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
|
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:
|
transitivePeerDependencies:
|
||||||
- '@minify-html/node'
|
- '@minify-html/node'
|
||||||
- '@swc/css'
|
- '@swc/css'
|
||||||
@@ -8142,8 +8095,6 @@ snapshots:
|
|||||||
|
|
||||||
'@noble/hashes@1.4.0': {}
|
'@noble/hashes@1.4.0': {}
|
||||||
|
|
||||||
'@nodable/entities@3.0.0': {}
|
|
||||||
|
|
||||||
'@node-rs/jieba-android-arm-eabi@1.10.4':
|
'@node-rs/jieba-android-arm-eabi@1.10.4':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
@@ -8906,7 +8857,7 @@ snapshots:
|
|||||||
ajv@8.20.0:
|
ajv@8.20.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
fast-deep-equal: 3.1.3
|
fast-deep-equal: 3.1.3
|
||||||
fast-uri: 3.1.6
|
fast-uri: 3.1.5
|
||||||
json-schema-traverse: 1.0.0
|
json-schema-traverse: 1.0.0
|
||||||
require-from-string: 2.0.2
|
require-from-string: 2.0.2
|
||||||
|
|
||||||
@@ -8955,8 +8906,6 @@ snapshots:
|
|||||||
normalize-path: 3.0.0
|
normalize-path: 3.0.0
|
||||||
picomatch: 2.3.2
|
picomatch: 2.3.2
|
||||||
|
|
||||||
anynum@1.0.1: {}
|
|
||||||
|
|
||||||
arg@5.0.2: {}
|
arg@5.0.2: {}
|
||||||
|
|
||||||
argparse@2.0.1: {}
|
argparse@2.0.1: {}
|
||||||
@@ -9339,7 +9288,7 @@ snapshots:
|
|||||||
globby: 13.2.2
|
globby: 13.2.2
|
||||||
normalize-path: 3.0.0
|
normalize-path: 3.0.0
|
||||||
schema-utils: 4.3.3
|
schema-utils: 4.3.3
|
||||||
serialize-javascript: 7.0.3
|
serialize-javascript: 6.0.2
|
||||||
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)
|
||||||
|
|
||||||
core-js-compat@3.50.0:
|
core-js-compat@3.50.0:
|
||||||
@@ -9406,7 +9355,7 @@ snapshots:
|
|||||||
jest-worker: 29.7.0
|
jest-worker: 29.7.0
|
||||||
postcss: 8.5.26
|
postcss: 8.5.26
|
||||||
schema-utils: 4.3.3
|
schema-utils: 4.3.3
|
||||||
serialize-javascript: 7.0.3
|
serialize-javascript: 6.0.2
|
||||||
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)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
clean-css: 5.3.3
|
clean-css: 5.3.3
|
||||||
@@ -9583,12 +9532,6 @@ 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
|
||||||
@@ -9849,21 +9792,7 @@ snapshots:
|
|||||||
|
|
||||||
fast-json-stable-stringify@2.1.0: {}
|
fast-json-stable-stringify@2.1.0: {}
|
||||||
|
|
||||||
fast-uri@3.1.6: {}
|
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:
|
fastq@1.20.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -10391,8 +10320,6 @@ snapshots:
|
|||||||
|
|
||||||
is-typedarray@1.0.0: {}
|
is-typedarray@1.0.0: {}
|
||||||
|
|
||||||
is-unsafe@2.0.2: {}
|
|
||||||
|
|
||||||
is-wsl@2.2.0:
|
is-wsl@2.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
is-docker: 2.2.1
|
is-docker: 2.2.1
|
||||||
@@ -11148,19 +11075,6 @@ 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
|
||||||
@@ -11358,8 +11272,6 @@ snapshots:
|
|||||||
|
|
||||||
path-exists@5.0.0: {}
|
path-exists@5.0.0: {}
|
||||||
|
|
||||||
path-expression-matcher@1.6.2: {}
|
|
||||||
|
|
||||||
path-is-inside@1.0.2: {}
|
path-is-inside@1.0.2: {}
|
||||||
|
|
||||||
path-key@3.1.1: {}
|
path-key@3.1.1: {}
|
||||||
@@ -11892,6 +11804,10 @@ snapshots:
|
|||||||
|
|
||||||
quick-lru@5.1.1: {}
|
quick-lru@5.1.1: {}
|
||||||
|
|
||||||
|
randombytes@2.1.0:
|
||||||
|
dependencies:
|
||||||
|
safe-buffer: 5.2.1
|
||||||
|
|
||||||
range-parser@1.2.0: {}
|
range-parser@1.2.0: {}
|
||||||
|
|
||||||
range-parser@1.2.1: {}
|
range-parser@1.2.1: {}
|
||||||
@@ -11905,12 +11821,6 @@ 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
|
||||||
@@ -12245,7 +12155,9 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
serialize-javascript@7.0.3: {}
|
serialize-javascript@6.0.2:
|
||||||
|
dependencies:
|
||||||
|
randombytes: 2.1.0
|
||||||
|
|
||||||
serve-handler@6.1.7:
|
serve-handler@6.1.7:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -12458,10 +12370,6 @@ snapshots:
|
|||||||
|
|
||||||
strip-json-comments@3.1.1: {}
|
strip-json-comments@3.1.1: {}
|
||||||
|
|
||||||
strnum@2.4.2:
|
|
||||||
dependencies:
|
|
||||||
anynum: 1.0.1
|
|
||||||
|
|
||||||
style-to-js@1.1.21:
|
style-to-js@1.1.21:
|
||||||
dependencies:
|
dependencies:
|
||||||
style-to-object: 1.0.14
|
style-to-object: 1.0.14
|
||||||
@@ -12498,7 +12406,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)(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:
|
dependencies:
|
||||||
'@swc/core': 1.15.47
|
'@swc/core': 1.15.47
|
||||||
'@swc/counter': 0.1.3
|
'@swc/counter': 0.1.3
|
||||||
@@ -12796,42 +12704,6 @@ 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
|
||||||
@@ -12929,8 +12801,6 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
sax: 1.6.1
|
sax: 1.6.1
|
||||||
|
|
||||||
xml-naming@0.3.0: {}
|
|
||||||
|
|
||||||
yallist@3.1.1: {}
|
yallist@3.1.1: {}
|
||||||
|
|
||||||
yocto-queue@1.2.2: {}
|
yocto-queue@1.2.2: {}
|
||||||
|
|||||||
+6
-463
@@ -1,7 +1,6 @@
|
|||||||
import assert from 'node:assert/strict';
|
import assert from 'node:assert/strict';
|
||||||
import {existsSync, readFileSync, readdirSync} from 'node:fs';
|
import {existsSync, readFileSync, readdirSync} from 'node:fs';
|
||||||
import {join} from 'node:path';
|
import {join} from 'node:path';
|
||||||
import {XMLValidator} from 'fast-xml-parser';
|
|
||||||
|
|
||||||
const root = process.cwd();
|
const root = process.cwd();
|
||||||
const read = (path) => readFileSync(join(root, path), 'utf8');
|
const read = (path) => readFileSync(join(root, path), 'utf8');
|
||||||
@@ -21,394 +20,17 @@ 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*'ways-of-working'/, 'Ways of Working docs plugin is missing');
|
|
||||||
assert.match(config, /sidebarId:\s*'waysOfWorkingSidebar'/, 'Ways of Working navbar item does not target its dedicated sidebar');
|
|
||||||
assert.ok(existsSync(join(root, 'sidebars/ways-of-working.ts')), 'Ways of Working sidebar file is missing');
|
|
||||||
assert.ok(existsSync(join(root, 'docs/ways-of-working/index.md')), 'Ways of Working entry page is missing');
|
|
||||||
assert.ok(existsSync(join(root, 'docs/ways-of-working/onboarding.md')), 'Onboarding page 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'/, 'Architecture navbar label is missing');
|
|
||||||
assert.doesNotMatch(config, /label:\s*'Architecture High Level'/, 'legacy Architecture High Level menu label must not remain');
|
|
||||||
assert.ok(existsSync(join(root, 'sidebars/architecture-high-level.ts')), 'Architecture High Level sidebar file is missing');
|
|
||||||
|
|
||||||
const expectedLeftNavLabels = ['Board', 'Projects', 'Teams', 'Members', 'Governance', 'Ways of Working', 'Architecture'];
|
|
||||||
const leftNavLabels = [...config.matchAll(/\{type:\s*'docSidebar',[^\n]+label:\s*'([^']+)',\s*position:\s*'left'\}/g)]
|
|
||||||
.map((match) => match[1]);
|
|
||||||
assert.deepEqual(leftNavLabels, expectedLeftNavLabels, 'Top-level navigation must follow the approved Board-first order');
|
|
||||||
|
|
||||||
const waysOfWorkingSidebar = read('sidebars/ways-of-working.ts');
|
|
||||||
assert.match(waysOfWorkingSidebar, /link:\s*\{type:\s*'doc',\s*id:\s*'index'\}/, 'Ways of Working must link to its entry page');
|
|
||||||
assert.match(waysOfWorkingSidebar, /items:\s*\[\{type:\s*'doc',\s*id:\s*'onboarding',\s*label:\s*'Onboarding'\}\]/, 'Onboarding must be the first child page');
|
|
||||||
const onboarding = read('docs/ways-of-working/onboarding.md');
|
|
||||||
for (const term of ['Your first 20 minutes', 'Use the seven channels correctly', 'Understand authority', 'Know what “done” means', 'Security and credentials', 'Onboarding complete']) {
|
|
||||||
assert.ok(onboarding.includes(term), `Onboarding is missing: ${term}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
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 [
|
for (const memberId of ['1518725627845283888', '476287310627864587', '773109855497093191', '364383883778850827', '1483820991720329227', '1540035254746882048']) {
|
||||||
'1518725627845283888',
|
|
||||||
'476287310627864587',
|
|
||||||
'773109855497093191',
|
|
||||||
'364383883778850827',
|
|
||||||
'1483820991720329227',
|
|
||||||
'1540035254746882048',
|
|
||||||
'501954115690168321',
|
|
||||||
'1526860732917088266',
|
|
||||||
]) {
|
|
||||||
assert.ok(board.includes(memberId), `board page is missing Discord member ${memberId}`);
|
assert.ok(board.includes(memberId), `board page is missing Discord member ${memberId}`);
|
||||||
}
|
}
|
||||||
assert.match(board, /exactly eight members/i);
|
assert.match(board, /Only these Board members may approve a project kickoff or project closure/i);
|
||||||
assert.match(board, /Only the seven human Board members may approve a project kickoff or project closure/i);
|
assert.match(board, /Only these Board members may approve changes to `corp-v1--main`/i);
|
||||||
assert.match(board, /Only the seven human Board members may approve changes to `corp-v1-main`/i);
|
|
||||||
assert.match(board, /Jarvis .*Board member and executing code agent/i);
|
|
||||||
|
|
||||||
for (const path of [
|
|
||||||
'docs/projects/dpvp.md',
|
|
||||||
'docs/teams/dpvp.md',
|
|
||||||
'docs/governance/decisions/jarvis-board-all-project-membership.md',
|
|
||||||
]) {
|
|
||||||
assert.ok(existsSync(join(root, path)), `${path} is missing`);
|
|
||||||
}
|
|
||||||
const jarvisMember = read('docs/members/jarvis-at-skic.md');
|
|
||||||
for (const marker of ['Board member and executing code agent', 'all 35 lifecycle channels', 'all ten project/skills teams']) {
|
|
||||||
assert.ok(jarvisMember.includes(marker), `Jarvis member record is missing: ${marker}`);
|
|
||||||
}
|
|
||||||
const dpvpProject = read('docs/projects/dpvp.md');
|
|
||||||
for (const marker of ['corp-v1-dpvp', 'dpvp-maintainers', 'dpvp-skill-maintainers', '1544621890994184224']) {
|
|
||||||
assert.ok(dpvpProject.includes(marker), `DPVP project record is missing: ${marker}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const aerosimProject = read('docs/projects/aerosim.md');
|
|
||||||
const APP_SHA = '09628fbb828380fbe159be7530da26f4bbf02129';
|
|
||||||
const DOC_SHA = 'd8a45594c33efc3acbd1523955d4f235facc9a1f';
|
|
||||||
const AEROSIM_CHECKPOINT_HEADING = 'Delivery progress checkpoint — 2026-09-07';
|
|
||||||
|
|
||||||
const markdownSection = (document, heading) => {
|
|
||||||
const marker = `## ${heading}`;
|
|
||||||
const start = document.indexOf(marker);
|
|
||||||
assert.notEqual(start, -1, `AeroSim section is missing: ${heading}`);
|
|
||||||
const end = document.indexOf('\n## ', start + marker.length);
|
|
||||||
return document.slice(start, end === -1 ? document.length : end);
|
|
||||||
};
|
|
||||||
|
|
||||||
const uniqueLine = (text, predicate, description) => {
|
|
||||||
const matches = text.split('\n').filter(predicate);
|
|
||||||
assert.equal(matches.length, 1, `AeroSim must contain exactly one ${description}`);
|
|
||||||
return matches[0];
|
|
||||||
};
|
|
||||||
|
|
||||||
function verifyAeroSimProject(document) {
|
|
||||||
const requiredSectionHeadings = ['Resources', AEROSIM_CHECKPOINT_HEADING, 'Discord'];
|
|
||||||
const documentLines = document.split('\n');
|
|
||||||
const requiredSectionIndices = requiredSectionHeadings.map((heading) => {
|
|
||||||
const indices = documentLines.flatMap((line, index) => line === `## ${heading}` ? [index] : []);
|
|
||||||
assert.equal(indices.length, 1, `AeroSim required section heading must appear exactly once: ${heading}`);
|
|
||||||
return indices[0];
|
|
||||||
});
|
|
||||||
assert.ok(
|
|
||||||
requiredSectionIndices.every((index, position) => position === 0 || requiredSectionIndices[position - 1] < index),
|
|
||||||
'AeroSim required sections must follow Resources, checkpoint, Discord order',
|
|
||||||
);
|
|
||||||
|
|
||||||
const requiredMarkers = [
|
|
||||||
AEROSIM_CHECKPOINT_HEADING,
|
|
||||||
'49 / 114',
|
|
||||||
'43.0%',
|
|
||||||
'6 / 114 (5.3%)',
|
|
||||||
'7 / 114 (6.1%)',
|
|
||||||
'58 / 114 (50.9%)',
|
|
||||||
'PR #155',
|
|
||||||
'2581',
|
|
||||||
'2582',
|
|
||||||
APP_SHA,
|
|
||||||
DOC_SHA,
|
|
||||||
'Wave 15 is active',
|
|
||||||
'6 of its 7 Tasks are repository-verified',
|
|
||||||
'PRs #85, #89, #90, #95, #96, and #97',
|
|
||||||
'integrated tasks `2718`–`2720`',
|
|
||||||
'`TASK-0078` remains canonical `InProgress`',
|
|
||||||
'PR #92 is closed without merge',
|
|
||||||
'Wave 16 remains unclaimed',
|
|
||||||
];
|
|
||||||
for (const marker of requiredMarkers) {
|
|
||||||
assert.ok(document.includes(marker), `AeroSim progress checkpoint is missing: ${marker}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const resources = markdownSection(document, 'Resources');
|
|
||||||
const applicationResource = uniqueLine(resources, (line) => line.startsWith('- [Application repository]'), 'application repository resource');
|
|
||||||
const documentationResource = uniqueLine(resources, (line) => line.startsWith('- [Documentation repository]'), 'documentation repository resource');
|
|
||||||
assert.match(applicationResource, new RegExp(`application.*\\b${APP_SHA}\\b`, 'i'), 'application repository must reference the application SHA');
|
|
||||||
assert.match(documentationResource, new RegExp(`documentation.*\\b${DOC_SHA}\\b`, 'i'), 'documentation repository must reference the documentation SHA');
|
|
||||||
|
|
||||||
const checkpoint = markdownSection(document, AEROSIM_CHECKPOINT_HEADING);
|
|
||||||
const checkpointLines = checkpoint.split('\n');
|
|
||||||
const checkpointTableHeader = '| Measure | Progress | Meaning |';
|
|
||||||
const checkpointTableHeaderIndices = checkpointLines.flatMap(
|
|
||||||
(line, index) => line === checkpointTableHeader ? [index] : [],
|
|
||||||
);
|
|
||||||
assert.equal(checkpointTableHeaderIndices.length, 1, 'AeroSim checkpoint table header must appear exactly once');
|
|
||||||
const checkpointTableHeaderIndex = checkpointTableHeaderIndices[0];
|
|
||||||
assert.equal(checkpointLines[checkpointTableHeaderIndex + 1], '|---|---:|---|', 'AeroSim checkpoint table separator must exactly preserve its three columns and progress alignment');
|
|
||||||
const expectedRows = [
|
|
||||||
'Canonical `ToBeReleased`',
|
|
||||||
'Repository-verified implementation pending reconciliation',
|
|
||||||
'Canonical `InProgress`',
|
|
||||||
'Canonical `ReadyForDelivery`',
|
|
||||||
'Released',
|
|
||||||
];
|
|
||||||
assert.deepEqual(
|
|
||||||
checkpointLines.slice(checkpointTableHeaderIndex + 2, checkpointTableHeaderIndex + 7).map(
|
|
||||||
(line) => line.match(/^\| ([^|]+?) \|/)?.[1],
|
|
||||||
),
|
|
||||||
expectedRows,
|
|
||||||
'AeroSim checkpoint rows must preserve canonical, reconciliation, active, ready, and released order',
|
|
||||||
);
|
|
||||||
const canonicalRow = uniqueLine(checkpoint, (line) => line.startsWith('| Canonical `ToBeReleased` |'), 'canonical ToBeReleased row');
|
|
||||||
const implementationRow = uniqueLine(checkpoint, (line) => line.startsWith('| Repository-verified implementation pending reconciliation |'), 'repository-verified pending-reconciliation row');
|
|
||||||
const inProgressRow = uniqueLine(checkpoint, (line) => line.startsWith('| Canonical `InProgress` |'), 'canonical InProgress row');
|
|
||||||
const readyRow = uniqueLine(checkpoint, (line) => line.startsWith('| Canonical `ReadyForDelivery` |'), 'canonical ReadyForDelivery row');
|
|
||||||
const releasedRow = uniqueLine(checkpoint, (line) => line.startsWith('| Released |'), 'released row');
|
|
||||||
const waveStatus = uniqueLine(checkpoint, (line) => line.startsWith('Wave 15 is active'), 'Wave 15 status paragraph');
|
|
||||||
|
|
||||||
assert.match(canonicalRow, /\|\s*49\s*\/\s*114\s*\(43\.0%\)/i, 'AeroSim must expose canonical ToBeReleased progress');
|
|
||||||
assert.match(implementationRow, /\|\s*6\s*\/\s*114\s*\(5\.3%\)/i, 'AeroSim must expose repository-verified pending reconciliation separately');
|
|
||||||
assert.match(inProgressRow, /\|\s*7\s*\/\s*114\s*\(6\.1%\)/i, 'AeroSim must expose canonical InProgress progress');
|
|
||||||
assert.match(readyRow, /\|\s*58\s*\/\s*114\s*\(50\.9%\)/i, 'AeroSim must expose canonical ReadyForDelivery progress');
|
|
||||||
assert.match(releasedRow, /\|\s*0\s*\/\s*114\s*\(0\.0%\)/i, 'AeroSim must distinguish released progress');
|
|
||||||
assert.match(waveStatus, new RegExp('documentation `test` SHA `' + DOC_SHA + '`[^\\n]*PR #155 exact-head build task'), 'Wave 15 status must bind PR #155 to the documentation SHA');
|
|
||||||
assert.match(waveStatus, /exact-head build task `2581`[^\n]*integrated build task `2582`/i, 'Wave 15 status must bind exact-head and integrated documentation tasks');
|
|
||||||
assert.match(waveStatus, new RegExp('application integration head is `' + APP_SHA + '`'), 'Wave 15 status must bind the current application SHA');
|
|
||||||
assert.match(waveStatus, /6 of its 7 Tasks are repository-verified[^\n]*PRs #85, #89, #90, #95, #96, and #97/i, 'Wave 15 status must enumerate repository-verified integration evidence');
|
|
||||||
assert.match(waveStatus, /`TASK-0078` remains canonical `InProgress`[^\n]*PR #92 is closed without merge/i, 'Wave 15 status must preserve the unmerged Task state');
|
|
||||||
assert.match(readyRow, /Waves 9–11 and 16–30 remain ready but unclaimed/i, 'ReadyForDelivery must identify both earlier and later unclaimed waves');
|
|
||||||
assert.match(waveStatus, /dated portfolio checkpoint, not a second task database/i, 'AeroSim must remain a non-authoritative portfolio checkpoint');
|
|
||||||
assert.doesNotMatch(checkpoint, /Repository-verified implementation \|/i, 'ambiguous cumulative implementation row must not return');
|
|
||||||
assert.doesNotMatch(document, /8\s*\/\s*114\s*\(7\.0%\)/i, 'stale Wave 2 portfolio metrics must not remain');
|
|
||||||
assert.doesNotMatch(waveStatus, /Wave 3 is active/i, 'stale active-wave wording must not remain');
|
|
||||||
}
|
|
||||||
|
|
||||||
verifyAeroSimProject(aerosimProject);
|
|
||||||
|
|
||||||
if (process.argv.includes('--self-test')) {
|
|
||||||
const replaceExactly = (document, oldText, newText) => {
|
|
||||||
assert.equal(document.split(oldText).length - 1, 1, `mutation fixture must find exactly one occurrence: ${oldText}`);
|
|
||||||
return document.replace(oldText, newText);
|
|
||||||
};
|
|
||||||
const swap = (document, left, right) => {
|
|
||||||
const placeholder = '__VERIFY_PORTAL_MUTATION_PLACEHOLDER__';
|
|
||||||
return replaceExactly(replaceExactly(replaceExactly(document, left, placeholder), right, left), placeholder, right);
|
|
||||||
};
|
|
||||||
const swapAll = (document, left, right) => {
|
|
||||||
assert.ok(document.includes(left), `mutation fixture must find: ${left}`);
|
|
||||||
assert.ok(document.includes(right), `mutation fixture must find: ${right}`);
|
|
||||||
const placeholder = '__VERIFY_PORTAL_MUTATION_PLACEHOLDER__';
|
|
||||||
return document.replaceAll(left, placeholder).replaceAll(right, left).replaceAll(placeholder, right);
|
|
||||||
};
|
|
||||||
const checkpointRow = (document, prefix) => uniqueLine(
|
|
||||||
markdownSection(document, 'Delivery progress checkpoint — 2026-09-03'),
|
|
||||||
(line) => line.startsWith(prefix),
|
|
||||||
`${prefix} mutation source row`,
|
|
||||||
);
|
|
||||||
const sectionBlock = (document, heading) => {
|
|
||||||
const section = markdownSection(document, heading);
|
|
||||||
return section.endsWith('\n') ? section : `${section}\n`;
|
|
||||||
};
|
|
||||||
const futureCountFixtures = [14, 15, 24, 25, 114].flatMap((count) => [
|
|
||||||
{
|
|
||||||
name: `accepts legitimate future count ${count} / 114`,
|
|
||||||
document: replaceExactly(
|
|
||||||
aerosimProject,
|
|
||||||
'Release `1.0.0` contains 114 Tasks.',
|
|
||||||
`Release \`1.0.0\` contains 114 Tasks. Forecast example: ${count} / 114.`,
|
|
||||||
),
|
|
||||||
accepted: true,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: `accepts legitimate compact future count ${count}/114`,
|
|
||||||
document: replaceExactly(
|
|
||||||
aerosimProject,
|
|
||||||
'Release `1.0.0` contains 114 Tasks.',
|
|
||||||
`Release \`1.0.0\` contains 114 Tasks. Forecast example: ${count}/114.`,
|
|
||||||
),
|
|
||||||
accepted: true,
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
const staleCountFixtures = [4, 5].flatMap((count) => [
|
|
||||||
{
|
|
||||||
name: `rejects stale count ${count} / 114`,
|
|
||||||
document: replaceExactly(
|
|
||||||
aerosimProject,
|
|
||||||
'Release `1.0.0` contains 114 Tasks.',
|
|
||||||
`Release \`1.0.0\` contains 114 Tasks. Superseded snapshot: ${count} / 114.`,
|
|
||||||
),
|
|
||||||
accepted: false,
|
|
||||||
message: new RegExp(`stale AeroSim checkpoint marker must not remain: ${count} / 114`),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: `rejects compact stale count ${count}/114`,
|
|
||||||
document: replaceExactly(
|
|
||||||
aerosimProject,
|
|
||||||
'Release `1.0.0` contains 114 Tasks.',
|
|
||||||
`Release \`1.0.0\` contains 114 Tasks. Superseded snapshot: ${count}/114.`,
|
|
||||||
),
|
|
||||||
accepted: false,
|
|
||||||
message: new RegExp(`stale AeroSim checkpoint marker must not remain: ${count} / 114`),
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
const canonicalRowFixture = checkpointRow(aerosimProject, '| Canonical `ToBeReleased` |');
|
|
||||||
const implementationRowFixture = checkpointRow(aerosimProject, '| Repository-verified implementation |');
|
|
||||||
const releasedRowFixture = checkpointRow(aerosimProject, '| Released |');
|
|
||||||
const resourcesSectionFixture = sectionBlock(aerosimProject, 'Resources');
|
|
||||||
const checkpointSectionFixture = sectionBlock(aerosimProject, 'Delivery progress checkpoint — 2026-09-03');
|
|
||||||
const discordSectionFixture = sectionBlock(aerosimProject, 'Discord');
|
|
||||||
const fixtures = [
|
|
||||||
...futureCountFixtures,
|
|
||||||
...staleCountFixtures,
|
|
||||||
{
|
|
||||||
name: 'rejects removed checkpoint table header',
|
|
||||||
document: replaceExactly(aerosimProject, '| Measure | Progress | Meaning |\n', ''),
|
|
||||||
accepted: false,
|
|
||||||
message: /checkpoint table header/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects malformed checkpoint table header',
|
|
||||||
document: replaceExactly(aerosimProject, '| Measure | Progress | Meaning |', '| Measure | Meaning | Progress |'),
|
|
||||||
accepted: false,
|
|
||||||
message: /checkpoint table header/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects removed checkpoint table separator',
|
|
||||||
document: replaceExactly(aerosimProject, '|---|---:|---|\n', ''),
|
|
||||||
accepted: false,
|
|
||||||
message: /checkpoint table separator/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects malformed checkpoint table separator',
|
|
||||||
document: replaceExactly(aerosimProject, '|---|---:|---|', '|---|---|---|'),
|
|
||||||
accepted: false,
|
|
||||||
message: /checkpoint table separator/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects swapped canonical and implementation rows',
|
|
||||||
document: swap(aerosimProject, canonicalRowFixture, implementationRowFixture),
|
|
||||||
accepted: false,
|
|
||||||
message: /checkpoint rows must follow canonical, implementation, released order/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects swapped implementation and released rows',
|
|
||||||
document: swap(aerosimProject, implementationRowFixture, releasedRowFixture),
|
|
||||||
accepted: false,
|
|
||||||
message: /checkpoint rows must follow canonical, implementation, released order/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects removed Resources heading',
|
|
||||||
document: replaceExactly(aerosimProject, '## Resources\n', ''),
|
|
||||||
accepted: false,
|
|
||||||
message: /required section heading.*Resources/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects renamed Resources heading',
|
|
||||||
document: replaceExactly(aerosimProject, '## Resources', '## Project resources'),
|
|
||||||
accepted: false,
|
|
||||||
message: /required section heading.*Resources/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects removed checkpoint heading',
|
|
||||||
document: replaceExactly(aerosimProject, '## Delivery progress checkpoint — 2026-09-03\n', ''),
|
|
||||||
accepted: false,
|
|
||||||
message: /required section heading.*Delivery progress checkpoint/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects renamed checkpoint heading',
|
|
||||||
document: replaceExactly(aerosimProject, '## Delivery progress checkpoint — 2026-09-03', '## Delivery status — 2026-09-03'),
|
|
||||||
accepted: false,
|
|
||||||
message: /required section heading.*Delivery progress checkpoint/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects removed Discord heading',
|
|
||||||
document: replaceExactly(aerosimProject, '## Discord\n', ''),
|
|
||||||
accepted: false,
|
|
||||||
message: /required section heading.*Discord/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects renamed Discord heading',
|
|
||||||
document: replaceExactly(aerosimProject, '## Discord', '## Project channels'),
|
|
||||||
accepted: false,
|
|
||||||
message: /required section heading.*Discord/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects Resources and checkpoint sections in reverse order',
|
|
||||||
document: swap(aerosimProject, resourcesSectionFixture, checkpointSectionFixture),
|
|
||||||
accepted: false,
|
|
||||||
message: /required sections must follow Resources, checkpoint, Discord order/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects checkpoint and Discord sections in reverse order',
|
|
||||||
document: swap(aerosimProject, checkpointSectionFixture, discordSectionFixture),
|
|
||||||
accepted: false,
|
|
||||||
message: /required sections must follow Resources, checkpoint, Discord order/,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects swapped application and documentation SHA associations',
|
|
||||||
document: swapAll(aerosimProject, APP_SHA, DOC_SHA),
|
|
||||||
accepted: false,
|
|
||||||
message: /application repository.*SHA|documentation repository.*SHA/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects swapped publish and validate CI task associations',
|
|
||||||
document: replaceExactly(
|
|
||||||
aerosimProject,
|
|
||||||
'publish task `1760` and validate task `1761`',
|
|
||||||
'publish task `1761` and validate task `1760`',
|
|
||||||
),
|
|
||||||
accepted: false,
|
|
||||||
message: /publish task.*1760|validate task.*1761/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects swapped documentation CI task associations',
|
|
||||||
document: replaceExactly(
|
|
||||||
aerosimProject,
|
|
||||||
'exact-head build task `1762` and integrated build task `1763`',
|
|
||||||
'exact-head build task `1763` and integrated build task `1762`',
|
|
||||||
),
|
|
||||||
accepted: false,
|
|
||||||
message: /exact-head build task.*1762|integrated build task.*1763/i,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'rejects Wave 2 and Wave 3 task-group permutations',
|
|
||||||
document: swap(
|
|
||||||
aerosimProject,
|
|
||||||
'`TASK-0012`, `TASK-0015`, `TASK-0073`, and `TASK-0114`',
|
|
||||||
'`TASK-0013`, `TASK-0016`, `TASK-0074`, and `TASK-0115`',
|
|
||||||
),
|
|
||||||
accepted: false,
|
|
||||||
message: /Wave 2 task group|Wave 3 task group/i,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
const failures = [];
|
|
||||||
for (const fixture of fixtures) {
|
|
||||||
try {
|
|
||||||
verifyAeroSimProject(fixture.document);
|
|
||||||
if (!fixture.accepted) throw new assert.AssertionError({message: 'mutated document was incorrectly accepted'});
|
|
||||||
console.log(`ok - ${fixture.name}`);
|
|
||||||
} catch (error) {
|
|
||||||
if (!fixture.accepted && fixture.message?.test(error.message)) {
|
|
||||||
console.log(`ok - ${fixture.name}`);
|
|
||||||
} else {
|
|
||||||
failures.push(`${fixture.name}: ${error.message}`);
|
|
||||||
console.error(`not ok - ${fixture.name}: ${error.message}`);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
assert.equal(failures.length, 0, `AeroSim verifier self-tests failed:\n${failures.join('\n')}`);
|
|
||||||
console.log('AeroSim verifier self-tests passed.');
|
|
||||||
}
|
|
||||||
|
|
||||||
const lifecycle = read('docs/governance/project-lifecycle.md');
|
const lifecycle = read('docs/governance/project-lifecycle.md');
|
||||||
assert.match(lifecycle, /Board approval/i, 'project lifecycle must require Board approval');
|
assert.match(lifecycle, /Board approval/i, 'project lifecycle must require Board approval');
|
||||||
@@ -423,95 +45,16 @@ 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');
|
||||||
const searchRoutesMatch = config.match(/docsRouteBasePath:\s*\[([^\]]+)\]/);
|
for (const route of ['/', 'projects', 'teams', 'members', 'board', 'governance']) {
|
||||||
assert.ok(searchRoutesMatch, 'search route configuration is missing');
|
assert.ok(config.includes(`'${route}'`), `search does not include route base ${route}`);
|
||||||
const searchRoutes = searchRoutesMatch[1];
|
|
||||||
for (const route of ['/', 'architecture-high-level', 'projects', 'teams', 'members', 'ways-of-working', '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: 'Container Overview'},
|
|
||||||
{type: 'doc', id: 'operating-model', label: 'Operating Model'},
|
|
||||||
{type: 'doc', id: 'overview-channels', label: 'Overview Channels'},
|
|
||||||
{type: 'doc', id: 'overview-skills', label: 'Overview Skills'},
|
|
||||||
{type: 'doc', id: 'overview-repositories', label: 'Overview Repositories'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export default sidebars;`;
|
|
||||||
assert.equal(
|
|
||||||
architectureSidebar.trim(),
|
|
||||||
expectedArchitectureSidebar,
|
|
||||||
'Architecture High Level sidebar must contain exactly the six requested documents in order',
|
|
||||||
);
|
|
||||||
const architecturePages = {
|
|
||||||
context: read('docs/architecture-high-level/context.mdx'),
|
|
||||||
overview: read('docs/architecture-high-level/overview.mdx'),
|
|
||||||
operatingModel: read('docs/architecture-high-level/operating-model.mdx'),
|
|
||||||
channels: read('docs/architecture-high-level/overview-channels.mdx'),
|
|
||||||
skills: read('docs/architecture-high-level/overview-skills.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 ['seven channel skills', 'seven engineering skills', 'Gitea Actions', 'scheduler jobs', 'corp-v1-board', 'corp-v1-guild', 'corp-v1-guild', 'UI/UX', 'one AI agent', 'Hermes Agent', 'MicroK8s', 'Penpot', 'Argo CD', 'Harbor']) {
|
|
||||||
assert.ok(Object.values(architecturePages).some((page) => page.includes(term)), `architecture explanation is missing: ${term}`);
|
|
||||||
}
|
|
||||||
assert.match(architecturePages.channels, /two central portfolio workspaces/i, 'channels overview must distinguish Board and Guild as central workspaces');
|
|
||||||
assert.match(architecturePages.channels, /neither is an eighth project channel/i, 'Guild must not be classified as an eighth project channel');
|
|
||||||
assert.match(architecturePages.skills, /not copied as a fifteenth project skill/i, 'Guild must remain central rather than project-adopted');
|
|
||||||
assert.doesNotMatch(architecturePages.channels, /one portfolio-governance channel/i, 'superseded single-central-workspace wording must not remain');
|
|
||||||
for (const term of ['Corp v1 Board members', 'Project leads and contributors', 'Prospective project sponsors and contributors', 'Solution users and reviewers']) {
|
|
||||||
assert.ok(architecturePages.context.includes(term), `system context is missing actor: ${term}`);
|
|
||||||
}
|
|
||||||
for (const term of ['only two external software systems', 'LLM Provider', 'ICA or GPT Codex', 'Communication Service — Discord']) {
|
|
||||||
assert.ok(architecturePages.context.includes(term), `system context is missing boundary rule: ${term}`);
|
|
||||||
}
|
|
||||||
for (const term of ['Gitea Actions runners', 'Penpot', 'LEGO Cloud Pages', 'Harbor', 'Argo CD', 'Identity and access', 'Ingress edge', 'Gondor v1 MicroK8s']) {
|
|
||||||
assert.ok(architecturePages.overview.includes(term), `container overview is missing internal container: ${term}`);
|
|
||||||
}
|
|
||||||
for (const term of ['corp-v1-main', 'corp-v1-channel-ui-ux', 'development-gitops-argo-cd', 'drawio-main', 'systematic-debugging', 'gondor-v1-nodes']) {
|
|
||||||
assert.ok(architecturePages.skills.includes(term), `skills overview is missing: ${term}`);
|
|
||||||
}
|
|
||||||
for (const [name, page] of Object.entries(architecturePages)) {
|
|
||||||
assert.doesNotMatch(page, /exactly six|six project channels|six channel skills|thirteen adopted skill/i, `${name} retains the superseded six-channel model`);
|
|
||||||
}
|
|
||||||
for (const [name, markers] of Object.entries({
|
|
||||||
'context.drawio': ['CORP V1 — HOME-LAB SYSTEM CONTEXT', 'HUMAN ACTORS', 'TARGET SYSTEM', 'EXTERNAL SYSTEMS · ONLY TWO', 'DISCORD', 'ICA OR GPT CODEX'],
|
|
||||||
'architecture-overview.drawio': ['CORP V1 — HOME-LAB CONTAINER OVERVIEW', 'EXTERNAL · DISCORD', 'EXTERNAL · LLM PROVIDER', 'INTERNAL CONTAINERS', 'GITEA ACTIONS RUNNERS', 'HARBOR', 'ARGO CD', 'GONDOR MICROK8S'],
|
|
||||||
'operating-model.drawio': ['CORP V1 — OPERATING MODEL FLOW', 'CORP-V1-BOARD', 'BOARD APPROVAL', 'UI/UX', 'KANBAN / FOCUS', 'VERIFY & RECORD'],
|
|
||||||
'channels.drawio': ['CORP V1 — BOARD, GUILD & PROJECT CHANNELS', 'CORP-V1-BOARD', 'CORP-V1-GUILD', 'GENERAL', 'ARCHITECTURE', 'UI/UX', 'RELEASES', 'MULTIPLE FOCUSED SESSIONS'],
|
|
||||||
'skills.drawio': ['CORP V1 — SKILLS MODEL', 'CENTRAL SOURCES', 'CORP-V1--GUILD', 'DELIBERATE ADOPTION', 'PROJECT COPIES', 'FOCUSED SESSION'],
|
|
||||||
'repositories.drawio': ['CORP V1 — ORGANIZATIONS, REPOSITORIES & DELIVERY', 'PROJECT ORGANIZATION', 'SKILLS ORGANIZATION', '7 adopted channel-skill repos', '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}`);
|
|
||||||
assert.doesNotMatch(diagram, /Six purpose-specific|6 channel skills|6 adopted channel-skill repos/i, `${name} retains the superseded six-channel model`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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', 'ways of working', 'your first 20 minutes', 'onboarding complete', 'container overview', 'operating model', 'overview channels', 'overview skills', '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}`);
|
assert.ok(search.includes(term), `search index is missing: ${term}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +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: 'Container Overview'},
|
|
||||||
{type: 'doc', id: 'operating-model', label: 'Operating Model'},
|
|
||||||
{type: 'doc', id: 'overview-channels', label: 'Overview Channels'},
|
|
||||||
{type: 'doc', id: 'overview-skills', label: 'Overview Skills'},
|
|
||||||
{type: 'doc', id: 'overview-repositories', label: 'Overview Repositories'},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
export default sidebars;
|
|
||||||
@@ -4,7 +4,6 @@ const sidebars: SidebarsConfig = {
|
|||||||
governanceSidebar: [
|
governanceSidebar: [
|
||||||
{type: 'doc', id: 'project-lifecycle', label: 'Project Lifecycle'},
|
{type: 'doc', id: 'project-lifecycle', label: 'Project Lifecycle'},
|
||||||
{type: 'doc', id: 'decisions', label: 'Decision Log'},
|
{type: 'doc', id: 'decisions', label: 'Decision Log'},
|
||||||
{type: 'doc', id: 'decisions/corp-v1-guild-establishment', label: 'Corp v1 Guild Establishment'},
|
|
||||||
{type: 'doc', id: 'decisions/corp-v1-board-migration', label: 'Corp v1 Board Migration'},
|
{type: 'doc', id: 'decisions/corp-v1-board-migration', label: 'Corp v1 Board Migration'},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
|
||||||
|
|
||||||
const sidebars: SidebarsConfig = {
|
|
||||||
waysOfWorkingSidebar: [
|
|
||||||
{
|
|
||||||
type: 'category',
|
|
||||||
label: 'Ways of Working',
|
|
||||||
link: {type: 'doc', id: 'index'},
|
|
||||||
collapsed: false,
|
|
||||||
items: [{type: 'doc', id: 'onboarding', label: 'Onboarding'}],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
};
|
|
||||||
|
|
||||||
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
@@ -1,39 +0,0 @@
|
|||||||
import assert from 'node:assert/strict';
|
|
||||||
import {readFile} from 'node:fs/promises';
|
|
||||||
import test from 'node:test';
|
|
||||||
|
|
||||||
const project = await readFile(new URL('../docs/projects/aerosim.md', import.meta.url), 'utf8');
|
|
||||||
const packageJson = JSON.parse(await readFile(new URL('../package.json', import.meta.url), 'utf8'));
|
|
||||||
const lockfile = await readFile(new URL('../pnpm-lock.yaml', import.meta.url), 'utf8');
|
|
||||||
|
|
||||||
test('AeroSim portfolio roll-up reports the verified Wave 15 checkpoint', () => {
|
|
||||||
assert.match(project, /## Delivery progress checkpoint — 2026-09-07/);
|
|
||||||
assert.match(project, /Canonical `ToBeReleased` \| 49 \/ 114 \(43\.0%\)/);
|
|
||||||
assert.match(project, /Repository-verified implementation pending reconciliation \| 6 \/ 114 \(5\.3%\)/);
|
|
||||||
assert.match(project, /Canonical `InProgress` \| 7 \/ 114 \(6\.1%\)/);
|
|
||||||
assert.match(project, /Canonical `ReadyForDelivery` \| 58 \/ 114 \(50\.9%\)/);
|
|
||||||
assert.match(project, /Released \| 0 \/ 114 \(0\.0%\)/);
|
|
||||||
assert.match(project, /Wave 15 is active/);
|
|
||||||
assert.match(project, /6 of its 7 Tasks are repository-verified/);
|
|
||||||
assert.match(project, /`TASK-0048`, `TASK-0061`, `TASK-0065`, `TASK-0077`, `TASK-0083`, and `TASK-0111`/);
|
|
||||||
assert.match(project, /`TASK-0078` remains canonical `InProgress`[^\n]*PR #92 is closed without merge/);
|
|
||||||
assert.match(project, /`09628fbb828380fbe159be7530da26f4bbf02129`/);
|
|
||||||
assert.match(project, /`d8a45594c33efc3acbd1523955d4f235facc9a1f`/);
|
|
||||||
assert.match(project, /PRs #85, #89, #90, #95, #96, and #97/);
|
|
||||||
assert.match(project, /integrated tasks `2718`–`2720`/);
|
|
||||||
assert.match(project, /Waves 9–11 and 16–30 remain ready but unclaimed/);
|
|
||||||
assert.doesNotMatch(project, /Repository-verified implementation pending reconciliation \| 0 \/ 114/);
|
|
||||||
assert.doesNotMatch(project, /`7f26eca79eadef3171564fc60035e9866c2c848e`/);
|
|
||||||
assert.doesNotMatch(project, /Wave 3 is active/);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('portal pins patched audit dependencies without downgrading consumers', () => {
|
|
||||||
assert.deepEqual(packageJson.pnpm?.overrides, {
|
|
||||||
'fast-uri': '3.1.6',
|
|
||||||
'serialize-javascript': '7.0.3',
|
|
||||||
});
|
|
||||||
assert.match(lockfile, /fast-uri@3\.1\.6:/);
|
|
||||||
assert.match(lockfile, /serialize-javascript@7\.0\.3:/);
|
|
||||||
assert.doesNotMatch(lockfile, /fast-uri@3\.1\.5:/);
|
|
||||||
assert.doesNotMatch(lockfile, /serialize-javascript@6\.0\.2:/);
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user