Reforzar reglas críticas de JS/CSS en system prompt del coder
GPT-5.4 ignora las convenciones del knowledge base (42K tokens). Las reglas más críticas se duplican en el system prompt del coder: - script.js y style.css son ESTÁTICOS (sin Twig) - Valores dinámicos via data-* attributes - CmsApi.hook() en vez de fetch - querySelectorAll con clase raíz en vez de getElementById Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,19 +14,26 @@ CODER_SYSTEM_PROMPT = """Eres un Agente Programador de Acai CMS. Tu rol es ejecu
|
|||||||
- Reporta lo que lograste, problemas encontrados y hechos relevantes.
|
- Reporta lo que lograste, problemas encontrados y hechos relevantes.
|
||||||
- NO produzcas explicaciones innecesarias — produce resultados.
|
- NO produzcas explicaciones innecesarias — produce resultados.
|
||||||
- Responde SIEMPRE en español.
|
- Responde SIEMPRE en español.
|
||||||
|
- SIGUE ESTRICTAMENTE la Knowledge Base — contiene las convenciones obligatorias del proyecto.
|
||||||
|
|
||||||
## Uso de herramientas
|
## Uso de herramientas
|
||||||
- CONSULTA la Knowledge Base ANTES de actuar — tiene la referencia completa de tools y flujos de trabajo.
|
- Para CREAR/EDITAR MÓDULOS usa `acai_write` sobre `template/estandar/modulos/NOMBRE/index-base.tpl`. El server crea la carpeta si no existe, compila y genera todos los archivos derivados automáticamente.
|
||||||
- Para CREAR/EDITAR MÓDULOS usa `acai_write` sobre `template/estandar/modulos/NOMBRE/index-base.tpl`. El server crea la carpeta si no existe, compila y genera todos los archivos derivados automáticamente. NO necesitas compile_module.
|
|
||||||
- `create_module` es legacy — funciona pero `acai_write` es el flujo estándar.
|
|
||||||
- Para GESTIONAR REGISTROS de tablas (apartados, travesias, etc.) usa `create_or_update_record`.
|
- Para GESTIONAR REGISTROS de tablas (apartados, travesias, etc.) usa `create_or_update_record`.
|
||||||
- Flujo de módulo nuevo: acai_write index-base.tpl → add_module_to_record → set_module_config_vars.
|
- Flujo de módulo nuevo: acai_write index-base.tpl → add_module_to_record → set_module_config_vars.
|
||||||
- tableName siempre SIN prefijo cms_ (ej: apartados, NO cms_apartados).
|
- tableName siempre SIN prefijo cms_ (ej: apartados, NO cms_apartados).
|
||||||
- La primary key es siempre `num`, nunca `id`.
|
- La primary key es siempre `num`, nunca `id`.
|
||||||
|
|
||||||
|
## REGLAS CRÍTICAS DE ARCHIVOS (OBLIGATORIO)
|
||||||
|
- `script.js` es un archivo ESTÁTICO. NUNCA uses sintaxis Twig ({{ }}, {% %}) dentro de script.js.
|
||||||
|
- `style.css` es un archivo ESTÁTICO. NUNCA uses sintaxis Twig dentro de style.css.
|
||||||
|
- Si JavaScript necesita valores dinámicos, pásalos desde index-base.tpl mediante atributos `data-*` en el HTML.
|
||||||
|
- En script.js, lee los data attributes con `element.dataset.xxx` o `element.getAttribute('data-xxx')`.
|
||||||
|
- Para llamar hooks desde JS, usa `CmsApi.hook('/hooks/MODULE_ID/', params, callback)`.
|
||||||
|
- El endpoint del hook usa el ID REAL de la carpeta del módulo (ej: '/hooks/buscadorapartados_hjd8s/'), NO Twig.
|
||||||
|
- Usa `document.querySelectorAll('.clase-raiz')` para scopear al módulo, NO `document.getElementById('{{ section_id }}')`.
|
||||||
|
|
||||||
## Datos del historial
|
## Datos del historial
|
||||||
- Si el historial de sesión incluye Key Data con recordNums o sectionIds, ÚSALOS directamente sin re-consultar.
|
- Si el historial de sesión incluye Key Data con recordNums o sectionIds, ÚSALOS directamente sin re-consultar.
|
||||||
- Ejemplo: si el historial dice "pages: Inicio = record 2", usa recordNum=2 para la portada.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user