--- title: 'Sources lokal unter `raw/` bereitstellen (Story 1.2)' type: 'feature' created: '2026-08-14' status: 'done' route: 'one-shot' review_loop_iteration: 0 context: - _bmad-output/implementation-artifacts/epic-1-context.md --- # Sources lokal unter `raw/` bereitstellen (Story 1.2) ## Intent **Problem:** Der Workspace besitzt die `raw/`-Grenze, aber noch kein materialisiertes Source Material — ein Compilation Run hätte nichts zu verarbeiten. **Approach:** Die ersten realen Sources (PRD, Architecture-Spine, epics) lokal unter `raw/` als immutable Evidenz materialisieren und in `raw/README.md` die Quellen-Konvention festhalten (pro-Quelle-Verzeichnis, `source.md`-Provenienz, additive Versionierung, lokale statt URL). ## Suggested Review Order **Konvention & Grenze** - Quellen-Konvention, Artefakt- vs. Evidenz-Carve-out, Benennung/Versionierung [`raw/README.md`](../../raw/README.md#L11) - Provenienz-Sidecar: einheitliche Metadaten, „keine Evidenz"-Hinweis [`raw/prd/source.md`](../../raw/prd/source.md#L1) [`raw/architecture-spine/source.md`](../../raw/architecture-spine/source.md#L1) [`raw/epics/source.md`](../../raw/epics/source.md#L1) **Materialisierte Evidenz (byte-identische Kopien der Planungs-Artefakte)** - [`raw/prd/prd-wow20-2026-08-14.md`](../../raw/prd/prd-wow20-2026-08-14.md#L1) - [`raw/architecture-spine/architecture-spine-2026-08-14.md`](../../raw/architecture-spine/architecture-spine-2026-08-14.md#L1) - [`raw/epics/epics-2026-08-14.md`](../../raw/epics/epics-2026-08-14.md#L1) **Status** - Story-Status & `last_updated` [`sprint-status.yaml`](../../_bmad-output/implementation-artifacts/sprint-status.yaml#L31) ## Tasks & Acceptance **Execution:** - [x] `raw/prd/`, `raw/architecture-spine/`, `raw/epics/` — erste reale Sources als Per-Quelle-Verzeichnisse anlegen — stellt dem Compiler Evidenz bereit (FR-1, AD-12) - [x] `raw//source.md` — Provenienz-Sidecar je Quelle (Herkunft, Kopierdatum, Kurzbeschreibung) — Tracebarkeit & AD-3-Versionierung - [x] `raw/README.md` — Quellen-Konvention dokumentieren — kanonischer Ort der Konvention; Benennung, additive Versionierung, Artefakt-Carve-out, lokale statt URL **Acceptance Criteria:** - Given ein initialisierter Workspace, When Sources unter `raw/` materialisiert sind, Then werden sie als immutable Evidenz erkannt und nicht automatisch nach `wiki/` kopiert (FR-2, AD-3) - Given mehrere Quellen (1..n), When bereitgestellt, Then sind sie als Eingabe für einen Run lokalisierbar (FR-1) - Given eine bereits verarbeitete Source, When erneut verarbeitet, Then bleibt die Originaldatei unter `raw/` unverändert; neue Versionen sind neue, datierte Dateien (AD-3) - Given der manuelle Import (v1), When eine URL statt lokalen Materials angegeben wird, Then wird dies gemäß Konvention als nicht unterstützt zurückgewiesen (A-4) ## Spec Change Log ## Design Notes Konvention (aus Blind-Hunter-Review um Artefakt-Carve-out, kebab-case und additive Versionierung geschärft): ```text raw// -.md # Evidenz (AD-3, immutable) source.md # Artefakt (keine Evidenz): Herkunft, Kopierdatum, Kurzbeschreibung ``` `source.md` ist als Artefakt kein Evidenz-Bestandteil — dieselbe Grenz-Logik wie `raw/README.md`. Herkunftspfade unter `_bmad-output/` sind generierte Planungs-Artefakte (nicht versioniert); Checksummen-/Fingerprint und maschinenlesbares Source-Metadaten-Schema sind als Deferred Work erfasst (Story 1.3/1.4 bzw. Provenienz). ## Verification **Commands:** - `git status --short && git diff --stat` — expected: 3 neue Quellen-Verzeichnisse + `source.md` je Quelle + `raw/README.md`-Erweiterung + `sprint-status.yaml`-Wired-Up (Story 1.2 in-progress, epic-1 in-progress) - Copy-Verifikation: `git diff --no-index --stat ` — expected: ply 0/keine Differenz (byte-identische Kopien) **Manual checks (if no CLI):** - `raw/README.md` Quellen-Konvention stimmt mit dem tatsächlichen `raw/`-Baum überein (Verzeichnisse `prd/`, `epics/`, `architecture-spine/`, `assets/`) - Alle `source.md` referenzieren die tatsächlich vorhandene Evidenz-Datei im selben Verzeichnis