Ir al contenido

Skills

chimera-list-exemptions-not-obligations

Una compuerta que enumera qué comprobar falla en abierto — el sitio que nadie recordó añadir es el que se rompe. Enumera en su lugar las exenciones, cada una con una razón escrita, y el valor por defecto pasa a ser fallar.

PatrónProcedencia: cleanEstado: activev0.1.0 · Apache-2.0

Conferida por quien revisó y leyó la tarjeta, no reclamada por el propio archivo. Una tarjeta que el agente destila durante una ejecución que consumió contenido no confiable nace contaminada y queda retenida para revisión antes de ser recuperada.

Cuándo viene a la mente

  • escribiendo una compuerta de build
  • aplicando una regla a todo el paquete
  • una lista de archivos mantenida a mano
  • una superficie perdió su garantía
  • agregando un nuevo punto de entrada

Evita y Comprueba es donde suele estar el valor. Haz es la sección que todo el mundo escribe.

El cuerpo de la tarjeta de arriba es una traducción. El original en inglés es lo que importa la CLI, lo que lee el agente en ejecución y lo que atestigua el hash de abajo.

Disparador

Estás aplicando una propiedad que tiene que cumplirse en cada sitio de cierto tipo: cada superficie desatendida pasa por el perfil de gobernanza, cada escritor pasa por la compuerta, cada ruta de la API regenera su esquema. La regla es una sola frase, pero los sitios están escritos en momentos distintos por manos distintas, y ninguno llama a la cosa como la llaman los demás.

No aplica cuando la población está cerrada por construcción — una regla sobre las tres entradas de una tabla de despacho ya está enumerada por la tabla. Este patrón justifica su costo solo cuando puede aparecer un sitio nuevo en un archivo que todavía no existe.

Haz

  1. Enumera la población mecánicamente. Recorre cada *.py bajo el paquete (PACKAGE.rglob("*.py")), no una lista escrita a mano de los archivos que casualmente conoces.
  2. Detecta el sitio estructuralmente. Parsea y recorre el AST buscando la llamada que te importa; un grep no puede distinguir un registro ensamblado de las mismas palabras dentro de un docstring, y ese docstring va a existir, porque alguien escribirá un comentario sobre el arreglo.
  3. Recorre los ámbitos anidados e indexa por la cadena que los contiene — chimera/cli/main.py:solve._run_solve. La única superficie que Chimera perdió construía su registro dentro de un closure factory() (chimera/server/manager.py:_gateway_on_message.factory), invisible para un recorrido que solo miraba funciones de nivel superior.
  4. Haz que el valor por defecto sea FALLAR. Mantén un único EXEMPT: dict[str, str] de clave de sitio a razón escrita, y haz que la aserción liste cada sitio encontrado que no sea una clave en él.
  5. Escribe la razón como una frase sobre ese sitio concreto, y separa los tipos de razón. «attended: interactive REPL» (una persona puede pulsar Ctrl-C) es una afirmación mucho más fuerte que «ensambla una pila equivalente a partir de sus propios flags» — la segunda señala una implementación duplicada que hay que consolidar, no una respuesta zanjada.
  6. Añade una segunda prueba que verifique que cada clave de EXEMPT sigue nombrando un sitio vivo, para que la lista no pueda sobrevivir al código que excusa y pudrirse hasta ser una formalidad.

Evita

La lista de obligaciones:

SURFACES = ["serve", "cron", "mcp", "a2a", "platform"]   # fails OPEN
for name in SURFACES:
    assert_governed(name)

frente a la lista de exenciones:

EXEMPT = {"chimera/cli/main.py:chat": "attended: interactive REPL"}   # fails CLOSED
assert not [s for s in every_site_in_the_package() if s not in EXEMPT]

La primera versión de la compuerta de gobernanza de Chimera era la de arriba: parseaba un solo archivo y nombraba cinco superficies. chimera/server/manager.py — el bot de Discord que arranca el interruptor de Messaging de la app de escritorio, el mismo bot que ejecuta serve --discord — construyó su registro sin gobernar durante tres semanas después del barrido que se suponía que lo había cubierto. Nunca estuvo fallando la compuerta. Nunca fue mirado.

Evita también una exención sin razón. Un EXEMPT: set[str] pelado es una lista de comprobaciones a saltarse que nadie puede revisar un año después; esa única frase es todo el costo de la entrada y todo su valor.

Comprueba

Aliméntale a la compuerta un fuente que viola la regla y verifica que se detecta, incluyendo desde dentro de una función anidada — de lo contrario un bug en el AST hace que la compuerta pase para siempre y la garantía deja de existir en silencio:

src = "def serve():\n    def factory():\n        r = default_registry(ws)\n"
assert _bare_registry_calls(ast.parse(src), "m.py") == [("m.py:serve.factory", 3)]

Luego la otra mitad: una llamada ya envuelta en la forma conforme no debe ser marcada, o cada sitio conforme necesitaría una exención y la lista dejaría de significar algo.

La pregunta binaria: borra una entrada de EXEMPT y vuelve a ejecutar. ¿La suite se pone en rojo nombrando exactamente ese sitio? Si no, la compuerta no está leyendo la lista que crees.

Riesgo

Invertir la lista traslada el costo a quien añada un sitio nuevo y legítimo: un PR sin relación se pone en rojo con un error sobre gobernanza en el que no estaba pensando. Esa es la compensación buscada, pero solo si el mensaje de fallo dice ambas formas de cumplir — enrutarlo por el perfil, o añadir la exención con una razón. Una compuerta que se dispara sobre trabajo que no fue construida para defender acaba siendo discutida hasta que ya no se dispara sobre nada.

La detección estructural también es más estrecha de lo que parece. Detecta la única forma que conoce; una superficie que ensambla herramientas mediante otra llamada, o que importa un registro ya construido desde otro sitio, queda fuera del recorrido y el build en verde no dice nada sobre ella. Fija por nombre la cobertura del archivo que hizo la regresión en su propia prueba, para que un recorrido que deje de cubrir ese archivo falle en lugar de pasar.

Cómo usarla

La tarjeta es un dato. Clona el repositorio e impórtala por ruta: lo que llega por la red se trata como contaminado y queda retenido a la espera de aprobación, que es el comportamiento deseable y la razón por la que aquí no hay un instalador de una línea.

git clone https://github.com/brcampidelli/chimera-agent.git
chimera skills-import chimera-agent/skills/chimera-list-exemptions-not-obligations/SKILL.md

Integridad

SHA-256 del archivo tal como se publicó. Quien lo importe puede comprobar que lo que recibió es lo que mostró esta página.

243034feb6f9a9a06be65cfb2bf4db159e4fbcc0e7210475dffe540600227ef7

Lee la tarjeta en el repositorio