# TEMPLATE: CONTEXTO DE PROYECTO

**Versión:** 1.1.0
**Sistema:** SIMCO + Catálogo
**Propósito:** Template para crear el archivo CONTEXTO-PROYECTO.md en cada proyecto

---

## INSTRUCCIONES DE USO

1. Copiar este template a: `projects/{proyecto}/orchestration/00-guidelines/CONTEXTO-PROYECTO.md`
2. Reemplazar todos los `{PLACEHOLDER}` con valores reales del proyecto
3. Eliminar secciones que no apliquen
4. Este archivo es la fuente de verdad para resolver aliases en el proyecto

---

# CONTEXTO: {PROJECT_NAME}

**Proyecto:** {PROJECT_NAME}
**Descripción:** {Descripción breve del proyecto}
**Fecha creación:** {YYYY-MM-DD}
**Última actualización:** {YYYY-MM-DD}
**Versión:** 1.0.0

---

## INFORMACIÓN GENERAL

```yaml
Proyecto:
  nombre: "{PROJECT_NAME}"
  descripcion: "{Descripción del proyecto}"
  tipo: "standalone | multi-vertical | monorepo"
  estado: "desarrollo | staging | producción"

Equipo:
  tech_lead: "{nombre o sistema}"
  repository: "{URL del repositorio}"

Stack:
  database: "PostgreSQL {versión}"
  backend: "NestJS {versión}"
  frontend: "React {versión}"
  otros: []
```

---

## VARIABLES DEL PROYECTO (ALIAS RESUELTOS)

### Database

```yaml
# Variables para @DDL, @SEEDS, etc.
DB_NAME: "{nombre_base_datos}"
DB_DDL_PATH: "{ruta}/ddl"
DB_SCRIPTS_PATH: "{ruta}"
DB_SEEDS_PATH: "{ruta}/seeds"
RECREATE_CMD: "{script_recreacion}.sh"

# Schemas del proyecto
SCHEMAS:
  - name: "{schema_1}"
    descripcion: "{propósito}"
  - name: "{schema_2}"
    descripcion: "{propósito}"
```

**Ejemplo resuelto:**
```yaml
DB_NAME: "gamilit_platform"
DB_DDL_PATH: "apps/database/ddl"
DB_SCRIPTS_PATH: "apps/database"
DB_SEEDS_PATH: "apps/database/seeds"
RECREATE_CMD: "drop-and-recreate-database.sh"

SCHEMAS:
  - name: "auth_management"
    descripcion: "Autenticación y usuarios"
  - name: "gamification_system"
    descripcion: "Sistema de gamificación"
```

### Backend

```yaml
# Variables para @BACKEND, @BACKEND_ROOT, etc.
BACKEND_ROOT: "{ruta_backend}"
BACKEND_SRC: "{ruta_backend}/src"
BACKEND_TESTS: "{ruta_backend}/tests"
BACKEND_PORT: "{puerto}"

# Módulos principales
MODULES:
  - name: "{modulo_1}"
    descripcion: "{propósito}"
  - name: "{modulo_2}"
    descripcion: "{propósito}"
```

**Ejemplo resuelto:**
```yaml
BACKEND_ROOT: "apps/backend"
BACKEND_SRC: "apps/backend/src"
BACKEND_TESTS: "apps/backend/tests"
BACKEND_PORT: "3000"

MODULES:
  - name: "auth"
    descripcion: "Autenticación JWT"
  - name: "users"
    descripcion: "Gestión de usuarios"
  - name: "gamification"
    descripcion: "Sistema de puntos y badges"
```

### Frontend

```yaml
# Variables para @FRONTEND, @FRONTEND_ROOT, etc.
FRONTEND_ROOT: "{ruta_frontend}"
FRONTEND_SRC: "{ruta_frontend}/src"
FRONTEND_PORT: "{puerto}"
API_BASE_URL: "{url_api}"

# Apps del frontend
APPS:
  - name: "{app_1}"
    descripcion: "{propósito}"
    ruta: "{path}"
```

**Ejemplo resuelto:**
```yaml
FRONTEND_ROOT: "apps/frontend/web"
FRONTEND_SRC: "apps/frontend/web/src"
FRONTEND_PORT: "5173"
API_BASE_URL: "http://localhost:3000/api"

APPS:
  - name: "main"
    descripcion: "Aplicación principal"
    ruta: "/"
  - name: "admin"
    descripcion: "Panel de administración"
    ruta: "/admin"
```

---

## ALIAS RESUELTOS PARA ESTE PROYECTO

Copia de `@ALIASES` con valores concretos:

```yaml
# ═══════════════════════════════════════════════════════════════
# ALIAS RESUELTOS - {PROJECT_NAME}
# ═══════════════════════════════════════════════════════════════

# Código
@DDL:           "{DB_DDL_PATH}/schemas/"
@DDL_ROOT:      "{DB_DDL_PATH}/"
@SEEDS:         "{DB_SEEDS_PATH}/"
@SEEDS_DEV:     "{DB_SEEDS_PATH}/dev/"
@SEEDS_PROD:    "{DB_SEEDS_PATH}/prod/"
@DB_SCRIPTS:    "{DB_SCRIPTS_PATH}/"

@BACKEND:       "{BACKEND_SRC}/modules/"
@BACKEND_ROOT:  "{BACKEND_ROOT}/"
@BACKEND_SHARED: "{BACKEND_SRC}/shared/"

@FRONTEND:      "{FRONTEND_SRC}/apps/"
@FRONTEND_ROOT: "{FRONTEND_ROOT}/"
@FRONTEND_SHARED: "{FRONTEND_SRC}/shared/"

# Orchestration
@ORCH:          "orchestration/"
@INVENTORY:     "orchestration/inventarios/MASTER_INVENTORY.yml"
@INV_DB:        "orchestration/inventarios/DATABASE_INVENTORY.yml"
@INV_BE:        "orchestration/inventarios/BACKEND_INVENTORY.yml"
@INV_FE:        "orchestration/inventarios/FRONTEND_INVENTORY.yml"
@TRAZA_DB:      "orchestration/trazas/TRAZA-TAREAS-DATABASE.md"
@TRAZA_BE:      "orchestration/trazas/TRAZA-TAREAS-BACKEND.md"
@TRAZA_FE:      "orchestration/trazas/TRAZA-TAREAS-FRONTEND.md"

# Documentación
@DOCS:          "docs/"
@GUIAS:         "docs/95-guias-desarrollo/"
@ADR:           "docs/97-adr/"
```

**Ejemplo resuelto para GAMILIT:**
```yaml
@DDL:           "apps/database/ddl/schemas/"
@DDL_ROOT:      "apps/database/ddl/"
@SEEDS:         "apps/database/seeds/"
@DB_SCRIPTS:    "apps/database/"

@BACKEND:       "apps/backend/src/modules/"
@BACKEND_ROOT:  "apps/backend/"
@BACKEND_SHARED: "apps/backend/src/shared/"

@FRONTEND:      "apps/frontend/web/src/apps/"
@FRONTEND_ROOT: "apps/frontend/web/"

@INVENTORY:     "orchestration/inventarios/MASTER_INVENTORY.yml"
# ... etc
```

---

## COMANDOS FRECUENTES

```yaml
# Database
recrear_db: "cd {DB_SCRIPTS_PATH} && ./{RECREATE_CMD}"
crear_db: "cd {DB_SCRIPTS_PATH} && ./create-database.sh"
psql_connect: "psql -d {DB_NAME}"

# Backend
build_be: "cd {BACKEND_ROOT} && npm run build"
lint_be: "cd {BACKEND_ROOT} && npm run lint"
test_be: "cd {BACKEND_ROOT} && npm run test"
start_be: "cd {BACKEND_ROOT} && npm run start:dev"

# Frontend
build_fe: "cd {FRONTEND_ROOT} && npm run build"
lint_fe: "cd {FRONTEND_ROOT} && npm run lint"
start_fe: "cd {FRONTEND_ROOT} && npm run dev"
```

---

## ESTRUCTURA DEL PROYECTO

```
{PROJECT_NAME}/
├── apps/
│   ├── database/
│   │   ├── ddl/
│   │   │   ├── 00-init.sql
│   │   │   └── schemas/
│   │   │       └── {schema}/
│   │   ├── seeds/
│   │   │   ├── dev/
│   │   │   └── prod/
│   │   ├── create-database.sh
│   │   └── {RECREATE_CMD}
│   │
│   ├── backend/
│   │   ├── src/
│   │   │   ├── shared/
│   │   │   └── modules/
│   │   │       └── {modulo}/
│   │   ├── tests/
│   │   └── package.json
│   │
│   └── frontend/
│       └── web/
│           ├── src/
│           │   ├── apps/
│           │   └── shared/
│           └── package.json
│
├── docs/
│   ├── 00-vision-general/
│   ├── 01-fase-*/
│   ├── 95-guias-desarrollo/
│   ├── 97-adr/
│   └── README.md
│
├── orchestration/
│   ├── 00-guidelines/
│   │   └── CONTEXTO-PROYECTO.md    ← ESTE ARCHIVO
│   ├── inventarios/
│   │   ├── MASTER_INVENTORY.yml
│   │   ├── DATABASE_INVENTORY.yml
│   │   ├── BACKEND_INVENTORY.yml
│   │   └── FRONTEND_INVENTORY.yml
│   ├── trazas/
│   │   ├── TRAZA-TAREAS-DATABASE.md
│   │   ├── TRAZA-TAREAS-BACKEND.md
│   │   └── TRAZA-TAREAS-FRONTEND.md
│   └── PROXIMA-ACCION.md
│
└── README.md
```

---

## REFERENCIAS A CORE/ORCHESTRATION

Este proyecto usa el sistema SIMCO definido en:

```yaml
SIMCO:
  indice: "core/orchestration/directivas/simco/_INDEX.md"
  principios: "core/orchestration/directivas/principios/"
  aliases_globales: "core/orchestration/referencias/ALIASES.yml"
  perfiles: "core/orchestration/agents/perfiles/"

# 🆕 CATÁLOGO DE FUNCIONALIDADES REUTILIZABLES
CATALOGO:
  indice: "core/catalog/CATALOG-INDEX.yml"
  reutilizar: "core/orchestration/directivas/simco/SIMCO-REUTILIZAR.md"
  funcionalidades:
    - auth: "core/catalog/auth/"
    - session: "core/catalog/session-management/"
    - rate-limiting: "core/catalog/rate-limiting/"
    - notifications: "core/catalog/notifications/"
    - multi-tenancy: "core/catalog/multi-tenancy/"
    - feature-flags: "core/catalog/feature-flags/"
    - websocket: "core/catalog/websocket/"
    - payments: "core/catalog/payments/"
```

---

## 🆕 FUNCIONALIDADES DEL CATÁLOGO USADAS EN ESTE PROYECTO

```yaml
# Marcar las funcionalidades que este proyecto usa del catálogo global
funcionalidades_del_catalogo:
  - nombre: "{funcionalidad}"
    version: "{version del catálogo}"
    adaptaciones: "{cambios específicos del proyecto}"
    fecha_implementacion: "{YYYY-MM-DD}"
```

---

## NOTAS ESPECÍFICAS DEL PROYECTO

{Agregar notas específicas, decisiones de arquitectura locales, particularidades del proyecto, etc.}

---

**Creado:** {YYYY-MM-DD}
**Autor:** {nombre}
**Basado en:** TEMPLATE-CONTEXTO-PROYECTO.md v1.0.0
