Doku-Konsistenz 3/4: Board-Layout auf Pucks, veraltete Diagramme entfernt

- gen_board_layout.py zeichnet jetzt runde Pucks (Aussenring + 7 Figurenmulden +
  zentrales Etikett, Gate-Puck rot) statt eckiger Steck-Tiles; board-layout.svg
  neu generiert (40 Pucks, well-formed XML).
- Entfernt (veraltet, nirgends referenziert, hier nicht verifizierbar neu
  zeichenbar): board-layout.png (alte Tiles), bauteile-masse.svg,
  00_Konzept/raci-aktiv-feld.svg, raci-tile-variante.svg.
  Massgeblich bleiben materialliste.md + die OpenSCAD-Modelle (echte Renderings).
- README_3d-druck Inhaltstabelle nachgezogen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
breitenbach76 2026-06-05 11:43:07 +02:00
parent 300dc17740
commit ab61222cf2
7 changed files with 555 additions and 703 deletions

View file

@ -1,114 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="520" viewBox="0 0 900 520" font-family="system-ui, Arial, sans-serif">
<style>
.part { fill:#eef2f7; stroke:#1d2430; stroke-width:1.5; }
.recess { fill:#dde5ee; stroke:#1d2430; stroke-width:1; }
.plate { fill:#e8eef5; stroke:#1d2430; stroke-width:1.5; }
.field { fill:#f7f9fb; stroke:#9fb2c6; stroke-width:1.2; }
.frame { fill:none; stroke:#9fb2c6; stroke-width:1; stroke-dasharray:3 2; }
.afield { stroke:#c0392b; stroke-width:2; }
.spot { fill:#ffffff; stroke:#2f80c9; stroke-width:1; stroke-dasharray:3 2; }
.zlet { font-size:24px; font-weight:700; text-anchor:middle; fill:#1d2430; }
.h1 { fill:#1d2430; font-size:18px; font-weight:700; }
.sub { fill:#444; font-size:12px; }
.cap { fill:#1d2430; font-size:13px; font-weight:700; }
.lbl { fill:#444; font-size:11px; text-anchor:middle; }
.pl { fill:#1d2430; font-size:10px; font-weight:700; text-anchor:middle; }
.arrow { stroke:#1d2430; stroke-width:1.5; fill:none; }
</style>
<rect x="0" y="0" width="900" height="520" fill="#ffffff"/>
<defs>
<marker id="ah" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto">
<path d="M0,0 L6,3 L0,6 Z" fill="#1d2430"/>
</marker>
</defs>
<text x="30" y="32" class="h1">RACI-Lösung: das Aktiv-Feld (RACI-Fläche)</text>
<text x="30" y="52" class="sub">Eine flache Platte mit 4 abgetrennten Bereichen R · A · C · I, je 4 Standflächen (2×2), symmetrisch. Liegt neben dem Action-Stein und wandert mit.</text>
<text x="30" y="78" class="cap">Beispiel: ds_01 — A: Service Owner · R: Projektleitung · C: Betrieb, Architektur, SPM · I: frei</text>
<!-- ===== Tile mit Action-Stein ===== -->
<g transform="translate(40,110)">
<text x="100" y="-8" class="lbl">Aktivitäts-Tile (Draufsicht)</text>
<rect x="0" y="0" width="200" height="200" rx="6" class="part"/>
<circle cx="100" cy="100" r="60" class="recess"/>
<circle cx="100" cy="100" r="59" fill="#e9eef4" stroke="#1d2430" stroke-width="1"/>
<circle cx="100" cy="100" r="35" fill="#cfd8e3" stroke="#1d2430" stroke-width="1"/>
<rect x="30" y="95" width="140" height="10" rx="2" fill="#ffffff" stroke="#1d2430" stroke-width="1"/>
<text x="100" y="103" class="lbl">Szenario-Karte</text>
<text x="100" y="226" class="lbl">Action-Stein steht in der Verankerung</text>
<text x="100" y="242" class="lbl">(„wir sind hier") · Tile bleibt blank</text>
</g>
<!-- ===== Verbinder ===== -->
<g transform="translate(250,200)">
<path d="M 0 0 L 60 0" class="arrow" marker-end="url(#ah)"/>
<text x="30" y="-10" class="lbl">liegt daneben</text>
<text x="30" y="22" class="lbl">&amp; wandert mit</text>
</g>
<!-- ===== RACI-Fläche: Platte mit 4 Feldern (je 2x2) ===== -->
<g transform="translate(330,150)">
<text x="0" y="-12" class="lbl" text-anchor="start">RACI-Fläche — Rollen-Figuren je Bereich gestellt</text>
<!-- Platte -->
<rect x="-8" y="-8" width="404" height="116" rx="8" class="plate"/>
<!-- Feld R -->
<g transform="translate(0,0)">
<rect x="0" y="0" width="84" height="100" rx="6" class="field"/>
<rect x="4" y="4" width="76" height="92" rx="4" class="frame"/>
<circle cx="24" cy="26" r="12" class="spot"/><circle cx="60" cy="26" r="12" class="spot"/>
<circle cx="24" cy="58" r="12" class="spot"/><circle cx="60" cy="58" r="12" class="spot"/>
<g transform="translate(24,14)"><circle cx="0" cy="6" r="6" fill="#2f80c9" stroke="#1d2430"/><path d="M -8 24 Q 0 9 8 24 Z" fill="#2f80c9" stroke="#1d2430"/></g>
<text x="24" y="40" class="pl">PL</text>
<text x="42" y="94" class="zlet">R</text>
</g>
<!-- Feld A (goldene Regel: GENAU 1) -->
<g transform="translate(96,0)">
<rect x="0" y="0" width="84" height="100" rx="6" class="field afield"/>
<rect x="4" y="4" width="76" height="92" rx="4" class="frame"/>
<circle cx="42" cy="34" r="17" class="spot"/>
<g transform="translate(42,18)"><circle cx="0" cy="6" r="7" fill="#d4a017" stroke="#1d2430"/><path d="M -9 28 Q 0 10 9 28 Z" fill="#d4a017" stroke="#1d2430"/></g>
<text x="42" y="52" class="pl">SO</text>
<text x="42" y="68" class="pl" style="fill:#c0392b">genau 1</text>
<text x="42" y="94" class="zlet">A</text>
</g>
<!-- Feld C -->
<g transform="translate(192,0)">
<rect x="0" y="0" width="84" height="100" rx="6" class="field"/>
<rect x="4" y="4" width="76" height="92" rx="4" class="frame"/>
<circle cx="24" cy="26" r="12" class="spot"/><circle cx="60" cy="26" r="12" class="spot"/>
<circle cx="24" cy="58" r="12" class="spot"/><circle cx="60" cy="58" r="12" class="spot"/>
<g transform="translate(24,14)"><circle cx="0" cy="6" r="6" fill="#2f9e57" stroke="#1d2430"/><path d="M -8 24 Q 0 9 8 24 Z" fill="#2f9e57" stroke="#1d2430"/></g>
<text x="24" y="40" class="pl">Betr.</text>
<g transform="translate(60,14)"><circle cx="0" cy="6" r="6" fill="#8a94a3" stroke="#1d2430"/><path d="M -8 24 Q 0 9 8 24 Z" fill="#8a94a3" stroke="#1d2430"/></g>
<text x="60" y="40" class="pl">Arch</text>
<g transform="translate(24,46)"><circle cx="0" cy="6" r="6" fill="#d4a017" stroke="#1d2430"/><path d="M -8 24 Q 0 9 8 24 Z" fill="#d4a017" stroke="#1d2430"/></g>
<text x="24" y="72" class="pl">SPM</text>
<text x="42" y="94" class="zlet">C</text>
</g>
<!-- Feld I (frei) -->
<g transform="translate(288,0)">
<rect x="0" y="0" width="84" height="100" rx="6" class="field"/>
<rect x="4" y="4" width="76" height="92" rx="4" class="frame"/>
<circle cx="24" cy="26" r="12" class="spot"/><circle cx="60" cy="26" r="12" class="spot"/>
<circle cx="24" cy="58" r="12" class="spot"/><circle cx="60" cy="58" r="12" class="spot"/>
<text x="42" y="50" class="lbl">(frei)</text>
<text x="42" y="94" class="zlet">I</text>
</g>
<text x="0" y="138" class="sub">~236 × 74 × 6 mm · R/C/I je 4 Standflächen (2×2) · A = genau 1 · Sockel Ø20, Pitch 24 · keine Löcher</text>
</g>
<!-- ===== Legende ===== -->
<g transform="translate(40,420)">
<text x="0" y="0" class="cap">Figurenfarbe = Rollenkategorie</text>
<circle cx="8" cy="22" r="7" fill="#d4a017" stroke="#1d2430"/><text x="22" y="26" class="sub">Governance (SO, SPM)</text>
<circle cx="208" cy="22" r="7" fill="#2f80c9" stroke="#1d2430"/><text x="222" y="26" class="sub">Management (PL)</text>
<circle cx="372" cy="22" r="7" fill="#2f9e57" stroke="#1d2430"/><text x="386" y="26" class="sub">Teams (Betrieb)</text>
<circle cx="520" cy="22" r="7" fill="#8a94a3" stroke="#1d2430"/><text x="534" y="26" class="sub">Operative (Arch)</text>
<circle cx="676" cy="22" r="7" fill="#ffffff" stroke="#1d2430"/><text x="690" y="26" class="sub">Externe (Lieferant)</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.8 KiB

View file

@ -1,76 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="560" viewBox="0 0 760 560" font-family="system-ui, Arial, sans-serif">
<style>
.tile { fill:#eaf1f9; stroke:#1d2430; stroke-width:2; }
.tab { fill:#eaf1f9; stroke:#1d2430; stroke-width:2; }
.div { stroke:#1d2430; stroke-width:2; }
.quad { font-size:30px; font-weight:700; fill:#9fb2c6; }
.aspot { fill:#fff; stroke:#c0392b; stroke-width:2; stroke-dasharray:4 3; }
.h1 { fill:#1d2430; font-size:18px; font-weight:700; }
.sub { fill:#444; font-size:12px; }
.pl { fill:#1d2430; font-size:11px; font-weight:700; text-anchor:middle; }
.cap { fill:#1d2430; font-size:13px; font-weight:700; }
</style>
<rect x="0" y="0" width="760" height="560" fill="#ffffff"/>
<text x="30" y="32" class="h1">RACI-Tile-Variante: Kreuz-Teilung in 4 Quadranten</text>
<text x="30" y="52" class="sub">Sieht aus wie ein normales Tile, aber durch die Mitte horizontal + vertikal geteilt. Ein Tile, neben dem aktuellen platziert, pro Aktivität bestückt.</text>
<text x="30" y="78" class="sub">Beispiel ds_01 — A: Service Owner · R: Projektleitung · C: Betrieb, Architektur, SPM · I: frei</text>
<!-- ===== RACI-Tile ===== -->
<g transform="translate(120,100)">
<!-- Puzzle-Tabs (Tile-Optik) -->
<rect x="156" y="-14" width="48" height="14" class="tab"/> <!-- N -->
<rect x="360" y="156" width="14" height="48" class="tab"/> <!-- O -->
<!-- Tile body -->
<rect x="0" y="0" width="360" height="360" rx="10" class="tile"/>
<!-- Slots (S/W) -->
<rect x="156" y="346" width="48" height="14" fill="#fff" stroke="#1d2430" stroke-width="1.5" stroke-dasharray="4 3"/>
<rect x="0" y="156" width="14" height="48" fill="#fff" stroke="#1d2430" stroke-width="1.5" stroke-dasharray="4 3"/>
<!-- Kreuz-Teilung -->
<line x1="180" y1="6" x2="180" y2="354" class="div"/>
<line x1="6" y1="180" x2="354" y2="180" class="div"/>
<!-- Quadrant-Buchstaben (Wasserzeichen, Innenecken) -->
<text x="16" y="36" class="quad">R</text>
<text x="330" y="36" class="quad" text-anchor="end">A</text>
<text x="16" y="350" class="quad">C</text>
<text x="330" y="350" class="quad" text-anchor="end">I</text>
<!-- R (oben links): PL -->
<g transform="translate(90,96)"><circle cx="0" cy="10" r="9" fill="#2f80c9" stroke="#1d2430"/><path d="M -13 44 Q 0 16 13 44 Z" fill="#2f80c9" stroke="#1d2430"/></g>
<text x="90" y="156" class="pl">PL</text>
<!-- A (oben rechts): markiertes Einzel-Standfeld + SO -->
<circle cx="270" cy="110" r="26" class="aspot"/>
<g transform="translate(270,96)"><circle cx="0" cy="10" r="9" fill="#d4a017" stroke="#1d2430"/><path d="M -13 44 Q 0 16 13 44 Z" fill="#d4a017" stroke="#1d2430"/></g>
<text x="270" y="156" class="pl">SO (genau 1)</text>
<!-- C (unten links): Betrieb, Arch, SPM -->
<g transform="translate(48,250)"><circle cx="0" cy="10" r="9" fill="#2f9e57" stroke="#1d2430"/><path d="M -13 44 Q 0 16 13 44 Z" fill="#2f9e57" stroke="#1d2430"/></g>
<text x="48" y="312" class="pl">Betrieb</text>
<g transform="translate(96,260)"><circle cx="0" cy="10" r="9" fill="#8a94a3" stroke="#1d2430"/><path d="M -13 44 Q 0 16 13 44 Z" fill="#8a94a3" stroke="#1d2430"/></g>
<text x="96" y="322" class="pl">Arch</text>
<g transform="translate(144,250)"><circle cx="0" cy="10" r="9" fill="#d4a017" stroke="#1d2430"/><path d="M -13 44 Q 0 16 13 44 Z" fill="#d4a017" stroke="#1d2430"/></g>
<text x="144" y="312" class="pl">SPM</text>
<!-- I (unten rechts): frei -->
<text x="270" y="270" class="sub" text-anchor="middle">(frei)</text>
<text x="0" y="392" class="sub">100 × 100 mm · Quadranten ~48 × 48 mm · A = markiertes Einzelfeld · C am stärksten belegt (bis 4)</text>
</g>
<!-- ===== Legende / Hinweis ===== -->
<g transform="translate(540,110)">
<text x="0" y="0" class="cap">Kapazität (Maximum)</text>
<text x="0" y="24" class="sub">A = 1 (immer)</text>
<text x="0" y="44" class="sub">R = bis 3</text>
<text x="0" y="64" class="sub">C = bis 4</text>
<text x="0" y="84" class="sub">I = bis ~2</text>
<text x="0" y="124" class="cap">Warum nicht Eck-Mulden?</text>
<text x="0" y="148" class="sub">1 Mulde = 1 Figur →</text>
<text x="0" y="166" class="sub">reicht für C/R nicht.</text>
<text x="0" y="184" class="sub">Quadrant = Fläche →</text>
<text x="0" y="202" class="sub">mehrere Figuren ok.</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB