- 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>
3.9 KiB
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
- 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
- Arquitectura:
_planeacion/roi-theme/_arquitectura/ - Template HTML:
_planeacion/roi-theme/roi-theme-template/index.html - Design System:
_planeacion/roi-theme/_arquitectura/01-design-system/