実例: executive-view-diagram-system
実例: executive-view-diagram-system
コピーして貼るか、ファイルに保存して渡す。ネットにつながらない環境には「全部入り」を 1 つ渡せば足りる。
このパネルの中身を、URL の先にあるファイルの中身まで含めて 1 つにまとめた Markdown — 大きいのでファイルで渡す(コピーは 32KB まで)
「経営判断ビュー」の図が要ります。この図はテキストとベクタで公開されているので、絵を描き直すのではなく、公開されているものを取って直すのが早いです。 ## この図が伝えること ある時点の目標・指標・リスク・推奨・決定を、判断のために一枚へ集める。 ## 向いている場合 - 会議で「何を決めるのか」を先に置く。 - as-of 日付を明示して、古い数字を古いと分かる形にする。 ## 向かない場合 - 経過の説明が主題のとき(Planning Timeline を使う)。 - 会議の外で読まれる資料にするとき。as-of 日付を離れると数字の鮮度が分からなくなる。 ## この図種が検証していること - as-of 日付、Objective、Recommendation、Indicator、Risk、Decision、意味を持つ領域への配置を検証する。 - `refreshExecutiveIndicator` は、指標の値を型付きで差し替える。 ## 検証していないこと - 指標の値が正しいかは検査しない。出典は図の外にある。 ## 取れるもの - https://design-vault.pages.dev/designs/diagram-executive-view/samples/executive-view-diagram-system/diagram-spec.json - https://design-vault.pages.dev/designs/diagram-executive-view/samples/executive-view-diagram-system/executive-view.drawio - https://design-vault.pages.dev/designs/diagram-executive-view/samples/executive-view-diagram-system/executive-view.png - https://design-vault.pages.dev/designs/diagram-executive-view/samples/executive-view-diagram-system/executive-view.svg - https://design-vault.pages.dev/designs/diagram-executive-view/samples/executive-view-diagram-system/layout.json - https://design-vault.pages.dev/ai/assets/diagram-executive-view.json ## できる編集 公開された `.drawio` は圧縮されていない XML です。draw.io で開いて直せますし、テキストとして差分も取れます。 この図種がエンジン経由で受け付ける操作: moveNode, refreshExecutiveIndicator > Mermaid: an Executive item means the semantic region it sits in ## 新しく書く場合 `diagram-spec.json` は下の schema に沿って書けます。 - https://design-vault.pages.dev/schemas/diagram-spec.schema.json - https://design-vault.pages.dev/schemas/layout.schema.json ## ここでできないこと **書いた spec の検証と `layout.json` の計算はできません。** それを行う生成エンジンは公開されていません。公開されているのは成果物と入力と schema までです。座標を自分で決めるか、エンジンを持っている人に渡してください。 ## ライセンス 図と入力は CC BY 4.0 です。使うときはクレジットを添えてください。 > "Executive Decision View" by zawa, licensed under CC BY 4.0. https://creativecommons.org/licenses/by/4.0/ schema は MIT です。
/designs/diagram-executive-view/samples/executive-view-diagram-system/diagram-spec.json
{
"$schema": "../../../../schemas/diagram-spec.schema.json",
"schemaVersion": "2.0",
"diagramKind": "executive-view",
"id": "diagram-system-executive-review",
"title": "Diagram System — Phase 8 Executive Review",
"description": "A decision-oriented summary of Phase 8 completion evidence, current risks, and requested next decisions.",
"language": "en",
"asOfDate": "2026-08-14",
"objective": "Complete four distinct, trustworthy planning and enterprise views without weakening existing diagram contracts.",
"recommendation": "Accept Phase 8 as complete and evaluate Phase 9 interoperability value before authorizing implementation.",
"nodes": [
{
"id": "phase-eight-coverage",
"type": "indicator",
"title": "Phase 8 coverage",
"description": "Timeline, Roadmap, Capability Map, and Executive View are implemented as independent profiles.",
"value": "4 views",
"target": "4 views",
"trend": "improving",
"status": "on-track"
},
{
"id": "profile-catalog",
"type": "indicator",
"title": "Profile catalog",
"description": "All supported semantics resolve through the profile registry and shared Scene pipeline.",
"value": "16 profiles",
"target": "16 profiles",
"trend": "improving",
"status": "on-track"
},
{
"id": "visual-baselines",
"type": "indicator",
"title": "Visual baselines",
"description": "Every representative project has deterministic draw.io, SVG, and PNG evidence.",
"value": "16 baselines",
"target": "16 baselines",
"trend": "steady",
"status": "on-track"
},
{
"id": "managed-editing",
"type": "indicator",
"title": "Managed editing",
"description": "Each Phase 8 profile preserves stable IDs and guarded dry-run synchronization.",
"value": "4 guarded flows",
"target": "4 guarded flows",
"trend": "steady",
"status": "on-track"
},
{
"id": "normalization-backlog",
"type": "risk",
"title": "Legacy normalization backlog",
"description": "Four earlier editorial samples are not yet in canonical JSON formatting.",
"impact": "medium",
"response": "Keep the pre-existing backlog isolated and address it as a separate maintenance change.",
"status": "watch"
},
{
"id": "reviewer-availability",
"type": "risk",
"title": "External reviewer availability",
"description": "The external review command can fail independently of repository quality gates.",
"impact": "low",
"response": "Retain focused tests, full gates, deterministic outputs, and a documented manual audit.",
"status": "open"
},
{
"id": "phase-nine-entry",
"type": "decision",
"title": "Phase 9 entry",
"description": "Choose whether interoperability discovery should replace the completed Phase 8 goal.",
"recommendation": "Approve value and scope assessment only; do not start implementation implicitly.",
"status": "open"
},
{
"id": "release-boundary",
"type": "decision",
"title": "Release boundary",
"description": "Decide when the completed local Phase 8 changes become shared repository state.",
"recommendation": "Keep commit and push separate; push only after explicit approval.",
"status": "approved"
}
],
"edges": []
}
/designs/diagram-executive-view/samples/executive-view-diagram-system/executive-view.drawio
<?xml version="1.0" encoding="UTF-8"?> <mxfile host="app.diagrams.net" compressed="false"> <diagram id="diagram-system-executive-review" name="Executive Decision View" syncFormat="1.0" diagramKind="executive-view" executiveAsOfDate="2026-08-14" executiveObjective="Complete four distinct, trustworthy planning and enterprise views without weakening existing diagram contracts." executiveRecommendation="Accept Phase 8 as complete and evaluate Phase 9 interoperability value before authorizing implementation." inputHash="376a26b3e53dc4af0fafaf2e3f8b4a9ffba7c57a4eeedd8d17934f206401202c" generatorVersion="0.8.3"> <mxGraphModel dx="1200" dy="820" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="980" math="0" shadow="0"> <root> <mxCell id="0"/> <mxCell id="1" parent="0"/> <mxCell id="diagram-title" value="Diagram System — Phase 8 Executive Review" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=23;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="32" y="22" width="720" height="42" as="geometry"/></mxCell> <mxCell id="legend-0-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="32" y="85" width="10" height="10" as="geometry"/></mxCell> <mxCell id="legend-0-text" value="On track / approved" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="49" y="77" width="170" height="28" as="geometry"/></mxCell> <mxCell id="legend-1-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#C58A21;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="254" y="85" width="10" height="10" as="geometry"/></mxCell> <mxCell id="legend-1-text" value="Needs attention" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="271" y="77" width="170" height="28" as="geometry"/></mxCell> <mxCell id="legend-2-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#B44343;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="476" y="85" width="10" height="10" as="geometry"/></mxCell> <mxCell id="legend-2-text" value="Critical / off track" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="493" y="77" width="170" height="28" as="geometry"/></mxCell> <mxCell id="executive-as-of" value="AS OF 2026-08-14" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1" syncRole="executive-as-of"><mxGeometry x="32" y="108" width="260" height="24" as="geometry"/></mxCell> <mxCell id="executive-objective" value="Complete four distinct, trustworthy planning and enterprise views without weakening existing diagram contracts." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=18;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1" syncRole="executive-objective"><mxGeometry x="32" y="132" width="1536" height="34" as="geometry"/></mxCell> <mxCell id="executive-recommendation" value="RECOMMENDATION Accept Phase 8 as complete and evaluate Phase 9 interoperability value before authorizing implementation." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;rounded=1;arcSize=8;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.4;spacingLeft=14;" vertex="1" parent="1" syncRole="executive-recommendation"><mxGeometry x="32" y="174" width="1536" height="42" as="geometry"/></mxCell> <mxCell id="executive-section-indicators" value="" style="rounded=1;arcSize=6;fillColor=none;strokeColor=#DCE2E9;strokeWidth=1;dashed=1;dashPattern=4 6;" vertex="1" parent="1" syncRole="executive-section" executiveSection="indicators"><mxGeometry x="32" y="240" width="1536" height="180" as="geometry"/></mxCell> <mxCell id="executive-section-indicators-label" value="PERFORMANCE SIGNALS" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1" syncRole="executive-section-label"><mxGeometry x="40" y="210" width="1520" height="22" as="geometry"/></mxCell> <mxCell id="executive-section-risks" value="" style="rounded=1;arcSize=6;fillColor=none;strokeColor=#DCE2E9;strokeWidth=1;dashed=1;dashPattern=4 6;" vertex="1" parent="1" syncRole="executive-section" executiveSection="risks"><mxGeometry x="32" y="460" width="874.64" height="488" as="geometry"/></mxCell> <mxCell id="executive-section-risks-label" value="RISKS & RESPONSES" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1" syncRole="executive-section-label"><mxGeometry x="40" y="430" width="858.64" height="22" as="geometry"/></mxCell> <mxCell id="executive-section-decisions" value="" style="rounded=1;arcSize=6;fillColor=none;strokeColor=#DCE2E9;strokeWidth=1;dashed=1;dashPattern=4 6;" vertex="1" parent="1" syncRole="executive-section" executiveSection="decisions"><mxGeometry x="934.64" y="460" width="633.36" height="488" as="geometry"/></mxCell> <mxCell id="executive-section-decisions-label" value="DECISIONS" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1" syncRole="executive-section-label"><mxGeometry x="942.64" y="430" width="617.36" height="22" as="geometry"/></mxCell> <object id="phase-eight-coverage" label="" componentId="phase-eight-coverage" executiveItemType="indicator" variant="delegated" executiveStatus="on-track" executiveTrend="improving" value="4 views" target="4 views" description="Timeline, Roadmap, Capability Map, and Executive View are implemented as independent profiles."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="52" y="265" width="360" height="130" as="geometry"/></mxCell></object> <mxCell id="phase-eight-coverage--accent" value="" style="rounded=1;arcSize=4;fillColor=#59697D;strokeColor=none;" vertex="1" parent="phase-eight-coverage" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="130" as="geometry"/></mxCell> <mxCell id="phase-eight-coverage--title" value="Phase 8 coverage" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="phase-eight-coverage" syncRole="title" ownerId="phase-eight-coverage"><mxGeometry x="18" y="10" width="248" height="28" as="geometry"/></mxCell> <mxCell id="phase-eight-coverage--status" value="ON-TRACK" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#59697D;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#59697D;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="phase-eight-coverage" syncRole="executive-status" ownerId="phase-eight-coverage"><mxGeometry x="272" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="phase-eight-coverage--value" value="4 views" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=22;fontStyle=1;fontColor=#59697D;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="phase-eight-coverage" syncRole="executive-value" ownerId="phase-eight-coverage"><mxGeometry x="18" y="43" width="324" height="34" as="geometry"/></mxCell> <mxCell id="phase-eight-coverage--target" value="TARGET 4 views · IMPROVING" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="phase-eight-coverage" syncRole="executive-target" ownerId="phase-eight-coverage"><mxGeometry x="18" y="78" width="324" height="20" as="geometry"/></mxCell> <mxCell id="phase-eight-coverage--description" value="Timeline, Roadmap, Capability Map, and Executive View are implemented as independent profiles." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="phase-eight-coverage" syncRole="description" ownerId="phase-eight-coverage"><mxGeometry x="18" y="99" width="324" height="25" as="geometry"/></mxCell> <object id="profile-catalog" label="" componentId="profile-catalog" executiveItemType="indicator" variant="delegated" executiveStatus="on-track" executiveTrend="improving" value="16 profiles" target="16 profiles" description="All supported semantics resolve through the profile registry and shared Scene pipeline."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="432" y="265" width="360" height="130" as="geometry"/></mxCell></object> <mxCell id="profile-catalog--accent" value="" style="rounded=1;arcSize=4;fillColor=#59697D;strokeColor=none;" vertex="1" parent="profile-catalog" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="130" as="geometry"/></mxCell> <mxCell id="profile-catalog--title" value="Profile catalog" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="profile-catalog" syncRole="title" ownerId="profile-catalog"><mxGeometry x="18" y="10" width="248" height="28" as="geometry"/></mxCell> <mxCell id="profile-catalog--status" value="ON-TRACK" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#59697D;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#59697D;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="profile-catalog" syncRole="executive-status" ownerId="profile-catalog"><mxGeometry x="272" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="profile-catalog--value" value="16 profiles" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=22;fontStyle=1;fontColor=#59697D;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="profile-catalog" syncRole="executive-value" ownerId="profile-catalog"><mxGeometry x="18" y="43" width="324" height="34" as="geometry"/></mxCell> <mxCell id="profile-catalog--target" value="TARGET 16 profiles · IMPROVING" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="profile-catalog" syncRole="executive-target" ownerId="profile-catalog"><mxGeometry x="18" y="78" width="324" height="20" as="geometry"/></mxCell> <mxCell id="profile-catalog--description" value="All supported semantics resolve through the profile registry and shared Scene pipeline." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="profile-catalog" syncRole="description" ownerId="profile-catalog"><mxGeometry x="18" y="99" width="324" height="25" as="geometry"/></mxCell> <object id="visual-baselines" label="" componentId="visual-baselines" executiveItemType="indicator" variant="delegated" executiveStatus="on-track" executiveTrend="steady" value="16 baselines" target="16 baselines" description="Every representative project has deterministic draw.io, SVG, and PNG evidence."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="812" y="265" width="360" height="130" as="geometry"/></mxCell></object> <mxCell id="visual-baselines--accent" value="" style="rounded=1;arcSize=4;fillColor=#59697D;strokeColor=none;" vertex="1" parent="visual-baselines" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="130" as="geometry"/></mxCell> <mxCell id="visual-baselines--title" value="Visual baselines" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="visual-baselines" syncRole="title" ownerId="visual-baselines"><mxGeometry x="18" y="10" width="248" height="28" as="geometry"/></mxCell> <mxCell id="visual-baselines--status" value="ON-TRACK" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#59697D;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#59697D;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="visual-baselines" syncRole="executive-status" ownerId="visual-baselines"><mxGeometry x="272" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="visual-baselines--value" value="16 baselines" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=22;fontStyle=1;fontColor=#59697D;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="visual-baselines" syncRole="executive-value" ownerId="visual-baselines"><mxGeometry x="18" y="43" width="324" height="34" as="geometry"/></mxCell> <mxCell id="visual-baselines--target" value="TARGET 16 baselines · STEADY" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="visual-baselines" syncRole="executive-target" ownerId="visual-baselines"><mxGeometry x="18" y="78" width="324" height="20" as="geometry"/></mxCell> <mxCell id="visual-baselines--description" value="Every representative project has deterministic draw.io, SVG, and PNG evidence." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="visual-baselines" syncRole="description" ownerId="visual-baselines"><mxGeometry x="18" y="99" width="324" height="25" as="geometry"/></mxCell> <object id="managed-editing" label="" componentId="managed-editing" executiveItemType="indicator" variant="delegated" executiveStatus="on-track" executiveTrend="steady" value="4 guarded flows" target="4 guarded flows" description="Each Phase 8 profile preserves stable IDs and guarded dry-run synchronization."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="1192" y="265" width="360" height="130" as="geometry"/></mxCell></object> <mxCell id="managed-editing--accent" value="" style="rounded=1;arcSize=4;fillColor=#59697D;strokeColor=none;" vertex="1" parent="managed-editing" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="130" as="geometry"/></mxCell> <mxCell id="managed-editing--title" value="Managed editing" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="managed-editing" syncRole="title" ownerId="managed-editing"><mxGeometry x="18" y="10" width="248" height="28" as="geometry"/></mxCell> <mxCell id="managed-editing--status" value="ON-TRACK" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#59697D;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#59697D;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="managed-editing" syncRole="executive-status" ownerId="managed-editing"><mxGeometry x="272" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="managed-editing--value" value="4 guarded flows" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=22;fontStyle=1;fontColor=#59697D;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="managed-editing" syncRole="executive-value" ownerId="managed-editing"><mxGeometry x="18" y="43" width="324" height="34" as="geometry"/></mxCell> <mxCell id="managed-editing--target" value="TARGET 4 guarded flows · STEADY" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=1;fontColor=#58616C;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="managed-editing" syncRole="executive-target" ownerId="managed-editing"><mxGeometry x="18" y="78" width="324" height="20" as="geometry"/></mxCell> <mxCell id="managed-editing--description" value="Each Phase 8 profile preserves stable IDs and guarded dry-run synchronization." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=9;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="managed-editing" syncRole="description" ownerId="managed-editing"><mxGeometry x="18" y="99" width="324" height="25" as="geometry"/></mxCell> <object id="normalization-backlog" label="" componentId="normalization-backlog" executiveItemType="risk" variant="warning" executiveStatus="watch" impact="medium" response="Keep the pre-existing backlog isolated and address it as a separate maintenance change." description="Four earlier editorial samples are not yet in canonical JSON formatting."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFF8E8;strokeColor=#C58A21;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="52" y="500" width="397" height="180" as="geometry"/></mxCell></object> <mxCell id="normalization-backlog--accent" value="" style="rounded=1;arcSize=4;fillColor=#C58A21;strokeColor=none;" vertex="1" parent="normalization-backlog" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="180" as="geometry"/></mxCell> <mxCell id="normalization-backlog--title" value="Legacy normalization backlog" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="normalization-backlog" syncRole="title" ownerId="normalization-backlog"><mxGeometry x="18" y="10" width="285" height="28" as="geometry"/></mxCell> <mxCell id="normalization-backlog--status" value="WATCH" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#C58A21;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#C58A21;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="normalization-backlog" syncRole="executive-status" ownerId="normalization-backlog"><mxGeometry x="309" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="normalization-backlog--description" value="Four earlier editorial samples are not yet in canonical JSON formatting." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="normalization-backlog" syncRole="description" ownerId="normalization-backlog"><mxGeometry x="18" y="43" width="361" height="44" as="geometry"/></mxCell> <mxCell id="normalization-backlog--response" value="Keep the pre-existing backlog isolated and address it as a separate maintenance change." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#C58A21;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="normalization-backlog" syncRole="executive-response" ownerId="normalization-backlog"><mxGeometry x="18" y="91" width="361" height="81" as="geometry"/></mxCell> <object id="reviewer-availability" label="" componentId="reviewer-availability" executiveItemType="risk" variant="external" executiveStatus="open" impact="low" response="Retain focused tests, full gates, deterministic outputs, and a documented manual audit." description="The external review command can fail independently of repository quality gates."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#69717D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="469" y="500" width="397" height="180" as="geometry"/></mxCell></object> <mxCell id="reviewer-availability--accent" value="" style="rounded=1;arcSize=4;fillColor=#69717D;strokeColor=none;" vertex="1" parent="reviewer-availability" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="180" as="geometry"/></mxCell> <mxCell id="reviewer-availability--title" value="External reviewer availability" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="reviewer-availability" syncRole="title" ownerId="reviewer-availability"><mxGeometry x="18" y="10" width="285" height="28" as="geometry"/></mxCell> <mxCell id="reviewer-availability--status" value="OPEN" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#69717D;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#69717D;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="reviewer-availability" syncRole="executive-status" ownerId="reviewer-availability"><mxGeometry x="309" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="reviewer-availability--description" value="The external review command can fail independently of repository quality gates." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="reviewer-availability" syncRole="description" ownerId="reviewer-availability"><mxGeometry x="18" y="43" width="361" height="44" as="geometry"/></mxCell> <mxCell id="reviewer-availability--response" value="Retain focused tests, full gates, deterministic outputs, and a documented manual audit." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#69717D;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="reviewer-availability" syncRole="executive-response" ownerId="reviewer-availability"><mxGeometry x="18" y="91" width="361" height="81" as="geometry"/></mxCell> <object id="phase-nine-entry" label="" componentId="phase-nine-entry" executiveItemType="decision" variant="warning" executiveStatus="open" recommendation="Approve value and scope assessment only; do not start implementation implicitly." description="Choose whether interoperability discovery should replace the completed Phase 8 goal."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFF8E8;strokeColor=#C58A21;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="955" y="500" width="590" height="180" as="geometry"/></mxCell></object> <mxCell id="phase-nine-entry--accent" value="" style="rounded=1;arcSize=4;fillColor=#C58A21;strokeColor=none;" vertex="1" parent="phase-nine-entry" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="180" as="geometry"/></mxCell> <mxCell id="phase-nine-entry--title" value="Phase 9 entry" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="phase-nine-entry" syncRole="title" ownerId="phase-nine-entry"><mxGeometry x="18" y="10" width="478" height="28" as="geometry"/></mxCell> <mxCell id="phase-nine-entry--status" value="OPEN" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#C58A21;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#C58A21;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="phase-nine-entry" syncRole="executive-status" ownerId="phase-nine-entry"><mxGeometry x="502" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="phase-nine-entry--description" value="Choose whether interoperability discovery should replace the completed Phase 8 goal." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="phase-nine-entry" syncRole="description" ownerId="phase-nine-entry"><mxGeometry x="18" y="43" width="554" height="44" as="geometry"/></mxCell> <mxCell id="phase-nine-entry--recommendation" value="Approve value and scope assessment only; do not start implementation implicitly." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#C58A21;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="phase-nine-entry" syncRole="executive-recommendation" ownerId="phase-nine-entry"><mxGeometry x="18" y="91" width="554" height="81" as="geometry"/></mxCell> <object id="release-boundary" label="" componentId="release-boundary" executiveItemType="decision" variant="delegated" executiveStatus="approved" recommendation="Keep commit and push separate; push only after explicit approval." description="Decide when the completed local Phase 8 changes become shared repository state."><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="955" y="710" width="590" height="180" as="geometry"/></mxCell></object> <mxCell id="release-boundary--accent" value="" style="rounded=1;arcSize=4;fillColor=#59697D;strokeColor=none;" vertex="1" parent="release-boundary" syncRole="executive-accent"><mxGeometry x="0" y="0" width="6" height="180" as="geometry"/></mxCell> <mxCell id="release-boundary--title" value="Release boundary" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="release-boundary" syncRole="title" ownerId="release-boundary"><mxGeometry x="18" y="10" width="478" height="28" as="geometry"/></mxCell> <mxCell id="release-boundary--status" value="APPROVED" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=8;fontStyle=1;fontColor=#59697D;spacing=0;align=center;verticalAlign=middle;rounded=1;arcSize=10;strokeColor=#59697D;strokeWidth=1;fillColor=#FFFFFF;" vertex="1" parent="release-boundary" syncRole="executive-status" ownerId="release-boundary"><mxGeometry x="502" y="12" width="76" height="22" as="geometry"/></mxCell> <mxCell id="release-boundary--description" value="Decide when the completed local Phase 8 changes become shared repository state." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=0;fontColor=#58616C;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="release-boundary" syncRole="description" ownerId="release-boundary"><mxGeometry x="18" y="43" width="554" height="44" as="geometry"/></mxCell> <mxCell id="release-boundary--recommendation" value="Keep commit and push separate; push only after explicit approval." style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=10;fontStyle=1;fontColor=#59697D;spacing=0;align=left;verticalAlign=top;" vertex="1" parent="release-boundary" syncRole="executive-recommendation" ownerId="release-boundary"><mxGeometry x="18" y="91" width="554" height="81" as="geometry"/></mxCell> </root> </mxGraphModel> </diagram> </mxfile>
/designs/diagram-executive-view/samples/executive-view-diagram-system/layout.json
{
"$schema": "../../../../schemas/layout.schema.json",
"schemaVersion": "1.0",
"canvas": {
"width": 1600,
"height": 980
},
"nodes": {
"phase-eight-coverage": {
"x": 52,
"y": 265,
"width": 360,
"height": 130
},
"profile-catalog": {
"x": 432,
"y": 265,
"width": 360,
"height": 130
},
"visual-baselines": {
"x": 812,
"y": 265,
"width": 360,
"height": 130
},
"managed-editing": {
"x": 1192,
"y": 265,
"width": 360,
"height": 130
},
"normalization-backlog": {
"x": 52,
"y": 500,
"width": 397,
"height": 180
},
"reviewer-availability": {
"x": 469,
"y": 500,
"width": 397,
"height": 180
},
"phase-nine-entry": {
"x": 955,
"y": 500,
"width": 590,
"height": 180
},
"release-boundary": {
"x": 955,
"y": 710,
"width": 590,
"height": 180
}
},
"edges": {}
}
/schemas/diagram-spec.schema.json — 大きいのでファイルで渡す(コピーは 32KB まで)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.local/schemas/diagram-spec.schema.json",
"title": "Editorial diagram semantic specification",
"oneOf": [
{ "$ref": "#/$defs/legacyArchitectureSpec" },
{ "$ref": "#/$defs/architectureSpec" },
{ "$ref": "#/$defs/c4SystemContextSpec" },
{ "$ref": "#/$defs/c4ContainerSpec" },
{ "$ref": "#/$defs/dataFlowSpec" },
{ "$ref": "#/$defs/deploymentSpec" },
{ "$ref": "#/$defs/bpmnLiteSpec" },
{ "$ref": "#/$defs/sequenceSpec" },
{ "$ref": "#/$defs/erSpec" },
{ "$ref": "#/$defs/stateSpec" },
{ "$ref": "#/$defs/decisionTreeSpec" },
{ "$ref": "#/$defs/timelineSpec" },
{ "$ref": "#/$defs/roadmapSpec" },
{ "$ref": "#/$defs/capabilityMapSpec" },
{ "$ref": "#/$defs/executiveViewSpec" }
],
"$defs": {
"baseSpec": {
"type": "object",
"required": ["schemaVersion", "id", "title", "language", "legend", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "type": "string" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"legend": {
"type": "array",
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": ["label", "variant"],
"properties": {
"label": { "type": "string", "minLength": 1, "maxLength": 60 },
"variant": { "$ref": "#/$defs/variant" }
}
}
},
"boundaries": {
"type": "array",
"maxItems": 50,
"items": { "$ref": "#/$defs/boundary" }
},
"nodes": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/$defs/node" }
},
"edges": {
"type": "array",
"items": { "$ref": "#/$defs/edge" }
}
}
},
"legacyArchitectureSpec": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/baseSpec" },
{
"type": "object",
"properties": {
"schemaVersion": { "const": "1.0" }
}
}
],
"unevaluatedProperties": false
},
"architectureSpec": {
"type": "object",
"allOf": [
{ "$ref": "#/$defs/baseSpec" },
{
"type": "object",
"required": ["diagramKind"],
"properties": {
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "architecture" }
}
}
],
"unevaluatedProperties": false
},
"c4SystemContextSpec": {
"type": "object",
"additionalProperties": false,
"required": [
"schemaVersion", "diagramKind", "id", "title", "language", "scopeSystemId",
"scopeBoundaryId", "boundaries", "nodes", "edges"
],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "c4-system-context" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"scopeSystemId": { "$ref": "#/$defs/id" },
"scopeBoundaryId": { "$ref": "#/$defs/id" },
"boundaries": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": { "$ref": "#/$defs/c4SystemBoundary" }
},
"nodes": {
"type": "array",
"minItems": 2,
"maxItems": 50,
"items": { "$ref": "#/$defs/c4Element" }
},
"edges": {
"type": "array",
"minItems": 1,
"maxItems": 100,
"items": { "$ref": "#/$defs/c4Relationship" }
}
}
},
"c4SystemBoundary": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "system-boundary" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"c4Element": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["person", "software-system", "external-system"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"c4Relationship": {
"type": "object",
"additionalProperties": false,
"required": ["id", "from", "to", "type", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"type": { "const": "relationship" },
"description": { "type": "string", "minLength": 3, "maxLength": 160 },
"technology": { "type": "string", "minLength": 1, "maxLength": 64 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"c4ContainerSpec": {
"type": "object",
"additionalProperties": false,
"required": [
"schemaVersion", "diagramKind", "id", "title", "language", "contextDiagramId",
"scopeSystemId", "scopeBoundaryId", "boundaries", "nodes", "edges"
],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "c4-container" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"contextDiagramId": { "$ref": "#/$defs/id" },
"scopeSystemId": { "$ref": "#/$defs/id" },
"scopeBoundaryId": { "$ref": "#/$defs/id" },
"boundaries": {
"type": "array",
"minItems": 1,
"maxItems": 8,
"items": { "$ref": "#/$defs/c4SystemBoundary" }
},
"nodes": {
"type": "array",
"minItems": 1,
"maxItems": 80,
"items": { "$ref": "#/$defs/c4ContainerElement" }
},
"edges": {
"type": "array",
"minItems": 1,
"maxItems": 160,
"items": { "$ref": "#/$defs/c4Relationship" }
}
}
},
"c4ContainerElement": {
"oneOf": [
{ "$ref": "#/$defs/c4ContainerPrimary" },
{ "$ref": "#/$defs/c4ContainerSupportingElement" }
]
},
"c4ContainerPrimary": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "containerKind", "title", "description", "technology"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "container" },
"containerKind": { "enum": ["application", "data-store"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"technology": { "type": "string", "minLength": 1, "maxLength": 80 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"c4ContainerSupportingElement": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["person", "external-system"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"bpmnLiteSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "pool", "lanes", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "bpmn-lite" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"pool": { "$ref": "#/$defs/bpmnPool" },
"lanes": {
"type": "array",
"minItems": 2,
"maxItems": 16,
"items": { "$ref": "#/$defs/bpmnLane" }
},
"nodes": {
"type": "array",
"minItems": 4,
"maxItems": 160,
"items": { "$ref": "#/$defs/bpmnFlowNode" }
},
"edges": {
"type": "array",
"minItems": 3,
"maxItems": 320,
"items": { "$ref": "#/$defs/bpmnSequenceFlow" }
}
}
},
"bpmnPool": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "pool" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"bpmnLane": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "lane" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"bpmnFlowNode": {
"oneOf": [
{ "$ref": "#/$defs/bpmnSimpleFlowNode" },
{ "$ref": "#/$defs/bpmnGateway" }
]
},
"bpmnSimpleFlowNode": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "laneId"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["start-event", "end-event", "task"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"laneId": { "$ref": "#/$defs/id" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"bpmnGateway": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "laneId", "gatewayRole"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["exclusive-gateway", "parallel-gateway"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"laneId": { "$ref": "#/$defs/id" },
"gatewayRole": { "enum": ["split", "join"] },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"bpmnSequenceFlow": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "from", "to"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "sequence-flow" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"condition": { "type": "string", "minLength": 1, "maxLength": 160 },
"isDefault": { "type": "boolean" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"sequenceSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "nodes", "fragments", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "sequence" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"nodes": { "type": "array", "minItems": 2, "maxItems": 32, "items": { "$ref": "#/$defs/sequenceLifeline" } },
"fragments": { "type": "array", "maxItems": 24, "items": { "$ref": "#/$defs/sequenceFragment" } },
"edges": { "type": "array", "minItems": 1, "maxItems": 320, "items": { "$ref": "#/$defs/sequenceMessage" } }
}
},
"sequenceLifeline": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "occurrenceIds"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "lifeline" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"occurrenceIds": { "type": "array", "minItems": 1, "maxItems": 320, "uniqueItems": true, "items": { "$ref": "#/$defs/id" } },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"sequenceFragment": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "operator", "title", "operands"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "combined-fragment" },
"operator": { "enum": ["alt", "opt", "par"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"operands": { "type": "array", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/$defs/sequenceOperand" } },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"sequenceOperand": {
"type": "object",
"additionalProperties": false,
"required": ["id", "occurrenceIds"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"guard": { "type": "string", "minLength": 1, "maxLength": 120 },
"occurrenceIds": { "type": "array", "minItems": 1, "maxItems": 160, "uniqueItems": true, "items": { "$ref": "#/$defs/id" } }
}
},
"sequenceMessage": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "from", "to", "title", "sendOccurrenceId", "receiveOccurrenceId"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["sync-message", "async-message", "return-message"] },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"sendOccurrenceId": { "$ref": "#/$defs/id" },
"receiveOccurrenceId": { "$ref": "#/$defs/id" },
"replyTo": { "$ref": "#/$defs/id" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"erSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "er" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"nodes": { "type": "array", "minItems": 2, "maxItems": 120, "items": { "$ref": "#/$defs/erEntity" } },
"edges": { "type": "array", "maxItems": 240, "items": { "$ref": "#/$defs/erForeignKey" } }
}
},
"erEntity": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "attributes", "primaryKey", "uniqueKeys"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "entity" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"attributes": { "type": "array", "minItems": 1, "maxItems": 80, "items": { "$ref": "#/$defs/erAttribute" } },
"primaryKey": { "$ref": "#/$defs/erKey" },
"uniqueKeys": { "type": "array", "maxItems": 24, "items": { "$ref": "#/$defs/erKey" } },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"erAttribute": {
"type": "object",
"additionalProperties": false,
"required": ["id", "name", "dataType", "nullable"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"name": { "type": "string", "minLength": 1, "maxLength": 80 },
"dataType": { "type": "string", "minLength": 1, "maxLength": 80 },
"nullable": { "type": "boolean" }
}
},
"erKey": {
"type": "object",
"additionalProperties": false,
"required": ["id", "attributeIds"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"attributeIds": { "type": "array", "maxItems": 16, "items": { "$ref": "#/$defs/id" } }
}
},
"erForeignKey": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "from", "to", "fromAttributeIds", "toAttributeIds", "fromCardinality", "toCardinality", "identifying"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "foreign-key" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"fromAttributeIds": { "type": "array", "maxItems": 16, "items": { "$ref": "#/$defs/id" } },
"toAttributeIds": { "type": "array", "maxItems": 16, "items": { "$ref": "#/$defs/id" } },
"fromCardinality": { "$ref": "#/$defs/erCardinality" },
"toCardinality": { "$ref": "#/$defs/erCardinality" },
"identifying": { "type": "boolean" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"erCardinality": { "enum": ["zero-or-one", "one", "zero-or-many", "one-or-many"] },
"stateSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "initialStateId", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "state" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"initialStateId": { "$ref": "#/$defs/id" },
"nodes": { "type": "array", "minItems": 2, "maxItems": 120, "items": { "$ref": "#/$defs/stateNode" } },
"edges": { "type": "array", "minItems": 1, "maxItems": 240, "items": { "$ref": "#/$defs/stateTransition" } }
}
},
"stateNode": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["state", "final-state"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"stateTransition": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "from", "to", "event"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "transition" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"event": { "type": "string", "minLength": 1, "maxLength": 120 },
"guard": { "type": "string", "minLength": 1, "maxLength": 160 },
"action": { "type": "string", "minLength": 1, "maxLength": 160 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"decisionTreeSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "rootNodeId", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "decision-tree" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"rootNodeId": { "$ref": "#/$defs/id" },
"nodes": { "type": "array", "minItems": 3, "maxItems": 160, "items": { "$ref": "#/$defs/decisionTreeNode" } },
"edges": { "type": "array", "minItems": 2, "maxItems": 320, "items": { "$ref": "#/$defs/decisionBranch" } }
}
},
"decisionTreeNode": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["decision", "outcome"] },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"decisionBranch": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "from", "to", "isDefault"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "branch" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"condition": { "type": "string", "minLength": 1, "maxLength": 160 },
"isDefault": { "type": "boolean" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"timelineSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "windowStart", "windowEnd", "workstreams", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "timeline" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"windowStart": { "$ref": "#/$defs/isoDate" },
"windowEnd": { "$ref": "#/$defs/isoDate" },
"workstreams": { "type": "array", "minItems": 1, "maxItems": 6, "items": { "$ref": "#/$defs/timelineWorkstream" } },
"nodes": { "type": "array", "minItems": 1, "maxItems": 40, "items": { "$ref": "#/$defs/timelineItem" } },
"edges": { "type": "array", "maxItems": 80, "items": { "$ref": "#/$defs/timelineDependency" } }
}
},
"timelineWorkstream": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "workstream" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"timelineItem": {
"oneOf": [
{ "$ref": "#/$defs/timelineTask" },
{ "$ref": "#/$defs/timelineMilestone" }
]
},
"timelineTask": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "workstreamId", "startDate", "endDate", "status"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "task" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"workstreamId": { "$ref": "#/$defs/id" },
"startDate": { "$ref": "#/$defs/isoDate" },
"endDate": { "$ref": "#/$defs/isoDate" },
"status": { "$ref": "#/$defs/timelineStatus" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"timelineMilestone": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "workstreamId", "date", "status"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "milestone" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"workstreamId": { "$ref": "#/$defs/id" },
"date": { "$ref": "#/$defs/isoDate" },
"status": { "$ref": "#/$defs/timelineStatus" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"timelineDependency": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "from", "to"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "finish-to-start" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"timelineStatus": { "enum": ["planned", "active", "blocked", "done"] },
"isoDate": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" },
"roadmapSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "vision", "horizons", "themes", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "roadmap" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"vision": { "type": "string", "minLength": 8, "maxLength": 180 },
"horizons": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "$ref": "#/$defs/roadmapHorizon" } },
"themes": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "$ref": "#/$defs/roadmapTheme" } },
"nodes": { "type": "array", "minItems": 1, "maxItems": 24, "items": { "$ref": "#/$defs/roadmapInitiative" } },
"edges": { "type": "array", "maxItems": 0 }
}
},
"roadmapHorizon": {
"type": "object",
"additionalProperties": false,
"required": ["id", "kind", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"kind": { "enum": ["now", "next", "later"] },
"title": { "type": "string", "minLength": 1, "maxLength": 40 },
"description": { "type": "string", "minLength": 3, "maxLength": 120 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"roadmapTheme": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "theme" },
"title": { "type": "string", "minLength": 1, "maxLength": 60 },
"description": { "type": "string", "minLength": 3, "maxLength": 160 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"roadmapInitiative": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "outcome", "themeId", "horizonId", "status"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "initiative" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 200 },
"outcome": { "type": "string", "minLength": 8, "maxLength": 220 },
"themeId": { "$ref": "#/$defs/id" },
"horizonId": { "$ref": "#/$defs/id" },
"status": { "enum": ["exploring", "planned", "active", "delivered"] },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"capabilityMapSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "scope", "domains", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "capability-map" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"scope": { "type": "string", "minLength": 8, "maxLength": 220 },
"domains": { "type": "array", "minItems": 2, "maxItems": 6, "items": { "$ref": "#/$defs/capabilityDomain" } },
"nodes": { "type": "array", "minItems": 2, "maxItems": 30, "items": { "$ref": "#/$defs/capability" } },
"edges": { "type": "array", "maxItems": 0 }
}
},
"capabilityDomain": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "domain" },
"title": { "type": "string", "minLength": 1, "maxLength": 60 },
"description": { "type": "string", "minLength": 3, "maxLength": 160 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"capability": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "domainId", "strategicImportance"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "capability" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 200 },
"domainId": { "$ref": "#/$defs/id" },
"strategicImportance": { "enum": ["low", "medium", "high"] },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"executiveViewSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "asOfDate", "objective", "recommendation", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "executive-view" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"asOfDate": { "$ref": "#/$defs/isoDate" },
"objective": { "type": "string", "minLength": 8, "maxLength": 220 },
"recommendation": { "type": "string", "minLength": 8, "maxLength": 240 },
"nodes": { "type": "array", "minItems": 4, "maxItems": 13, "items": { "$ref": "#/$defs/executiveItem" } },
"edges": { "type": "array", "maxItems": 0 }
}
},
"executiveItem": {
"oneOf": [
{ "$ref": "#/$defs/executiveIndicator" },
{ "$ref": "#/$defs/executiveRisk" },
{ "$ref": "#/$defs/executiveDecision" }
]
},
"executiveIndicator": {
"type": "object", "additionalProperties": false,
"required": ["id", "type", "title", "description", "value", "target", "trend", "status"],
"properties": {
"id": { "$ref": "#/$defs/id" }, "type": { "const": "indicator" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 200 },
"value": { "type": "string", "minLength": 1, "maxLength": 60 },
"target": { "type": "string", "minLength": 1, "maxLength": 60 },
"trend": { "enum": ["improving", "steady", "declining"] },
"status": { "enum": ["on-track", "at-risk", "off-track"] },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"executiveRisk": {
"type": "object", "additionalProperties": false,
"required": ["id", "type", "title", "description", "impact", "response", "status"],
"properties": {
"id": { "$ref": "#/$defs/id" }, "type": { "const": "risk" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 200 },
"impact": { "enum": ["low", "medium", "high"] },
"response": { "type": "string", "minLength": 3, "maxLength": 220 },
"status": { "enum": ["open", "watch", "mitigated"] },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"executiveDecision": {
"type": "object", "additionalProperties": false,
"required": ["id", "type", "title", "description", "recommendation", "status"],
"properties": {
"id": { "$ref": "#/$defs/id" }, "type": { "const": "decision" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 200 },
"recommendation": { "type": "string", "minLength": 3, "maxLength": 220 },
"status": { "enum": ["open", "approved", "deferred"] },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"dataFlowSpec": {
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "diagramKind", "id", "title", "language", "boundaries", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "data-flow" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"boundaries": {
"type": "array",
"maxItems": 32,
"items": { "$ref": "#/$defs/dataFlowTrustBoundary" }
},
"nodes": {
"type": "array",
"minItems": 2,
"maxItems": 120,
"items": { "$ref": "#/$defs/dataFlowNode" }
},
"edges": {
"type": "array",
"minItems": 1,
"maxItems": 240,
"items": { "$ref": "#/$defs/dataFlowEdge" }
}
}
},
"dataFlowTrustBoundary": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "trustLevel"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "trust-boundary" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"trustLevel": { "enum": ["external", "controlled", "restricted"] },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"dataFlowNode": {
"oneOf": [
{ "$ref": "#/$defs/dataFlowSimpleNode" },
{ "$ref": "#/$defs/dataFlowProcess" },
{ "$ref": "#/$defs/dataFlowDataStore" }
]
},
"dataFlowSimpleNode": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["source", "sink", "external-system"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"dataFlowProcess": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "transformation"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "process" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"transformation": { "type": "string", "minLength": 3, "maxLength": 160 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"dataFlowDataStore": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "classification"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "data-store" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"classification": { "$ref": "#/$defs/dataClassification" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"dataFlowEdge": {
"type": "object",
"additionalProperties": false,
"required": ["id", "from", "to", "type", "dataName", "format", "frequency", "mode", "classification"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"type": { "const": "data-flow" },
"dataName": { "type": "string", "minLength": 1, "maxLength": 100 },
"format": { "type": "string", "minLength": 1, "maxLength": 80 },
"frequency": { "type": "string", "minLength": 1, "maxLength": 80 },
"mode": { "enum": ["batch", "streaming", "request-response"] },
"classification": { "$ref": "#/$defs/dataClassification" },
"trustBoundaryIds": {
"type": "array",
"maxItems": 32,
"uniqueItems": true,
"items": { "$ref": "#/$defs/id" }
},
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"dataClassification": { "enum": ["public", "internal", "confidential", "restricted"] },
"deploymentSpec": {
"type": "object",
"additionalProperties": false,
"required": [
"schemaVersion", "diagramKind", "id", "title", "language", "environment",
"entryNodeIds", "boundaries", "nodes", "edges"
],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "2.0" },
"diagramKind": { "const": "deployment" },
"id": { "$ref": "#/$defs/id" },
"title": { "type": "string", "minLength": 1, "maxLength": 120 },
"description": { "type": "string", "maxLength": 500 },
"language": { "enum": ["en", "ja", "mixed"] },
"metadata": { "$ref": "#/$defs/metadata" },
"environment": { "type": "string", "minLength": 1, "maxLength": 80 },
"entryNodeIds": {
"type": "array",
"minItems": 1,
"maxItems": 32,
"uniqueItems": true,
"items": { "$ref": "#/$defs/id" }
},
"boundaries": {
"type": "array",
"minItems": 4,
"maxItems": 64,
"items": { "$ref": "#/$defs/deploymentBoundary" }
},
"nodes": {
"type": "array",
"minItems": 2,
"maxItems": 160,
"items": { "$ref": "#/$defs/deploymentNode" }
},
"edges": {
"type": "array",
"minItems": 1,
"maxItems": 320,
"items": { "$ref": "#/$defs/deploymentCommunication" }
}
}
},
"deploymentBoundary": {
"oneOf": [
{ "$ref": "#/$defs/deploymentCloudProvider" },
{ "$ref": "#/$defs/deploymentRegion" },
{ "$ref": "#/$defs/deploymentNetworkBoundary" }
]
},
"deploymentCloudProvider": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "cloud-provider" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"deploymentRegion": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "parentId"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "region" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"parentId": { "$ref": "#/$defs/id" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"deploymentNetworkBoundary": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "parentId", "exposure"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["network", "subnet"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"parentId": { "$ref": "#/$defs/id" },
"exposure": { "$ref": "#/$defs/networkExposure" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"deploymentNode": {
"oneOf": [
{ "$ref": "#/$defs/deploymentExternalSystem" },
{ "$ref": "#/$defs/deploymentManagedNode" }
]
},
"deploymentExternalSystem": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "technology", "exposure"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "const": "external-system" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"technology": { "type": "string", "minLength": 1, "maxLength": 100 },
"exposure": { "const": "public" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"deploymentManagedNode": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "title", "description", "technology", "exposure", "boundaryId"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["gateway", "load-balancer", "firewall", "host", "service", "database"] },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"description": { "type": "string", "minLength": 3, "maxLength": 240 },
"technology": { "type": "string", "minLength": 1, "maxLength": 100 },
"exposure": { "$ref": "#/$defs/networkExposure" },
"boundaryId": { "$ref": "#/$defs/id" },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"deploymentCommunication": {
"type": "object",
"additionalProperties": false,
"required": ["id", "from", "to", "type", "description", "protocol", "port"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"type": { "const": "communication" },
"description": { "type": "string", "minLength": 3, "maxLength": 160 },
"protocol": { "type": "string", "minLength": 1, "maxLength": 40 },
"port": { "type": "integer", "minimum": 1, "maximum": 65535 },
"boundaryIds": {
"type": "array",
"maxItems": 64,
"uniqueItems": true,
"items": { "$ref": "#/$defs/id" }
},
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"networkExposure": { "enum": ["public", "private", "restricted"] },
"id": { "type": "string", "pattern": "^[a-z][a-z0-9-]{1,63}$" },
"variant": { "enum": ["realtime", "delegated", "external", "warning", "critical"] },
"status": { "enum": ["planned", "experimental", "beta", "stable", "deprecated", "retired"] },
"metadata": {
"type": "object",
"additionalProperties": { "type": "string", "maxLength": 200 }
},
"boundary": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "variant", "title"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": { "enum": ["system", "network", "trust", "organization", "runtime"] },
"variant": { "$ref": "#/$defs/variant" },
"title": { "type": "string", "minLength": 1, "maxLength": 80 },
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"node": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type", "variant", "status", "title"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"type": {
"enum": [
"actor", "client", "frontend", "backend", "api", "service", "model", "agent",
"tool", "database", "cache", "queue", "event-bus", "storage", "batch-job",
"external-service", "observability", "security", "network", "note"
]
},
"variant": { "$ref": "#/$defs/variant" },
"status": { "$ref": "#/$defs/status" },
"title": { "type": "string", "minLength": 1, "maxLength": 60 },
"subtitle": { "type": "string", "maxLength": 100 },
"icon": { "$ref": "#/$defs/id" },
"controls": {
"type": "array",
"maxItems": 8,
"items": { "type": "string", "minLength": 1, "maxLength": 32 }
},
"metadata": { "$ref": "#/$defs/metadata" }
}
},
"edge": {
"type": "object",
"additionalProperties": false,
"required": ["id", "from", "to", "type", "variant", "direction"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"from": { "$ref": "#/$defs/id" },
"to": { "$ref": "#/$defs/id" },
"type": {
"enum": [
"sync-request", "async-request", "realtime-stream", "event", "batch", "data-read",
"data-write", "control", "monitoring", "authentication"
]
},
"variant": { "$ref": "#/$defs/variant" },
"label": { "type": "string", "maxLength": 80 },
"direction": { "enum": ["forward", "bidirectional"] },
"protocol": { "type": "string", "maxLength": 32 },
"metadata": { "$ref": "#/$defs/metadata" }
}
}
}
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.local/schemas/layout.schema.json",
"title": "Architecture diagram layout",
"type": "object",
"additionalProperties": false,
"required": ["schemaVersion", "canvas", "nodes", "edges"],
"properties": {
"$schema": { "type": "string" },
"schemaVersion": { "const": "1.0" },
"canvas": {
"type": "object",
"additionalProperties": false,
"required": ["width", "height"],
"properties": {
"width": { "type": "integer", "minimum": 320, "maximum": 10000 },
"height": { "type": "integer", "minimum": 240, "maximum": 10000 }
}
},
"boundaries": {
"type": "object",
"additionalProperties": { "$ref": "#/$defs/boundaryGeometry" }
},
"nodes": {
"type": "object",
"additionalProperties": { "$ref": "#/$defs/nodeGeometry" }
},
"edges": {
"type": "object",
"additionalProperties": { "$ref": "#/$defs/edgeGeometry" }
}
},
"$defs": {
"point": {
"type": "object",
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
"x": { "type": "number", "minimum": 0, "maximum": 10000 },
"y": { "type": "number", "minimum": 0, "maximum": 10000 }
}
},
"port": {
"type": "object",
"additionalProperties": false,
"required": ["side", "offset"],
"properties": {
"side": { "enum": ["top", "right", "bottom", "left"] },
"offset": { "type": "number", "minimum": 0, "maximum": 1 }
}
},
"nodeGeometry": {
"type": "object",
"additionalProperties": false,
"required": ["x", "y", "width", "height"],
"properties": {
"x": { "type": "number", "minimum": 0, "maximum": 10000 },
"y": { "type": "number", "minimum": 0, "maximum": 10000 },
"width": { "type": "number", "minimum": 40, "maximum": 3000 },
"height": { "type": "number", "minimum": 30, "maximum": 3000 }
}
},
"boundaryGeometry": {
"type": "object",
"additionalProperties": false,
"required": ["x", "y", "width", "height"],
"properties": {
"x": { "type": "number", "minimum": 0, "maximum": 10000 },
"y": { "type": "number", "minimum": 0, "maximum": 10000 },
"width": { "type": "number", "minimum": 120, "maximum": 10000 },
"height": { "type": "number", "minimum": 80, "maximum": 10000 }
}
},
"edgeGeometry": {
"type": "object",
"additionalProperties": false,
"required": ["source", "target"],
"properties": {
"source": { "$ref": "#/$defs/port" },
"target": { "$ref": "#/$defs/port" },
"waypoints": {
"type": "array",
"maxItems": 20,
"items": { "$ref": "#/$defs/point" }
},
"label": { "$ref": "#/$defs/point" }
}
}
}
}