with one click
adr-indexer
Indexa decisiones arquitectónicas (ADR) desde comentarios en código
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Indexa decisiones arquitectónicas (ADR) desde comentarios en código
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Descompone una imagen o descripción de UI en componentes reutilizables del design system y genera el kit de componentes base para el proyecto.
Conduce el flujo SDD-ES para personas que no programan (perfil guiado). Define cómo hablar sin jerga, cuándo confirmar antes de actuar, y cómo tomar las decisiones técnicas por el usuario sin bajar el rigor. Se activa cuando estado.json o sdd.config.yaml indican perfil "guiado".
Genera índice AST de archivos JS/TS para navegación estructural sin leer archivos completos
Conecta el proyecto a GitHub automáticamente. Crea repo, configura remote, hace push inicial.
Comprime archivos de memoria de agentes cuando superan umbral (>50KB)
Detecta mutaciones (cambios) en archivos para tracking de calidad
| name | adr-indexer |
| model | claude-haiku-4-5 |
| description | Indexa decisiones arquitectónicas (ADR) desde comentarios en código |
| allowed-tools | Read, Write, Bash |
Propósito: Capturar automáticamente decisiones arquitectónicas de comentarios en código y mantener un índice buscable.
El desarrollador (agente) deja una nota en el código:
# ADR: {"decision": "Use PostgreSQL", "context": "ACID needed", "status": "accepted"}
class Database:
pass
Hook agent-memory.js detecta comentarios con patrón ADR: {...} y:
.sdd/arquitectura/ADRs.jsonl/sdd.adr list
→ Tabla de decisiones
/sdd.adr search "database"
→ Solo ADRs que mencionan "database"
/sdd.adr new
→ Captura interactiva de nueva decisión
{
"ts": "2026-06-14T10:30:00Z",
"decision": "Use PostgreSQL for relational data",
"context": "ACID transactions required, multi-tenant",
"alternatives": ["MongoDB", "Firebase"],
"status": "accepted",
"archivo": "src/database.ts",
"linea": 42
}
Campos:
ts — timestamp (automático)decision — qué se decidiócontext — por quéalternatives — opciones consideradasstatus — accepted | rejected | deprecated | supersededarchivo — dónde está el códigolinea — número de línea.sdd/arquitectura/ADRs.jsonlAppend-only JSONL:
{"ts":"2026-06-14T10:30:00Z","decision":"Use PostgreSQL","status":"accepted",...}
{"ts":"2026-06-14T10:31:00Z","decision":"Use Redis for cache","status":"accepted",...}
{"ts":"2026-06-14T10:32:00Z","decision":"JWT for auth","status":"accepted",...}
Ventajas:
/sdd.adr listID | DECISION | CONTEXT | STATUS
───┼───────────────────────────┼──────────────────────┼──────────
1 | Use PostgreSQL | ACID needed | accepted
2 | Cache with Redis | Performance req | accepted
3 | JWT instead of sessions | Stateless API | accepted
/sdd.adr search "security"ID | DECISION | STATUS
───┼───────────────────────────┼──────────
1 | HTTPS only | accepted
2 | Validate all user input | accepted
3 | Encrypt passwords | accepted
/sdd.adr newNuevo ADR — responde las preguntas:
1. Decisión: "Use DynamoDB para analytics"
2. Contexto: "Scale infinitamente, baja latencia"
3. Alternativas: "PostgreSQL partitioning, BigQuery"
4. Status: "accepted" (o "rejected", "deprecated")
✅ Guardado en ADRs.jsonl
agent-memory.jsfunction extraerADRsDelContenido(contenido) {
// Regex multilenguaje: //, /*, #, --, etc.
const regex = /(?:\/\/|\/\*|#|--|<!--|REM)\s*ADR:\s*({[^}]*})/g;
const adrs = [];
let match;
while ((match = regex.exec(contenido)) !== null) {
try {
const json = JSON.parse(match[1]);
adrs.push(json);
} catch {
// Ignorar JSON inválido
}
}
return adrs;
}
function registrarADR(cwd, agente, archivo, adrs) {
const ledgerFile = join(cwd, ".sdd/arquitectura/ADRs.jsonl");
for (const adr of adrs) {
const linea = JSON.stringify({
ts: new Date().toISOString(),
...adr,
archivo: archivo,
agente: agente
});
appendFileSync(ledgerFile, linea + "\n", "utf8");
}
}
adr-parser.jsBatch scan del codebase:
node utils/adr-parser.js . src/**/*.ts --update-ledger
Encuentra todos los ADRs en archivos existentes y los añade al ledger.