Skip to content
Apothem
Konformitäts-Gate

Index

Apothems Konformitäts-Gate — der mechanische Anteil des Fünfzehn-Punkte-Vor-Emissions-Gates (M1-M15), das jedes erzeugte Artefakt bestehen muss.

Die fünfzehn Punkte

PunktIDMandatPrüfklasseFehler → Maßnahme
1M1Host-Projekt-AgnostizismusBegründetÜberarbeiten, um den Host-Konventionen zu entsprechen
2M2Redaktionelle Disziplin (Offenlegungsregister)MechanischOffenlegungsmarkierungen hinzufügen
3M3Zehn QualitätsdimensionenBegründetAn den fehlschlagenden Dimensionen überarbeiten
4M4Selbstanwendung (signierter Gate-Eintrag vorhanden)MechanischSignierten Eintragsblock protokollieren
5M5Autoritätsprinzip (keine erfundene Identität / kein erfundener Endpunkt / kein erfundenes Geheimnis)MechanischAn die Anfrage weiterleiten
6M6Expertise-Einbindung (offengelegte Lücken)BegründetLücken offenlegen; Verfeinerungen zitieren
7M7Optionsannotation (Empfehlungsmarkierung + Begründung)MechanischOptionsmengen annotieren
8M8Endgültigkeit (kein Zaudern in vorschreibender Prosa)MechanischZaudern zu Bedingungen erheben
9M9Visuelle Hebelwirkung (strukturelle Themen tragen Diagramme)BegründetDiagramm erstellen / aktualisieren
10M10Bidirektionale Bindung (reziproke Rückzeiger geschlossen)MechanischHalbkanten schließen
11M11Agile Sprints (Ziel / Backlog / DoR / DoD / Review / Retrospektive)BegründetAls Sprints umstrukturieren
12M12Phasenberichte und kanonisches LayoutMechanischZusammenfassung erstellen; ins kanonische Layout verschieben
13M13Code-Handwerk (Linter / Formatter / Typprüfer; magische Zahl; bare-except)MechanischGemäß den sprachspezifischen Code-Handwerk-Regeln überarbeiten
14M14Systemizität (deklariert Vorgänger / Nachfolger / Geschwister / Durchsetzer)BegründetDeklarieren; in Registern indexieren
15M15Produktionsreif (Tests + Doku + CHANGELOG + konformer Commit + grünes CI + Semver-Stabilität)MechanischFehlende Oberflächen hinzufügen

Schweregrad-Leiter

SchweregradWirkung auf das Gate
KritischGate FAIL — Emission bedingungslos blockiert
WichtigGate FAIL, wenn 2+ wichtige Punkte gleichzeitig fehlschlagen
BeratendGate WARN — im signierten Eintrag protokolliert; blockiert die Emission nicht

Die meisten Matcher des mechanischen Anteils sind standardmäßig Wichtig. M5 (Autorität — Geheimnisse, erfundene Endpunkte) und M12 (verwaiste Ausgaben) sind Kritisch.

%% provenance: hand-authored %%
%% verified: 2026-07-06 %%
%% cross-reference: the Severity ladder table above; src/apothem/conformity/gate.py (severity aggregation) %%
flowchart TD
    accTitle: Conformity-gate severity-to-verdict decision flow
    accDescr: A finding's severity determines the gate verdict. A Critical finding — M5 authority or M12 orphan output — fails the gate and blocks emission unconditionally. Important findings block only when two or more fail simultaneously; a single Important finding does not block. Advisory findings are logged in the signed record and never block emission.
    F["Finding raised<br/>by a matcher"] --> S{"Severity?"}
    S -->|Critical| C["Critical<br/>M5 authority · M12 orphan output"]
    S -->|Important| I["Important<br/>most mechanical matchers"]
    S -->|Advisory| A["Advisory"]
    C --> FAIL["Gate FAIL<br/>emission blocked"]
    I --> Q{"2+ Important<br/>bars failing?"}
    Q -->|yes| FAIL
    Q -->|no| WARN["Gate WARN<br/>logged in signed record<br/>emission proceeds"]
    A --> WARN

Matcher des mechanischen Anteils

Der mechanische Anteil lebt in src/apothem/conformity/*_grep.py, orchestriert durch src/apothem/conformity/gate.py.

MatcherPunktFunktion
hedging_grep.pyM8Erkennt zauderndes Vokabular in vorschreibender Prosa
option_annotation_grep.pyM7Verifiziert die **Recommended**-Markierung + Begründung an Optionsmengen
user_confirm_grep.pyM5Blockiert <USER-CONFIRM:…>-Platzhalter bei der Emission
binding_reciprocity_grep.pyM10Erkennt Halbkanten in ## Bindings (§0.j five-direction)
orphan_output_grep.pyM12Markiert Artefakte ohne Konsument / ohne Indexeintrag / ohne Produzentenzuordnung
bare_except_grep.pyM13Erkennt except: / except Exception: ohne begründenden Kommentar
magic_number_grep.pyM13Erkennt numerische Literale in der Geschäftslogik
commented_out_code_grep.pyM13Erkennt auskommentierte Codeblöcke
file_header_grep.pyM13Verifiziert das Vorhandensein des einzeiligen SPDX-Lizenzheaders
frontmatter_grep.pyM14Verifiziert die erforderlichen Frontmatter-Felder an den vier unten aufgeführten kanonischen Direktiven-Verzeichnissen
semver_stability_grep.pyM15Erkennt brechende öffentliche API-Änderungen ohne MAJOR-Versionserhöhung
production_ready_pr_grep.pyM15Verifiziert die Disziplin desselben Änderungssatzes (Tests + Doku + CHANGELOG)
secret_leak_grep.pyM15Erkennt hartkodierte Geheimnisse / Anmeldedaten
unpinned_action_grep.pyM15Verifiziert das Anpinnen von GitHub Actions an einen Commit-SHA
always_on_budget_grep.pyBudget-ObergrenzeBegrenzt den Körper von Always-on-Regeln auf 500 substanzielle Tokens

Das Gate ausführen

Auf einem installierten Harness läuft das Gate automatisch: Claude Codes settings.json verdrahtet es als PreToolUse-Hook, der die materialisierte Kopie unter ~/.claude/.apothem/support/conformity/gate.py vor jedem Write/Edit aufruft. Aus einem Quell-Checkout treibt die Modulform denselben Code an:

# Einzeldatei-Dispatch (imitiert den PreToolUse-Hook):
echo '{"tool_input": {"file_path": "path/to/file", "content": "..."}}' \
    | python -m apothem.conformity.gate --hook

# Zusammengesetzter Durchlauf über das Repository:
python -m apothem.conformity.gate --sweep src/ site/content/docs/ rules/

Siehe Das Konformitäts-Gate ausführen für das vollständige Verfahren.

Referenz

On this page