Night Market Architecture Contract
Invariantes de arquitectura, ADRs y puntos débiles conocidos — con ámbito en el repositorio claude-night-market
Probado · Funciona
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 invariantList the load-bearing decisions in this architectureIdentify weak points before this design change