Skip to content

Spec-First Chain Audit: Beleg statt Haekchen - #12

Merged
GodModeAI2025 merged 2 commits into
mainfrom
learnings/2026-09-20
Sep 22, 2026
Merged

GodModeAI2025 merged 2 commits into
mainfrom
learnings/2026-09-20

Conversation

@GodModeAI2025

Copy link
Copy Markdown
Owner

Warum: Der Chain-Audit (Modus 8, Funktion 8.2) führte die Spalte „Steps durchgeführt". Die einzige Quelle dafür war die Task-Annotation in tasks.md, also die Selbstauskunft (1. ✅ Spec: …). Wer abhakt, besteht den Audit. Welche Artefakte einen Schritt belegen, stand nirgends.

Änderungen (zwei Dateien, keine neue Mechanik, keine neue Datei)

  • references/conventions/spec-first-chain.md: Abschnitt „Beleg pro Schritt (Enforcement)" mit einer Belegtabelle für die Schritte 1–8 (je ein Beleg und ein Gegenbeispiel) und drei Regeln:
    • Jeder Task wird geprüft, auch der vollständig abgehakte.
    • Ein Beleg, der sich nicht prüfen lässt, bleibt eine Lücke und wird als nicht prüfbar mit Grund ausgewiesen — gleiche Absicht wie die [Annahme: ...]-Markierung in Clarify.
    • Ein nachgezogener Beleg schließt die Lücke inhaltlich, bleibt aber ein SFC-01-Verstoß (GP-02).
  • references/08-management.md: Absatz „Belegpflicht" in Funktion 8.2, Spalte heißt jetzt „Steps belegt", zwei zusätzliche Beispielzeilen (abgehakt ohne Beleg, nicht prüfbar).

Die Belegtabelle verlangt keine neuen Artefakte: Belegt wird mit dem, was die Schritte 1–8 ohnehin erzeugen (Requirement-ID in spec.md, Contract unter contracts/, Fixture, Provider-Dateien, Consumer, CI-Lauf, API-Changelog, ARCHITECTURE.md). Sie definiert, worauf der Audit schaut — und der Chain-Audit ist laut Profil-Matrix ohnehin nur bei KRITIS Pflicht, sonst empfohlen.

Anlass: github/spec-kit#4621 „fix: clarify converge assessment of completion claims" (erstellt 2026-09-17, gemergt 2026-09-18, MIT, 138k Stars) hat in speckit.converge denselben Fehlermodus adressiert: jeder Task wird bewertet, unabhängig vom Checkbox-Status, denn „completion claims are not evidence". Übernommen ist nur die Idee, kein Text — SpecForge wendet sie auf den Spec-First-Chain-Audit an, nicht auf ein Converge-Kommando.

Ebenfalls gesichtet und verworfen: spec-kit#4616 (Contract-Driven Development — deckt SpecForge über GP-01, GP-09, Contract Guardian und die Chain-Schritte 2/3/5/6/7 bereits ab), BryanJecie/agentic-sdd (2026-09-15, MIT; zweite Rollenmechanik neben den Modi 1–10 wäre Aufblähung).

Abgrenzung zu #11: Die Änderung vom 16.09. betraf references/02-clarify.md (Zurückstellen an die Plan-Phase, Gate G2). Hier geht es um Modus 8 und die Chain-Konvention — keine Überschneidung, keine Doppelung.

Prüfungen (Worker und Review unabhängig ausgeführt): check-references, check-frontmatter, check-checklists, check-severity-dialect, check-docs-numbers, check-version, check-linter-fixtures alle OK · 65 Unit-Tests OK · Golden Specs 8/8 · Release-Paket mit package-skill.py gebaut und mit check-package.py geprüft („Paket vollstaendig, unveraendert und frei von Repo-Innereien"). Keine Versionsänderung, kein CHANGELOG-Eintrag (Versionen werden beim Release gepflegt).

🤖 Generated with Claude Code

GodModeAI2025 and others added 2 commits September 20, 2026 10:11
Der Chain-Audit las "Steps durchgefuehrt" aus der Task-Annotation, also aus der
Selbstauskunft des Tasks. Ein abgehakter Schritt galt damit als erfuellt, auch
ohne Artefakt.

Neu in spec-first-chain.md: Belegtabelle je Schritt (was zaehlt, was nicht) und
drei Regeln - jeder Task wird geprueft, auch der vollstaendig abgehakte; ein
nicht pruefbarer Beleg ist eine Luecke; ein nachgezogener Beleg bleibt ein
SFC-01-Verstoss. 08-management.md nennt die Belegpflicht und die Spalte heisst
jetzt "Steps belegt".

Anlass: github/spec-kit#4621 ("completion claims are not evidence" in
speckit.converge). Nur die Idee uebernommen, kein Text.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Zwei Praezisierungen am Chain-Audit:

- Schritt 6 nennt jetzt den auffindbaren CI-Lauf bzw. Testreport als Beleg.
  Vorher las sich "Testlauf mit Ergebnis (Datum, Umfang, Befund)" so, als
  muesste pro Task ein eigener Nachweis geschrieben werden. Belegt wird mit
  dem Artefakt, das ohnehin entsteht.
- Ein Beleg, der sich nicht pruefen laesst (kein Zugriff, Artefakt ausserhalb
  des Repos), bleibt eine Luecke, wird in der Luecken-Spalte aber als
  "nicht pruefbar" mit Grund ausgewiesen. Sonst liest sich fehlender Zugriff
  wie ein uebersprungener Schritt. Gleiche Absicht wie die
  [Annahme: ...]-Markierung in Clarify. Beispielzeile T-004 in beiden Tabellen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@GodModeAI2025
GodModeAI2025 merged commit e489376 into main Sep 22, 2026
1 check passed
@GodModeAI2025
GodModeAI2025 deleted the learnings/2026-09-20 branch September 22, 2026 04:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant