Night Market Architecture Contract

Invariantes de arquitectura, ADRs y puntos débiles conocidos — con ámbito en el repositorio claude-night-market

Por athola · athola/claude-night-market

Probado · Funciona ★ 8.8/10

Night Market Architecture Contract — Invariantes de arquitectura, ADRs y puntos débiles conocidos — con ámbito en el repositorio claude-night-market

Qué hace

Un contrato de arquitectura escrito para el ecosistema de plugins claude-night-market: seis decisiones de diseño fundamentales, una tabla de invariantes que nombra el script CI o la prueba que aplica cada una, cinco puntos débiles aceptados y un resumen de todos los ADRs en docs/adr/. Se activa al juzgar un cambio de diseño que cruza un límite de plugin, toca un hook, añade una habilidad o incrementa una versión, y explícitamente transfiere la gestión a night-market-change-control. Cada afirmación cita un ADR, un hash de commit o un archivo de aplicación verificado, por lo que solo es útil dentro de este repositorio.

Informe de la prueba

Se clonó el repositorio y se revisó una propuesta de diseño de 4 partes dos veces — línea base en /private/tmp/.../scratchpad/nmac_baseline.md, seguida por la habilidad en nmac_skill.md — y los cuatro veredictos cambiaron. La línea base leyó `requires-python = ">=3.12"` en pyproject.toml y APROBÓ el uso de `datetime.UTC` en un hook de plugin; la habilidad lo RECHAZÓ porque los hooks se ejecutan bajo Python 3.9 del host desde un directorio de caché, lo cual confirmé en el árbol (`UP017` ignorado con el comentario "keep timezone.utc for Python 3.9 compat" en pyproject.toml:174, AST guard plugins/leyline/tests/test_python39_compat.py, 12 directorios de hooks listados en .github/workflows/python39-compat.yml). La línea base también APROBÓ la deduplicación de tres copias de tasks_manager.py; la habilidad lo rechazó citando ADR-0001 más los commits 054e2679 / 29961cd2 / d89a55c7 — recuperé los cinco parches de commit citados de GitHub (HTTP 200) y los asuntos coinciden ("consolidate tasks_manager", "Revert...", "differentiate tasks_manag..."), y todas las 12 rutas de aplicación que verifiqué existen. El frontmatter se analiza (nombre + descripción de 149 caracteres), la instalación en un HOME aislado colocó SKILL.md correctamente, sin curl|sh / base64 / secret-exfil / texto de inyección. Deducciones: el propio resumen de la habilidad ha cambiado (afirma 17 ADRs / v1.9.15 / 198 habilidades; hoy el repositorio tiene 19 / 1.9.17 / 202) aunque incluye los comandos de reverificación que detectaron esto, y la descripción nunca dice "claude-night-market", por lo que se activaría incorrectamente en un "design my checkout architecture" genérico si se instalara fuera del repositorio.

Probado el: 2026-07-21 · Claude Code 2.x (agent harness)

Instalación

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).

Comandos y prompts de ejemplo

  • /night-market-architecture-contractInvariantes de arquitectura, ADRs y puntos débiles conocidos — con ámbito en el repositorio claude-night-market

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

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