i-have-adhd: respuestas legibles, adaptadores y evidencia
Una regla compartida y tres modelos de persistencia en i-have-adhd
Sigue la inyección inicial, la transformación por turno y el estado de Pi sin reducirlos a un diagrama genérico.
Qué aprenderás
- El activo reutilizable es el documento de reglas
- Iniciar una sesión y transformar cada turno no equivalen
- Pi añade estado explícito y reconciliación del contexto
Antes de empezar
- Conocimientos básicos de Git y terminal
- Distinguir comportamiento observado de afirmaciones no probadas
Explicar el mecanismo, preparar una prueba reversible e interpretar evidencia sin confundir estilo y corrección.
Conclusiones clave
- Reglas y ciclo de entrega son componentes separados.
- La carga tolerante a fallos puede ocultar reglas ausentes.
- Inspeccionar estado Pi no verifica su runtime.
El activo reutilizable es el documento de reglas
La habilidad canónica aporta instrucciones de presentación, los manifiestos permiten descubrirla y los adaptadores deciden cuándo inyectarla. Separar responsabilidades explica por qué una frase puede afectar a varias integraciones, mientras que reparar un adaptador no arregla necesariamente el ciclo de otro anfitrión. Fija reglas y código al comparar revisiones.
El hook Node resuelve SKILL.md respecto a su propio archivo y elimina el bloque YAML inicial antes de imprimir el cuerpo. El lanzador obtiene por separado una raíz desde variables de entorno. Son límites de confianza distintos: la búsqueda relativa no valida todas las rutas del lanzador ni las capacidades que el anfitrión concede al complemento.
Iniciar una sesión y transformar cada turno no equivalen
hooks.json registra SessionStart y Node comprueba un marcador antes de emitir reglas; no mantiene una máquina de estados conversacional en memoria. El adaptador OpenCode registra experimental.chat.system.transform y añade reglas en cada llamada mientras exista su marcador. Por eso una transformación nueva puede volver a inyectarlas.
Ambas implementaciones toleran ciertos fallos de archivos para no interrumpir el anfitrión. Esto favorece disponibilidad, pero el silencio resulta ambiguo: desactivación voluntaria, archivo ausente u otra operación protegida fallida. Diagnostica la carga antes de concluir que el modelo ignoró instrucciones. Una salida correcta del proceso no demuestra que las reglas estuvieran presentes.
Pi añade estado explícito y reconciliación del contexto
La extensión Pi consulta entradas de estado guardadas y recurre a valores predeterminados, como opciones y configuración, cuando no hay estado. Emite mensajes distintos para activación y desactivación, procesa frases de parada y sincroniza después de eventos de sesión. Su auxiliar de contexto pretende determinar si el marcador relevante más reciente sigue activo tras cambios del contexto.
Inspeccionamos esa ruta TypeScript, pero no ejecutamos Pi ni su auxiliar de compatibilidad. Los catorce casos cubren únicamente Node y OpenCode con contexto sintético. El diagrama distingue la ruta Pi inspeccionada de los fixtures ejecutados para que una prueba correcta de una integración no se anuncie como validación de las tres.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Localiza el documento canónico.
- 2
Identifica el evento que llama a cada adaptador.
- 3
Encuentra sus estados de activación y salida.
- 4
Separa inspección estática y pruebas ejecutadas.
Ejemplo para copiar
{
"Node": "SessionStart y marcador de activación",
"OpenCode": "transformación de sistema y marcador propio",
"Pi": "estado guardado y reconciliación de contexto",
"PiRuntimeTested": false
}Preguntas frecuentes
¿Todas las integraciones inyectan una sola vez?
No; existen inyección inicial y transformación por turno.
¿El código de salida cero demuestra activación?
No; el hook también termina correctamente al estar desactivado o ante fallos protegidos.
Fuentes
- i-have-adhd / skills/i-have-adhd/SKILL.mdFuente verificada 2026-09-12
- i-have-adhd / hooks/always-on.mjsFuente verificada 2026-09-12
- i-have-adhd / hooks/hooks.jsonFuente verificada 2026-09-12
- i-have-adhd / .opencode/plugins/i-have-adhd.mjsFuente verificada 2026-09-12
- i-have-adhd / extensions/i-have-adhd.tsFuente verificada 2026-09-12