- Configure workspace Git repository with comprehensive .gitignore - Add Odoo as submodule for ERP reference code - Include documentation: SETUP.md, GIT-STRUCTURE.md - Add gitignore templates for projects (backend, frontend, database) - Structure supports independent repos per project/subproject level Workspace includes: - core/ - Reusable patterns, modules, orchestration system - projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.) - knowledge-base/ - Reference code and patterns (includes Odoo submodule) - devtools/ - Development tools and templates - customers/ - Client implementations template 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
325 lines
9.1 KiB
Markdown
325 lines
9.1 KiB
Markdown
# 📚 REFERENCE - Código de Referencia
|
|
|
|
**Propósito:** Esta carpeta contiene proyectos y código de referencia para análisis, comparación y mejora del desarrollo actual.
|
|
|
|
---
|
|
|
|
## 🎯 USO
|
|
|
|
### Para Architecture-Analyst
|
|
- Analizar implementaciones de referencia de Odoo y OCA
|
|
- Comparar patrones arquitectónicos
|
|
- Documentar mejores prácticas observadas
|
|
- Proponer mejoras basadas en referencias
|
|
|
|
### Para Agentes de Desarrollo
|
|
- Consultar implementaciones de funcionalidades similares
|
|
- Comparar enfoques de diseño en módulos Odoo
|
|
- Reutilizar patrones probados
|
|
- Entender mejores prácticas de desarrollo Python/Odoo
|
|
|
|
### Para Claude Code Cloud
|
|
- Acceso a código de referencia desde cualquier instancia
|
|
- Comparaciones automáticas con código actual
|
|
- Análisis de implementaciones
|
|
|
|
---
|
|
|
|
## 📂 ESTRUCTURA
|
|
|
|
```
|
|
reference/
|
|
├── README.md # Este archivo
|
|
├── odoo/ # Código Odoo de referencia
|
|
│ └── README.md
|
|
├── gamilit/ # Proyecto GAMILIT (arquitectura educativa)
|
|
│ ├── README.md
|
|
│ ├── _MAP.md # Mapa completo del proyecto
|
|
│ ├── backend/ # Backend Node.js + TypeScript
|
|
│ ├── frontend/ # Frontend React + TypeScript
|
|
│ ├── database/ # PostgreSQL schemas y DDL
|
|
│ └── devops/ # Scripts DevOps y validación
|
|
├── odoo-modules/ # Módulos Odoo de referencia (futuro)
|
|
│ ├── oca-account/ # Módulos contables de OCA
|
|
│ │ ├── __manifest__.py
|
|
│ │ ├── models/
|
|
│ │ └── README.md
|
|
│ └── custom-modules/ # Módulos personalizados de ejemplo
|
|
├── python-patterns/ # Patrones Python de referencia (futuro)
|
|
│ ├── design-patterns/
|
|
│ └── best-practices/
|
|
└── integrations/ # Integraciones de referencia (futuro)
|
|
├── api-examples/
|
|
└── external-services/
|
|
```
|
|
|
|
---
|
|
|
|
## ⚠️ IMPORTANTE - Qué Versionar
|
|
|
|
### ✅ SÍ versionar (INCLUIR):
|
|
- Código fuente Python (.py)
|
|
- Archivos de manifiesto (__manifest__.py, __init__.py)
|
|
- Archivos de configuración (requirements.txt, setup.py)
|
|
- Documentación (.md files, .rst files)
|
|
- Esquemas de base de datos (.sql files, .xml files)
|
|
- Archivos de vista (.xml)
|
|
- Archivos de datos (.csv, .xml para datos)
|
|
- README y documentación
|
|
|
|
### ❌ NO versionar (IGNORADO automáticamente):
|
|
- __pycache__/
|
|
- *.pyc
|
|
- *.pyo
|
|
- .eggs/
|
|
- venv/
|
|
- env/
|
|
- .venv/
|
|
- node_modules/ (si hay frontend)
|
|
- dist/
|
|
- build/
|
|
- .next/ (si hay Next.js)
|
|
- coverage/
|
|
- *.log
|
|
- *.tmp
|
|
- *.cache
|
|
- .DS_Store
|
|
|
|
**Razón:** Solo versionamos código fuente. Las dependencias Python se pueden regenerar con `pip install -r requirements.txt`.
|
|
|
|
---
|
|
|
|
## 📋 DIRECTRICES
|
|
|
|
### Al Agregar Proyectos de Referencia
|
|
|
|
1. **Limpiar antes de agregar:**
|
|
```bash
|
|
# Eliminar cache Python y virtual environments
|
|
cd reference/nuevo-proyecto
|
|
find . -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null
|
|
find . -name "*.pyc" -delete
|
|
find . -name "*.pyo" -delete
|
|
rm -rf venv env .venv
|
|
```
|
|
|
|
2. **Verificar que está limpio:**
|
|
```bash
|
|
# No debe mostrar carpetas de cache o virtual environments
|
|
du -sh reference/nuevo-proyecto/*
|
|
```
|
|
|
|
3. **Agregar README del proyecto:**
|
|
```markdown
|
|
# Proyecto: {nombre}
|
|
|
|
**Fuente:** {URL o descripción}
|
|
**Propósito:** ¿Por qué se incluye como referencia?
|
|
**Aspectos relevantes:** ¿Qué podemos aprender?
|
|
|
|
## Instalación (para probar localmente)
|
|
```bash
|
|
cd reference/{nombre}
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
## Aspectos destacables
|
|
- Feature 1: Descripción
|
|
- Pattern 2: Descripción
|
|
```
|
|
|
|
4. **Commit con mensaje descriptivo:**
|
|
```bash
|
|
git add reference/nuevo-proyecto
|
|
git commit -m "ref: agregar proyecto {nombre} como referencia para {propósito}"
|
|
```
|
|
|
|
---
|
|
|
|
## 🔍 VALIDACIÓN
|
|
|
|
### Verificar que reference/ está en el repo:
|
|
```bash
|
|
# Debe devolver vacío (no ignorado)
|
|
git check-ignore reference/
|
|
|
|
# Debe mostrar archivos de reference/
|
|
git ls-files reference/
|
|
```
|
|
|
|
### Verificar que __pycache__ está ignorado dentro de reference/:
|
|
```bash
|
|
# Debe devolver: reference/proyecto/__pycache__/
|
|
git check-ignore reference/proyecto/__pycache__/
|
|
```
|
|
|
|
### Verificar que venv está ignorado dentro de reference/:
|
|
```bash
|
|
# Debe devolver: reference/proyecto/venv/
|
|
git check-ignore reference/proyecto/venv/
|
|
```
|
|
|
|
### Ejecutar validación automática:
|
|
```bash
|
|
bash orchestration/scripts/validate-gitignore.sh
|
|
```
|
|
|
|
Debe mostrar:
|
|
```
|
|
✅ reference/ NO está ignorado (correcto)
|
|
✅ reference/**/__pycache__/ está ignorado (correcto)
|
|
✅ reference/**/venv/ está ignorado (correcto)
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 TAMAÑO RECOMENDADO
|
|
|
|
**Máximo recomendado:** ~100MB por proyecto (solo código fuente)
|
|
|
|
Si un proyecto excede este tamaño:
|
|
- Considerar incluir solo las partes relevantes
|
|
- Crear subcarpeta con implementaciones específicas
|
|
- Documentar ubicación del proyecto completo (URL)
|
|
|
|
---
|
|
|
|
## 🎓 EJEMPLOS DE USO
|
|
|
|
### Ejemplo 1: Analizar Módulo Contable de OCA
|
|
|
|
```markdown
|
|
**Tarea:** Implementar gestión de ejercicios fiscales
|
|
|
|
**Agente:** Architecture-Analyst
|
|
|
|
**Proceso:**
|
|
1. Revisar `reference/odoo-modules/oca-account/account_fiscal_year/`
|
|
2. Analizar modelos de datos y vistas
|
|
3. Comparar con implementación actual
|
|
4. Documentar mejoras en `docs/adr/ADR-XXX.md`
|
|
```
|
|
|
|
### Ejemplo 2: Implementar Feature Similar
|
|
|
|
```markdown
|
|
**Tarea:** Implementar templates de asientos contables
|
|
|
|
**Agente:** Backend-Agent
|
|
|
|
**Proceso:**
|
|
1. Consultar `reference/odoo-modules/oca-account/account_move_template/`
|
|
2. Revisar modelos de datos y lógica de negocio
|
|
3. Adaptar patrones al proyecto actual
|
|
4. Implementar con mejores prácticas observadas
|
|
```
|
|
|
|
### Ejemplo 3: Comparar Arquitectura
|
|
|
|
```markdown
|
|
**Tarea:** Refactorizar estructura de módulos Odoo
|
|
|
|
**Agente:** Architecture-Analyst
|
|
|
|
**Proceso:**
|
|
1. Analizar `reference/odoo-modules/best-practices/`
|
|
2. Comparar con estructura actual
|
|
3. Proponer mejoras arquitectónicas
|
|
4. Crear plan de refactorización
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 CASOS DE USO ESPECÍFICOS
|
|
|
|
### Proyecto GAMILIT (Referencia Arquitectónica)
|
|
|
|
**Relevancia:** Sistema educativo gamificado con arquitectura moderna y prácticas recomendadas
|
|
|
|
**Aspectos destacables:**
|
|
- Monorepo TypeScript con backend (Node.js/Express) y frontend (React/Vite)
|
|
- Arquitectura de base de datos multi-schema (9 schemas, 44 tablas)
|
|
- Sistema de constantes SSOT (Single Source of Truth)
|
|
- Feature-Sliced Design en frontend
|
|
- Path aliases consistentes
|
|
- Scripts de validación y sincronización automática
|
|
|
|
**Aplicable para:**
|
|
- Patrones de arquitectura de software
|
|
- Estructura de monorepo
|
|
- Sincronización Backend ↔ Frontend
|
|
- Organización de base de datos PostgreSQL
|
|
- Testing y validación automática
|
|
|
|
**Ver:** `reference/gamilit/README.md` y `reference/gamilit/_MAP.md`
|
|
|
|
---
|
|
|
|
### Proyectos Odoo de Referencia
|
|
|
|
```markdown
|
|
Tipos de proyectos a incluir:
|
|
- Módulos OCA (Odoo Community Association)
|
|
- Módulos core de Odoo con implementaciones ejemplares
|
|
- Módulos personalizados con patrones útiles
|
|
- Integraciones con servicios externos
|
|
- Implementaciones de reportes complejos
|
|
```
|
|
|
|
### Patrones Python
|
|
|
|
```markdown
|
|
Tipos de patrones a incluir:
|
|
- Design patterns (Singleton, Factory, etc.)
|
|
- Patrones de testing
|
|
- Patrones de API design
|
|
- Patrones de manejo de datos
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 REFERENCIAS
|
|
|
|
- [DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md](../orchestration/directivas/DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md) - Sección 1.5
|
|
- [PROMPT-ARCHITECTURE-ANALYST.md](../orchestration/prompts/PROMPT-ARCHITECTURE-ANALYST.md)
|
|
- `.gitignore` - Sección REFERENCE
|
|
|
|
---
|
|
|
|
## ✅ CHECKLIST ANTES DE COMMIT
|
|
|
|
Antes de agregar un nuevo proyecto de referencia:
|
|
|
|
- [ ] Eliminar __pycache__/, *.pyc, *.pyo
|
|
- [ ] Eliminar venv/, env/, .venv/
|
|
- [ ] Eliminar node_modules/ (si aplica)
|
|
- [ ] Verificar que solo hay código fuente
|
|
- [ ] Agregar README del proyecto explicando propósito
|
|
- [ ] Verificar tamaño total (< 100MB recomendado)
|
|
- [ ] Documentar aspectos relevantes del proyecto
|
|
- [ ] Commit con mensaje descriptivo
|
|
|
|
---
|
|
|
|
## 🔗 RECURSOS ÚTILES
|
|
|
|
### Repositorios OCA
|
|
|
|
- [OCA Account Financial Tools](https://github.com/OCA/account-financial-tools)
|
|
- [OCA Account Invoicing](https://github.com/OCA/account-invoicing)
|
|
- [OCA Server Tools](https://github.com/OCA/server-tools)
|
|
- [OCA Web Tools](https://github.com/OCA/web)
|
|
|
|
### Documentación Odoo
|
|
|
|
- [Odoo Developer Documentation](https://www.odoo.com/documentation/master/developer.html)
|
|
- [Odoo ORM Guide](https://www.odoo.com/documentation/master/developer/reference/backend/orm.html)
|
|
|
|
---
|
|
|
|
**Última actualización:** 2025-11-23
|
|
**Mantenido por:** Architecture-Analyst, Workspace-Manager
|
|
**Directiva:** DIRECTIVA-GESTION-BACKUPS-GITIGNORE.md sección 1.5
|