Install
$ agentstack add skill-j4rk0r-claude-skills-codex-diff-develop ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Revisión Codex — Diff rama actual vs develop
Primera línea del informe generado: "Español confirmado."
Fast path (resumen ejecutable)
1. Leer references/metodologia-codex-completa.md (~70 líneas, completo)
2. Leer references/plantillas-hallazgos.md (~230 líneas, completo)
3. cd a drupal/ si existe, si no raíz del workspace
4. git rev-parse --abbrev-ref HEAD → guardar como
5. git fetch origin develop (silencioso)
6. git diff --name-only origin/develop...HEAD → lista de archivos
7. Aplicar Decision tree para elegir puntos Codex prioritarios
8. Aplicar las 5 preguntas del framework Codex (sección siguiente)
9. Revisar archivo por archivo, anotando hallazgos con Severidad
10. Detectar IDE: leer CLAUDE_CODE_ENTRYPOINT (claude-vscode/claude-cursor/claude-antigravity).
Solo si no es concluyente, caer a detección por carpeta existente.
11. Escribir informe en /Revisiones diff/lint-review-diff-develop-.md
11. Auto-verificar contra el Checklist de auto-verificación (final del documento)
Si cualquier paso falla, detente y consulta la sección "Edge cases del propio flujo".
Antes de revisar — pregúntate (framework Codex)
- ¿Qué tipo de cambio es? Hook nuevo, refactor, hotfix, migración, config — el tipo determina qué puntos Codex aplican.
- ¿Cuál es el peor escenario en producción? Si este código falla, ¿qué se rompe? Eso fija la severidad de los hallazgos.
- ¿Hay algo fuera del diff que el cambio asume? Schema, config, dependencias, índices BD, permisos — los olvidos viven en lo que no se ve.
- ¿Es idempotente? Si se ejecuta dos veces (retry, doble clic, re-deploy, re-import config), ¿pasa algo malo?
- ¿Se puede desactivar? ¿Hay kill-switch (config/setting/feature flag) si la feature explota a las 3am sin tiempo de redeploy?
Si no puedes responder a las cinco con confianza, lee el código circundante antes de emitir el informe.
Ejemplo de aplicación (mini-diff)
Diff: añade mymodule_node_update() que calcula un score y lo guarda en una tabla custom vía db_query("INSERT ... VALUES ('" . $title . "')").
- (1) Tipo: hook de entidad + escritura SQL → aplican Codex 1, 3, 4, 9.
- (2) Peor escenario: SQL injection si
$titleviene de input + nodos nuevos sin score (falta_insert). - (3) Asume: que la tabla custom existe (¿hay update hook? ¿schema?).
- (4) Idempotente: ¿qué pasa al re-guardar el nodo? ¿duplica filas o hace UPDATE? Verificar.
- (5) Kill-switch: no hay → hallazgo Media (Codex 11).
Resultado: 4 hallazgos (3 Alta + 1 Media), ninguno fuera del alcance del diff.
Ubicación fija (no preguntar)
- Repo git: si existe carpeta
drupal/en el workspace, losgitse ejecutan dentro dedrupal/. Si no, raíz del workspace. - Carpeta de salida (auto-detectada por IDE):
Paso 1 — detectar el IDE por variable de entorno (PRIORITARIO). Ejecuta printenv CLAUDE_CODE_ENTRYPOINT (o equivalente) y aplica: | CLAUDE_CODE_ENTRYPOINT | Carpeta a usar | |---|---| | claude-antigravity | .antigravity/Revisiones diff/ | | claude-cursor | .cursor/Revisiones diff/ | | claude-vscode | .vscode/Revisiones diff/ | | otros (cli, vacío, etc.) | continuar al Paso 2 |
Señales secundarias si CLAUDE_CODE_ENTRYPOINT no es concluyente: __CFBundleIdentifier (com.microsoft.VSCode → VS Code, com.todesktop.* → Cursor, com.google.Antigravity → Antigravity), o VSCODE_PID/CURSOR_*/ANTIGRAVITY_* cuando existan.
Si el IDE se identificó por env, crea la carpeta correspondiente aunque no exista todavía. NUNCA caigas a detección por carpeta cuando el env var es claro — eso causa el bug de elegir .cursor/ solo porque sobrevive de un uso anterior del IDE.
Paso 2 — fallback por existencia de carpeta (solo si no hay señal de env):
- Si existe
.antigravity/en la raíz del workspace →.antigravity/Revisiones diff/ - Si existe
.cursor/(y no.antigravity/) →.cursor/Revisiones diff/ - Si existe
.vscode/(y no las anteriores) →.vscode/Revisiones diff/ - Si no existe ninguna →
docs/revisiones-diff/
- Nombre del archivo:
lint-review-diff-develop-.md. Crear la carpeta si no existe. Un archivo por rama (no sobrescribir entre ramas).
Flujo
- Detectar contexto del diff:
git rev-parse --abbrev-ref HEAD→ rama actual.git fetch origin develop(silencioso, ignorar fallo de red).git diff --name-only origin/develop...HEAD→ lista de archivos.- Aplicar el Decision tree (siguiente sección).
- Cargar referencias necesarias (ver sección "Carga de referencias").
- Revisar solo los archivos del diff + dependencias mínimas.
- Emitir el informe con la estructura obligatoria.
Decision tree según contenido del diff
| Contenido del diff | Puntos Codex prioritarios | Foco extra | |---|---|---| | .module / .php (hooks, services, controllers) | 1, 2, 3, 4, 5, 6, 7, 9, 11, 13 | DI, access, transactions | | .twig solo | 8, 14 | XSS, cache metadata, i18n | | .yml config (*.schema.yml, *.routing.yml, *.services.yml) | 11, 15, 18 | Schema completo, overrides | | *.install / update hooks | 1, 5, 9, 17 | Idempotencia, rollback | | Migrations (migrate_plus.migration.*) | 16 | id_map, file usage | | .scss / .js solo | — | Linters, A11y, BigPipe | | Diff vacío | Reportar "sin cambios respecto a develop" y salir | | HEAD == develop | Abortar: "Estás en develop, no hay diff que revisar" | | Sin origin/develop | Pedir confirmación antes de continuar | | >200 archivos cambiados | Avisar al usuario y pedir confirmación | | Solo composer.lock | Revisar deps añadidas/eliminadas, no líneas |
Carga de referencias
Esta skill tiene dos archivos en references/. Reglas de carga:
- MANDATORY — leer ANTES de citar puntos Codex: lee completo [
references/metodologia-codex-completa.md](references/metodologia-codex-completa.md) (~70 líneas, 18 puntos con el PORQUÉ). NUNCA parafrasees los puntos sin haberlo leído. NUNCA uses range limits al leerlo. - MANDATORY — leer ANTES de redactar hallazgos: lee completo [
references/plantillas-hallazgos.md](references/plantillas-hallazgos.md) (~230 líneas, 14 plantillas con código real). Adapta los snippets al diff real, no inventes código. - Si ya las has leído en esta sesión, no recargar — el contexto las conserva.
- Do NOT load ninguna otra documentación externa, README, ni archivos del propio módulo más allá del diff y dependencias mínimas.
NEVER (lecciones aprendidas a las malas)
- NUNCA marcar "Alta" un hallazgo de estilo (typo, espacio, comentario). Por qué: diluye severidad, el equipo deja de leer las Altas reales.
- NUNCA sugerir refactors fuera del diff salvo seguridad crítica o data loss. Por qué: rompe el alcance del PR y genera fricción con el autor.
- NUNCA aprobar
\Drupal::service()en clases nuevas con el argumento "ya había antes". Por qué: perpetúa deuda y bloquea testing. - NUNCA dar por bueno
accessCheck(FALSE)sin comentario// accessCheck OK porque...en la línea siguiente. Por qué: bypass silencioso de permisos. - NUNCA aprobar migración sin verificar
id_mapyfile_usage(si maneja media). Por qué: rollbacks rotos. - NUNCA aprobar
|rawen Twig sin verificar que el origen es 100% controlado por el sistema. Por qué: XSS persistente. - NUNCA aprobar
$query->execute()dentro dehook_*_altersin cache. Por qué: N+1 en cada render. - NUNCA aprobar nuevo
dependencies:en*.info.ymlsin verificar que el módulo está encomposer.json. Por qué: deploy roto en CI. - NUNCA escribir el informe en inglés. Código y comandos en inglés; explicaciones en español.
- NUNCA marcar el informe como "OK" si hay cualquier hallazgo de severidad Alta sin resolver.
- NUNCA citar un punto Codex sin haber leído
references/metodologia-codex-completa.mden esta sesión. - NUNCA aprobar
EntityFieldManagerInterface::getFieldStorageDefinitions()sin verificar que el field exists primero. Por qué: tras eliminar un field y antes decron/field_purge_batch, el storage queda zombi y revienta queries. - NUNCA aprobar Batch API nueva sin
finishedcallback que maneje$success === FALSE. Por qué: batches que fallan en mitad dejan datos a medias y nadie se entera. - NUNCA aprobar
entityTypeManager->getStorage()->loadMultiple()sinarrayvacío como guarda. Por qué:loadMultiple([])devuelve TODAS las entidades — bug clásico de fuga de memoria.
Severidades (criterio fijo)
| Severidad | Criterio | |---|---| | Alta | Seguridad explotable, data loss, rompe producción, bloquea deploy | | Media | Bug funcional, incumple estándar del proyecto, deuda inmediata | | Baja | Estilo, micro-optimización, mejora opcional |
Si dudas entre dos niveles, baja uno. Las Altas deben ser realmente Altas.
Estructura obligatoria del informe
Español confirmado.
# Revisión de código — Diff develop (rama actual: )
## Resumen ejecutivo
## Hallazgos por categoría
### Seguridad
### Lógica de negocio / Codex
### Estándares / DI
### Performance / Cache
### Accesibilidad / i18n
### Tests / CI
## Riesgos (tabla)
| Área | Riesgo | Severidad | Mitigación |
## Sugerencias accionables
1. ...
## Checklist final
- [ ] Hallazgos Alta resueltos
- [ ] Tests pasan
- [ ] Schema config actualizado
- [ ] Update hooks idempotentes
Cada hallazgo va con Problema (Severidad), Riesgo y Solución (con código). Adapta las plantillas de [references/plantillas-hallazgos.md](references/plantillas-hallazgos.md).
Idioma y tono
- Español en todo el texto. Inglés en código, nombres de clase, comandos y rutas.
- Tono profesional, directo, simpático con el equipo que aplicará las correcciones.
- Detalle proporcional a la complejidad del hallazgo.
Checklist de auto-verificación (antes de entregar)
Antes de dar por cerrado el informe, comprueba uno por uno:
- [ ] Primera línea del informe es exactamente
Español confirmado. - [ ] El archivo está en
.cursor/Revisiones diff/lint-review-diff-develop-.md - [ ] He leído
references/metodologia-codex-completa.mden esta sesión - [ ] He leído
references/plantillas-hallazgos.mden esta sesión - [ ] Cada hallazgo tiene Problema (Severidad), Riesgo y Solución
- [ ] Ninguna severidad "Alta" es solo de estilo (typo, espacio, comentario)
- [ ] Todas las soluciones de código compilan mentalmente y siguen DI/PSR-12
- [ ] No he propuesto cambios fuera del alcance del diff (salvo seguridad crítica)
- [ ] Todas las explicaciones en español, todo el código en inglés
- [ ] He aplicado las 5 preguntas Codex a cada bloque significativo
- [ ] El informe incluye Resumen ejecutivo, Hallazgos, Riesgos, Sugerencias y Checklist final
- [ ] Si hay hallazgos Alta sin resolver, el veredicto NO es "OK"
Si alguna casilla queda sin marcar, vuelve atrás y arregla antes de entregar.
Recovery — qué hacer si algo falla
| Síntoma | Acción | |---|---| | references/metodologia-codex-completa.md no existe | Avisar al usuario, no inventar puntos Codex | | references/plantillas-hallazgos.md no existe | Generar hallazgos sin plantilla pero con misma estructura | | git fetch falla por red | Continuar con develop local + nota en informe | | .cursor/ no se puede crear | Pedir al usuario que cree la carpeta y reintentar | | Diff demasiado grande (>200 archivos) | Pedir confirmación antes de continuar | | El usuario está en develop | Abortar con mensaje claro, no generar informe vacío |
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: j4rk0r
- Source: j4rk0r/claude-skills
- License: MIT
- Homepage: https://claude-skills-omega.vercel.app
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.