TenantAtlas/.specify/memory/spec-approval-rubric.md
2026-04-10 23:34:02 +02:00

8.6 KiB
Raw Permalink Blame History

TenantPilot Spec Approval Rubric (Anti-Overengineering Guardrails)

Leitsatz

Kein neuer Layer ohne klaren Operatorgewinn, und kein neuer Spec nur für interne semantische Schönheit.

Ein neuer Spec ist nur dann stark genug, wenn er sichtbar mehr Produktwahrheit oder Operator-Wirkung erzeugt als er dauerhafte Systemkomplexität importiert.

Jeder Spec muss zwei Dinge gleichzeitig beweisen:

  1. Welches echte Problem wird gelöst?
  2. Warum ist diese Lösung die kleinste enterprise-taugliche Form?

Wenn der Spec nur interne Eleganz, feinere Semantik oder mehr Konsistenz bringt, aber keinen klaren Workflow-, Trust- oder Audit-Gewinn, dann ist er verdächtig.


5 Pflichtfragen vor jeder Freigabe

Ein Spec darf nur weiterverfolgt werden, wenn diese 5 Fragen sauber beantwortet sind.

A. Welcher konkrete Operator-Workflow wird besser?

Nicht abstrakt „Konsistenz verbessern", sondern konkret: welcher Nutzer, auf welcher Fläche, in welchem Schritt, mit welchem heutigen Schmerz, und was danach schneller, sicherer oder ehrlicher wird.

Wenn kein klarer Vorher/Nachher-Workflow benennbar ist → Spec ist zu abstrakt.

B. Welche falsche oder gefährliche Produktaussage wird verhindert?

Legitime Antworten:

  • Falscher „alles okay"-Eindruck
  • Irreführende Recovery-Claims
  • Unsaubere Ownership
  • Fehlende nächste Aktion
  • Fehlende Audit-Nachvollziehbarkeit
  • Tenant/Workspace Leakage
  • RBAC-Missverständnisse

Wenn ein Spec weder Workflow noch Trust verbessert → kaum zu rechtfertigen.

C. Was ist die kleinste brauchbare Version?

Explizit benennen:

  • Was ist die v1-Minimalversion?
  • Welche Teile sind bewusst nicht enthalten?
  • Welche Generalisierung wird absichtlich verschoben?

Wenn v1 wie ein Framework, eine Plattform oder eine universelle Taxonomie klingt → zu groß.

D. Welche dauerhafte Komplexität entsteht?

Nicht nur Implementierungsaufwand, sondern Dauerfolgen:

  • Neue Models / Tables?
  • Neue Enums / Statusachsen?
  • Neue UI-Semantik?
  • Neue cross-surface Contracts?
  • Neue Tests, die dauerhaft gepflegt werden müssen?
  • Neue Begriffe, die jeder verstehen muss?

Wenn die Liste lang ist → Produktgewinn muss entsprechend hoch sein.

E. Warum jetzt?

Legitime Gründe:

  • Blockiert Kernworkflow
  • Verhindert gefährliche Fehlinterpretation
  • Ist Voraussetzung für unmittelbar folgende Hauptdomäne
  • Beseitigt echten systemischen Widerspruch
  • Wird bereits von mehreren Flächen schmerzhaft benötigt

Schwache Gründe:

  • „wäre sauberer"
  • „brauchen wir später bestimmt"
  • „passt gut zur Architektur"
  • „macht das Modell vollständiger"

4 Spec-Klassen

Jeden Kandidaten zwingend in genau eine Klasse einordnen.

Klasse 1 — Core Enterprise Spec

Mindestens eins muss stimmen:

  • Schützt echte System-/Tenant-/RBAC-Korrektheit
  • Verhindert falsche Governance-/Recovery-/Audit-Aussagen
  • Schließt klaren Workflow-Gap
  • Beseitigt cross-surface Widerspruch mit realem Operator-Schaden
  • Ist echte Voraussetzung für eine wichtige Produktfunktion

Dürfen Komplexität einführen, aber nur gezielt.

Klasse 2 — Workflow Compression Spec

Gut, wenn sie:

  • Klickpfade verkürzen
  • Kontextverlust senken
  • Return-/Drilldown-Kontinuität verbessern
  • Triage-/Review-/Run-Bearbeitung beschleunigen

Nützlich, aber klein halten.

Klasse 3 — Cleanup / Consolidation

  • Vereinfachung, Zusammenführung, Entkopplung
  • Entfernen von Legacy / Duplikaten
  • Reduktion unnötiger Schichten

Explizit erwünscht als Gegengewicht zu Wachstum.

Klasse 4 — Premature / Defer

Wenn der Kandidat hauptsächlich bringt:

  • Neue Semantik, Frameworks, Taxonomien
  • Generalisierung für künftige Fälle
  • Infrastruktur ohne breite aktuelle Nutzung

→ Nicht freigeben. Verschieben oder brutal einkürzen.


Rote Flaggen

Wenn zwei oder mehr zutreffen → Spec muss aktiv verteidigt werden.

# Rote Flagge Prüffrage
1 Neue Achsen — neues Truth-Modell, Statusdimension, Taxonomie, Bewertungsachse Braucht der Operator das wirklich, oder nur das Modell?
2 Neue Meta-Infrastruktur — Presenter, Resolver, Catalog, Matrix, Registry, Builder, Policy-Layer Sehr hoher Beweiswert nötig.
3 Viele Flächen, wenig Nutzerwert — 6 Flächen „harmonisiert", kein klarer Nutzerflow besser Architektur um ihrer selbst willen?
4 Klingt nach Foundation — foundation, framework, generalized, reusable, future-proof, canonical semantics Fast immer erklärungsbedürftig.
5 Mehr Begriffe als Outcomes — lange semantische Erklärung, Nutzerverbesserung kaum in einem Satz Verdächtig.
6 Mehrere Mikrospecs für eine Domäne — foundation + semantics + presentation + hardening + integration Zu fein zerlegt.

Grüne Flaggen

  • Löst klar beobachtbaren Operator-Schmerz
  • Verbessert echte Entscheidungssituation
  • Verhindert konkrete Fehlinterpretation
  • Reduziert Navigation oder Denkaufwand
  • Vereinfacht bereits existierende Komplexität
  • Führt wenig neue Begriffe ein
  • Hat klare Nicht-Ziele
  • Ist in einer Sitzung gut erklärbar
  • Braucht keine neue Meta-Schicht
  • Macht mehrere Flächen einfacher statt abstrakter

Bewertungsraster (02 pro Dimension)

Dimension 0 1 2
Nutzen unklar lokal nützlich klarer Workflow-/Trust-/Audit-Gewinn
Dringlichkeit kann warten sinnvoll bald blockiert oder schützt Wichtiges jetzt
Scope-Disziplin wirkt wie Framework/Plattform etwas breit klar begrenzte v1
Komplexitätslast hohe dauerhafte Last mittel niedrig / gut beherrschbar
Produktnähe vor allem intern/architektonisch gemischt direkt spürbar für Operatoren
Wiederverwendung belegt hypothetisch wahrscheinlich bereits an mehreren echten Stellen nötig

Auswertung

Score Entscheidung
1012 Freigabefähig
79 Nur freigeben wenn Scope enger gezogen wird
46 Verschieben oder zu Cleanup/Micro-Follow-up downgraden
03 Nicht freigeben

TenantPilot-spezifische Regeln

Regel A — Keine neue semantische Achse ohne UI-Beweis

Wo wird sie sichtbar? Warum reichen bestehende Achsen nicht? Welche Fehlentscheidung bleibt ohne sie bestehen?

Regel B — Keine neue Support-/Presentation-Schicht ohne ≥ 3 echte Verbraucher

Registry, Resolver, Catalog, Presenter, Matrix, Explanation-Layer → nur mit mindestens drei echten (nicht künstlich erzeugten) Verbrauchern. Sonst lokal lösen.

Regel C — Keine Spec-Aufspaltung unterhalb Operator-Domäne

Wenn ein Thema nicht eigenständig als Operator-Problem beschrieben werden kann → kein eigener Spec.

Regel D — Jeder neue Status braucht eine echte Folgehandlung

Neue Status/Outcome nur erlaubt wenn sie etwas Konkretes ändern: andere nächste Aktion, anderes Routing, andere Audit-Bedeutung, andere Workflow-Behandlung.

Regel E — Consolidation ist ein legitimer Spec-Typ

Zusammenführen von Semantik, Reduktion von Komplexität, Entfernen von Parallelmodellen, Vereinfachung von Navigation/Resolvern, Rückbau unnötiger Zwischenlayer — aktiv Platz geben.


Freigabe-Template (Pflichtabschnitt in spec.md)

## Spec Candidate Check

- **Problem**: [Konkreter Operator-Schmerz oder Trust-Gap heute]
- **Today's failure**: [Welche Fehlentscheidung / Verlangsamung / irreführende Produktaussage passiert aktuell?]
- **User-visible improvement**: [Was wird konkret schneller, sicherer oder ehrlicher?]
- **Smallest enterprise-capable version**: [Kleinste Version die das Problem sauber löst]
- **Explicit non-goals**: [Was wird bewusst nicht modelliert/generalisiert/frameworkisiert?]
- **Permanent complexity imported**: [Neue Models, Status, Enums, Services, Support-Layer, Tests, UI-Konzepte, Begriffe]
- **Why now**: [Warum jetzt wichtiger als später?]
- **Why not local**: [Warum reicht keine lokale, schmale Lösung?]
- **Approval class**: [Core Enterprise / Workflow Compression / Cleanup / Defer]
- **Red flags triggered**: [Welche roten Flaggen treffen zu?]
- **Score**: [Nutzen: _ | Dringlichkeit: _ | Scope: _ | Komplexität: _ | Produktnähe: _ | Wiederverwendung: _ | **Gesamt: _/12**]
- **Decision**: [approve / shrink / merge / defer / reject]

Erlaubt vs. Verdächtig (Schnellreferenz)

Erlaubt Verdächtig
Echte Workflow-Specs Neue truth sub-axes
Governance-/Finding-/Review-Bearbeitbarkeit Neue explanation frameworks
Trust-/Audit-/RBAC-Härtung Neue presentation taxonomies
Portfolio-Operator-Durchsatzverbesserungen Neue generalized support layers
Consolidation-Specs Mikro-Specs für bereits stark zerlegte Domänen