- renombrar openspec/ a _openspec/ (carpeta auxiliar) - mover specs de features a changes/ - crear specs base: arquitectura-limpia, estandares-codigo, nomenclatura - migrar _planificacion/ con design-system y roi-theme-template - agregar especificacion recaptcha anti-spam (proposal, tasks, spec) - corregir rutas y referencias en todas las specs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
4.6 KiB
4.6 KiB
Project Context
Purpose
ROI Theme es un tema WordPress profesional siguiendo Clean Architecture para el sitio analisisdepreciosunitarios.com. Proporciona un sistema de componentes configurables con panel de administración y renderizado frontend dinámico.
Tech Stack
- CMS: WordPress 6.x
- Lenguaje: PHP 8.x (strict types)
- Patrón: Clean Architecture (Domain, Application, Infrastructure)
- Frontend: Bootstrap 5, Bootstrap Icons
- Base de Datos: MySQL (tabla normalizada
wp_roi_theme_component_settings) - CLI: WP-CLI para sincronización de schemas
Project Conventions
Code Style
declare(strict_types=1)en todos los archivos PHP- Namespaces:
ROITheme\[Context]\[Component]\[Layer] - Clases finales por defecto
- Propiedades
private/protected - Escaping WordPress:
esc_html(),esc_attr(),esc_url(),esc_textarea()
Nomenclatura (NO NEGOCIABLE)
| Contexto | Formato | Ejemplo |
|---|---|---|
| component_name (JSON/BD) | kebab-case | "featured-image" |
| Nombre archivo schema | kebab-case | featured-image.json |
| Carpeta de módulo | PascalCase | FeaturedImage/ |
| Namespace PHP | PascalCase | ROITheme\Public\FeaturedImage... |
| Clase Renderer/FormBuilder | PascalCase | FeaturedImageRenderer |
Architecture Patterns
- Clean Architecture: Domain → Application → Infrastructure
- Domain NO depende de capas superiores
- Domain NO puede tener WordPress, echo/print, HTML
- Application NO puede tener WordPress
- Infrastructure implementa interfaces de Domain
- DI via constructor (interfaces, no clases concretas)
Estructura del Tema
roi-theme/
├── Schemas/ # JSON schemas (kebab-case)
├── Shared/ # Código compartido
│ ├── Domain/Contracts/ # Interfaces
│ ├── Application/UseCases/ # Casos de uso
│ └── Infrastructure/ # Implementaciones
├── Public/[PascalCase]/ # Renderers frontend
├── Admin/[PascalCase]/ # FormBuilders admin
└── functions.php # Bootstrap
Testing Strategy
- Validación de arquitectura:
php Shared/Infrastructure/Scripts/validate-architecture.php [nombre] - Tests unitarios pendientes de implementar
Git Workflow
- Conventional Commits:
feat:,fix:,refactor:,docs: - Branch principal:
main - Tags para releases:
v1.0.0,v2.0.0
Domain Context
El sistema maneja componentes UI configurables para un sitio de análisis de precios unitarios (construcción). Cada componente tiene:
- Schema JSON: Define campos configurables
- Renderer: Genera HTML + CSS dinámico desde BD
- FormBuilder: Panel admin para configurar valores
Flujo de 5 Fases para Componentes
Nota:
[nombre]= kebab-case (ej:contact-form),[Nombre]= PascalCase (ej:ContactForm)
- Schema JSON →
Schemas/[nombre].json - Sincronización →
wp roi-theme sync-component [nombre] - Renderer →
Public/[Nombre]/Infrastructure/Ui/[Nombre]Renderer.php - FormBuilder →
Admin/[Nombre]/Infrastructure/Ui/[Nombre]FormBuilder.php - Validación →
validate-architecture.php [nombre]
Important Constraints
- CERO CSS hardcodeado en PHP (usar CSSGeneratorService)
- NO usar global $wpdb en Domain/Application
- NO instanciar servicios directamente (usar DI)
- NO modificar campos en BD manualmente
- Variables CSS del tema:
--color-navy-dark,--color-orange-primary
External Dependencies
- WordPress 6.x core
- Bootstrap 5 (CSS/JS)
- Bootstrap Icons
- WP-CLI (
C:\xampp\php_8.0.30_backup\wp-cli.phar)
Referencias Documentación
OpenSpec - Especificaciones del Proyecto
| Archivo | Descripción | Ubicación |
|---|---|---|
| WORKFLOW-ROI-THEME.md | Flujo de trabajo obligatorio, regla de oro | _openspec/WORKFLOW-ROI-THEME.md |
| AGENTS.md | Agentes disponibles y cuándo usarlos | _openspec/AGENTS.md |
| arquitectura-limpia | Clean Architecture, capas, estructura | _openspec/specs/arquitectura-limpia.md |
| estandares-codigo | SOLID, PHP, WordPress, seguridad | _openspec/specs/estandares-codigo.md |
| nomenclatura | Convenciones de nombres completas | _openspec/specs/nomenclatura.md |
Documentación de Planificación
- Template HTML:
_planificacion/roi-theme-template/index.html - Design System:
_planificacion/01-design-system/
Última actualización: 2026-01-08