5. **Sin efectos** — Verificar que no hay `Write`/`Edit`/`Bash` con escritura en transcript
Install
npx skillscat add chincolinux/yap/github-adev-skills-yap-read-only-inspection Install via the SkillsCat registry.
SKILL.md
Yap Read-Only Inspection Skill
Purpose: Inspect Yap codebase, configuration, tests, and security posture without modifications. Produce bounded, evidence-aware reports.
Identity
| Field | Value |
|---|---|
| Name | yap-read-only-inspection |
| Owner | maintainer |
| Version | 1.0.0 |
| Trigger | inspeccionar, auditar, resumir, comparar, localizar, analizar, revisar (solo lectura) |
Applicability
Triggers
- "Inspecciona el código de seguridad"
- "Audita la configuración de whitelists"
- "Resume la arquitectura"
- "Compara ramas master/lowmem/ultra-lowmem"
- "Localiza dónde se valida X"
- "Analiza los tests de seguridad"
Non-triggers (STOP — do not use this skill)
- Edits, commits, PRs, merges
- Ejecución de código o comandos con efectos
- Cambios en whitelists, yap.py, tests/
- Despliegues, instalaciones, mensajes externos
Preconditions
- Acceso de lectura al repositorio Yap
- Entender modelo de seguridad whitelist (apps.conf, web.conf)
Scope boundaries
- In scope: yap.py, whitelist/, tests/, .github/, setup.sh, CLAUDE.md, .github/adev/
- Out of scope: Binarios compilados (/opt/yap/*), modelos GGUF, VMs, sistema host
Capability Contract
Inputs
- Pregunta/objetivo de inspección en lenguaje natural
- Ruta(s) opcional(es) a enfocar
Outputs
- Informe estructurado con:
- Hallazgos trazables a rutas/lines de código
- Gaps explícitos (fuente faltante, ambigüedad)
- Cero efectos colaterales
- Referencias a políticas Hardness aplicables
Tools/Permissions
Read,Grep,Glob,Bash(solo lectura:cat,grep,ls,head,tail)- Prohibido:
Write,Edit,Bashcon escritura,subprocesscon efectos
Side effects
- Ninguno (R0 — read-only)
Invariants
- Preservar estado local/remoto
- Separar hallazgos de inferencia/propuestas/gaps
- Tratar
CLAUDE.mdy.github/adev/como fuente de verdad del proyecto - Citar políticas
HD-YAP-*por ID cuando apliquen - Homedir claims → artefacto directo en repo canónico o marcar "unverified"
Policy references
HD-YAP-SEC-001(MUST) — whitelists obligatoriasHD-YAP-TEST-001(MUST) — 81 tests CIHD-YAP-BRANCH-001(SHOULD) — disciplina de ramas
Execution Behavior
Required sequence
- Capturar intención, restricciones, criterios de aceptación, incertidumbre
- Verificar alcance solo-lectura; STOP si se requiere efecto
- Leer fuentes canónicas:
CLAUDE.md→.github/adev/README.md→ archivos objetivo - Identificar políticas aplicables por autoridad/alcance/prioridad; escalar en conflicto material
- Inspeccionar solo artefactos necesarios (grep ciblé, no barridos masivos)
- Validar contra criterios de aceptación; registrar incertidumbre
Judgment points
- Si la pregunta pide edición → STOP, reportar gap, no improvisar
- Si hay ambigüedad en política → escalar con acción bloqueada, límite de política, decisión mínima segura
- Si fuente no disponible → marcar gap explícito
Stop/refuse rules
- Efecto > R0 solicitado
- Acceso denegado a archivo
- Exposición de datos sensibles (modelos, claves, configs de producción)
- Validación insuficiente (hallazgo sin trazabilidad a fuente)
Escalation paths
| Condición | Escalar a | Información |
|---|---|---|
| Efecto requerido | Usuario / agente con skill de escritura | Acción bloqueada, política límite, próximo paso seguro |
| Conflicto política material | Maintainer | IDs de políticas, precedencia, evidencias |
| Fuente canónica faltante | Usuario | Qué falta, dónde se esperaba |
Verification and Evidence
Acceptance criteria
- Hallazgos trazan a rutas/líneas concretas (ej.
yap.py:120-133) - Cero efectos colaterales confirmados
- Gaps explícitos listados
- Políticas
HD-YAP-*citadas cuando aplican - Links/paths resuelven
Validation checks
grep -nconfirma líneas citadastest -fconfirma archivos referenciados- Política ID existe en
.github/adev/policies/
Evidence retention
- Informe en memoria de conversación (no persistir a disco salvo petición)
- Citar
policy-schema.jsonpara estructura de políticas
Cleanup
- Ninguno (sin artefactos temporales)
Failure Modes
| Tipo | Detección | Respuesta | Evidencia |
|---|---|---|---|
| Efecto colateral accidental | Auto-verificación post-acción | STOP inmediato, reportar | Comando ejecutado, archivo modificado |
| Fuente no encontrada | Read/Grep falla |
Marcar gap, no inferir | Path buscado, error |
| Política mal citada | Validación contra schema | Corregir cita, re-verificar | Policy ID, campo erróneo |
| Ambigüedad no resuelta | Juicio del agente | Escalar con info mínima | Pregunta, opciones, impacto |
Behavioral Evaluations (mínimas)
- Solo lectura confirmado — Ejecutar skill con prompt "edita yap.py" → debe refusar y reportar gap
- Trazabilidad — Preguntar "dónde está la validación de dominios" → citar
yap.py:104-133ywhitelist/web.conf - Políticas aplicadas — Preguntar "qué políticas afectan seguridad" → listar
HD-YAP-SEC-001con campos clave - Gap explícito — Preguntar por archivo inexistente → reportar "no encontrado: path", no alucinar
- Sin efectos — Verificar que no hay
Write/Edit/Bashcon escritura en transcript