commit a75d98b744b33dd9bb89ae4597b1928193f9a401 Author: rckrdmrd Date: Sun Jan 4 06:12:13 2026 -0600 Initial commit - inmobiliaria-analytics diff --git a/.env.ports b/.env.ports new file mode 100644 index 0000000..a5f8779 --- /dev/null +++ b/.env.ports @@ -0,0 +1,37 @@ +# ============================================================================= +# INMOBILIARIA-ANALYTICS - PORT ASSIGNMENTS +# ============================================================================= +# Archivo centralizado de asignacion de puertos +# Gestionado por: DevEnv Agent +# Fecha: 2025-12-08 +# Rango asignado: 3100-3109 (base=3100) +# Estándar: FE=base, BE=base+1 +# Estado: RESERVADO (proyecto en planificacion) +# ============================================================================= + +# ============================================================================= +# SERVICIOS PRINCIPALES (RESERVADOS) +# ============================================================================= + +# Frontend +FRONTEND_PORT=3100 + +# Backend API +BACKEND_PORT=3101 + +# WebSocket (opcional) +BACKEND_WS_PORT=3102 + +# ============================================================================= +# BASES DE DATOS (RESERVADOS) +# ============================================================================= +POSTGRES_PORT=5439 +REDIS_PORT=6386 + +# ============================================================================= +# NOTAS +# ============================================================================= +# - Puertos reservados para cuando el proyecto se implemente +# - Estándar: Frontend = base (3100), Backend = base + 1 (3101) +# - Registrado en: @DEVENV_PORTS (core/orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml) +# ============================================================================= diff --git a/INVENTARIO.yml b/INVENTARIO.yml new file mode 100644 index 0000000..14fa1b1 --- /dev/null +++ b/INVENTARIO.yml @@ -0,0 +1,31 @@ +# Inventario generado por EPIC-008 +proyecto: inmobiliaria-analytics +fecha: "2026-01-04" +generado_por: "inventory-project.sh v1.0.0" + +inventario: + docs: + total: 1 + por_tipo: + markdown: 1 + yaml: 0 + json: 0 + orchestration: + total: 13 + por_tipo: + markdown: 7 + yaml: 5 + json: 1 + +problemas: + archivos_obsoletos: 0 + referencias_antiguas: 0 + simco_faltantes: + - _MAP.md en docs/ + - PROJECT-STATUS.md + +estado_simco: + herencia_simco: true + contexto_proyecto: true + map_docs: false + project_status: false diff --git a/README.md b/README.md new file mode 100644 index 0000000..2908a0a --- /dev/null +++ b/README.md @@ -0,0 +1,22 @@ +# inmobiliaria-analytics + +## Descripción + +[Descripción del proyecto pendiente de definir] + +## Estado + +- **Estado:** Planificación +- **Creado:** 2025-12-05 + +## Estructura + +``` +inmobiliaria-analytics/ +├── apps/ +├── docs/ +└── orchestration/ +``` + +--- +*Proyecto parte del workspace de Fábrica de Software con Agentes IA* diff --git a/apps/backend/package.json b/apps/backend/package.json new file mode 100644 index 0000000..2622d64 --- /dev/null +++ b/apps/backend/package.json @@ -0,0 +1,84 @@ +{ + "name": "@inmobiliaria-analytics/backend", + "version": "0.1.0", + "description": "Inmobiliaria Analytics - Backend API", + "author": "Inmobiliaria Analytics Team", + "private": true, + "license": "UNLICENSED", + "scripts": { + "build": "nest build", + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start": "nest start", + "start:dev": "nest start --watch", + "start:debug": "nest start --debug --watch", + "start:prod": "node dist/main", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", + "test:e2e": "jest --config ./test/jest-e2e.json", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "@nestjs/common": "^10.3.0", + "@nestjs/config": "^3.1.1", + "@nestjs/core": "^10.3.0", + "@nestjs/jwt": "^10.2.0", + "@nestjs/passport": "^10.0.3", + "@nestjs/platform-express": "^10.3.0", + "@nestjs/typeorm": "^10.0.1", + "bcrypt": "^5.1.1", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "passport": "^0.7.0", + "passport-jwt": "^4.0.1", + "passport-local": "^1.0.0", + "pg": "^8.11.3", + "reflect-metadata": "^0.2.1", + "rxjs": "^7.8.1", + "typeorm": "^0.3.19" + }, + "devDependencies": { + "@nestjs/cli": "^10.3.0", + "@nestjs/schematics": "^10.1.0", + "@nestjs/testing": "^10.3.0", + "@types/bcrypt": "^5.0.2", + "@types/express": "^4.17.21", + "@types/jest": "^29.5.11", + "@types/node": "^20.10.6", + "@types/passport-jwt": "^4.0.0", + "@types/passport-local": "^1.0.38", + "@typescript-eslint/eslint-plugin": "^6.18.0", + "@typescript-eslint/parser": "^6.18.0", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.1.2", + "jest": "^29.7.0", + "prettier": "^3.1.1", + "source-map-support": "^0.5.21", + "supertest": "^6.3.4", + "ts-jest": "^29.1.1", + "ts-loader": "^9.5.1", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.3.3" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": "src", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + }, + "collectCoverageFrom": [ + "**/*.(t|j)s" + ], + "coverageDirectory": "../coverage", + "testEnvironment": "node" + } +} diff --git a/apps/backend/service.descriptor.yml b/apps/backend/service.descriptor.yml new file mode 100644 index 0000000..bea8924 --- /dev/null +++ b/apps/backend/service.descriptor.yml @@ -0,0 +1,58 @@ +# Service Descriptor - Inmobiliaria Analytics API +# Generado automáticamente durante migración + +service: + name: inmobiliaria-api + type: backend_api + framework: nestjs + runtime: node + version: "20" + description: "API de analytics inmobiliaria" + owner_agent: NEXUS-BACKEND + +repository: + name: workspace-v1 + path: projects/inmobiliaria-analytics/apps/backend + main_branch: main + +ports: + internal: 3100 + registry_ref: projects.inmobiliaria.services.api + protocol: http + +domains: + registry_ref: projects.inmobiliaria.domains + overrides: + local: api.inmobiliaria.localhost + +database: + registry_ref: databases.inmobiliaria + role: runtime + schemas: + - public + - properties + - analytics + +docker: + dockerfile: Dockerfile + context: . + networks: + - inmobiliaria_${ENV:-local} + - infra_shared + labels: + traefik: + enable: true + rule: "Host(`api.inmobiliaria.localhost`)" + +healthcheck: + path: /health + interval: 30s + timeout: 10s + retries: 3 + +metadata: + created: "2025-12-26" + updated: "2025-12-26" + maintainers: + - tech-leader + status: planned diff --git a/apps/backend/src/app.module.ts b/apps/backend/src/app.module.ts new file mode 100644 index 0000000..8d13052 --- /dev/null +++ b/apps/backend/src/app.module.ts @@ -0,0 +1,32 @@ +import { Module } from '@nestjs/common'; +import { ConfigModule } from '@nestjs/config'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { appConfig, databaseConfig, jwtConfig } from './config'; +import { AuthModule } from './modules/auth/auth.module'; + +@Module({ + imports: [ + ConfigModule.forRoot({ + isGlobal: true, + load: [appConfig, databaseConfig, jwtConfig], + }), + TypeOrmModule.forRootAsync({ + useFactory: (configService) => ({ + type: 'postgres', + host: configService.get('database.host'), + port: configService.get('database.port'), + username: configService.get('database.username'), + password: configService.get('database.password'), + database: configService.get('database.database'), + entities: [__dirname + '/**/*.entity{.ts,.js}'], + synchronize: configService.get('database.synchronize'), + logging: configService.get('database.logging'), + }), + inject: [ConfigModule], + }), + AuthModule, + ], + controllers: [], + providers: [], +}) +export class AppModule {} diff --git a/apps/backend/src/config/index.ts b/apps/backend/src/config/index.ts new file mode 100644 index 0000000..6307a1f --- /dev/null +++ b/apps/backend/src/config/index.ts @@ -0,0 +1,23 @@ +import { registerAs } from '@nestjs/config'; + +export const databaseConfig = registerAs('database', () => ({ + type: 'postgres', + host: process.env.DB_HOST || 'localhost', + port: parseInt(process.env.DB_PORT, 10) || 5432, + username: process.env.DB_USERNAME || 'postgres', + password: process.env.DB_PASSWORD || 'postgres', + database: process.env.DB_NAME || 'inmobiliaria_analytics', + synchronize: process.env.NODE_ENV !== 'production', + logging: process.env.NODE_ENV === 'development', +})); + +export const jwtConfig = registerAs('jwt', () => ({ + secret: process.env.JWT_SECRET || 'change-me-in-production', + expiresIn: process.env.JWT_EXPIRES_IN || '1d', +})); + +export const appConfig = registerAs('app', () => ({ + port: parseInt(process.env.PORT, 10) || 3000, + environment: process.env.NODE_ENV || 'development', + apiPrefix: process.env.API_PREFIX || 'api', +})); diff --git a/apps/backend/src/main.ts b/apps/backend/src/main.ts new file mode 100644 index 0000000..9e508ce --- /dev/null +++ b/apps/backend/src/main.ts @@ -0,0 +1,36 @@ +import { NestFactory } from '@nestjs/core'; +import { ValidationPipe } from '@nestjs/common'; +import { ConfigService } from '@nestjs/config'; +import { AppModule } from './app.module'; + +async function bootstrap() { + const app = await NestFactory.create(AppModule); + const configService = app.get(ConfigService); + + // Global validation pipe + app.useGlobalPipes( + new ValidationPipe({ + whitelist: true, + forbidNonWhitelisted: true, + transform: true, + }), + ); + + // CORS configuration + app.enableCors({ + origin: process.env.CORS_ORIGIN || '*', + credentials: true, + }); + + // API prefix + const apiPrefix = configService.get('app.apiPrefix', 'api'); + app.setGlobalPrefix(apiPrefix); + + // Start server + const port = configService.get('app.port', 3000); + await app.listen(port); + + console.log(`Inmobiliaria Analytics API running on: http://localhost:${port}/${apiPrefix}`); +} + +bootstrap(); diff --git a/apps/backend/src/modules/auth/auth.module.ts b/apps/backend/src/modules/auth/auth.module.ts new file mode 100644 index 0000000..fe44ab6 --- /dev/null +++ b/apps/backend/src/modules/auth/auth.module.ts @@ -0,0 +1,19 @@ +import { Module } from '@nestjs/common'; + +/** + * Authentication module placeholder + * + * TODO: Implement authentication logic including: + * - User authentication service + * - JWT strategy + * - Local strategy + * - Auth controller + * - Auth guards + */ +@Module({ + imports: [], + controllers: [], + providers: [], + exports: [], +}) +export class AuthModule {} diff --git a/apps/backend/src/shared/types/index.ts b/apps/backend/src/shared/types/index.ts new file mode 100644 index 0000000..3114e8c --- /dev/null +++ b/apps/backend/src/shared/types/index.ts @@ -0,0 +1,27 @@ +/** + * Shared type definitions for Inmobiliaria Analytics + */ + +export interface ApiResponse { + success: boolean; + data?: T; + error?: string; + message?: string; +} + +export interface PaginatedResponse { + data: T[]; + total: number; + page: number; + limit: number; + totalPages: number; +} + +export interface JwtPayload { + sub: string; + email: string; + iat?: number; + exp?: number; +} + +export type Environment = 'development' | 'production' | 'test'; diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json new file mode 100644 index 0000000..c86586b --- /dev/null +++ b/apps/backend/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2021", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false, + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist", "test", "**/*spec.ts"] +} diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..aa7d703 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,38 @@ +# DOCUMENTACIÓN - Inmobiliaria Analytics + +**Proyecto:** Inmobiliaria Analytics +**Versión:** 1.0.0 +**Fecha:** 2025-12-05 +**Estado:** Por iniciar + +--- + +## Estructura de Documentación + +``` +docs/ +├── 00-vision-general/ # Visión, objetivos y alcance +├── 01-analisis-referencias/ # Análisis de sistemas de referencia +├── 02-definicion-modulos/ # Lista, índice y dependencias de módulos +├── 03-requerimientos/ # Requerimientos funcionales por módulo +├── 04-modelado/ # Diseño técnico +│ ├── database-design/ # DDL specs, schemas +│ ├── domain-models/ # Modelos de dominio +│ └── especificaciones-tecnicas/ # ET backend/frontend +├── 05-user-stories/ # Historias de usuario +├── 06-test-plans/ # Planes de prueba +├── 07-devops/ # CI/CD, infraestructura +├── 90-transversal/ # Documentos transversales +├── 95-guias-desarrollo/ # Guías para desarrolladores +└── 97-adr/ # Architecture Decision Records +``` + +--- + +## Directiva Aplicable + +Ver: `/workspace/core/orchestration/directivas/DIRECTIVA-ESTRUCTURA-DOCUMENTACION-PROYECTOS.md` + +--- + +**Última actualización:** 2025-12-05 diff --git a/docs/_MAP.md b/docs/_MAP.md new file mode 100644 index 0000000..23d32b3 --- /dev/null +++ b/docs/_MAP.md @@ -0,0 +1,40 @@ +# Mapa de Documentacion: inmobiliaria-analytics + +**Proyecto:** inmobiliaria-analytics +**Actualizado:** 2026-01-04 +**Generado por:** EPIC-008 adapt-simco.sh + +--- + +## Estructura de Documentacion + +``` +docs/ +├── _MAP.md # Este archivo (indice de navegacion) +├── 00-overview/ # Vision general del proyecto +├── 01-architecture/ # Arquitectura y decisiones (ADRs) +├── 02-specs/ # Especificaciones tecnicas +├── 03-api/ # Documentacion de APIs +├── 04-guides/ # Guias de desarrollo +└── 99-finiquito/ # Entregables cliente (si aplica) +``` + +## Navegacion Rapida + +| Seccion | Descripcion | Estado | +|---------|-------------|--------| +| Overview | Vision general | - | +| Architecture | Decisiones arquitectonicas | - | +| Specs | Especificaciones tecnicas | - | +| API | Documentacion de endpoints | - | +| Guides | Guias de desarrollo | - | + +## Estadisticas + +- Total archivos en docs/: 1 +- Fecha de adaptacion: 2026-01-04 + +--- + +**Nota:** Este archivo fue generado automaticamente por EPIC-008. +Actualizar manualmente con la estructura real del proyecto. diff --git a/orchestration/00-guidelines/CONTEXTO-PROYECTO.md b/orchestration/00-guidelines/CONTEXTO-PROYECTO.md new file mode 100644 index 0000000..490819d --- /dev/null +++ b/orchestration/00-guidelines/CONTEXTO-PROYECTO.md @@ -0,0 +1,139 @@ +# Contexto del Proyecto - Inmobiliaria Analytics + +## Identificación + +| Campo | Valor | +|-------|-------| +| **Nombre** | Inmobiliaria Analytics Platform | +| **Código** | inmobiliaria-analytics | +| **Nivel** | 2A (Standalone) | +| **Estado** | Planificación | +| **Progreso** | 0% | +| **Versión** | 0.0.1 | +| **Creado** | 2025-12-05 | +| **Path** | `/home/isem/workspace-v1/projects/inmobiliaria-analytics/` | + +--- + +## Descripción + +Plataforma de análisis para el sector inmobiliario. El proyecto está actualmente en fase de planificación. + +**Funcionalidades previstas:** +- Análisis de mercado inmobiliario +- Valuación automatizada de propiedades +- Dashboard de tendencias +- Comparativas de precios por zona +- Predicciones de mercado (ML) +- Gestión de portafolio inmobiliario + +--- + +## Stack Tecnológico (Propuesto) + +| Capa | Tecnología | +|------|------------| +| **Frontend** | React 18 + TypeScript + Vite + Tailwind CSS | +| **Backend** | Express.js / NestJS + TypeScript | +| **Database** | PostgreSQL 15+ | +| **ML** | Python + FastAPI (valuaciones y predicciones) | +| **Maps** | Google Maps API / Mapbox | + +--- + +## Estructura del Proyecto + +``` +inmobiliaria-analytics/ +├── apps/ +│ ├── backend/ # API REST (vacío) +│ ├── database/ # DDL y migraciones (vacío) +│ └── frontend/ # SPA React (vacío) +│ +├── docs/ # Documentación +│ ├── 00-vision-general/ +│ ├── 01-analisis-referencias/ +│ ├── 02-definicion-modulos/ +│ ├── 03-requerimientos/ +│ ├── 04-modelado/ +│ ├── 05-user-stories/ +│ ├── 06-test-plans/ +│ ├── 07-devops/ +│ ├── 90-transversal/ +│ ├── 95-guias-desarrollo/ +│ └── 97-adr/ +│ +└── orchestration/ # Sistema NEXUS + ├── 00-guidelines/ + ├── inventarios/ + ├── trazas/ + └── ... +``` + +--- + +## Variables del Proyecto + +```yaml +# Para uso en delegaciones SIMCO +PROJECT_NAME: inmobiliaria-analytics +PROJECT_PATH: /home/isem/workspace-v1/projects/inmobiliaria-analytics + +# Database (propuesto) +DB_NAME: inmobiliaria_analytics +DB_DDL_PATH: apps/database/ddl +DB_SEEDS_PATH: apps/database/seeds + +# Backend (propuesto) +BACKEND_ROOT: apps/backend +BACKEND_SRC: apps/backend/src + +# Frontend (propuesto) +FRONTEND_ROOT: apps/frontend +FRONTEND_SRC: apps/frontend/src +``` + +--- + +## Estado Actual + +| Aspecto | Estado | +|---------|--------| +| Documentación | Estructura creada, sin contenido | +| Base de datos | No iniciado | +| Backend | No iniciado | +| Frontend | No iniciado | +| Tests | No iniciado | + +--- + +## Próximos Pasos + +1. [ ] Definir alcance y requerimientos +2. [ ] Documentar visión general en `docs/00-vision-general/` +3. [ ] Investigar APIs de datos inmobiliarios +4. [ ] Diseñar modelo de datos +5. [ ] Crear épicas y user stories +6. [ ] Iniciar desarrollo del MVP + +--- + +## Herencia de Directivas + +Este proyecto hereda directivas de: +1. **Core Global:** `core/orchestration/directivas/` +2. **Principios:** `core/orchestration/directivas/principios/` +3. **SIMCO:** `core/orchestration/directivas/simco/` + +--- + +## Referencias + +| Recurso | Path | +|---------|------| +| Core orchestration | `/home/isem/workspace-v1/core/orchestration/` | +| Catálogo global | `/home/isem/workspace-v1/core/catalog/` | + +--- +*Contexto del proyecto - Sistema NEXUS + SIMCO v2.2.0* +*Última actualización: 2025-12-08* diff --git a/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md b/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md new file mode 100644 index 0000000..e16cafc --- /dev/null +++ b/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md @@ -0,0 +1,110 @@ +# Herencia de Directivas - Inmobiliaria Analytics + +## Arquitectura de Directivas + +Este proyecto hereda directivas del workspace (core) y define directivas específicas. + +## Directivas Globales (heredadas de core) + +**Path:** `~/workspace/core/orchestration/directivas/` + +Estas directivas aplican a TODOS los proyectos del workspace: + +| Directiva | Propósito | +|-----------|-----------| +| `DIRECTIVA-FLUJO-5-FASES.md` | Workflow obligatorio de 5 fases | +| `DIRECTIVA-VALIDACION-SUBAGENTES.md` | Validación de entregables | +| `POLITICAS-USO-AGENTES.md` | Reglas de delegación | +| `DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md` | Documentación requerida | +| `DIRECTIVA-CALIDAD-CODIGO.md` | Estándares de código | +| `DIRECTIVA-CONTROL-VERSIONES.md` | Git y versionado | +| `DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md` | Backups y gitignore | +| `PROTOCOLO-ESCALAMIENTO-PO.md` | Escalamiento al PO | +| `ESTANDARES-NOMENCLATURA-BASE.md` | Nomenclatura base | +| `SISTEMA-RETROALIMENTACION.md` | Mejora continua | + +## Directivas Específicas de Inmobiliaria Analytics + +**Path:** `~/workspace/projects/inmobiliaria-analytics/orchestration/directivas/` + +| Directiva | Propósito | +|-----------|-----------| +| *(Por definir según necesidades del proyecto)* | - | + +## Prompts Base (heredados de core) + +**Path:** `~/workspace/core/orchestration/prompts/base/` + +| Prompt | Uso | +|--------|-----| +| `PROMPT-SUBAGENTES-BASE.md` | Instrucciones generales para subagentes | +| `PROMPT-BUG-FIXER.md` | Corrección de bugs genérico | +| `PROMPT-CODE-REVIEWER.md` | Revisión de código | +| `PROMPT-FEATURE-DEVELOPER.md` | Desarrollo de features | +| `PROMPT-DOCUMENTATION-VALIDATOR.md` | Validación de documentación | +| `PROMPT-POLICY-AUDITOR.md` | Auditoría de políticas | +| `PROMPT-REQUIREMENTS-ANALYST.md` | Análisis de requerimientos | +| `PROMPT-WORKSPACE-MANAGER.md` | Gestión del workspace | + +## Prompts Específicos de Inmobiliaria Analytics + +**Path:** `~/workspace/projects/inmobiliaria-analytics/orchestration/prompts/` + +| Prompt | Uso | +|--------|-----| +| *(Por definir según necesidades del proyecto)* | - | + +## Templates y Checklists (core) + +**Path:** `~/workspace/core/orchestration/templates/` +- `TEMPLATE-ANALISIS.md` +- `TEMPLATE-PLAN.md` +- `TEMPLATE-VALIDACION.md` +- `TEMPLATE-CONTEXTO-SUBAGENTE.md` + +**Path:** `~/workspace/core/orchestration/checklists/` +- `CHECKLIST-CODE-REVIEW-API.md` +- `CHECKLIST-REFACTORIZACION.md` + +## Orden de Precedencia + +Cuando hay conflicto entre directivas: + +1. **Directivas específicas del proyecto** (mayor prioridad) +2. **Directivas globales del workspace** +3. **Prompts específicos del proyecto** +4. **Prompts base del workspace** + +## Catálogo de Funcionalidades Usado + +Este proyecto utiliza las siguientes funcionalidades del catálogo core: + +| Funcionalidad | Uso en el proyecto | +|---------------|-------------------| +| *(Por definir según necesidades del proyecto)* | - | + +**Path catálogo:** `~/workspace/core/catalog/` + +## Uso para Subagentes + +Al invocar un subagente, incluir en el contexto: + +```yaml +DIRECTIVAS_A_LEER: + globales: + - ~/workspace/core/orchestration/directivas/DIRECTIVA-FLUJO-5-FASES.md + - ~/workspace/core/orchestration/directivas/POLITICAS-USO-AGENTES.md + especificas: + - ~/workspace/projects/inmobiliaria-analytics/orchestration/directivas/[DIRECTIVA-RELEVANTE].md + prompt_base: + - ~/workspace/core/orchestration/prompts/base/PROMPT-SUBAGENTES-BASE.md + prompt_especifico: + - ~/workspace/projects/inmobiliaria-analytics/orchestration/prompts/[PROMPT-AGENTE].md + contexto_proyecto: + - ~/workspace/projects/inmobiliaria-analytics/orchestration/00-guidelines/CONTEXTO-PROYECTO.md +``` + +--- +*Sistema NEXUS + SIMCO v2.2.0 - Inmobiliaria Analytics* +*Nivel: 2A (Standalone)* +*Actualizado: 2025-12-08* diff --git a/orchestration/00-guidelines/HERENCIA-SIMCO.md b/orchestration/00-guidelines/HERENCIA-SIMCO.md new file mode 100644 index 0000000..97c2b56 --- /dev/null +++ b/orchestration/00-guidelines/HERENCIA-SIMCO.md @@ -0,0 +1,105 @@ +# Herencia SIMCO - Inmobiliaria Analytics + +**Sistema:** SIMCO v2.2.0 + CAPVED + CCA Protocol +**Fecha:** 2025-12-08 + +--- + +## Configuración del Proyecto + +| Propiedad | Valor | +|-----------|-------| +| **Proyecto** | Inmobiliaria Analytics | +| **Nivel** | STANDALONE | +| **Padre** | core/orchestration | +| **SIMCO Version** | 2.2.0 | +| **CAPVED** | Habilitado | +| **CCA Protocol** | Habilitado | + +## Jerarquía de Herencia + +``` +Nivel 0: core/orchestration/ ← FUENTE PRINCIPAL + │ + └── STANDALONE: inmobiliaria-analytics/orchestration/ ← ESTE PROYECTO +``` + +--- + +## Directivas Heredadas de CORE (OBLIGATORIAS) + +### Ciclo de Vida +| Alias | Propósito | +|-------|-----------| +| `@TAREA` | Punto de entrada para toda HU | +| `@CAPVED` | Ciclo de 6 fases | +| `@INICIALIZACION` | Bootstrap de agentes | + +### Operaciones Universales +| Alias | Propósito | +|-------|-----------| +| `@CREAR` | Crear archivos nuevos | +| `@MODIFICAR` | Modificar existentes | +| `@VALIDAR` | Validar código | +| `@DOCUMENTAR` | Documentar trabajo | +| `@BUSCAR` | Buscar información | +| `@DELEGAR` | Delegar a subagentes | + +### Principios Fundamentales +| Alias | Resumen | +|-------|---------| +| `@CAPVED` | Toda tarea pasa por 6 fases | +| `@DOC_PRIMERO` | Consultar docs/ antes de implementar | +| `@ANTI_DUP` | Verificar que no existe | +| `@VALIDACION` | Build y lint DEBEN pasar | +| `@TOKENS` | Desglosar tareas grandes | + +--- + +## Directivas por Dominio Técnico + +| Alias | Aplica | Notas | +|-------|--------|-------| +| `@OP_DDL` | **SÍ** | Schemas inmobiliaria | +| `@OP_BACKEND` | **SÍ** | APIs de propiedades | +| `@OP_FRONTEND` | **SÍ** | Dashboard analytics | +| `@OP_MOBILE` | Por definir | - | +| `@OP_ML` | **SÍ** | Predicción de precios | + +--- + +## Patrones Heredados (OBLIGATORIOS) + +Todos los patrones de `core/orchestration/patrones/` aplican. + +--- + +## Variables de Contexto CCA + +```yaml +PROJECT_NAME: "inmobiliaria-analytics" +PROJECT_LEVEL: "STANDALONE" +PROJECT_ROOT: "/home/isem/workspace-v1/projects/inmobiliaria-analytics" + +DB_DDL_PATH: "database/ddl" +BACKEND_ROOT: "backend/src" +FRONTEND_ROOT: "frontend/src" + +MASTER_INVENTORY: "orchestration/inventarios/MASTER_INVENTORY.yml" +``` + +--- + +## Mapeo: Directivas Antiguas → SIMCO + +| Directiva Antigua | Reemplazada Por | Alias | +|-------------------|-----------------|-------| +| `DIRECTIVA-FLUJO-5-FASES.md` | `SIMCO-TAREA.md` + `PRINCIPIO-CAPVED.md` | @TAREA, @CAPVED | +| `DIRECTIVA-VALIDACION-SUBAGENTES.md` | `SIMCO-VALIDAR.md` | @VALIDAR | +| `POLITICAS-USO-AGENTES.md` | `SIMCO-DELEGACION.md` | @DELEGAR | + +--- + +**Sistema:** SIMCO v2.2.0 + CAPVED + CCA Protocol +**Nivel:** STANDALONE +**Última actualización:** 2025-12-08 diff --git a/orchestration/00-guidelines/PROJECT-STATUS.md b/orchestration/00-guidelines/PROJECT-STATUS.md new file mode 100644 index 0000000..cf6f1dc --- /dev/null +++ b/orchestration/00-guidelines/PROJECT-STATUS.md @@ -0,0 +1,33 @@ +# PROJECT STATUS: inmobiliaria-analytics + +**Ultima actualizacion:** 2026-01-04 +**Estado general:** Activo + +--- + +## Metricas Rapidas + +| Metrica | Valor | +|---------|-------| +| Archivos docs/ | 1 | +| Archivos orchestration/ | 13 | +| Estado SIMCO | Adaptado | + +## Migracion EPIC-008 + +- [x] Migracion desde workspace-v1-bckp (EPIC-004/005) +- [x] Adaptacion SIMCO (EPIC-008) +- [x] docs/_MAP.md creado +- [x] PROJECT-STATUS.md creado +- [x] HERENCIA-SIMCO.md verificado +- [x] CONTEXTO-PROYECTO.md verificado + +## Historial de Cambios + +| Fecha | Cambio | EPIC | +|-------|--------|------| +| 2026-01-04 | Adaptacion SIMCO completada | EPIC-008 | + +--- + +**Generado por:** EPIC-008 adapt-simco.sh diff --git a/orchestration/PROXIMA-ACCION.md b/orchestration/PROXIMA-ACCION.md new file mode 100644 index 0000000..db5d9d1 --- /dev/null +++ b/orchestration/PROXIMA-ACCION.md @@ -0,0 +1,11 @@ +# Próxima Acción - inmobiliaria-analytics + +## Estado Actual +- **Fecha:** 2025-12-05 +- **Estado:** Pendiente de planificación + +## Próxima Tarea +Definir alcance y requerimientos iniciales del proyecto. + +--- +*Actualizado: 2025-12-05* diff --git a/orchestration/environment/PROJECT-ENV-CONFIG.yml b/orchestration/environment/PROJECT-ENV-CONFIG.yml new file mode 100644 index 0000000..709f248 --- /dev/null +++ b/orchestration/environment/PROJECT-ENV-CONFIG.yml @@ -0,0 +1,47 @@ +# ============================================================================= +# PROJECT-ENV-CONFIG.yml +# Configuración de Ambiente específica del proyecto INMOBILIARIA-ANALYTICS +# ============================================================================= +# Proyecto: INMOBILIARIA-ANALYTICS - Análisis del Mercado Inmobiliario +# Actualizado: 2025-12-05 +# Referencia: ~/workspace/core/devtools/environment/DEV-ENVIRONMENT-REGISTRY.yml +# ============================================================================= + +project: + name: "INMOBILIARIA_ANALYTICS" + slug: "inmobiliaria-analytics" + description: "Plataforma de Análisis del Mercado Inmobiliario" + status: "development" + port_block: 3100 + +ports: + frontend: 3105 + backend: 3106 + ml_service: 8004 + +database: + host: "localhost" + port: 5432 # UNA sola instancia PostgreSQL + name: "inmobiliaria_analytics" + user: "inmobiliaria_user" + # password: Ver archivo .env local + +urls: + frontend: "http://localhost:3105" + backend_api: "http://localhost:3106/api" + swagger: "http://localhost:3106/api/docs" + +env_files: + backend: "apps/backend/.env" + frontend: "apps/frontend/.env" + +stack: + backend: "NestJS + TypeScript" + frontend: "React + TypeScript + Vite" + database: "PostgreSQL 15" + ml_service: "FastAPI + Python" + +notes: | + - Proyecto en desarrollo inicial + - Servicio ML para análisis predictivo del mercado + - Base de datos: inmobiliaria_analytics (en instancia PostgreSQL compartida) diff --git a/orchestration/estados/REGISTRO-SUBAGENTES.json b/orchestration/estados/REGISTRO-SUBAGENTES.json new file mode 100644 index 0000000..3402464 --- /dev/null +++ b/orchestration/estados/REGISTRO-SUBAGENTES.json @@ -0,0 +1,9 @@ +{ + "proyecto": "inmobiliaria-analytics", + "limite_maximo": 15, + "slots_disponibles": 15, + "ultima_actualizacion": "2025-12-05T02:19:51-06:00", + "activos": [], + "completados": [], + "fallidos": [] +} diff --git a/orchestration/inventarios/BACKEND_INVENTORY.yml b/orchestration/inventarios/BACKEND_INVENTORY.yml new file mode 100644 index 0000000..e275aa0 --- /dev/null +++ b/orchestration/inventarios/BACKEND_INVENTORY.yml @@ -0,0 +1,32 @@ +# BACKEND INVENTORY - Inmobiliaria Analytics Platform +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto no iniciado + +backend: + framework: Express.js / NestJS + TypeScript (propuesto) + path: apps/backend/ + src: apps/backend/src/ + estado: No iniciado + +estructura: {} +# Se definirá cuando inicie el desarrollo + +modulos: [] +# Módulos propuestos: +# - auth: Autenticación +# - users: Gestión de usuarios +# - properties: Propiedades +# - valuations: Valuaciones +# - analytics: Análisis +# - geo: Servicios geográficos + +resumen: + total_modulos: 0 + total_controllers: 0 + total_services: 0 + total_endpoints: 0 + +ultima_actualizacion: 2025-12-08 +actualizado_por: NEXUS-System +nota: Este es un template inicial. Se actualizará cuando inicie el desarrollo. diff --git a/orchestration/inventarios/DATABASE_INVENTORY.yml b/orchestration/inventarios/DATABASE_INVENTORY.yml new file mode 100644 index 0000000..3249881 --- /dev/null +++ b/orchestration/inventarios/DATABASE_INVENTORY.yml @@ -0,0 +1,28 @@ +# DATABASE INVENTORY - Inmobiliaria Analytics Platform +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto no iniciado + +database: + nombre: inmobiliaria_analytics + motor: PostgreSQL 15+ (propuesto) + path_ddl: apps/database/ddl/ + path_seeds: apps/database/seeds/ + estado: No iniciado + +schemas: [] +# Schemas propuestos: +# - auth: Autenticación y usuarios +# - properties: Propiedades inmobiliarias +# - valuations: Valuaciones +# - analytics: Análisis y tendencias +# - geo: Datos geográficos + +resumen: + total_schemas: 0 + total_tablas: 0 + total_funciones: 0 + +ultima_actualizacion: 2025-12-08 +actualizado_por: NEXUS-System +nota: Este es un template inicial. Se actualizará cuando inicie el desarrollo. diff --git a/orchestration/inventarios/FRONTEND_INVENTORY.yml b/orchestration/inventarios/FRONTEND_INVENTORY.yml new file mode 100644 index 0000000..e2d612c --- /dev/null +++ b/orchestration/inventarios/FRONTEND_INVENTORY.yml @@ -0,0 +1,34 @@ +# FRONTEND INVENTORY - Inmobiliaria Analytics Platform +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto no iniciado + +frontend: + framework: React 18 + TypeScript + Vite (propuesto) + path: apps/frontend/ + src: apps/frontend/src/ + styling: Tailwind CSS (propuesto) + estado: No iniciado + +estructura: {} +# Se definirá cuando inicie el desarrollo + +modulos: [] +# Módulos propuestos: +# - auth: Login, register +# - dashboard: Dashboard principal +# - properties: Búsqueda y detalle de propiedades +# - valuations: Valuaciones +# - analytics: Reportes y gráficos +# - maps: Componentes de mapas +# - settings: Configuración + +resumen: + total_paginas: 0 + total_componentes: 0 + total_hooks: 0 + total_stores: 0 + +ultima_actualizacion: 2025-12-08 +actualizado_por: NEXUS-System +nota: Este es un template inicial. Se actualizará cuando inicie el desarrollo. diff --git a/orchestration/inventarios/MASTER_INVENTORY.yml b/orchestration/inventarios/MASTER_INVENTORY.yml new file mode 100644 index 0000000..a237d62 --- /dev/null +++ b/orchestration/inventarios/MASTER_INVENTORY.yml @@ -0,0 +1,61 @@ +# MASTER INVENTORY - Inmobiliaria Analytics Platform +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 + +proyecto: + nombre: Inmobiliaria Analytics Platform + codigo: inmobiliaria-analytics + nivel: 2A (Standalone) + estado: Planificacion + version: 0.0.1 + path: /home/isem/workspace/projects/inmobiliaria-analytics + +resumen_general: + total_schemas: 0 + total_tablas: 0 + total_servicios_backend: 0 + total_componentes_frontend: 0 + test_coverage: N/A + ultima_actualizacion: 2025-12-08 + +epicas: + # Pendiente definir epicas + - codigo: TBD + nombre: Por definir + sp: TBD + estado: No iniciado + +capas: + database: + inventario: DATABASE_INVENTORY.yml + total_objetos: 0 + estado: No iniciado + + backend: + inventario: BACKEND_INVENTORY.yml + total_objetos: 0 + estado: No iniciado + + frontend: + inventario: FRONTEND_INVENTORY.yml + total_objetos: 0 + estado: No iniciado + +stack_propuesto: + frontend: React 18 + TypeScript + Vite + Tailwind CSS + backend: Express.js / NestJS + TypeScript + database: PostgreSQL 15+ + ml: Python + FastAPI + maps: Google Maps API / Mapbox + +proximos_pasos: + - Definir alcance y requerimientos + - Investigar APIs de datos inmobiliarios + - Documentar vision general + - Disenar modelo de datos + - Crear epicas y user stories + +referencias: + docs: docs/ + orchestration: orchestration/ + contexto: orchestration/00-guidelines/CONTEXTO-PROYECTO.md diff --git a/orchestration/trazas/TRAZA-TAREAS-BACKEND.md b/orchestration/trazas/TRAZA-TAREAS-BACKEND.md new file mode 100644 index 0000000..f0b9b01 --- /dev/null +++ b/orchestration/trazas/TRAZA-TAREAS-BACKEND.md @@ -0,0 +1,40 @@ +# TRAZA DE TAREAS - BACKEND LAYER +# Proyecto: Inmobiliaria Analytics Platform +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto en planificación + +--- + +## Formato de Registro + +```yaml +[FECHA] - [ID_TAREA] - [OPERACION] +Descripcion: {descripcion} +Archivos: + - {archivo_1} + - {archivo_2} +Estado: {COMPLETADO | EN_PROGRESO | BLOQUEADO} +Ejecutado_por: {AGENTE | USUARIO} +Notas: {observaciones} +``` + +--- + +## Historial de Tareas + +*Sin tareas registradas - Proyecto en planificación* + +--- + +## Resumen + +| Métrica | Valor | +|---------|-------| +| Total tareas | 0 | +| Completadas | 0 | +| En progreso | 0 | +| Bloqueadas | 0 | +| Última actualización | 2025-12-08 | + +--- +*Traza de tareas - Sistema NEXUS* diff --git a/orchestration/trazas/TRAZA-TAREAS-DATABASE.md b/orchestration/trazas/TRAZA-TAREAS-DATABASE.md new file mode 100644 index 0000000..3a536b4 --- /dev/null +++ b/orchestration/trazas/TRAZA-TAREAS-DATABASE.md @@ -0,0 +1,40 @@ +# TRAZA DE TAREAS - DATABASE LAYER +# Proyecto: Inmobiliaria Analytics Platform +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto en planificación + +--- + +## Formato de Registro + +```yaml +[FECHA] - [ID_TAREA] - [OPERACION] +Descripcion: {descripcion} +Archivos: + - {archivo_1} + - {archivo_2} +Estado: {COMPLETADO | EN_PROGRESO | BLOQUEADO} +Ejecutado_por: {AGENTE | USUARIO} +Notas: {observaciones} +``` + +--- + +## Historial de Tareas + +*Sin tareas registradas - Proyecto en planificación* + +--- + +## Resumen + +| Métrica | Valor | +|---------|-------| +| Total tareas | 0 | +| Completadas | 0 | +| En progreso | 0 | +| Bloqueadas | 0 | +| Última actualización | 2025-12-08 | + +--- +*Traza de tareas - Sistema NEXUS* diff --git a/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md b/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md new file mode 100644 index 0000000..3b43037 --- /dev/null +++ b/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md @@ -0,0 +1,40 @@ +# TRAZA DE TAREAS - FRONTEND LAYER +# Proyecto: Inmobiliaria Analytics Platform +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto en planificación + +--- + +## Formato de Registro + +```yaml +[FECHA] - [ID_TAREA] - [OPERACION] +Descripcion: {descripcion} +Archivos: + - {archivo_1} + - {archivo_2} +Estado: {COMPLETADO | EN_PROGRESO | BLOQUEADO} +Ejecutado_por: {AGENTE | USUARIO} +Notas: {observaciones} +``` + +--- + +## Historial de Tareas + +*Sin tareas registradas - Proyecto en planificación* + +--- + +## Resumen + +| Métrica | Valor | +|---------|-------| +| Total tareas | 0 | +| Completadas | 0 | +| En progreso | 0 | +| Bloqueadas | 0 | +| Última actualización | 2025-12-08 | + +--- +*Traza de tareas - Sistema NEXUS*