Skip to content

fix(docs): resolver la documentación de agentes/skills vía ${CLAUDE_PLUGIN_ROOT} - #3

Open
Asermar wants to merge 1 commit into
FacturaScripts:mainfrom
Asermar:fix/docs-path-plugin-root
Open

Asermar wants to merge 1 commit into
FacturaScripts:mainfrom
Asermar:fix/docs-path-plugin-root

Conversation

@Asermar

@Asermar Asermar commented Jul 22, 2026

Copy link
Copy Markdown

Problema

Los agentes y skills que consultan la documentación empaquetada (docs-expert de fs-dev y fs-user, y los agentes de desarrollo) indican rutas relativas ./agents/docs/ (y ./agents/projects/ en fs-user) en sus instrucciones de Glob/Read.

Esas rutas se resuelven contra el cwd del proyecto del usuario, no contra el directorio del plugin. En la práctica el Glob devuelve 0 archivos y el agente no encuentra la documentación, por lo que tiende a responder de memoria en lugar de citar las fuentes reales.

Causa

./agents/docs/**/*.md desde, p. ej., /home/user/miproyecto busca en /home/user/miproyecto/agents/docs/, que no existe. La documentación vive en el directorio de instalación del plugin.

Solución

Sustituir la ruta relativa por ${CLAUDE_PLUGIN_ROOT}/agents/.... El harness expande ${CLAUDE_PLUGIN_ROOT} al directorio de instalación del plugin dentro del cuerpo de agentes y skills, por lo que:

  • resuelve correctamente sin depender del cwd,
  • es portable entre máquinas,
  • sobrevive a cambios de versión (no hay ruta ni versión hardcodeadas).

Alcance

Solo cambios de ruta en markdown de agentes/skills (23 ficheros, 77/77 líneas). Sin cambios de código ni de comportamiento más allá de dónde se leen los .md.

Verificación

Con la ruta relativa, Glob ./agents/docs/**/*.md → 0 archivos. Con ${CLAUDE_PLUGIN_ROOT}/agents/docs/**/*.md → se localizan los 154 .md de fs-dev y 106 de fs-user, y docs-expert cita archivos reales.

Los agentes y skills (docs-expert y los agentes dev) leían la documentación
empaquetada desde la ruta relativa ./agents/docs/ (y ./agents/projects/ en
fs-user), que se resuelve contra el cwd del proyecto del usuario y no contra el
directorio del plugin. Resultado: el Glob devuelve 0 archivos y los agentes no
encuentran la documentación, cayendo en responder de memoria.

Se sustituye por ${CLAUDE_PLUGIN_ROOT}/agents/..., variable que el harness
expande al directorio de instalación del plugin, por lo que es portable entre
máquinas y sobrevive a cambios de versión.
Asermar pushed a commit to Asermar/fs-claude-plugin that referenced this pull request Sep 19, 2026
… retira docs-ruta-plugin-root

Cierra `feature/upstream-codex`. Trae la reorganización que upstream hizo
para Codex —la documentación a `references/`, los agentes resolviendo con
`${CLAUDE_PLUGIN_ROOT}`, y los cambios de `plugin.json`, `marketplace.json`
y hooks—, retira la divergencia `docs-ruta-plugin-root` porque upstream
resolvió el mismo objeto a su manera, y sube los tres plugins a 2.1.0.

El número no es cosmético en este repo: la actualización sólo se detecta
si la versión es mayor que la instalada, así que sin subirlo un equipo
con 2.0.0 no recibiría la reorganización.

No lleva tag ni entrada de changelog, y no es un olvido: este repo no
tiene fichero de versión ni changelog propios —la versión vive en los
tres `plugin.json`— y `okorelease` lo confirma («sin fichero de versión
reconocido»). Su CLAUDE.md además declara que esto NO es OkoFlow: `main`
es la nuestra y es de donde instala la flota, y `original` es el espejo
de upstream, con el flujo en un solo sentido.

QUEDA UNA ACCIÓN FUERA DE ESTE REPO, y se deja dicha aquí porque el
evaluador la va a pedir en cada pasada: el PR FacturaScripts#3 de upstream sigue
ABIERTO mientras su divergencia se declara `retirado`, así que
`plugins fork` marca la fila en rojo con «comprueba que ya no está en
main». Cerrar ese PR es una acción hacia el repo de un tercero y no se
hace desde aquí.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant