Migrate all repos into monorepo context folders

Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
This commit is contained in:
2026-06-30 20:39:52 +02:00
parent 2f2b295531
commit a5f8fb49ab
1717 changed files with 447332 additions and 0 deletions
@@ -0,0 +1,117 @@
---
name: scm-info-setup
description: >
Erstellt und validiert die scm-info.yaml für DB-GitLab-Repos.
Stellt sicher, dass die Datei schema-konform ist und alle Pflichtfelder
(version, license, contacts, confidentiality, reference-ids) korrekt gesetzt sind.
Keywords: scm-info, scm-info.yaml, compliance, beam-id, DBISL, license, reference-ids.
compatibility: >
Jedes Projekt im DB-GitLab (git.tech.rz.db.de). Keine speziellen Tools nötig.
metadata:
version: "1.0.0"
author: "#Einfachbahn Lab"
---
# scm-info.yaml erstellen und validieren
Skill für die korrekte Erstellung der Pflichtdatei `scm-info.yaml` in DB-GitLab-Repos.
## Warum?
Die `scm-info.yaml` ist **Pflicht** für jedes Repo im DB-GitLab:
- Verknüpft das Repo mit Beam/LeanIX (Anwendungskontext)
- Ermöglicht VMP-Export von Security-Findings (nur mit gültiger Beam-ID)
- Liefert Kontaktdaten für automatische Container-Annotations
- Wird von der DXP Compliance Suite geprüft — fehlt sie, entstehen Findings
## Harte Regeln (MUST)
1. **Dateiendung `.yaml`**`.yml` wird NICHT akzeptiert
2. **Liegt im Repo-Root** — nicht in Unterordnern
3. **Schema-valide** — wird gegen das scm-info JSON Schema geprüft
4. **`reference-ids` muss gesetzt sein** — echte Beam-ID oder `none`
## Ablauf
### Schritt 1: Informationen ermitteln
1. **Beam-/Referenz-ID** — Aus LeanIX/Beam ermitteln (Format: `A-123456`). Falls unbekannt: `none`
2. **Kontakt-E-Mail** — Team oder Person (wird Container-Annotation `GA_CONTACT`)
3. **Lizenz** — Fast immer `LicenseRef-DBISL` (DB-intern). Open Source: passende Lizenz
4. **Vertraulichkeitsstufe**`internal` (Standard), `public`, `confidential`
### Schritt 2: Datei erstellen
### Minimal-Template
```yaml
---
version: v3
license: LicenseRef-DBISL
contacts: team@deutschebahn.com
confidentiality: internal
reference-ids: none
```
### Erweitert (mit Beam-ID und Custom-Feldern)
```yaml
---
version: v3
license: LicenseRef-DBISL
contacts: team@deutschebahn.com
confidentiality: internal
reference-ids: A-123456
custom:
production-branch: main
integrity: normal
availability: normal
confidentiality: normal
it-service-id: itaps-service-id-1
```
### Schritt 3: Validierung
Prüfe nach Erstellung:
- [ ] Datei heißt `scm-info.yaml` (nicht `.yml`!)
- [ ] Liegt im Repo-Root
- [ ] `version: v3` gesetzt
- [ ] `license` ist gültig (`LicenseRef-DBISL` oder Open-Source-Lizenz)
- [ ] `contacts` enthält gültige E-Mail-Adresse
- [ ] `confidentiality` ist einer von: `public`, `internal`, `confidential`
- [ ] `reference-ids` gesetzt (Beam-ID oder `none`)
## Felder-Referenz
| Feld | Pflicht | Werte | Hinweis |
|------|---------|-------|---------|
| `version` | ✅ | `v3` | Schema-Version |
| `license` | ✅ | `LicenseRef-DBISL`, `Apache-2.0`, `MIT`, ... | Lizenzkompass beachten |
| `contacts` | ✅ | E-Mail-Adresse(n) | Wird Container-Annotation |
| `confidentiality` | ✅ | `public`, `internal`, `confidential` | Repo-Sichtbarkeit anpassen |
| `reference-ids` | ✅ | Beam-ID (`A-123456`) oder `none` | Ohne ID kein VMP-Export |
| `custom.production-branch` | ❌ | Branch-Name | Für pipeship |
| `custom.integrity` | ❌ | `normal`, `high`, `very_high` | Schutzbedarf |
| `custom.availability` | ❌ | `normal`, `high`, `very_high` | Schutzbedarf |
| `custom.it-service-id` | ❌ | ITAPS-ID | Service-Zuordnung |
## Häufige Fehler
| Fehler | Finding | Lösung |
|--------|---------|--------|
| Datei heißt `scm-info.yml` | „scm-info invalid" | Umbenennen zu `.yaml` |
| `reference-ids` fehlt | „scm-info invalid" | Feld ergänzen (auch `none` ist valide) |
| Keine `contacts` | Schema-Fehler | Gültige E-Mail eintragen |
| YAML-Syntaxfehler | „scm-info invalid" | YAML-Linting prüfen |
| VMP-Export geht nicht | — | Echte Beam-ID statt `none` eintragen |
## Zusammenspiel mit pipeship
Wenn pipeship aktiv ist, werden aus `scm-info.yaml` automatisch:
- **`GA_REFERENCE_ID`** ← `reference-ids` (Container-Annotation)
- **`GA_CONTACT`** ← `contacts` (Container-Annotation)
- Compliance Suite prüft zusätzlich: Protected Branches, README, LICENSE
## Weiterführend
- Schema: `git.tech.rz.db.de/db-inner-source/scm-info-json-schema`
- Schnellstart: Developer-Portal-Template `init-app-general` (legt scm-info + README + LICENSE an)
- Compliance-Findings: https://dp.dxc.comp.db.de/compliance/repositories