fix: Story 3.13 Gate-Pre-Runs (2. Re-Run-Ablage): A.3 auf vertraglich definierte Bundle-Prämissen (V-1 Bundleroot, raw/, log.md — V-5/V-6-Area-Menge existiert nicht im Vertrag), D-NEG-Käfig gültig (Bundleroot-/Area-Frontmatter, EC-1-existierende raw/-Ressourcen, wiki/-Präfix-Toleranz im Count); log.md-D-NEG-Punktbezeichnung korrigiert (Punkt 1/9/14-EC-3)
This commit is contained in:
@@ -97,17 +97,17 @@ command -v bash >/dev/null || hardfail "bash fehlt"
|
||||
for ref in schema/compiler.md schema/validator.md schema/wiki-compiler.md schema/canonical-terms.md adapters/README.md; do
|
||||
[ -f "$ref" ] || hardfail "Referenz-Schema fehlt: $ref"
|
||||
done
|
||||
pass "A.2 Referenz-Schemata vorhanden (compiler/validator/wiki-compiler/canonical-terms/adapters)"
|
||||
# A.3: Bundle-Vorbedingungen (V-1..V-6, Vertrag §2) im Ist-Repo
|
||||
[ -f wiki/index.md ] || hardfail "V-1: wiki/index.md fehlt"
|
||||
[ -d raw ] || hardfail "V-2: raw/ fehlt"
|
||||
[ -f raw/README.md ] || hardfail "V-3: raw/README.md fehlt"
|
||||
[ -f wiki/log.md ] || hardfail "V-4: wiki/log.md fehlt"
|
||||
for area in concepts processes states; do
|
||||
[ -d "wiki/$area" ] || hardfail "V-5: Bundle-Area wiki/$area fehlt"
|
||||
done
|
||||
[ -f wiki/concepts/README.md ] || hardfail "V-6: wiki/concepts/README.md fehlt"
|
||||
pass "A.3 Bundle-Vorbedingungen V-1..V-6 erfüllt (Ist-Repo)"
|
||||
pass "A.2 Referenz-Schemata vorhanden (compiler/validator/adapters)"
|
||||
# A.3: Bundle-Vorbedingungen im Ist-Repo — nur vertraglich definierte Prämissen:
|
||||
# V-1 Bundleroot (Vertrag §2/Validator §3.2), log.md (Vertrag §5, reserviert),
|
||||
# raw/ = Evidenzverzeichnis. KEINE fixe Area-Menge im Vertrag (V-5/V-6 existieren
|
||||
# nicht) — die Ist-Areas (z. B. wissensarchitektur/) trägt Punkt 11 (Area mit
|
||||
# Inhalt MUSS index.md haben), geprüft vom Validator (Abschnitt D) und G-7 (F).
|
||||
[ -f wiki/index.md ] || hardfail "V-1: wiki/index.md fehlt (Bundleroot, Vertrag §2)"
|
||||
[ -d raw ] || hardfail "raw/ fehlt (Evidenzverzeichnis)"
|
||||
[ -f raw/README.md ] || hardfail "raw/README.md fehlt"
|
||||
[ -f wiki/log.md ] || hardfail "wiki/log.md fehlt (Vertrag §5, reservierter Name)"
|
||||
pass "A.3 Bundle-Vorbedingungen erfüllt (Bundleroot/raw/-Evidenz/log.md; Vertrag §2/§5)"
|
||||
# A.4: Sandbox-Suite 3.1..3.12 vollständig
|
||||
SUITE_OK=1
|
||||
for N in 1 2 3 4 5 6 7 8 9 10 11 12; do
|
||||
@@ -269,18 +269,33 @@ fi
|
||||
|
||||
runlabel "D-NEG: Negativ-Fixtures (AC-3-Hälfte; frischer Validator-Agent MUSS 3×FAIL + 1×SUCCESS liefern)"
|
||||
NEGDIR="$ROOT/negcage"
|
||||
mkdir -p "$NEGDIR/wiki/concepts"
|
||||
mkdir -p "$NEGDIR/wiki/concepts" "$NEGDIR/raw"
|
||||
cp -r "$CAGE/schema" "$NEGDIR/schema"
|
||||
# Gültiges Bundleroot-Frontmatter (sonst Punkt-8-FAIL auf wiki/index.md selbst) +
|
||||
# Area-Index (Punkt 11: Area mit Inhalt MUSS index.md haben; Concepts im Parent-Index).
|
||||
cat > "$NEGDIR/wiki/index.md" <<'EOF'
|
||||
---
|
||||
type: bundle
|
||||
okf_version: "0.2"
|
||||
---
|
||||
# Index
|
||||
- [Pos](concepts/pos.md)
|
||||
- [Neg1](concepts/neg-1.md)
|
||||
- [Neg2](concepts/neg-2.md)
|
||||
- [Neg3](concepts/neg-3.md)
|
||||
- [Concepts](concepts/index.md)
|
||||
EOF
|
||||
cat > "$NEGDIR/wiki/concepts/index.md" <<'EOF'
|
||||
# Concepts
|
||||
- [Pos](pos.md)
|
||||
- [Neg1](neg-1.md)
|
||||
- [Neg2](neg-2.md)
|
||||
- [Neg3](neg-3.md)
|
||||
EOF
|
||||
cat > "$NEGDIR/wiki/log.md" <<'EOF'
|
||||
# Log
|
||||
EOF
|
||||
# EC-1 (Fachprüfung §6): jede referenzierte raw/-Ressource MUSS als Datei existieren —
|
||||
# ohne diese Dateien träge AUCH die Positiv-Kontrolle pos.md einen EC-1-FAIL (falsch-rot).
|
||||
for r in pos neg-1 neg-2 neg-3; do
|
||||
printf 'Evidenz: Negativ-Fixtur %s (Stelle S-1).\n' "$r" > "$NEGDIR/raw/$r.md"
|
||||
done
|
||||
# neg-1: required Feld 'type' fehlt (Punkt 1)
|
||||
cat > "$NEGDIR/wiki/concepts/neg-1.md" <<'EOF'
|
||||
---
|
||||
@@ -293,14 +308,14 @@ generated:
|
||||
---
|
||||
Negativ-Fixtur: required Feld 'type' fehlt.
|
||||
EOF
|
||||
# neg-2: Bundle ohne okf_version (Punkt 8)
|
||||
# neg-2: okf_version in einer Concept-Datei (Punkt 9: ausschließlich in der Bundleroot)
|
||||
cat > "$NEGDIR/wiki/concepts/neg-2.md" <<'EOF'
|
||||
---
|
||||
okf_version: "0.2"
|
||||
---
|
||||
# Neg-2 (Bundleroot-Defizit: okf_version fehlt auf Bundle-Ebene)
|
||||
# Neg-2 (okf_version außerhalb der Bundleroot — Punkt 9)
|
||||
EOF
|
||||
# neg-3: ungültiges 'at'-Datum (Punkt 11/EC-3: 2026-02-31 existiert nicht)
|
||||
# neg-3: ungültiges 'at'-Kalenderdatum (Punkt 14/EC-3: 2026-02-31 existiert nicht)
|
||||
cat > "$NEGDIR/wiki/concepts/neg-3.md" <<'EOF'
|
||||
---
|
||||
type: concept
|
||||
@@ -331,8 +346,8 @@ run_validator_agent "$NEGDIR" "$NEGVAL_OUT"
|
||||
grep -q '^VALIDATOR_DONE ' "$NEGVAL_OUT" || hardfail "D-NEG: Validator-Run fehlgeschlagen (kein VALIDATOR_DONE)"
|
||||
pass "D-NEG.1 Negativ-Validator-Run abgeschlossen"
|
||||
NEG_VERDICTS=$(grep -E '^(SUCCESS|FAIL) [^ ]+' "$NEGVAL_OUT" | head -50)
|
||||
neg_count() { printf '%s\n' "$NEG_VERDICTS" | grep -c "^FAIL wiki/concepts/$1 " || true; }
|
||||
pos_count() { printf '%s\n' "$NEG_VERDICTS" | grep -c "^SUCCESS wiki/concepts/$1 " || true; }
|
||||
neg_count() { printf '%s\n' "$NEG_VERDICTS" | grep -cE "^FAIL (wiki/)?concepts/$1 " || true; }
|
||||
pos_count() { printf '%s\n' "$NEG_VERDICTS" | grep -cE "^SUCCESS (wiki/)?concepts/$1 " || true; }
|
||||
neg1=$(neg_count neg-1.md); neg2=$(neg_count neg-2.md); neg3=$(neg_count neg-3.md)
|
||||
pos1=$(pos_count pos.md)
|
||||
[ "$neg1" -ge 1 ] && pass "D-NEG.2 neg-1 (ohne type): FAIL-Verdikt erhalten" \
|
||||
|
||||
Reference in New Issue
Block a user