- Correct hooks-and-api.md: file hooks vs module hooks param injection, FK naming not always _num, CmsApi.hook Promise pattern - Add 9 new rules to hooks-and-api.md: reserved `tipo` var, ghost modules, cms_uploads schema, name vs title by menuType, menuOrder, localCache gotcha, slug generation, uploads from hooks, CocoEmail - Add 5 rules to modular-system.md: minified/ dir, Docker workflow, debug tools (?compiletwig/?pruebas), general sections deploy, controlador - Add 2 rules to css-js-conventions.md: Vue inline conflict, Vue mount delay - Add testing section to quick-reference.md - Create docs/deploy-and-sync.md for production deploy and sync rules - Promote 3 critical rules to CLAUDE.md (rules 11-13) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1.9 KiB
Deploy & Sync
Reglas para desplegar módulos y secciones generales a producción via MCP, y para sincronizar con el servidor.
Protocolo para save_module
save_moduleconhtml,js,css— LOS 3 SIEMPRE. Si omites uno, se borra de prod (queda 0 bytes).- Ejecutar
check_module→ fuerza recompilación deindex-twig.tpl - Visitar
?compiletwigen una página que use el módulo - Verificar que renderiza
NUNCA pasar html a módulos con builder vars configurados
Módulos con sample data en el builder (banners, carouseles, módulos con imágenes/colores configurados desde el admin) se ROMPEN al recompilar el HTML. El save_module puede perder/corromper la configuración visual.
Para estos módulos:
- Solo pasar
jsy/ocss, nuncahtml - Si se rompe:
recover_gitconlist_git_logpara revertir - Editar el HTML desde el panel admin de Acai, no por MCP
Forzar regeneración de minified
Si subes solo js, el minified/script-{hash}.js NO se regenera automáticamente.
Solución:
- Leer el HTML actual de prod con
get_module(sections:["html"]) - Añadir un espacio al final
save_modulecon los 3 (html+espacio, js, css)
IMPORTANTE: Usar SIEMPRE el HTML de prod (get_module), NUNCA el local.
General Sections (custom-*)
Se despliegan con save_general_section, no save_module:
- El módulo se llama
custom-{nombre_tabla}(ej:custom-productos) - Se sube con
table: "productos",content,javascript,css
Sync y Versionado
Sync from server puede borrar módulos locales
El "Sync from server" puede eliminar módulos que existen en local pero no en el servidor. Si borra custom-header o custom-footer, TODAS las páginas crashean.
Regla: Hacer commit ANTES de cualquier sync.
Sync solo sube archivos modificados
Para forzar un sync de un archivo sin cambios reales, añadir un espacio al final.