Ajusets desde codex

This commit is contained in:
Jordan Diaz
2026-04-01 12:49:26 +00:00
parent e3ad46473a
commit 060ec09f0b
4 changed files with 17 additions and 13 deletions

View File

@@ -105,7 +105,7 @@ Do NOT modify web-base files — they are shared across all projects.
1. **Before working with any area (hooks, modules, templates, CSS/JS, etc.), read the corresponding documentation in `docs/` first.** Do not guess or assume — always consult the docs before taking action. 1. **Before working with any area (hooks, modules, templates, CSS/JS, etc.), read the corresponding documentation in `docs/` first.** Do not guess or assume — always consult the docs before taking action.
2. **NEVER use `mkdir` to create directories.** Instead, use `acai-write` to create the first file inside the directory — this creates parent directories automatically. For example, to create a new module, directly write the `index-base.tpl` file. 2. **NEVER use `mkdir` to create directories.** Instead, use `acai-write` to create the first file inside the directory — this creates parent directories automatically. For example, to create a new module, directly write the `index-base.tpl` file.
3. Only edit `index-base.tpl` in modules — `index.tpl`, `index-twig.tpl`, and `builder.json` are auto-generated 3. Only edit `index-base.tpl` in modules — `index.tpl`, `index-twig.tpl`, and `builder.json` are auto-generated
3. **After editing any `index-base.tpl`, ALWAYS call the `compile_module` MCP tool** to compile the module/section. This is mandatory — without compilation, changes won't take effect in the CMS. 3. Editing or creating any `index-base.tpl` through `acai-write` or `acai-line-replace` triggers automatic compilation. Only use `compile_module` manually if you need to re-run compilation without changing the file.
4. Use Twig **filters** (with `|`), never Twig functions 4. Use Twig **filters** (with `|`), never Twig functions
5. Table names without `cms_` prefix everywhere 5. Table names without `cms_` prefix everywhere
6. Primary key is `num`, never `id` 6. Primary key is `num`, never `id`
@@ -122,8 +122,8 @@ This project has MCP tools for managing modules, records, media, and more. **Bef
See [docs/mcp-tools-reference.md](docs/mcp-tools-reference.md) for the complete list of available tools and step-by-step workflows. See [docs/mcp-tools-reference.md](docs/mcp-tools-reference.md) for the complete list of available tools and step-by-step workflows.
Key workflows: Key workflows:
- **Create module**: Read [docs/module-creation-guide.md](docs/module-creation-guide.md) first → create files with `acai-write` / refine with `acai-line-replace``compile_module``add_module_to_record` (returns sectionId) → `set_module_config_vars` (returns uploadFields) → images via uploadFields - **Create module**: Read [docs/module-creation-guide.md](docs/module-creation-guide.md) first → create files with `acai-write` / refine with `acai-line-replace`automatic compile on `index-base.tpl``add_module_to_record` (returns sectionId) → `set_module_config_vars` (returns uploadFields) → images via uploadFields
- **Edit module**: `acai-view``acai-line-replace` (or `acai-write` for full rewrites) → `compile_module` - **Edit module**: `acai-view``acai-line-replace` (or `acai-write` for full rewrites) → automatic compile on `index-base.tpl`
- **Add images**: use `uploadFields` from `set_module_config_vars` response → `upload_record_image` - **Add images**: use `uploadFields` from `set_module_config_vars` response → `upload_record_image`
- **Generate images**: `generate_image``upload_record_image` with returned URL - **Generate images**: `generate_image``upload_record_image` with returned URL

View File

@@ -4,10 +4,12 @@
| Tool | Categoría | Acción | | Tool | Categoría | Acción |
|------|-----------|--------| |------|-----------|--------|
| `compile_module` | Módulos | Compila módulo tras editar index-base.tpl | | `compile_module` | Módulos | Recompila manualmente un módulo cuando necesitas forzar la compilación sin editar el archivo |
| `check_module` | Módulos | Preview de cómo renderiza un módulo | | `check_module` | Módulos | Preview de cómo renderiza un módulo |
| `check_module_usage` | Módulos | Qué páginas usan un módulo | | `check_module_usage` | Módulos | Qué páginas usan un módulo |
| `acai-view` | Archivos | Lee un archivo del proyecto por tramos | | `acai-view` | Archivos | Lee un archivo del proyecto por tramos |
| `acai-glob` | Archivos | Busca rutas de archivos por patrón |
| `acai-grep` | Archivos | Busca texto en archivos del proyecto |
| `acai-line-replace` | Archivos | Reemplaza un bloque concreto en un archivo existente | | `acai-line-replace` | Archivos | Reemplaza un bloque concreto en un archivo existente |
| `acai-write` | Archivos | Crea o reescribe un archivo completo | | `acai-write` | Archivos | Crea o reescribe un archivo completo |
| `acai-delete` | Archivos | Borra un archivo del proyecto | | `acai-delete` | Archivos | Borra un archivo del proyecto |
@@ -39,7 +41,7 @@
### Crear un módulo nuevo desde cero ### Crear un módulo nuevo desde cero
1. `acai-write` — Crea `index-base.tpl`, `style.css`, `script.js` y cualquier hook necesario con rutas relativas al proyecto 1. `acai-write` — Crea `index-base.tpl`, `style.css`, `script.js` y cualquier hook necesario con rutas relativas al proyecto
2. `compile_module` — Compila el módulo tras editar `index-base.tpl` 2. `acai-write` o `acai-line-replace` compilan automáticamente al tocar `index-base.tpl`
3. `add_module_to_record` — Añade el módulo a una página (tabla padre, ej: `apartados`) 3. `add_module_to_record` — Añade el módulo a una página (tabla padre, ej: `apartados`)
4. `set_module_config_vars` — Rellena las variables con contenido (textos, colores, opciones). **OBLIGATORIO** — sin esto el módulo no muestra nada. Devuelve: 4. `set_module_config_vars` — Rellena las variables con contenido (textos, colores, opciones). **OBLIGATORIO** — sin esto el módulo no muestra nada. Devuelve:
- `configVars`: mapa de variables → recordNums - `configVars`: mapa de variables → recordNums
@@ -53,20 +55,22 @@
1. `get_module_config_vars` — Leer el estado actual del módulo (variables, recordNums) 1. `get_module_config_vars` — Leer el estado actual del módulo (variables, recordNums)
2. `acai-view` — Leer solo el tramo de `index-base.tpl` que se va a modificar 2. `acai-view` — Leer solo el tramo de `index-base.tpl` que se va a modificar
3. `acai-line-replace` — Editar el bloque concreto. Usa `acai-write` solo si el archivo es nuevo o el cambio es masivo 3. `acai-line-replace` — Editar el bloque concreto. Usa `acai-write` solo si el archivo es nuevo o el cambio es masivo
4. `compile_module`**OBLIGATORIO** tras cada edición de index-base.tpl 4. La compilación es automática tras cada edición de `index-base.tpl`
5. Si cambias variables: `set_module_config_vars` para actualizar valores 5. Si cambias variables: `set_module_config_vars` para actualizar valores
### Editar archivos del proyecto con bajo consumo de tokens ### Editar archivos del proyecto con bajo consumo de tokens
1. `acai-view` — Leer el archivo o un rango de líneas 1. `acai-view` — Leer el archivo o un rango de líneas
2. `acai-line-replace` — Reemplazar el bloque exacto en archivos existentes 2. `acai-glob` — Encontrar archivos relevantes por ruta cuando no conoces el path exacto
3. `acai-write` — Crear archivos nuevos o reescribirlos por completo si es necesario 3. `acai-grep` — Buscar texto o atributos concretos dentro de archivos del proyecto
4. `acai-delete` — Borrar archivos solo cuando sea explícitamente necesario 4. `acai-line-replace` — Reemplazar el bloque exacto en archivos existentes
5. `acai-write` — Crear archivos nuevos o reescribirlos por completo si es necesario
6. `acai-delete` — Borrar archivos solo cuando sea explícitamente necesario
Reglas: Reglas:
- Usa siempre rutas relativas al proyecto - Usa siempre rutas relativas al proyecto
- No edites `index.tpl`, `index-twig.tpl` ni `builder.json` — son auto-generados - No edites `index.tpl`, `index-twig.tpl` ni `builder.json` — son auto-generados
- Tras editar cualquier `index-base.tpl`, llama a `compile_module` - Tras editar cualquier `index-base.tpl` con las file tools, la compilación se ejecuta automáticamente
### Añadir/modificar imágenes de un módulo ### Añadir/modificar imágenes de un módulo

View File

@@ -39,7 +39,7 @@ Each module lives in `template/estandar/modulos/<moduleId>/` with:
1. **Read style reference** (steps above) 1. **Read style reference** (steps above)
2. **`acai-write`** — Create the module files directly (`index-base.tpl`, `style.css`, `script.js`, optional `hook.php`) using project-relative paths and complete file contents. 2. **`acai-write`** — Create the module files directly (`index-base.tpl`, `style.css`, `script.js`, optional `hook.php`) using project-relative paths and complete file contents.
3. **`compile_module`** — Compile after editing `index-base.tpl` so the CMS syncs the generated output. 3. **Automatic compile**Writing `index-base.tpl` automatically creates the generated template placeholders and triggers compilation. Only use `compile_module` manually if you need to re-run compilation without changing the file.
4. **`add_module_to_record`** — Adds the module to a page. Response includes `sectionId` — use it directly in the next step. 4. **`add_module_to_record`** — Adds the module to a page. Response includes `sectionId` — use it directly in the next step.
5. **`set_module_config_vars`** — Fill variables with content. Response includes `uploadFields` with `{ fieldName, recordNum }` for each upload variable. 5. **`set_module_config_vars`** — Fill variables with content. Response includes `uploadFields` with `{ fieldName, recordNum }` for each upload variable.
6. **Upload images** — Use `generate_image` then `upload_record_image` with the `recordNum` and `fieldName` from step 5's `uploadFields`. No need to read builder.json or call get_module_config_vars. 6. **Upload images** — Use `generate_image` then `upload_record_image` with the `recordNum` and `fieldName` from step 5's `uploadFields`. No need to read builder.json or call get_module_config_vars.
@@ -73,6 +73,6 @@ Modules with `MJMLModule: true` in their schema are email modules:
- Use `section_id` variable for unique anchors/scoping - Use `section_id` variable for unique anchors/scoping
- Use `interno` variable to detect CMS editor vs public view - Use `interno` variable to detect CMS editor vs public view
- Include other modules with: `<module_id :param1="value1"></module_id>` - Include other modules with: `<module_id :param1="value1"></module_id>`
- After editing `index-base.tpl`, ALWAYS call `compile_module` - Editing `index-base.tpl` with `acai-write` or `acai-line-replace` compiles automatically
- Twig uses filters (with `|`), never functions - Twig uses filters (with `|`), never functions
- Twig concatenation uses `~`: `'value=' ~ variable` - Twig concatenation uses `~`: `'value=' ~ variable`

View File

@@ -70,7 +70,7 @@ The controlador defines whether the page is Builder or Standard. Changing it bre
1. List current modules: `list_page_modules` 1. List current modules: `list_page_modules`
2. Get module vars: `get_module_config_vars` 2. Get module vars: `get_module_config_vars`
3. Update vars: `set_module_config_vars` 3. Update vars: `set_module_config_vars`
4. Or edit the module template: edit `index-base.tpl` `compile_module` 4. Or edit the module template: edit `index-base.tpl` with `acai-line-replace` or `acai-write` → compilation runs automatically
## Working with Standard Pages ## Working with Standard Pages