Spec-3-13:
- Neues Spec-Change-Log-Top-Eintrag: Epic-1-Remediation (Rev 3.8) +
A/B-Umfangs-Entscheidung (b) ausgeführt (24/26 NON_AT CREATE-getrieben;
Minimal-Änderungssatz: (1) CREATE-Kern aus A/B-Fixture, (2) log.md-Pin).
- Design Notes: Allowance-Zeile auf alpha-UPDATE-Witness (raw/alpha-v2.md#S-3)
umgestellt; Fixture-Beschreibung = 3-12-Muster OHNE CREATE-Kandidat
(D-3.13-6 Option 2; index/gamma unverändert, IDX_ADDED=0).
- Frozen-Block L12-51 + GENERATED_AT_AUSNAHME-Zeile UNBERÜHRT (diff-geprüft).
Autorisierungs-Träger (compiler-revision-3-8-...):
- §0.1 Ausführungsstatus: B2 (log-Pin) + A/B-Umfang (b) = ANGEWENDET (Rev 3.8,
Commit 7c3c19b); B1 (Slug) = offener Defer/Ask-First-Kandidat; C (Body-Byte)
= zurückgewiesen (FR-2-Verstoß). Original-Entwurfstext als historische
Entscheidungsgrundlage erhalten.
Status: Story 3.13 bleibt in-progress; finaler done-Flip + Review-Loop-2
erfolgen nach grünem Re-Run #6 (Step-05-Status-Sync).
Co-Authored-By: Claude <noreply@anthropic.com>
116 lines
17 KiB
Markdown
116 lines
17 KiB
Markdown
---
|
||
title: "Arbeitsauftrag — compiler.md Rev 3.7 → 3.8 (Epic-1-Remediation, Story 3.13): CREATE-Slug + log-Determinismus-Patch"
|
||
status: AUSGEFÜHRT (Teilumsetzung) — B2 (log-Pin) + A/B-Umfang (b) angewendet, Rev 3.8 committet; B1 (Slug) = offener Defer; C (Body-Byte) = zurückgewiesen (FR-2). Siehe §0.1 Ausführungsstatus.
|
||
date: 2026-08-23
|
||
owner: ProMods
|
||
related: spec-3-13-epic-3-verifikations-und-abnahmegate.md, spec-3-8-determinismus-vertrag-ad-17h-als-agent-instruktions-validato.md, deferred-work.md
|
||
---
|
||
|
||
# Arbeitsauftrag — compiler.md Rev 3.7 → 3.8 (Epic-1-Remediation, Story 3.13)
|
||
|
||
**Stellenwert:** Dies ist der **Autorisierungs-Träger** der separat autorisierten Epic-1-Remediation (AC-4-Pfad; Präzedenz Validator-Rev-8/9, AD-3-Compliance: keine stille Schema-Semantik-Änderung durch das Gate).
|
||
|
||
## 0.1 Ausführungsstatus (2026-08-23, Nutzer-Autorisierung „continue" — superset des §0-Empfehlungs-Vorschlags (b))
|
||
|
||
Dieser Entwurf legte drei Bausteine fest: **B1** (CREATE-Slug-Signal), **B2** (log-Determinismus), **C** (CREATE-Body-Byte-Residual, an die A/B-Umfangs-Entscheidung (a)/(b)/(c)/(d) gebunden). Nach der exakten Zeilen-Nachzähl des Re-Run-#5-Befunds (NON_AT=26 AT=4; 24/26 = 92 % CREATE-/Slug-getrieben) und der Nutzer-Autorisierung („continue" auf den empfohlenen Minimal-Änderungssatz) wurde **ausgeführt**:
|
||
|
||
| Baustein | Status | Umsetzung |
|
||
|---|---|---|
|
||
| **B2** — kanonische, byte-deterministische `log.md`-Eintragsform | ✅ **ANGEWENDET** (Rev 3.8) | §5.9 Pkt. 4 (Update), §5.1 Pkt. 4 (Anlage), §5.10 Pkt. 7 (Synthese-Anlage) + §8 Revisionslog. Form = `- <Operation>: <concept> (<quellen>; Baseline <SHA>)`, lex (LC_ALL=C) sortiert, ` + ` getrennt, voller SHA, **kein** freier Zusatztext, **kein** Wanduhr-at im Body (Wanduhr ausschließlich im Frontmatter-`generated.at`, §5.14 Pkt. 3). = genau die Form, die Sub-Runs 3-3/3-4 mechanisch bereits demonstrieren. |
|
||
| **A/B-Umfang (b)** — CREATE aus der A/B-Fixture nehmen (D-3.13-6 Option 1 → Option 2) | ✅ **ANGEWENDET** (Gate) | `run-sandbox.sh` E-Sektion: E.1 (keine beta-Quellen), AGENT_PROMPT (beta-Fakt entfernt), E.5 (CREATE-Witness entfernt, UPDATE-`alpha` bleibt), E.8 (index.md unverändert, IDX_ADDED=0), Header. A/B prüft den Update-/Erhaltungs-Kern; CREATE/Synthese gelten über Sub-Runs 3-3/3-4. |
|
||
| **B1** — CREATE-Slug-Signal (Inhalts-Term maßgeblich) | ⏸️ **DEFER** (offen) | **Nicht** in Rev 3.8 — der CREATE-Fall steht nicht mehr in der A/B-Fixture, daher ist der Slug-Pin für den grünen Re-Run #6 **nicht** erforderlich. Als **benannter Defer / Ask-First-Kandidat** dokumentiert (in compiler.md Rev 3.8 + Spec Change Log); §5.15 Pkt. 1 (Dateiname→Term) / §5.7 bleiben wie ist. |
|
||
| **C** — CREATE-Body byte-deterministisch | ❌ **ZURÜCKGEWIESEN** (FR-2) | Q1-Item (2) = Option (c): ein Byte-Pin des CREATE-Body widerspricht §5.1/FR-2/§5.10 Pkt. 3 („Befund-Äquivalenz, **nicht** Wort-Identität") direkt — Semantik-Change, kein Bugfix. Bewusst **nicht** ausgeführt. |
|
||
|
||
**Konsequenz für Re-Run #6:** erwartetes E.4-Ergebnis `NON_AT=0 AT=2` (`alpha.md` at-only; `log.md` byte-identisch via gepinnter Form; `gamma.md`/`index.md` unverändert). **Nicht berührt:** frozen I/O-Matrix-Block (inkl. `GENERATED_AT_AUSNAHME`), §5.14 Pkt. 3 (at-Ausnahme = Feldwerte), §5.10 Pkt. 3 (Body-Wortlaut), §5.1 Pkt. 2 (FR-2). **Commit:** `7c3c19b` (compiler.md Rev 3.8 + Gate + dieser Autorisierungs-Träger). **Ausstehend:** 12-Sandbox-Re-Execution, Re-Run #6 (grüner Voll-Lauf), Review-Loop-2 + finaler `done`-Flip (Step-05-Status-Sync nach grünem Re-Run #6).
|
||
|
||
**Unten:** der ursprüngliche Entwurfstext (B1 §1, B2 §2, C §3) bleibt als **historische Entscheidungsgrundlage** erhalten — die ausgeführte Form steht in §0.1; wo B1/B2 im Folgenden als „ready-to-apply" beschrieben sind, gilt: B2 angewendet (genau so wie im Entwurf), B1 nicht angewendet (Defer).
|
||
|
||
## 0. Prämisse-Korrektur (warum dieser Entwurf anders aussieht als die Q1-Prämisse)
|
||
|
||
Die Q1-Autorisierung („(1) CREATE-Slug-Signal pinning, (2) CREATE-Body-kanonische Form (byte-deterministisch), (3) log.md-Regel") beruhte auf dem Befund „26 NON_AT-Zeilen = freie CREATE-Synthese". Gegen den **realen A/B-Diff** des Re-Run #5 (`/tmp/gate-313-run5.log`, Z. 1240–1330) aufgerechnet ist das **invertiert**:
|
||
|
||
| Quelle | NON_AT-Zeilen | Natur |
|
||
|---|---|---|
|
||
| `wiki/beta.md` (gelöscht) | 11 = 10 Frontmatter + 1 Body-Satz | Frontmatter **byte-identisch**; gezählt als delete **nur wegen Pfad `beta`** |
|
||
| `wiki/quanten-observatorium-kanal.md` (neu) | 11 = 10 Frontmatter + 1 Body-Satz | Frontmatter **byte-identisch**; gezählt als add **nur wegen Pfad `quanten-…`** |
|
||
| `wiki/index.md` | 2 (Link-Zeile) | **Slug-getrieben** |
|
||
| `wiki/log.md` | 4 | gemischt: Slug-Name + **Reihenfolge** + **Wanduhr-`at` im Body** + freier Wortlaut |
|
||
| **Summe** | **26** | — |
|
||
|
||
- **22/26 (85 %) sind Slug-getrieben** — die 20 Frontmatter-Zeilen sind inhaltlich identisch; git zählt sie als gelöscht+addiert **nur weil die Dateinamen divergieren** (`beta` vs. `quanten-observatorium-kanal`), plus 2 Index-Links.
|
||
- **Nur 2 Zeilen** sind die eigentliche freie CREATE-Prosa (ein Body-Satz pro Lauf); **4 Zeilen** log.md, davon **2 strukturell** (Reihenfolge ungepinnt + Wanduhr-`at` im Body) und 2 frei (Wortlaut).
|
||
|
||
**Quelltext-Verankerungen (Zeilen, `schema/compiler.md`):**
|
||
- `§5.14 Pkt. 3` (L375): Zwei-Run-Vergleich lässt **genau eine** benannte Differenz zu (`generated.at`); **alle übrigen** Bestandteile **byte-identisch**.
|
||
- `§5.10 Pkt. 3` (L297): CREATE-/Synthese-Body-**Reihenfolge** deterministisch gepinnt (lex nach Beleg-Anker, LC_ALL=C); **Wortlaut** nicht — dort explizit „Befund-Äquivalenz, **nicht** Wort-Identität".
|
||
- `§5.1 Pkt. 2` (L84) + `§5 Pkt. 3` (L34, FR-2): Body **eigenständig formuliert**; „Bloße Kopie … DÜRFEN nicht erzeugt werden"; „Der Body darf keine großen Quell-Exzerpte enthalten".
|
||
- `§5.14 Pkt. 2` (L374) + spec-3-8 P-5 (L150): 3.8-Basis **nur mechanisch simuliert** (Subshell-Läufe), **nur UPDATE-Pfad**, **nie** echte frische LLMs; „der Nachweis echter frischer Kontexte erfolgt im Story-3.13-Abnahmegate über reale Agent-Läufe".
|
||
|
||
**Konsequenz:** Q1-Item (1) **Slug** und (3) **log-Struktur** sind **FR-2-sicher, determinismus-pflichtig (routing/log sind ohnehin deterministisch, §5.7/§5.15/§5.10-AD-17h) und frozen-Block-unabhängig** → **B1/B2 unten, ready-to-apply**. Q1-Item (2) **CREATE-Body byte-deterministisch** ist **nicht FR-2-sicher** (Byte-Pin bricht `§5.1`/FR-2/`§5.10 Pkt. 3`) → **C unten, an die (a)/(b)/(c)/(d)-Entscheidung gebunden**. Der latente Kern: `§5.14 Pkt. 3` (Byte-Identität) vs. `FR-2`/`§5.10 Pkt. 3` (freies, nicht-wortidentisches Wortlaut) — in 3.8 durch Simulation verdeckt, in 3.13/E.4 aufgedeckt.
|
||
|
||
## 1. B1 — CREATE-Slug-Signal: Inhalts-Term maßgeblich (FR-2-sicher, ready-to-apply)
|
||
|
||
**Problem (AD-16-Instruktionslücke):** Bei einem CREATE, dessen `raw/`-Dateinamen-Stamm vom erkannten Inhalts-Term abweicht (Fixture: `raw/beta-v1.md`/`beta-v2.md`, Stamm `beta`, Inhalts-Term `quanten-observatorium-kanal`), ist das **maßgebliche Slug-Signal nicht deterministisch fixiert**:
|
||
- `§5.1 Pkt. 1` (L83): „kebab-case-Slug aus der Concept-Identität … **Der Dateiname definiert die Concept-Identität** (relativer OKF-Pfad ohne `.md`, AD-7a)" — für ein **neues** Concept zirkulär (Identität = OKF-Pfad, der noch nicht existiert).
|
||
- `§5.15 Pkt. 1` (L383): „dieser kollabierte, lowercasene **Dateiname** ist der **primäre Term** je Zuwachs-Datei" — leitet den Term aus dem **Dateinamen** ab (→ `beta`).
|
||
- Design-Notes (spec L150): intendiert das Ergebnis als **term-geleitet** (→ `quanten-observatorium-kanal`).
|
||
|
||
Lauf A (`wiki/beta.md`) folgte §5.15/Dateinamen; Lauf B (`wiki/quanten-…`) folgte der term-geleiteten Intention → Divergenz = **22/26 NON_AT-Zeilen**.
|
||
|
||
**Patch (Bestandsregel, kein neues Prädikat/Kein §7-Key/kein Frontmatter-Key, AD-3/D-3-konform):** Der **CREATE-Dateiname** leitet sich vom **erkannten Inhalts-Term** (deterministisch erkannte Wissenseinheit, `§2`-Interpretation/`§3.2`) ab, nicht vom `raw/`-Dateinamen-Stamm; der Dateinamen-Stamm ist nur **Fallback**, wenn er mit dem Inhalts-Term übereinstimmt oder kein abgrenzbarer Inhalts-Term erkannt wird. Abgrenzung: das betrifft **ausschließlich die CREATE-Ziel-Namensgebung** (Zelle 2, `§5.15 Pkt. 3`); der **Reconcile-/Match-Term** (`§5.15 Pkt. 1`) bleibt **textuell unverändert** (er dient dem Match auf *bestehende* Concepts, nicht der Namensgebung neuer).
|
||
|
||
**Vorgeschlagener Wortlaut — `§5.1 Pkt. 1` (L83), Bullet 2 ersetzt:**
|
||
|
||
> **Vorher (L83):**
|
||
> - Konvention für den Dateinamen: kebab-case-Slug aus der Concept-Identität (kein Sonderzeichen, keine Endung `.md`-Dopplung). Der Dateiname definiert die Concept-Identität (relativer OKF-Pfad ohne `.md`, AD-7a).
|
||
|
||
> **Nachher (Vorschlag):**
|
||
> - Konvention für den Dateinamen: kebab-case-Slug (kein Sonderzeichen, keine Endung `.md`-Dopplung). Der Dateiname **definiert** die Concept-Identität (relativer OKF-Pfad ohne `.md`, AD-7a); bei **Neu-Anlage** (CREATE, `§5.15 Pkt. 3` Zelle 2) **entsteht** der Dateiname **deterministisch aus dem erkannten Inhalts-Term** der neuen Wissenseinheit (`§2`-Interpretation/`§3.2`; Kollaps-/Lowercase-Normalisierung `§3.2 Pkt. 1b`/`§5.15 Pkt. 1`) — **term-geleitet**. Der `raw/`-Zuwachs-Dateinamen-Stamm ist nur **Fallback**, wenn er mit dem erkannten Inhalts-Term übereinstimmt **oder** kein abgrenzbarer Inhalts-Term erkannt wird. Weichen Dateinamen-Stamm und erkannte Inhalts-Term ab, **gewinnt der Inhalts-Term** (deterministisch; Design-Intention term-geleitet) — die CREATE-Namensgebung ist damit **byte-deterministisch aus dem committeten Zustand** ableitbar (AD-17h/A0-19); eine Abweichung zweier Runs im CREATE-Slug ist ein AD-16-Klassifikationsdefekt (`§5.14 Pkt. 4`), kein Rauschen.
|
||
|
||
**Revisionslog (`§8`):** Eintrag Rev 3.8 — `§5.1 Pkt. 1` CREATE-Slug-Signal deterministisch (Inhalts-Term maßgeblich, Dateinamen-Stamm nur Fallback); kein Prädikat-/§7-/Frontmatter-Key-Change (AD-3/D-3); `§5.15 Pkt. 1`-Match-Term unverändert.
|
||
|
||
## 2. B2 — log.md-Determinismus: Reihenfolge pinnen + kein Wanduhr-`at` im Body (FR-2-sicher, ready-to-apply)
|
||
|
||
**Problem (AD-16-Instruktionslücke, 2 der 4 log-Zeilen):** `log.md`-Einträge innerhalb einer Datumsgruppe haben **keine deterministische Reihenfolge**, und **Wanduhr-`generated.at`-Werte im Body** sind nicht untersagt. Lauf A legte die Einträge in einer Reihenfolge, Lauf B in einer anderen, und Lauf B bettete `generated.at = 2026-08-23T13:48:23Z` in den log-Body ein — beides liegt **außerhalb** der benannten `at`-Ausnahme (die gilt nur für das **Frontmatter-Feld** `generated.at`/`verified[].at`, nicht für Body-Text; `§5.14 Pkt. 3`).
|
||
|
||
**Patch (Bestandsregel-Ergänzung, kein neuer Key):**
|
||
1. **Innerhalb einer Datumsgruppe** (`Header = YYYY-MM-DD`) werden die Einträge in **deterministischer Reihenfolge** geführt: lexikografisch nach **Concept-Pfad** (LC_ALL=C), Tie-Break nach **fixer Operations-Reihenfolge** (Neu-Anlage → Update → Synthese-Update → Verwaist/Hold). Die Datumsgruppen selbst bleiben „neueste zuerst" (unverändert, `§5.1 Pkt. 4`).
|
||
2. **Wanduhr-Werte im Body sind verboten:** ein `log.md`-Eintrag trägt **nur** die Datumsgruppen-Header-Zeile, das `<Baseline-Commit>` und ggf. den Beleg-/`sources`-Pfad — **kein** Wanduhr-`generated.at`-/`verified[].at`-Wert als Body-Text (der `at`-Wanduhr-Gap lebt ausschließlich im Frontmatter-Feld, `§5.14 Pkt. 3`/A0-20). Ein Eintrag mit Wanduhr-Body-Wert ist ein textuell benannter Instruktions-Verstoß (NFR-4).
|
||
|
||
**Vorgeschlagener Wortlaut — `§5.1 Pkt. 4` (L87) am Ende ergänzen:**
|
||
|
||
> **Nachher (Vorschlag, an L87 anfügen):**
|
||
> … `log.md` bleibt ohne Frontmatter (Punkt 10). **Innerhalb einer Datumsgruppe** (Header `YYYY-MM-DD`) werden die Einträge **deterministisch** geführt: lexikografisch nach **Concept-Pfad** (LC_ALL=C), Tie-Break nach **fixer Operations-Reihenfolge** (Neu-Anlage → Update → Synthese-Update → Verwaist/Hold) — gleiche Eingabemenge ⇒ identische Eintrags-Reihenfolge (AD-17h/A0-19, `§5.14`). Ein `log.md`-Body-Eintrag trägt **keinen** Wanduhr-`generated.at`-/`verified[].at`-Wert als Text (der `at`-Wanduhr-Gap lebt ausschließlich im Frontmatter-Feld, `§5.14 Pkt. 3`/A0-20); ein solcher Body-Wert ist ein textuell benannter Instruktions-Verstoß (NFR-4).
|
||
|
||
**Konsistenz:** identisch in `§5.10 Pkt. 7` (L301, Synthese-`log.md`-Eintragspflicht) spiegeln — Verweis auf die `§5.1 Pkt. 4`-Reihenfolge-/Wanduhr-Regel (eine Regel, zwei Verankerungen, Fugen-Identitäts-Präzedenz).
|
||
|
||
**Revisionslog (`§8`):** Eintrag Rev 3.8 — `§5.1 Pkt. 4`/`§5.10 Pkt. 7` log-Determinismus (intra-Date-Gruppe-Reihenfolge + kein Wanduhr-at im Body); kein Prädikat-/§7-/Frontmatter-Key-Change.
|
||
|
||
## 3. C — CREATE-Body-Byte-Residual (AN NUTZER-ENTSCHEIDUNG (a)/(b)/(c)/(d) GEBUNDEN — NICHT VORFREIGEBEN)
|
||
|
||
Nach B1+B2 bleibt das **eigentliche** freie-Prosa-Residual: **1 CREATE-Body-Satz pro Lauf + ~1–2 log-Wortlaut-Zeilen**. Zwei frische LLMs schreiben diesen freien, FR-2-mandatierten, „eigenständig formulierten" Satz **nie byte-identisch** — und `§5.14 Pkt. 3` verlangt Byte-Identität. Das ist der latente Vertragskonflikt. **Q1-Item (2) „CREATE-Body kanonische Form (byte-deterministisch)" ist genau dieser Teil und ist NICHT FR-2-sicher** (Byte-Pin bricht `§5.1`/FR-2/`§5.10 Pkt. 3`). **Dieser Abschnitt darf erst nach der Nutzer-Entscheidung umgesetzt werden.** Optionen (frozen-Block/Ask-First-Berührung gekennzeichnet):
|
||
|
||
- **(a) A/B auf Wissens-Ebene für freien Body** *(frozen-Matrix-Zeile `GENERATED_AT_AUSNAHME`, spec L49 + AC-7)* — **empfohlen**, weil vertragself-konsistent (`§5.10 Pkt. 3` sagt bereits „Befund-Äquivalenz, nicht Wort-Identität"): der freie CREATE-Body-Wortlaut wird als **zweite benannte Ausnahme-Klasse** neben `at` behandelt; **Struktur** (Slug/Frontmatter/`sources`/Provenanz-Anker/Claim-Abdeckung/Index-Link) bleibt **byte-streng**, freier **Wortlaut** per Claim-/Provenienz-Abdeckung (nicht byte-weise) verglichen. CREATE bleibt in der A/B-Fixture (AC-6 wie geschrieben). Berührt `§5.14 Pkt. 3` (Ausnahme-Menge um zweite Klasse erweitern) + frozen spec L49.
|
||
- **(b) CREATE aus A/B-Fixture nehmen** *(revidiert D-3.13-6 Option 1 → 2)* — A/B prüft nur den nachweislich byte-deterministischen UPDATE-Pfad; CREATE + Synthese gelten über Sandbox-Sub-Runs 3-3/3-4 als demostriert. AC-6-Auslegung: „Anlage neuer Wissenseinheit" über die Sub-Runs. Vertrag/frozen-Block/FR-2 unangetastet, kleinster Pfad; CREATE nicht mehr im echten frischen-Agenten-A/B-Nachweis.
|
||
- **(c) Kanonischer CREATE-Body** *(substanzieller compiler.md-Change)* — CREATE-Body auf aus `raw/` mechanisch abgeleitete Form pinnen (exakte Wortfolge der zuerst-belegenden Quelle, anchor-geordnet). Macht CREATE byte-determinisch, A/B bleibt streng. **RISIKO: bricht vmtl. FR-2** („eigenständig formuliert, keine Kopie"); eigener breiterer Autorisationsrunde würdig.
|
||
- **(d) Teil-Patch liefern, Residual rot lassen** — B1+B2 als Epic-1-Remediation geliefert (beseitigt die 22/26-Slug-Hauptursache — echter, dokumentierter Fortschritt); das kleine Prosa-Residual als **benannter Defer** an spätere Vertrags-Revision/Epic 4 → Gate bleibt rot auf einem kleinen, ehrlich verstandenen Rest; Story 3.13 in-progress.
|
||
|
||
## 4. Verifikationsplan (nach Anwendung der jeweils autorisierten Untermenge)
|
||
|
||
1. `bash -n` + Voll-Lesedurchgang `schema/compiler.md` (keine Fugen-Identitäts-Brüche; alle `§`-Verweise intakt).
|
||
2. **12 Sandbox-Suiten re-executieren** (Sub-Runs, fail-fast; `sandbox-3-1..3-12`, je `exit 0`).
|
||
3. **Re-Run #6: grüner Voll-Lauf des Gates** (`_bmad-output/implementation-artifacts/sandbox-3-13/run-sandbox.sh`, ~2.5–3.5 h, Background-Subagent, `CLAUDE_BIN` = echte winpty-freie `claude.exe` per P-3-Override, P-16-Floor 32000).
|
||
4. **Erwartetes A/B-Ergebnis je Option:**
|
||
- **(a):** E.4 `NON_AT=0` (oder `NON_AT` nur in explizit als zweiter Ausnahme-Klasse ausgewiesenen Body-Wortlaut-Zellen), `AT=4` → **grün**; F/G laufen (G-1..G-8 + Porcelain).
|
||
- **(b):** E.4 `NON_AT=0 AT=4` (nur UPDATE-Pfad `alpha` + `gamma`/`index`-Erhaltung) → **grün**; CREATE nicht in A/B (über Sub-Runs 3-3/3-4 belegt).
|
||
- **(c):** E.4 `NON_AT=0 AT=4` (CREATE-Body byte-deterministisch) → **grün** (vorausgesetzt FR-2-Verstoß als Semantik-Change autorisiert).
|
||
- **(d):** E.4 `NON_AT` > 0, **nur** im kleinen Prosa-Residual → Gate **rot**, aber auf einem ehrlich isolierten Rest; Befund textuell benannt (NFR-4), Defer angelegt.
|
||
5. **AD-3-Porcelain:** `git status --porcelain` des realen Ist-Baums nach Lauf leer; `schema/`-Diffs **nur** die autorisierten Rev-3.8-Änderungen; `raw/`/`adapters/`/`validator.md`/`wiki-compiler.md`/`canonical-terms.md` unverändert.
|
||
|
||
## 5. Freigabe-Punkte (Nutzer)
|
||
|
||
- [ ] **B1 (Slug)** autorisieren? — FR-2-sicher, Q1-item(1), kein frozen-Block.
|
||
- [ ] **B2 (log-Determinismus)** autorisieren? — FR-2-sicher, Q1-item(3), kein frozen-Block.
|
||
- [ ] **C (Body-Residual)** = Option **(a)** / **(b)** / **(c)** / **(d)**? — (a) berührt frozen spec L49 + `§5.14 Pkt. 3`; (b) revidiert D-3.13-6; (c) breitere Autorisation (FR-2); (d) Defer.
|
||
- [ ] danach: 12-Sandbox-Re-Execution + Re-Run #6 (Task #4/#5).
|