CommunityProgramación y desarrollogithub.com

daniel1zz/canon-design

Úsalo al decidir cómo estructurar algo: diseñar una nueva arquitectura, API, modelo de datos, sistema (escala, fiabilidad) o límite de módulo, o juzgar si una estructura, modelo, diseño o proceso existente es el correcto y cómo debería cambiar ('¿es este el mejor diseño?', 'evalúa nuestra X', '¿deberíamos reorganizar?'). También al elegir entre alternativas reales. Activadores: 'design this', 'architecture', 'API design', 'data model', 'schema', 'is this the best', 'evaluate the design', '设计一下', '架构', '方案对比', '是不是最佳', '评估一下', '该怎么改'. NO para diseño visual de UI o una auditoría solo de defectos.

¿Qué es canon-design?

El skill 'daniel1zz/canon-design' es una habilidad especializada para asistentes de IA (como Claude Code, Cursor, Codex) que guía el proceso de diseño técnico en proyectos de software. Su propósito es asegurar que las decisiones de diseño queden registradas de forma perdurable (como reglas y decisiones en el sistema 'canon') y no se pierdan en una sola conversación. El skill cubre múltiples dominios: arquitectura, API, base de datos, sistema y módulos, proporcionando para cada uno modos específicos con referencias y listas de verificación de calidad. El flujo de trabajo incluye contextualización, búsqueda de decisiones previas, exploración de alternativas reales, redacción de opciones con compensaciones y una recomendación validada por un subagente. Además, exige cuantificar objetivos vagos, considerar fallos de negocio y evaluar aspectos transversales como seguridad, concurrencia, rendimiento, observabilidad y privacidad de datos. Finalmente, el diseño se registra formalmente mediante decisiones, reglas y archivos de cambio en el sistema 'canon'. Es una herramienta completa para arquitectos y desarrolladores que buscan un proceso de diseño estructurado y bien documentado.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/daniel1zz/canon/tree/HEAD/.claude/skills/canon-design

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Diseño (canon)

El diseño se realiza cuando una sesión posterior puede leer por qué (una decisión, canon/decisions/D-n.md) y qué debe cumplirse (reglas, canon/rules/<dominio>/BR-n.md) sin preguntar a nadie. Un diseño que solo existe en esta conversación se pierde.

1. Elegir el modo

ModoLecturaEnfoque
architecturereferences/mode-architecture.md, references/architecture-patterns.mdcapas, límites, C4, migración
apireferences/mode-api.md, references/api-design.mdendpoints / comandos, errores, autenticación, paginación
databasereferences/mode-database.md, references/database-design.mdesquema, índices, migraciones, patrones de acceso
systemreferences/mode-system.md, references/system-design.mdSLA, modos de fallo, capacidad
modulereferences/mode-module.mdresponsabilidad, profundidad (prueba de eliminación), puntos de extensión, categorías de dependencias

Lee solo los archivos del modo que necesites. Referencias transversales (references/cross-cutting/: autorización, manejo de errores, idempotencia, identidad de sesión) cuando el diseño las toque.

2. Antes de diseñar

  1. canon context <ruta|dominio|C-n>: todo el dominio actual, sus reglas, las decisiones aceptadas y los cambios abiertos. El diseño no debe contradecir una regla activa o una decisión aceptada; si tiene que hacerlo, dilo y cámbialos en el mismo cambio.
  2. canon search <tema>: decisiones y notas anteriores sobre la misma cuestión. Amplía o reemplaza (--supersedes D-n), nunca rehagas en silencio.
  3. Observa cómo 1–3 productos o bibliotecas maduros resuelven el mismo problema antes de inventar uno.
  4. Lee el código existente que estás cambiando (símbolos, llamantes) antes de proponer una estructura.

3. Diseñar

  • Enmarca el problema antes de enumerar opciones: ¿qué preguntas debe responder este diseño, qué escenarios debe servir? Al evaluar un diseño existente, una lista de sus defectos es entrada, no el marco: un plan construido solo a partir de la lista de defectos es un parche, no un diseño.
  • Proporciona al menos dos opciones reales con sus compensaciones y una recomendación. Real significa diseños diferentes, no un mismo diseño hecho más o menos (

Skills relacionados