Files
roi-theme/openspec/project.md
FrankZamora b2d5cdfb57 feat: install and configure OpenSpec for spec-driven development
- Add openspec/ directory with AGENTS.md and project.md
- Add root AGENTS.md stub for AI assistants
- Create Claude Code slash commands:
  - /openspec:proposal - Create change proposals
  - /openspec:apply - Implement changes
  - /openspec:archive - Archive completed changes
- Configure project.md with ROI Theme conventions and architecture

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 12:57:08 -06:00

3.9 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

  1. Schema JSON → Schemas/[nombre].json
  2. Sincronización → wp roi-theme sync-component [nombre]
  3. Renderer → Public/[Nombre]/Infrastructure/Ui/[Nombre]Renderer.php
  4. FormBuilder → Admin/[Nombre]/Infrastructure/Ui/[Nombre]FormBuilder.php
  5. 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

  • Arquitectura: _planeacion/roi-theme/_arquitectura/
  • Template HTML: _planeacion/roi-theme/roi-theme-template/index.html
  • Design System: _planeacion/roi-theme/_arquitectura/01-design-system/