GAP WP2.1: Inline-VA-Verweise + Verify-Fix (F17)
Umsetzung aus dem GAP-Report Runde 2 (Umsetzungsanleitung), Etappe 1.
- WP2.1 (F3–F9, F19, N4, N7, N9): In 14 IMPL-Blöcken den zuständigen VA-Verweis
inline ergänzt ({{LINK:VA-xx}}) — R02 1.3.1/1.3.2→VA-08, R03 1.4.1→VA-09,
R04 1.6.1/1.6.2→VA-01 & 1.6.3→VA-02, R05 2.1.3→VA-12, R08 4.1.1/4.1.3/4.2.1→VA-03,
R09 5.1.2→VA-07, R10 5.2.1→VA-04 & 5.2.6→VA-06, R13 6.1.2/6.1.3→VA-10.
Damit verweisen alle 23 Controls mit zuständiger VA inline (zuvor 8).
- WP2.3/F17: _verify.py lief nicht (KeyError 'implementation' — Feld existiert nicht
in mapping.json). Gefixt via .get(): Umsetzungstext wird zur Laufzeit über
impl_anchor aus der .md aufgelöst (Variante 2 der Anleitung).
Verifiziert: _verify.py Render-Probleme 0, Mapping beidseitig sauber, keine neuen
Befunde (einzig vorbestehendes IMPL 3.1.3 = WP1.3/E2, ISB-Scope). Nicht-destruktiver
Re-Import in den Demo-Mandanten (8 Dokumente aktualisiert, Status/Anforderungen
erhalten); Browser: R02 rendert „(siehe VA-08)" als klickbaren Deep-Link.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -43,7 +43,9 @@ for fp in glob.glob(os.path.join(BASE,"richtlinien/*.md")):
|
||||
for m in re.findall(r"<!-- (REQ|IMPL) ([0-9.\-A-Za-z]+) -->",open(fp,encoding="utf-8").read()): fa.add(m[0]+" "+m[1])
|
||||
ma=set()
|
||||
for a in d["anforderungen"]: ma.add(a["req_anchor"]); ma.add(a["impl_anchor"])
|
||||
leftover_hb=any("{{" in a["requirement"] or "{{" in a["implementation"] for a in d["anforderungen"])
|
||||
# F17: mapping.json enthaelt kein 'implementation'-Feld; der Umsetzungstext wird zur
|
||||
# Laufzeit ueber impl_anchor (Control-IMPL-Block) aus der jeweiligen .md aufgeloest.
|
||||
leftover_hb=any("{{" in a["requirement"] or "{{" in a.get("implementation","") for a in d["anforderungen"])
|
||||
print("Render-Probleme:",problems)
|
||||
print("mapping-Anker ohne Datei:",sorted(ma-fa))
|
||||
print("Datei-Anker ohne mapping:",sorted(fa-ma))
|
||||
|
||||
Reference in New Issue
Block a user