بنقرة واحدة
adr-indexer
Indexa decisiones arquitectónicas (ADR) desde comentarios en código
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Indexa decisiones arquitectónicas (ADR) desde comentarios en código
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
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.