De cero a tu primera contribución en menos de 10 minutos.
| Herramienta | Versión | Instalación |
|---|---|---|
| Node.js | ver .nvmrc |
nodejs.org |
| pnpm | última | npm i -g pnpm |
| nvm | cualquiera | UNIX / Windows |
| git | cualquiera | git-scm.com |
git clone https://github.com/Stack-and-Flow/design-system.git
cd design-system
nvm use
pnpm installpnpm run storybookStorybook se abre en http://localhost:6006. Este es tu entorno de desarrollo — cada componente vive aquí.
Ve al tablero del proyecto en GitHub y elige un issue abierto de la columna Todo.
¿Primera vez? Busca issues etiquetados como
layer: atomconcategory: component— son autocontenidos y bien definidos.
Antes de escribir código, asegurate de que la spec esté definida y la issue tenga el label status:approved. Recién entonces corré START WORK:
- asignate la issue;
- movela a
In progress; - registrá branch y worktree plan.
Si la tarea viene de una issue, usá naming derivado de issue:
git checkout -b feat/123-tu-componente
# o
git checkout -b fix/128-descripcion-cortaSi trabajás con worktree, usa el sibling path equivalente:
../design-system-feat-123-tu-componente
El nombre de las ramas sigue Conventional Commits:
feat/— nuevo componente o funcionalidadfix/— corrección de buga11y/— mejora de accesibilidadtokens/— cambio de token de diseñodocs/— solo documentación
Cada componente sigue el patrón de 6 archivos. Usá CONTRIBUTOR-FLOW.md como flujo canónico y crealo manualmente en la capa atómica correcta:
src/components/atoms/tu-componente/
├── types.ts # Tipos + JSDoc controls + variantes CVA
├── useTuComponente.ts # Capa Container — lógica, estado, handlers
├── TuComponente.tsx # Capa Presentacional — solo JSX
├── TuComponente.test.tsx # Tests de hook y comportamiento
├── TuComponente.stories.tsx # Documentación de Storybook
└── index.ts # Exportaciones públicas
Lee CONTRIBUTOR-FLOW.md para el flujo completo y GUIDELINES.md para las reglas de arquitectura antes de escribir código.
pnpm testTodos los tests deben pasar antes de abrir un PR. Si estás añadiendo un nuevo componente, añade también sus tests.
Sube tu rama y abre un PR contra main:
git push origin feat/123-tu-componenteLuego ve a GitHub → tu rama → Compare & pull request.
- Usa la plantilla de PR — completa cada sección
- Vincula el issue en el resumen (
Closes #123) - Añade capturas de pantalla si hay cambios visuales
- Limpia artefactos MCP antes de commit/review:
rm -rf .playwright-mcp page-*.png page-*.jpeg *.md.playwright-output
El project lead revisa y fusiona. La tarea pasa a
Donesolo con END WORK después de PR merged o aprobación explícita.
Usamos Conventional Commits. Los hooks de git rechazarán commits que no sigan este formato.
feat(button): add loading state variant
fix(switch): forward aria-label prop correctly
docs(modal): add usage examples to Storybook
fix(a11y): improve input focus ring visibility
chore(tokens): update spacing token docs
Formato: <type>(<scope opcional>): <descripción> (scope es opcional)
Tipos comunes: build, chore, ci, docs, feat, fix, perf, refactor, revert, style, test.
Usa a11y, tokens o infra como scopes, no como tipos personalizados.
Este proyecto soporta opencode con contexto preconfigurado. Si lo usas:
opencodeEl agente carga automáticamente las reglas del proyecto desde .atl/AGENTS.md — no necesitas configuración manual. Lee CONTRIBUTING.md para el flujo completo de trabajo con IA.
- 💬 GitHub Discussions — para preguntas e ideas
- 🐛 Abrir un issue — para bugs o propuestas
- 📋 Tablero del proyecto — para seguimiento de tareas