Night Market Architecture Contract
Invariants d'architecture, ADRs et points faibles connus — limités au dépôt claude-night-market
Testé · Fonctionne
Ce que fait
Un contrat d'architecture écrit pour l'écosystème de plugins claude-night-market : six décisions de conception porteuses, un tableau d'invariants nommant le script CI ou le test qui applique chacune d'elles, cinq points faibles acceptés, et un résumé de tous les ADRs dans docs/adr/. Il se déclenche lors de l'évaluation d'un changement de conception qui traverse une limite de plugin, touche un hook, ajoute une compétence ou incrémente une version, et il délègue explicitement le contrôle à night-market-change-control. Chaque affirmation cite un ADR, un hachage de commit ou un fichier d'application vérifié, il n'est donc utile qu'à l'intérieur de ce seul dépôt.
Rapport de test
Cloné le dépôt et examiné deux fois une proposition de conception en 4 parties — base de référence à /private/tmp/.../scratchpad/nmac_baseline.md, suivie par la compétence à nmac_skill.md — et les quatre verdicts ont été inversés. La base de référence a lu `requires-python = ">=3.12"` dans pyproject.toml et a APPROUVÉ l'utilisation de `datetime.UTC` dans un hook de plugin ; la compétence l'a REJETÉ car les hooks s'exécutent sous Python 3.9 de l'hôte à partir d'un répertoire de cache, ce que j'ai confirmé dans l'arbre (`UP017` ignoré avec le commentaire « keep timezone.utc for Python 3.9 compat » à pyproject.toml:174, garde AST plugins/leyline/tests/test_python39_compat.py, 12 répertoires de hooks listés dans .github/workflows/python39-compat.yml). La base de référence a également APPROUVÉ la déduplication de trois copies de tasks_manager.py ; la compétence l'a rejeté en citant ADR-0001 plus les commits 054e2679 / 29961cd2 / d89a55c7 — j'ai récupéré les cinq patchs de commit cités de GitHub (HTTP 200) et les sujets correspondent (« consolidate tasks_manager », « Revert... », « differentiate tasks_manag... »), et les 12 chemins d'application que j'ai vérifiés ponctuellement existent. Le frontmatter s'analyse (nom + description de 149 caractères), l'installation dans un HOME isolé a placé SKILL.md correctement, aucun curl|sh / base64 / exfiltration de secrets / texte d'injection. Déductions : le propre résumé de la compétence a dérivé (prétend 17 ADRs / v1.9.15 / 198 compétences ; aujourd'hui le dépôt en a 19 / 1.9.17 / 202) bien qu'il fournisse les commandes de re-vérification qui ont détecté cela, et la description ne dit jamais « claude-night-market », donc il se déclencherait mal sur une « design my checkout architecture » générique s'il était installé en dehors du dépôt.
Testé le: 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).
Commandes et exemples de prompts
/night-market-architecture-contractInvariants d'architecture, ADRs et points faibles connus — limités au dépôt claude-night-market
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Judge whether this design change breaks an invariantList the load-bearing decisions in this architectureIdentify weak points before this design change