Skip to content

Guía de Creación de Proyectos ​

Esta guía te lleva paso a paso por la configuración de un nuevo proyecto con Claude-Craft, desde la elección de tu stack tecnológico hasta la configuración de tu entorno de desarrollo.


Tabla de Contenidos ​

  1. Elegir tu Tecnología
  2. Métodos de Instalación
  3. Proyectos de Tecnología Única
  4. Proyectos Monorepo
  5. Configuración Post-Instalación
  6. Lista de Verificación de Inicio de Proyecto

Elegir tu Tecnología ​

Comparación de Tecnologías ​

TecnologíaIdeal ParaArquitecturaCaracterísticas Clave
.NET / C#APIs empresarialesClean Architecture + CQRSMediatR, EF Core, C# 14
SymfonyAPIs backend, aplicaciones webClean Architecture + DDDDoctrine, Messenger, API Platform
FlutterAplicaciones móvilesFeature-based + BLoCMaterial/Cupertino, gestión de estado
PythonAPIs, servicios de datosClean ArchitectureFastAPI, async/await, Pydantic
ReactSPAs webFeature-based + HooksGestión de estado, accesibilidad
React NativeMóvil multiplataformaBasado en navegaciónMódulos nativos, código específico de plataforma
AngularAplicaciones web empresarialesDomain-drivenSignals, Standalone, RxJS
Vue.jsSPAs webComposition APIPinia, Vitest, TypeScript
LaravelAPIs PHP, aplicaciones webClean ArchitectureActions, Pest PHP, Sanctum
PHPLibrerías, backendClean ArchitecturePSR-12, PHPStan, Pest PHP

Elegir Según el Tipo de Proyecto ​

Tipo de ProyectoStack Recomendado
API RESTSymfony o Python
Aplicación móvil (sensación nativa)Flutter
Aplicación móvil (equipo JS)React Native
SPA webReact
Full-stack webSymfony + React
Full-stack móvilSymfony + Flutter
MicroserviciosPython (FastAPI)

Combinaciones Comunes ​

Aplicación Web:      Symfony (backend) + React (frontend)
Aplicación Móvil:    Symfony (API) + Flutter (móvil)
Plataforma Completa: Symfony (API) + React (web) + Flutter (móvil)
Plataforma de Datos: Python (API) + React (dashboard)

Métodos de Instalación ​

Claude-Craft ofrece múltiples métodos de instalación para adaptarse a diferentes flujos de trabajo.

Método 1: Makefile (Recomendado) ​

El enfoque más sencillo y flexible.

bash
# Sintaxis básica
make install-{technology} TARGET=ruta RULES_LANG=idioma

# Ejemplos
make install-symfony TARGET=./backend RULES_LANG=en
make install-flutter TARGET=./mobile RULES_LANG=fr
make install-python TARGET=./api RULES_LANG=es
make install-react TARGET=./frontend RULES_LANG=de
make install-reactnative TARGET=./app RULES_LANG=pt

Opciones Disponibles ​

OpciónDescripciónEjemplo
TARGETRuta de instalaciónTARGET=~/projects/myapp
LANGCódigo de idiomaLANG=fr
OPTIONSIndicadores adicionalesOPTIONS="--force --backup"

Indicadores de Opción ​

bash
# Previsualizar cambios sin aplicar
make install-symfony TARGET=./backend OPTIONS="--dry-run"

# Forzar sobrescritura de archivos existentes (crea copia de seguridad)
make install-symfony TARGET=./backend OPTIONS="--force"

# Crear copia de seguridad antes de la instalación
make install-symfony TARGET=./backend OPTIONS="--backup"

# Modo interactivo (solicita información del proyecto)
make install-symfony TARGET=./backend OPTIONS="--interactive"

# Solo actualizar (preservar archivos específicos del proyecto)
make install-symfony TARGET=./backend OPTIONS="--update"

Método 2: Ejecución Directa del Script ​

Ejecutar los scripts de instalación directamente para mayor control.

bash
# Sintaxis
./Dev/scripts/install-{technology}-rules.sh [OPTIONS] [TARGET]

# Ejemplos
./Dev/scripts/install-symfony-rules.sh --lang=fr ~/mi-proyecto
./Dev/scripts/install-flutter-rules.sh --lang=en --dry-run .
./Dev/scripts/install-python-rules.sh --force --backup ~/api

Opciones del Script ​

bash
--lang=XX       # Idioma (en, fr, es, de, pt)
--install       # Modo de instalación completa
--update        # Actualizar solo las reglas comunes
--force         # Sobrescribir todos los archivos
--dry-run       # Previsualizar sin cambios
--backup        # Crear copia de seguridad primero
--interactive   # Solicitar información del proyecto
--help          # Mostrar ayuda
--version       # Mostrar versión

Método 3: Configuración YAML ​

Ideal para monorepos y configuraciones multi-proyecto.

bash
# Crear configuración
cp claude-projects.yaml.example claude-projects.yaml

# Editar configuración
nano claude-projects.yaml

# Validar configuración
make config-validate CONFIG=claude-projects.yaml

# Instalar proyecto específico
make config-install CONFIG=claude-projects.yaml PROJECT=mi-proyecto

# Instalar todos los proyectos
make config-install-all CONFIG=claude-projects.yaml

Proyectos de Tecnología Única ​

Proyecto Symfony ​

bash
# Crear directorio del proyecto
mkdir ~/mi-api-symfony
cd ~/mi-api-symfony
composer create-project symfony/skeleton .
git init

# Instalar las reglas de Claude-Craft
make install-symfony TARGET=. RULES_LANG=fr

# Verificar instalación
ls -la .claude/

Contenido instalado:

  • 21 reglas específicas de Symfony (Clean Architecture, DDD, CQRS, etc.)
  • 10+ comandos Symfony (/symfony:generate-crud, /symfony:check-compliance, etc.)
  • Agente revisor de Symfony
  • Plantillas de código (Service, ValueObject, Aggregate, etc.)
  • Listas de verificación de calidad

Proyecto Flutter ​

bash
# Crear proyecto
flutter create my_flutter_app
cd my_flutter_app
git init

# Instalar las reglas de Claude-Craft
make install-flutter TARGET=. RULES_LANG=en

# Verificar
ls -la .claude/

Contenido instalado:

  • 13 reglas específicas de Flutter (BLoC, gestión de estado, testing)
  • 10 comandos Flutter
  • Agente revisor de Flutter
  • Plantillas de Widget y BLoC
  • Listas de verificación de calidad

Proyecto Python ​

bash
# Crear proyecto
mkdir ~/mi-api-python
cd ~/mi-api-python
python -m venv venv
git init

# Instalar las reglas de Claude-Craft
make install-python TARGET=. RULES_LANG=en

# Verificar
ls -la .claude/

Contenido instalado:

  • 12 reglas específicas de Python (FastAPI, async, tipado)
  • 10 comandos Python
  • Agente revisor de Python
  • Plantillas de servicio y API
  • Listas de verificación de calidad

Proyecto React ​

bash
# Crear proyecto
npx create-react-app my-react-app
cd my-react-app

# Instalar las reglas de Claude-Craft
make install-react TARGET=. RULES_LANG=en

# Verificar
ls -la .claude/

Proyecto React Native ​

bash
# Crear proyecto
npx react-native init MyApp
cd MyApp

# Instalar las reglas de Claude-Craft
make install-reactnative TARGET=. RULES_LANG=en

# Verificar
ls -la .claude/

Proyectos Monorepo ​

Entendiendo la Estructura del Monorepo ​

Un monorepo típico podría verse así:

mi-plataforma/
├── backend/          # API Symfony
├── web/              # Frontend React
├── mobile/           # Aplicación Flutter
├── shared/           # Tipos/contratos compartidos
└── claude-projects.yaml

Estructura de Configuración YAML ​

yaml
# claude-projects.yaml

settings:
  default_lang: "fr"              # Idioma predeterminado para todos los proyectos
  claude_craft_path: "~/claude-craft"  # Ruta a claude-craft (opcional)

projects:
  - name: "mi-plataforma"
    description: "Plataforma SaaS full-stack"
    path: "~/Projects/mi-plataforma"
    modules:
      - name: "api"
        path: "backend"
        technologies: ["symfony"]
        lang: "en"                # Sobrescribir idioma predeterminado

      - name: "web"
        path: "web"
        technologies: ["react"]

      - name: "mobile"
        path: "mobile"
        technologies: ["flutter"]

Campos de Configuración ​

Nivel de Proyecto ​

CampoRequeridoDescripción
nameSíIdentificador del proyecto
descriptionNoDescripción del proyecto
pathSíRuta absoluta a la raíz del proyecto
langNoSobrescritura de idioma
modulesNoLista de módulos (para monorepos)
technologiesNoTecnologías si no hay módulos

Nivel de Módulo ​

CampoRequeridoDescripción
nameSíIdentificador del módulo
pathSíRuta relativa desde la raíz del proyecto
technologiesSíLista de tecnologías
langNoSobrescritura de idioma
skip_commonNoOmitir reglas comunes (predeterminado: false)

Comandos de Instalación ​

bash
# Validar configuración
make config-validate CONFIG=claude-projects.yaml

# Listar proyectos configurados
make config-list CONFIG=claude-projects.yaml

# Instalar proyecto específico
make config-install CONFIG=claude-projects.yaml PROJECT=mi-plataforma

# Instalar módulo específico
make config-install CONFIG=claude-projects.yaml PROJECT=mi-plataforma MODULE=api

# Dry-run para previsualizar
make config-install CONFIG=claude-projects.yaml PROJECT=mi-plataforma OPTIONS="--dry-run"

# Instalar todos los proyectos
make config-install-all CONFIG=claude-projects.yaml

Ejemplos del Mundo Real ​

Ejemplo 1: Plataforma SaaS ​

yaml
projects:
  - name: "saas-platform"
    path: "~/Projects/saas"
    modules:
      - name: "api"
        path: "services/api"
        technologies: ["symfony"]
      - name: "admin"
        path: "apps/admin"
        technologies: ["react"]
      - name: "mobile"
        path: "apps/mobile"
        technologies: ["flutter"]

Ejemplo 2: Microservicios ​

yaml
projects:
  - name: "microservices"
    path: "~/Projects/micro"
    modules:
      - name: "gateway"
        path: "gateway"
        technologies: ["python"]
      - name: "users"
        path: "services/users"
        technologies: ["symfony"]
      - name: "orders"
        path: "services/orders"
        technologies: ["symfony"]
      - name: "analytics"
        path: "services/analytics"
        technologies: ["python"]

Ejemplo 3: Múltiples Proyectos Independientes ​

yaml
settings:
  default_lang: "fr"

projects:
  - name: "client-a"
    path: "~/Clients/client-a"
    technologies: ["symfony", "react"]

  - name: "client-b"
    path: "~/Clients/client-b"
    technologies: ["flutter"]
    lang: "en"

  - name: "internal-tool"
    path: "~/Internal/tool"
    technologies: ["python"]

Configuración Post-Instalación ​

Después de la instalación, configura estos archivos para tu proyecto específico.

1. Contexto del Proyecto (rules/00-project-context.md) ​

Este es el archivo más importante a personalizar. Le indica a Claude los detalles de tu proyecto específico.

Opción A: Configuración Interactiva (Recomendada)

Ejecuta este comando en Claude Code para autodetectar tu stack y responder preguntas específicas:

bash
/common:setup-project-context

Opción B: Configuración Manual

Edita el archivo directamente con los detalles de tu proyecto:

markdown
# Contexto del Proyecto

## Información del Proyecto
- **Nombre**: Mi Awesome API
- **Tipo**: API REST para plataforma de e-commerce
- **Tamaño del Equipo**: 3 desarrolladores

## Stack Técnico
- PHP 8.3 con Symfony 7.0
- PostgreSQL 16
- Redis para caché
- RabbitMQ para mensajería

## Convenciones
- Estándar de código PSR-12
- Tipado estricto habilitado
- Código en inglés, documentación en francés

## Restricciones
- Cumplimiento RGPD obligatorio
- Debe soportar arquitectura multi-tenant
- Tiempo máximo de respuesta: 200ms

## Dependencias Externas
- Stripe para pagos
- SendGrid para correos electrónicos
- S3 para almacenamiento de archivos

2. Configuración Principal (CLAUDE.md) ​

El archivo CLAUDE.md en el directorio .claude/ contiene la configuración principal. Secciones clave a revisar:

markdown
# Configuración del Proyecto

## Configuración de Idioma
- Código: Inglés
- Documentación: Francés
- Comentarios: Inglés

## Arquitectura
Clean Architecture + DDD + Hexagonal

## Requisitos de Calidad
- Cobertura de tests: 80%+
- Nivel PHPStan: 9
- Sin problemas críticos de seguridad

## Requisitos Docker
Todos los comandos deben usar Docker a través de targets de make.

3. Configuración de Agentes ​

Revisa los agentes instalados en .claude/agents/ y personaliza si es necesario:

bash
ls .claude/agents/
# api-designer.md
# database-architect.md
# symfony-reviewer.md
# tdd-coach.md
# ...

Lista de Verificación de Inicio de Proyecto ​

Usa esta lista al configurar un nuevo proyecto:

Pre-Instalación ​

  • [ ] Directorio del proyecto creado
  • [ ] Repositorio Git inicializado
  • [ ] Stack tecnológico decidido
  • [ ] Preferencia de idioma elegida

Instalación ​

  • [ ] Reglas de Claude-Craft instaladas
  • [ ] Instalación verificada (ls .claude/)
  • [ ] Sin errores en la salida de instalación

Configuración ​

  • [ ] 00-project-context.md personalizado con detalles del proyecto
  • [ ] CLAUDE.md revisado y ajustado
  • [ ] Convenciones del equipo documentadas
  • [ ] Restricciones y requisitos listados

Verificación ​

  • [ ] Claude Code iniciado en el directorio del proyecto
  • [ ] Comandos disponibles (prueba /symfony:check-compliance)
  • [ ] Agentes respondiendo (prueba @symfony-reviewer hello)

Configuración del Equipo ​

  • [ ] Directorio .claude/ confirmado en git
  • [ ] Miembros del equipo informados sobre los comandos disponibles
  • [ ] README actualizado con información de uso de Claude-Craft

Patrones Comunes ​

Instalar Solo Reglas Comunes ​

Para librerías compartidas o paquetes que no encajan en una tecnología específica:

bash
make install-common TARGET=./shared-lib RULES_LANG=en

Instalar Herramientas de Gestión de Proyectos ​

Para seguimiento de sprints y gestión de backlog:

bash
make install-project TARGET=. RULES_LANG=fr

Instalar Herramientas de Infraestructura ​

Para soporte de Docker y CI/CD:

bash
make install-infra TARGET=. RULES_LANG=en

Instalación Completa (Todas las Tecnologías) ​

bash
make install-all TARGET=. RULES_LANG=fr

Configuración de Optimización de Tokens ​

Después de instalar las reglas, opcionalmente configura RTK para ahorrar tokens:

bash
# En sesión de Claude Code
/common:setup-rtk

Esto configura el proxy RTK, la optimización del modelo de sub-agente y plantillas de hooks para una reducción total de tokens del 55-65%.


Actualizar Reglas ​

Cuando Claude-Craft publica nuevas versiones:

bash
# Actualizar a la última versión (preserva archivos específicos del proyecto)
make install-symfony TARGET=./backend OPTIONS="--update"

# Forzar reinstalación completa (copia de seguridad creada automáticamente)
make install-symfony TARGET=./backend OPTIONS="--force"

Próximos Pasos ​

¡Tu proyecto ya está configurado! Continúa con:

  1. Guía de Desarrollo de Funcionalidades - Aprende el flujo de trabajo TDD
  2. Guía de Corrección de Errores - Maneja los errores de forma efectiva
  3. Referencia de Herramientas - Explora herramientas adicionales

← Primeros Pasos | Desarrollo de Funcionalidades →