skills/project-starter/SKILL.md
Guia interactiva para definir tecnica y funcionalmente un proyecto desde cero. Usa preguntas adaptativas con la herramienta `question` para recorrer desde la vision del producto hasta el bootstrap de la estructura inicial. Integra Context7 MCP para recomendar librerias, frameworks y herramientas actualizadas en cada etapa. Trigger: Cuando el usuario quiere arrancar un proyecto nuevo, definir stack tecnico, inicializar un repositorio, o dice "nuevo proyecto", "project starter", "arrancar proyecto", "definir stack", "bootstrap proyecto".
npx skillsauth add agustinalbonico/ai-customizations project-starterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
FASE 1: Descubrimiento del Proyecto
| vision, tipo, usuarios, complejidad, contexto
v
FASE 2: Arquitectura de Alto Nivel
| monorepo/multirepo, monolito/microservicios, despliegue, tenancy
v
FASE 3: Stack Principal
| frameworks, lenguaje, base de datos, ORM, auth, estado, colas, testing
v (Context7 activo desde aca)
FASE 4: Implementacion Detallada
| UI, animaciones, validacion, seguridad, logging, i18n, CI/CD, convenciones
v (Context7 activo)
FASE 5: Generacion del Documento de Decisiones
| resumen ejecutivo, decisiones, stack, riesgos, proximos pasos
v
FASE 6: Bootstrap / Inicializacion del Proyecto
| carpetas, apps/packages, configs, dependencias, setup inicial
question para preguntar al usuario — nunca preguntas en texto planocontext7_resolve-library-id y context7_query-docs para recomendar herramientas actualesObjetivo: Entender que se quiere construir, para quien, y en que contexto.
Basandose en las respuestas, clasificar:
| Tipo | Senales | Profundidad de preguntas | |------|---------|--------------------------| | MVP / Prototipo | Validar idea, time-to-market, equipo chico | Fases 1-3 reducidas, FASE 4 minima | | Producto interno | Equipo conocido, requirements claros, sin escalabilidad extrema | Fases 1-4 completas, FASE 4 moderada | | Producto escalable | Multi-tenant, alta disponibilidad, equipo grande, compliance | Todas las fases al maximo |
Usar preguntas del banco de preguntas: references/question-bank.md — Bloque 1.
Al terminar la ronda, mostrar resumen:
Entendi el contexto del proyecto:
- Tipo: [clasificacion]
- Producto: [descripcion corta]
- Usuarios: [principales]
- Contexto de uso: [plataformas]
- Nivel: [MVP | interno | escalable]
Hay algo incorrecto o queres agregar algo antes de pasar a arquitectura?
Objetivo: Definir la estructura macro del sistema.
| Decision | Opciones tipicas | Depende de | |----------|------------------|------------| | Estructura del repo | Monorepo, multirepo, monorepo hibrido | Cantidad de apps, equipo | | Patron arquitectonico | Monolito, modular monolith, microservicios | Complejidad, equipo, escala | | Superficies del sistema | Frontend, backend, mobile, workers, APIs, cron jobs | Tipo de producto | | Escalabilidad | Vertical, horizontal, auto-scaling | Nivel del proyecto | | Multi-tenancy | Single-tenant, multi-tenant por schema, multi-tenant por DB | Tipo de producto | | Despliegue | Cloud (AWS/GCP/Azure), VPS, local/on-premise, hibrido | Presupuesto, compliance | | Comunicacion entre servicios | REST, GraphQL, gRPC, message queues, eventos | Arquitectura elegida |
Usar preguntas del banco: references/question-bank.md — Bloque 2.
Adaptar segun la clasificacion de FASE 1:
Arquitectura definida:
- Repo: [monorepo | multirepo]
- Patron: [monolito | modular monolith | microservicios]
- Superficies: [lista]
- Despliegue: [target]
- Multi-tenant: [si/no y tipo]
Hay algo que quieras cambiar antes de bajar al stack tecnico?
Objetivo: Definir las herramientas centrales del proyecto.
| Area | Ejemplos | Context7 query |
|------|----------|----------------|
| Lenguaje principal | TypeScript, Python, Go, Rust, Java | No aplica |
| Framework frontend | React, Angular, Vue, Svelte, Solid | context7_resolve-library-id por cada opcion |
| Framework backend | NestJS, Express, Fastify, Django, FastAPI, Go stdlib | Idem |
| Base de datos | PostgreSQL, MySQL, MongoDB, SQLite, Supabase | Idem |
| ORM / Query builder | Prisma, Drizzle, TypeORM, Sequelize, Knex | Idem |
| Autenticacion | Auth.js, Clerk, Supabase Auth, Firebase Auth, custom JWT | Idem |
| Manejo de estado | Redux, Zustand, Jotai, Signals, TanStack Query | Idem |
| Sistema de colas | BullMQ, RabbitMQ, SQS, Redis Streams | Idem |
| Almacenamiento de archivos | S3, Cloudflare R2, MinIO, local filesystem | Idem |
| Testing | Vitest, Jest, Playwright, Cypress, Testing Library | Idem |
| Documentacion | Storybook, Swagger/OpenAPI, TypeDoc, Docusaurus | Idem |
Para cada area de decision donde se necesite recomendar herramientas:
context7_resolve-library-id para obtener IDs de las opciones candidatascontext7_query-docs para obtener informacion actualizadaquestion toolVer protocolo completo en references/context7-integration.md.
Usar preguntas del banco: references/question-bank.md — Bloque 3.
Agrupar preguntas por dominio para no abrumar:
Adaptar segun clasificacion:
Stack principal definido:
- Lenguaje: [X]
- Frontend: [framework + meta-framework si aplica]
- Backend: [framework]
- Base de datos: [X]
- ORM: [X]
- Auth: [X]
- Estado: [X]
- Testing: [X]
- Colas: [X o "no necesario"]
- Storage: [X o "no necesario"]
- Docs: [X]
Hay algo que quieras cambiar antes de pasar a detalles de implementacion?
Objetivo: Definir las herramientas y convenciones de implementacion fina.
| Area | Ejemplos | |------|----------| | Libreria de UI | shadcn/ui, Radix, MUI, Ant Design, Chakra, Mantine | | Animaciones | Framer Motion, GSAP, CSS animations, Lottie | | Validacion de formularios | Zod, Yup, Valibot, io-ts | | Seguridad | Helmet, CORS config, rate limiting, CSP, CSRF | | Manejo de errores | Error boundaries, Sentry, custom error handler | | Logging | Pino, Winston, console structured logging | | Observabilidad | OpenTelemetry, Datadog, New Relic, Grafana | | Internacionalizacion | i18next, FormatJS/react-intl, Paraglide | | Permisos / roles | CASL, casbin, custom RBAC, ABAC | | Cache | Redis, in-memory LRU, TanStack Query cache, SWR | | Rate limiting | express-rate-limit, upstash/ratelimit, nginx | | Linters / formatters | ESLint, Prettier, Biome, oxlint | | CI/CD | GitHub Actions, GitLab CI, CircleCI, Vercel | | Convenciones de carpetas | Feature-based, screaming architecture, modular | | Git conventions | Conventional commits, Commitlint, Husky |
Preguntar sobre:
Usar preguntas del banco: references/question-bank.md — Bloque 4.
Adaptar segun clasificacion:
Objetivo: Consolidar todas las decisiones en un documento estructurado.
Usar el template definido en references/output-template.md.
Genere el documento de decisiones tecnicas del proyecto.
Revisalo y decime si hay algo que quieras ajustar antes de pasar al bootstrap.
Queres que lo guarde como archivo?
docs/tech-decisions/ si no existeYYYY-MM-DD-<nombre-proyecto-kebab>.mdDocumento guardado: docs/tech-decisions/YYYY-MM-DD-nombre-del-proyecto.md
Objetivo: Generar la estructura inicial del proyecto segun las decisiones tomadas.
Plan de inicializacion:
1. Estructura de carpetas:
[arbol propuesto]
2. Archivos de configuracion:
[lista de configs a crear]
3. Dependencias a instalar:
[lista categorizada: produccion | desarrollo | testing]
4. Setup de herramientas:
[lista de setups: linter, formatter, git hooks, CI, etc.]
Confirmas que ejecute este plan?
| Elemento | Descripcion | |----------|-------------| | Carpetas | Estructura segun arquitectura y convenciones elegidas | | package.json / manifiestos | Con dependencias decididas y scripts basicos | | tsconfig / jsconfig | Segun lenguaje y framework | | .eslintrc / biome.json | Segun linter elegido | | .prettierrc | Si aplica | | .gitignore | Adaptado al stack | | .env.example | Variables de entorno necesarias | | docker-compose.yml | Si el despliegue incluye Docker | | CI/CD config | Segun plataforma elegida (.github/workflows, etc.) | | README.md | Con instrucciones de setup basicas | | Estructura de modulos | Carpetas iniciales segun convenciones (features, modules, etc.) |
Proyecto inicializado correctamente.
Estructura creada en: [ruta]
Dependencias instaladas: [si/no]
Proximos pasos recomendados:
1. [paso 1]
2. [paso 2]
3. [paso 3]
Necesitas algo mas?
question toolSi se detecta una combinacion riesgosa:
Atencion: elegiste [X] para [area] y [Y] para [area].
Esto puede generar [problema especifico] porque [razon tecnica].
Alternativas:
1. Cambiar [X] por [A] — [trade-off]
2. Cambiar [Y] por [B] — [trade-off]
3. Mantener la combinacion actual asumiendo [riesgo]
Que preferis?
Si el usuario dice algo como "quiero un proyecto simple con React y Node":
Para un proyecto [tipo] con [stack mencionado], te propongo estos defaults:
- [default 1]: [razon]
- [default 2]: [razon]
- [default 3]: [razon]
Estas de acuerdo o queres cambiar algo?
# Activar el skill
/project-starter "descripcion corta del proyecto"
# Ejemplos
/project-starter "SaaS de gestion de inventario para PyMEs"
/project-starter "API REST para sistema de reservas de hotel"
/project-starter "aplicacion mobile-first para delivery de comida"
/project-starter "herramienta CLI para automatizar deploys"
development
Migrar aplicaciones React + NestJS + Postgres desde web a desktop con Tauri en entornos LAN. Usar cuando se necesite planificar, implementar, verificar y preparar release con backend local en 127.0.0.1, base remota por IP fija, sidecar estable y diagnostico de logs de arranque.
development
Alias corto para migracion Web a Desktop con Tauri en stack React + NestJS + Postgres en LAN. Usar para aplicar flujo de planificacion, implementacion, verificacion y release con sidecar y reglas de red.
development
Playbook iterativo para llevar proyectos Node y TypeScript (NestJS + React en monorepo) a cumplir Quality Gates de SonarQube sin romper build ni pipelines. Usar cuando se necesite subir cobertura priorizando New Code, eliminar issues nuevos (Bugs, Vulnerabilities, Code Smells), revisar Security Hotspots y controlar duplicacion y deuda tecnica.
testing
Alias corto para ejecutar pruebas E2E y QA manual. Usar cuando quieras probar la ultima funcionalidad implementada con /qa.