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:
@@ -0,0 +1,43 @@
|
||||
"""Gezielte Suche in INB-Hauptdokument nach pathOS-relevanten Themen."""
|
||||
import re
|
||||
|
||||
with open("project-audit/data/INB-2027-Hauptdokument-data.txt", "r", encoding="utf-8") as f:
|
||||
text = f.read()
|
||||
|
||||
searches = [
|
||||
# Expresstrassen / Prioritaet
|
||||
("Expresstrasse|Expressangebot|Express-Trasse|Vorrangtrasse|vorrangig|Priorität.*Trasse", "Expresstrassen/Vorrang"),
|
||||
# Relevanz-Kategorien
|
||||
("sehr hohe|hohe Relevanz|mittlere Relevanz|geringe Relevanz|Relevanz", "Relevanz-Kategorien"),
|
||||
# 20h / Tageswechsel
|
||||
("20 Stunden|20h|Tageswechsel|Verkehrstag.*wechsel|über.*Mitternacht", "20h/Tageswechsel"),
|
||||
# NAÄ / implizite Annahme
|
||||
("netzausgelöst|NAÄ|implizit.*Annahme|automatisch.*Annahme|Annahme.*Frist", "NAÄ/Implizite Annahme"),
|
||||
# Abrechnung
|
||||
("Abrechnung.*Trasse|Trassenentgelt|Fakturierung|Rechnungsstellung", "Abrechnung"),
|
||||
# Stornierung
|
||||
("Stornierung.*Frist|Stornogebühr|Stornierungsentgelt", "Stornierung/Fristen"),
|
||||
# GelV spezifisch
|
||||
("Gelegenheitsverkehr.*Frist|GelV|ad.hoc", "GelV/Ad-hoc"),
|
||||
# Schnittstelle / Common Interface
|
||||
("Common Interface|Schnittstelle.*TAF|Schnittstelle.*TAP|XSD|XML.*Nachricht", "Schnittstelle/CI"),
|
||||
# Kapazitaet / Koordinierung
|
||||
("Kapazitätskonflikt|Koordinierungsverfahren|Überlastung", "Kapazitaet"),
|
||||
# Baubedingt
|
||||
("baubedingt|Baumaßnahme|Sperrung.*Strecke", "Baubedingt"),
|
||||
]
|
||||
|
||||
for pattern, label in searches:
|
||||
matches = list(re.finditer(pattern, text, re.IGNORECASE))
|
||||
if matches:
|
||||
print(f"\n{'='*80}")
|
||||
print(f" {label}: {len(matches)} Treffer")
|
||||
print(f"{'='*80}")
|
||||
for m in matches[:4]:
|
||||
start = max(0, m.start() - 60)
|
||||
end = min(len(text), m.start() + 250)
|
||||
ctx = text[start:end].replace("\n", " ").strip()
|
||||
# Markiere den Match
|
||||
print(f"\n ...{ctx}...")
|
||||
else:
|
||||
print(f"\n {label}: KEINE TREFFER")
|
||||
Reference in New Issue
Block a user