- 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>
4.3 KiB
TEMPLATE: TAREA TÉCNICA
Versión: 1.1.0 Fecha: 2025-12-08 Uso: Definición de tareas técnicas atómicas
🆕 VERIFICACIÓN DE CATÁLOGO (ANTES DE CREAR TAREA)
OBLIGATORIO verificar si la funcionalidad ya existe en el catálogo global:
grep -i "{funcionalidad}" core/catalog/CATALOG-INDEX.yml
Si existe: Usar @REUTILIZAR en lugar de crear desde cero.
Funcionalidades catalogadas: auth, session, rate-limiting, notifications, multi-tenancy, feature-flags, websocket, payments
{GRUPO}-{NNN}: {Título de la Tarea}
Metadata
| Campo | Valor |
|---|---|
| ID | {DB/BE/FE/TEST}-{NNN} |
| Tipo | {Database / Backend / Frontend / Testing / DevOps} |
| Historia | US-{MOD}-{NNN} |
| Épica | {EPIC-ID} |
| Prioridad | {P0 / P1 / P2 / P3} |
| Estimación | {horas} |
| Estado | {Backlog / In Progress / Review / Done / Blocked} |
| Asignado a | {NEXUS-DATABASE / NEXUS-BACKEND / NEXUS-FRONTEND} |
Descripción
{Descripción clara y concisa de lo que debe hacer esta tarea}
Objetivo
{Qué se logra al completar esta tarea}
Especificación Técnica
Para Database (DB-XXX):
Schema: {schema_name}
Objeto a crear/modificar:
-- Tipo: {TABLE / FUNCTION / TRIGGER / INDEX / VIEW}
-- Archivo: apps/{proyecto}/database/ddl/schemas/{schema}/{tipo}/{archivo}.sql
{Especificación SQL o pseudocódigo}
Columnas (si es tabla):
| Columna | Tipo | Nullable | Default | Descripción |
|---|---|---|---|---|
| id | UUID | NO | gen_random_uuid() | PK |
| {col} | {tipo} | {YES/NO} | {default} | {descripción} |
Índices requeridos:
idx_{tabla}_{columna}: {propósito}
RLS Policy:
CREATE POLICY {policy_name} ON {schema}.{tabla}
USING ({condición});
Para Backend (BE-XXX):
Módulo: apps/{proyecto}/backend/src/modules/{modulo}/
Archivo a crear/modificar:
{archivo}.ts
Tipo de artefacto: {Entity / DTO / Service / Controller / Middleware}
Especificación:
// Estructura esperada
{código o pseudocódigo}
Endpoints (si es Controller):
| Método | Ruta | Descripción |
|---|---|---|
| GET | /api/{resource} | {descripción} |
Validaciones requeridas:
- {validación 1}
- {validación 2}
Para Frontend (FE-XXX):
Ubicación: apps/{proyecto}/frontend/src/{tipo}/{archivo}.tsx
Tipo de artefacto: {Page / Component / Store / Hook / Service}
Props/Interface:
interface {Name}Props {
{prop}: {tipo};
}
Comportamiento esperado:
- {comportamiento 1}
- {comportamiento 2}
Estados:
- Loading: {descripción}
- Error: {descripción}
- Success: {descripción}
Criterios de Aceptación Técnicos
- {Criterio 1}
- {Criterio 2}
- {Criterio 3}
Validación
Comandos de validación:
# Database
psql -d {db} -c "SELECT * FROM {schema}.{tabla} LIMIT 1;"
# Backend
npm run build
npm run test -- --grep "{pattern}"
# Frontend
npm run build
npm run test -- --grep "{pattern}"
Resultado esperado:
- {resultado esperado}
Dependencias
Requiere completadas:
- {GRUPO}-{NNN}: {descripción}
Bloquea:
- {GRUPO}-{NNN}: {descripción}
Archivos a Crear/Modificar
Crear:
{ruta/archivo}- {descripción}
Modificar:
{ruta/archivo}- {cambios}
Definition of Done
- 🆕 Verificó @CATALOG antes de implementar
- 🆕 Si usó catálogo: siguió SIMCO-REUTILIZAR.md
- Código implementado
- Compilación sin errores
- Tests pasando
- Comentarios/documentación agregados
- Code review (si aplica)
- Inventario actualizado
- Traza registrada
Notas
{Consideraciones especiales, decisiones técnicas, referencias}
Log de Ejecución
| Fecha/Hora | Acción | Resultado |
|---|---|---|
| {timestamp} | Inicio | - |
| {timestamp} | {acción} | {resultado} |
| {timestamp} | Fin | {PASS/FAIL} |
Asignada por: {nombre-agente} Fecha asignación: {YYYY-MM-DD} Fecha completada: {YYYY-MM-DD} Duración real: {horas}