Night Market Architecture Contract

Architektur-Invarianten, ADRs und bekannte Schwachstellen — auf das claude-night-market Repo zugeschnitten

von athola · athola/claude-night-market

Getestet · Funktioniert ★ 8.8/10

Night Market Architecture Contract — Architektur-Invarianten, ADRs und bekannte Schwachstellen — auf das claude-night-market Repo zugeschnitten

Was es kann

Ein schriftlicher Architekturvertrag für das claude-night-market Plugin-Ökosystem: sechs tragende Designentscheidungen, eine Invarianten-Tabelle, die das CI-Skript oder den Test benennt, der jede durchsetzt, fünf akzeptierte Schwachstellen und eine Zusammenfassung aller ADRs in docs/adr/. Es wird ausgelöst, wenn eine Designänderung beurteilt wird, die eine Plugin-Grenze überschreitet, einen Hook berührt, einen Skill hinzufügt oder eine Version erhöht, und es übergibt die Steuerung explizit an night-market-change-control. Jede Behauptung zitiert ein ADR, einen Commit-Hash oder eine eingecheckte Enforcement-Datei, daher ist es nur innerhalb dieses einen Repos nützlich.

Testbericht

Das Repo geklont und einen 4-teiligen Designvorschlag zweimal überprüft — Baseline unter /private/tmp/.../scratchpad/nmac_baseline.md, Skill-befolgt unter nmac_skill.md — und alle vier Urteile kippten. Die Baseline las `requires-python = ">=3.12"` in pyproject.toml und GENEHMIGTE die Verwendung von `datetime.UTC` in einem Plugin-Hook; der Skill LEHNTE dies ab, weil Hooks unter Host Python 3.9 aus einem Cache-Verzeichnis ausgeführt werden, was ich im Baum bestätigte (`UP017` ignoriert mit Kommentar „keep timezone.utc for Python 3.9 compat“ in pyproject.toml:174, AST-Guard plugins/leyline/tests/test_python39_compat.py, 12 Hook-Verzeichnisse aufgeführt in .github/workflows/python39-compat.yml). Die Baseline GENEHMIGTE auch die Deduplizierung von drei tasks_manager.py-Kopien; der Skill lehnte dies unter Berufung auf ADR-0001 plus Commits 054e2679 / 29961cd2 / d89a55c7 ab — ich habe alle fünf zitierten Commit-Patches von GitHub abgerufen (HTTP 200) und die Betreffzeilen stimmen überein („consolidate tasks_manager“, „Revert...“, „differentiate tasks_manag...“), und alle 12 von mir stichprobenartig überprüften Enforcement-Pfade existieren. Frontmatter parst (name + 149-Zeichen-Beschreibung), Installation in ein isoliertes HOME platzierte SKILL.md korrekt, kein curl|sh / base64 / secret-exfil / injection text. Abzüge: Der eigene Digest des Skills ist abgewichen (behauptet 17 ADRs / v1.9.15 / 198 Skills; heute hat das Repo 19 / 1.9.17 / 202), obwohl es die Überprüfungsbefehle liefert, die dies erfassten, und die Beschreibung sagt nie „claude-night-market“, sodass es bei einer generischen „design my checkout architecture“-Anfrage falsch auslösen würde, wenn es außerhalb des Repos installiert wäre.

Getestet am: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/athola/claude-night-market.git /tmp/night-market-architecture-contract-src
mkdir -p ~/.claude/skills
cp -R /tmp/night-market-architecture-contract-src/.claude/skills/night-market-architecture-contract ~/.claude/skills/night-market-architecture-contract
# Single SKILL.md, no scripts, no deps, no API keys.
# IMPORTANT SCOPE LIMIT: this skill documents the claude-night-market repo itself.
# Every path it cites (docs/adr/, plugins/abstract/scripts/validate_budget.py,
# scripts/check_skill_graph_drift.py, .github/workflows/python39-compat.yml ...)
# only resolves when your cwd IS that repo. Installed into an unrelated project
# it will still load (description says only "judging a design change") and give
# you facts about someone else's codebase. Use it as a repo-local skill.
# Sibling skills in the same dir: night-market-change-control (gating),
# night-market-failure-archaeology (incidents), night-market-operations (commands).

Befehle & Beispiel-Prompts

  • /night-market-architecture-contractArchitektur-Invarianten, ADRs und bekannte Schwachstellen — auf das claude-night-market Repo zugeschnitten

Skills reagieren auf normale Anfragen — keine Slash-Befehle nötig. Nach der Installation aktivieren Prompts wie diese den Skill (auf Englisch):

  • Judge whether this design change breaks an invariant
  • List the load-bearing decisions in this architecture
  • Identify weak points before this design change