Files
agenticSystem/docs/11a-decision-table.md
Jordan Diaz 44cb956f95 Ajustes
2026-05-08 21:31:28 +00:00

111 lines
6.2 KiB
Markdown

---
title: "Tabla de decisión — qué tool usar para qué"
tags: [reference, decision, planner, tools]
load_priority: 90
load_when: [cheatsheet, planner_only]
summary: "Tabla decisional 'intención del usuario → tool MCP'. Es la guía rápida para enrutar peticiones sin leer toda la doc."
---
# Tabla de decisión — qué tool usar
Tabla decisional para mapear la intención del usuario a la herramienta correcta. Si tu petición encaja con varias filas, la primera que matchee es la canónica.
## Módulos (componentes visuales)
| Intención | Tool / workflow |
|---|---|
| Crear módulo nuevo | `acai-write` `index-base.tpl` (compila auto) → `add_module_to_record``set_module_config_vars` |
| Editar template de un módulo | `acai-view``acai-line-replace` (compila auto) |
| Ver datos actuales de un módulo en una página | `get_module_config_vars({ tableName, recordNum, sectionId })` |
| Cambiar valores de un módulo | `set_module_config_vars` |
| Reordenar módulos en una página | `reorder_module({ tableName, recordNum, sectionId, fromPosition, toPosition })` |
| Ocultar/mostrar un módulo | `toggle_module_visibility({ sectionId, visible })` |
| Eliminar instancia de módulo de una página | `remove_module_from_record({ sectionId })` |
| Borrar definición de módulo (carpeta entera) | `delete_module({ moduleId, inUse })` — destructivo, confirma con user |
| Comprobar dónde se usa un módulo | `check_module_usage({ moduleId })` |
| Preview de un módulo con datos de prueba | `check_module({ moduleId, vars })` |
| Datos de ejemplo persistentes para preview | `set_module_example_data({ moduleId, data })` |
## Registros / contenido
| Intención | Tool / workflow |
|---|---|
| Listar registros de una tabla | `list_table_records({ tableName, limit, where, orderBy, fields })` |
| Leer un registro concreto | `get_record({ tableName, recordNum })` |
| Crear/actualizar un registro | `create_or_update_record({ tableName, recordNum?, fields })` |
| Borrar registros | `delete_table_records({ tableName, where })` (destructivo, confirma) |
| Listar módulos en una página Builder | `list_page_modules({ tableName, recordNum })` |
## Imágenes y uploads
| Intención | Tool / workflow |
|---|---|
| Generar imagen con IA | `generate_image({ prompt, size? })` → recibe `uploadUrl`/`fullUrl` |
| Añadir imagen NUEVA a un campo upload | `upload_record_image({ tableName, recordNum, fieldName, imageUrl })` |
| Listar imágenes existentes de un campo upload | `list_record_uploads({ tableName, recordNum, fieldName })` → uploadId por imagen |
| Reemplazar imagen existente | `list_record_uploads``replace_record_image({ uploadId, imageUrl })` |
| Borrar una imagen | `list_record_uploads``delete_record_upload({ uploadId })` |
| Reordenar galería | `list_record_uploads``reorder_record_uploads({ uploadIds: [...] })` |
| Subir imagen a `/images/` (assets globales del template) | `upload_image_to_assets({ imageUrl, fileName })` |
## Tablas y campos (schema)
| Intención | Tool / workflow |
|---|---|
| Ver schema de una tabla | `get_table_schema({ tableName, minimal? })` |
| Listar todas las tablas del proyecto | `list_tables` |
| Crear tabla | `create_table({ tableName, displayName, menuType, enlace?, seoMetas? })` |
| Actualizar metadata de tabla | `update_table_metadata({ tableName, ... })` |
| Borrar tabla | `delete_table({ tableName, dropTable: true|false })` (destructivo) |
| Reordenar tablas en el menú admin | `reorder_tables({ order: [...] })` |
| Crear campo | `create_field({ tableName, fieldName, type, label, ... })` |
| Modificar campo (renombrar, cambiar tipo) | `update_field({ tableName, fieldName, newFieldName?, type?, ... })` |
| Borrar campo | `delete_field({ tableName, fieldName, dropColumn })` (destructivo) |
| Reordenar campos | `reorder_fields({ tableName, order: [...] })` |
| Regenerar enlaces (URLs) | `regenerate_enlaces({ tableName, generateAlias? })` (destructivo si no aliases) |
## Layout y librerías globales
| Intención | Tool / workflow |
|---|---|
| Ver header/footer/javascript/style/lo del layout | `get_layout_field({ field })` |
| Modificar header/footer/scripts globales | `set_layout_field({ field, value })` (destructivo, confirma) |
| Listar librerías cargadas | `list_global_libraries` |
| Añadir librería (CDN, npm) | `add_global_library({ url, position: "top"|"bottom" })` |
| Quitar librería | `remove_global_library({ url })` |
| Reescribir todo el array de librerías | `set_global_libraries({ libraries: [...] })` (destructivo) |
## Hooks PHP
| Intención | Tool / workflow |
|---|---|
| Crear hook global | `acai-write hooks/hooks.X.php` (auto-registra en layout.json) |
| Crear hook de módulo | `acai-write template/estandar/modulos/X/hook.php` |
| Borrar hook global | `acai-delete hooks/hooks.X.php` (auto-quita de layout.json) |
| Renombrar hook global | `acai-rename` o `acai-write` con nuevo nombre + `acai-delete` del viejo |
| Hook que se ejecuta antes de cada página | `set_hook_middleware({ hookEndPoint, middleWare: ["allurls"] })` |
| Hook que se ejecuta solo en una página | `set_hook_middleware({ hookEndPoint, middleWare: ["cms_apartados-87"] })` |
| Ver middleware de un hook | `get_hook_middleware({ hookEndPoint })` |
## Archivos y filesystem
| Intención | Tool / workflow |
|---|---|
| Buscar archivos por glob | `acai-glob({ pattern })` |
| Buscar texto en archivos | `acai-grep({ query, path?, type? })` |
| Leer un archivo | `acai-view({ file_path, start_line?, end_line? })` |
| Crear/sobrescribir un archivo | `acai-write({ file_path, content })` |
| Reemplazar líneas en un archivo | `acai-line-replace({ file_path, oldText, newText })` |
| Borrar un archivo | `acai-delete({ file_path })` (destructivo) |
## Proyecto y debugging
| Intención | Tool / workflow |
|---|---|
| URL del sitio (preview en desarrollo) | `get_web_url` (añade `?pruebas=1` siempre) |
| Navegar al browser preview del usuario | `navigate_browser({ enlace })` |
| Token JWT expirado (errores 403) | `refresh_acai_token` |
| Volver a una versión anterior | `list_git_log``recover_git({ id })` o `recover_previous_git` (destructivos, confirma) |
| Guardar estilos del proyecto en doc | `save_project_styles` |
| Necesito un doc no cargado | `read_doc({ name: "..." })` |
| Listado de docs disponibles | `list_docs` |