Revisar skills
Revisa y edita los skills e instrucciones que programan a tus agentes (SKILL.md, CLAUDE.md, AGENTS.md), en tu máquina y por proyecto.
Los skills y los archivos de instrucciones son el código que programa a tus agentes: los SKILL.md, CLAUDE.md y AGENTS.md. FXCode te deja revisarlos y editarlos como código: con diff antes de guardar, historial, revisión automática y propuestas de cambio.
La página Skills (en el menú del equipo; los clientes no la ven) tiene dos partes:
- En esta máquina: tus skills locales, que se leen y editan desde la app de escritorio. Nada sale de tu máquina.
- Proyectos sincronizados: los skills del repo de cada proyecto, subidos con
fxc skills sync. Se ven desde cualquier navegador o el móvil.
En esta máquina (app de escritorio)
Abre la app de escritorio y entra en Skills. Por defecto lee dos carpetas:
~/.claude/skills(y~/.claude/CLAUDE.md)~/.agents/skills
Con Añadir carpeta de repo autorizas un repositorio. De un repo lee CLAUDE.md, AGENTS.md, .claude/skills/, .agents/skills/ y skills/. La lista de carpetas se guarda en la configuración local de la app.
Cada carpeta autorizada tiene su pestaña (~/.claude/skills, ~/.agents/skills y cada repo), con el número de skills y de avisos de la revisión. La app recuerda la última que abriste; en el móvil las pestañas pasan a un selector.
De cada skill ves el nombre, la descripción y los avisos. Si es un enlace (symlink o junction de Windows) lleva el distintivo Enlace y a dónde apunta en corto, el repo o la carpeta del destino (→ fxcode, → dotfiles-private); la ruta completa sale al pasar el ratón. Con el filtro Todos / Enlaces / Locales ves solo unos u otros. Al abrir uno:
- Alcance: «Global: afecta a todos tus proyectos» o «Solo este repo», y «Es un enlace: el cambio cae en …» cuando la carpeta es un enlace simbólico o una junction a otro repo.
- Editar y vista previa del Markdown.
- Revisar y guardar enseña primero el diff. Antes de escribir, la app comprueba:
- el frontmatter de un
SKILL.md(YAML válido connameydescription); - que el archivo no haya cambiado en disco desde que lo abriste. Si cambió, ves la diferencia y eliges: cargar la versión del disco o sobrescribir con la tuya.
- el frontmatter de un
- Dentro de un repositorio git ves el
git diffal guardar y puedes hacer commit solo de ese archivo, con un mensaje que puedes editar. - Fuera de git, antes de escribir se guarda una copia con fecha (
SKILL.md.20261018-153000.bak).
Enlaces: edita el original
Muchos skills de ~/.claude/skills son enlaces a otra carpeta: a un repo de dotfiles o al repo de un proyecto (<repo>/skills/<nombre>). El original es el que manda: lo que cambies afecta a todo lo que lo use.
Al abrir un skill enlazado, el editor te dice que estás editando por el enlace y te recomienda Abrir el original. Con el original abierto (distintivo Original):
- editas el archivo en su ruta real, y la app te recuerda qué enlaces lo usan;
- al guardar, el diff y el commit van al repo git del destino, con el aviso de que el cambio afecta a todo lo que use ese original;
- con Ver por el enlace vuelves a la vista del enlace.
Necesita la app de escritorio 0.3.1 o posterior.
Por qué es seguro
- Solo la web de FXCode puede usarlo. La ventana expone nueve comandos de skills, y solo a
https://app.fxcode.dev(y alocalhosten los builds de desarrollo). A ningún otro sitio, y ningún otro permiso de Tauri: ni acceso genérico a archivos ni shell. - Solo las carpetas que autorizaste. Cada ruta se resuelve (también los enlaces) y tiene que quedar dentro de una carpeta autorizada. Un enlace a nivel de skill se sigue (así se suelen instalar los skills); un enlace más adentro que apunta a otro sitio se rechaza, igual que las rutas con
... La ruta real de un original solo se acepta si es el destino exacto de uno de esos enlaces (o algo dentro de él): un archivo vecino del destino o cualquier otra ruta del disco se rechaza. - Solo Markdown. Escribe archivos
.mdque ya existen, de hasta 1 MB; nunca crea scripts ni toca otros archivos. - Sin shell. El commit ejecuta
git addygit commitcon argumentos explícitos, solo de ese archivo.
Proyectos sincronizados (nube)
Desde el repo de un proyecto, sube sus skills:
fxc skills sync --project-id <projectId> [--dir <repo>]
Sube CLAUDE.md, AGENTS.md y los .md de .claude/skills/, .agents/skills/ y skills/. Solo viaja lo que cambió (se compara el hash SHA-256) y cada cambio es una versión nueva con autor y fecha. Un archivo que ya no está en el repo queda marcado como borrado.
Antes de subir, fxc busca secretos (tokens de GitHub, AWS, OpenAI, Anthropic, Stripe y FXCode, claves privadas, JWT, URLs con contraseña, asignaciones SECRET=...). Si encuentra alguno, no sube nada y te dice el archivo y la línea. El API hace la misma comprobación.
En la web, de cada proyecto ves los skills, su contenido, el historial con el diff entre versiones y el uso: bytes sincronizados por tu cuenta y por proyecto. Por ahora el uso solo se mide; no hay límites ni planes.
Propuestas de cambio
Desde la web (o un agente por MCP) puedes proponer un cambio a un skill. La propuesta queda pendiente: no se escribe nada en el repo hasta que alguien la aplica en local:
fxc skills proposals --project-id <projectId>
fxc skills apply <proposalId> [--dir <repo>]
apply escribe el cambio en el repo y marca la propuesta como aplicada. Si el archivo local cambió desde la propuesta, se detiene (sincroniza, revisa o usa --force). Después revisa el cambio y haz commit como siempre.
Revisión automática
Cada skill recibe avisos de reglas locales (sin IA por ahora):
| Regla | Qué busca |
|---|---|
| Frontmatter | SKILL.md sin frontmatter, YAML inválido o sin name/description. |
| Duplicados | Dos skills con el mismo name o con descripciones casi iguales. |
| Instrucciones riesgosas | push, deploy, rm -rf, borrar datos, pegar tokens, --force o --no-verify sin pedir confirmación. |
| Contradicciones | Un skill dice «haz push al terminar» y otro «nunca hagas push». |
| Versiones desactualizadas | Una versión que no coincide con la del paquete del repo (p. ej. «Next.js 15» cuando el repo usa la 16). |
| Rutas que no existen | Rutas entre comillas invertidas que no están en disco (solo en la app de escritorio). |
MCP
El servidor MCP (el local fxc mcp y el remoto) tiene las mismas operaciones para agentes: list_skills, get_skill, skill_history, list_skill_proposals y propose_skill_change. Un agente puede leer y proponer, pero aplicar un cambio lo hace siempre una persona en el repo.