Módulos multirepo
Kaddo representa no solo el repo principal de arquitectura, sino también los repos secundarios (frontend, backend, workers, infra…) como módulos vivos del mismo sistema.
Dos niveles de descriptor
kaddo module --initescribearchitecture/module.yml— un repo que se describe a sí mismo como módulo (nombre, dominios, contratos que expone/consume). Úsalo dentro de un repo secundario.kaddo modules mapescribe.kaddo/modules.ymlen el repo de arquitectura — la vista de sistema, donde cada repo secundario se registra y recibe una estructura de conocimiento bajoarchitecture/modules/<id>/.
kaddo modules map # registrar un repo secundario como módulo (interactivo)kaddo modules list # listar módulos mapeadosMapear un módulo
kaddo modules map pide nombre, ruta del repositorio (relativa al repo de
arquitectura), tipo (frontend · backend · worker · mobile · library ·
infrastructure · data · unknown), tecnología principal, owner y capacidades
relacionadas. Luego:
- Registra el módulo en
.kaddo/modules.yml(upsert por id — re-mapear actualiza en sitio, nunca duplica). - Genera una estructura de conocimiento desde el registro central de plantillas (los archivos existentes nunca se sobrescriben — se reportan como conservados):
architecture/modules/<id>/ module-design.md stack.md security.md standards.md diagrams/.gitkeep adrs/.gitkeepLos .md generados usan las plantillas oficiales module-design, module-stack,
module-security y module-standards, con front matter prellenado desde la
metadata del módulo — incluyendo un glob code: (<repoPath>/**):
---type: module-designmodule: storefront-webname: Storefront Webstatus: draftowner: web-teamrepoPath: ../frontendmoduleType: frontendmainTechnology: Next.jscapabilities: - checkoutcode: - ../frontend/**---Los globs
code:declaran ownership de forma consistente.kaddo guardpor defecto sigue leyendo solo elgit diffdel repo actual, pero el opt-inkaddo guard --workspacetambién revisa los repos de módulos locales mapeados y matchea sus cambios contra estos globs — ver guard → Modo workspace. Nunca clona ni llama a APIs remotas.
Ejemplo: architecture-repo + frontend + backend + infra
# en el repo de arquitecturakaddo initkaddo modules map # Frontend → ../frontend (frontend, Next.js)kaddo modules map # Backend → ../backend (backend, NestJS)kaddo modules map # Infra → ../infra (infrastructure, Terraform)kaddo modules listResultado:
.kaddo/modules.ymlarchitecture/modules/ frontend/{module-design,stack,security,standards}.md diagrams/ adrs/ backend/ {module-design,stack,security,standards}.md diagrams/ adrs/ infra/ {module-design,stack,security,standards}.md diagrams/ adrs/Las plantillas generadas son deliberadamente ligeras — refina cada una con el agente
de Kaddo correspondiente (module-design-agent, stack-agent, security-agent,
standards-agent) en tu LLM, usando .kaddo/context-pack.md como input. El front
matter y el checklist de calidad vienen del registro de plantillas, así los artefactos
de módulo se mantienen consistentes con el resto de Kaddo.
Artefactos globales vs por módulo
- Globales (todo el sistema):
kaddo add standards|security|stack|git-strategyescribearchitecture/<tema>.mduna vez para el sistema. Ver Estándares, seguridad y stack y Estrategia de Git. - Por módulo (por repo):
architecture/modules/<id>/*.md, generados porkaddo modules map.
Kaddo nunca escanea los repos secundarios, nunca llama a una API de Git/GitHub y nunca ejecuta un escaneo de seguridad. Mapea estructura de forma determinista; tus agentes LLM hacen la interpretación.