Ruflo
Arquitectura de Ruflo: envoltorio, ayudantes generados y límites de memoria
Sigue rutas concretas de implementación sin confundir CLI, MCP, hooks, selección y memoria en un único sistema indiferenciado.
Qué aprenderás
- Sigue el límite del comando
- El código generado tiene su propia fuente de verdad
- Explica ubicación sin prometer aislamiento
Antes de empezar
- Conceptos básicos de Node.js, Git y terminal
- Repositorio propio y límites de tarea y permisos definidos
Explica el código del capítulo y reproduce su prueba acotada sin confundir un ayudante con todo el runtime.
Conclusiones clave
- Terminal, MCP y hooks pueden resolver entradas diferentes.
- Compara archivos activos con el generador, no solo una copia antigua.
- Los ámbitos de memoria organizan datos, no conceden autorización.
Sigue el límite del comando
ruflo/bin/ruflo.js encuentra la CLI y decide el modo según argumentos y si stdin es un TTY. Con entrada no interactiva, ningún comando o una petición explícita mcp start delegan al binario CLI. Otros comandos importan su implementación con marca Ruflo. Esa decisión no demuestra un handshake JSON-RPC completado.
El plugin central incorpora otro lanzador que prioriza candidatos construidos antes de recurrir a npx. Los hooks emplean un shim y una resolución independientes. Terminal, plugin MCP y hook pueden llegar a ejecutables diferentes; registrar ruta y versión seleccionadas aporta más que suponer un único runtime compartido.
El código generado tiene su propia fuente de verdad
helpers-generator.ts produce router.js cuando se habilitan ayudantes. Ese enrutador precompila patrones y elige la primera entrada coincidente, identificándose como estático. La instantánea raíz .claude/helpers/router.cjs mantiene subcadenas y valores previos antiguos. Leer solo esa copia describiría mal los ayudantes recién generados.
La misma distinción afecta a configuración: un generador define archivos nuevos, pero el proyecto puede conservar una salida antigua o cambios del usuario. No los sobrescribas para forzar uniformidad. Compara el archivo activo con su revisión pertinente y decide explícitamente si actualizar significa reemplazar, combinar o conservar.
Explica ubicación sin prometer aislamiento
resolveAgentMemoryDir sitúa project y local bajo la raíz Git en .claude/agent-memory y .claude/agent-memory-local; user utiliza el directorio personal resuelto. Sustituye por guiones bajos los caracteres del nombre ajenos a letras, números, guiones y guiones bajos. Esto permite colisiones y no constituye identidad de inquilinos.
createAgentBridge entrega ese directorio a AutoMemoryBridge. El ayudante de transferencia consulta un espacio de nombres y registra conocimientos seleccionados según confianza y categorías opcionales. Describe movimiento de datos, no permiso para compartir cualquier nota. Procedencia y autorización son independientes; aquí no se ejecutó persistencia completa ni trabajo entre agentes.
Pasos de implementación
- 1
Traza el comando hasta su ejecutable.
- 2
Identifica generador y ayudante activo.
- 3
Mapea ámbito, directorio y espacio de nombres por separado.
- 4
Exige procedencia autorizada para transferencias.
Ejemplo para copiar
{"entryPaths":["wrapper CLI","core MCP launcher","hook shim"],"generatedHelper":"router.js","memoryScopes":["project","local","user"],"scopeIsTenantAuthorization":false,"liveHandshakeVerified":false}Preguntas frecuentes
¿La copia del repositorio puede diferir de la generada?
Sí. La revisión contiene una copia raíz antigua y un generador nuevo; la prueba mostró respuestas distintas ante la misma tarea.
¿Una carpeta por agente impide lectura desde otros procesos?
El resolvedor no garantiza eso. Los permisos del sistema de archivos y del anfitrión deben imponer el límite.
Fuentes
- ruflo/bin/ruflo.jsFuente verificada 2026-09-08
- plugins/ruflo-core/.mcp.jsonFuente verificada 2026-09-08
- plugins/ruflo-core/scripts/ruflo-hook.cjsFuente verificada 2026-09-08
- plugins/ruflo-core/scripts/mcp-launch.cjsFuente verificada 2026-09-08
- v3/@claude-flow/cli/src/init/helpers-generator.tsFuente verificada 2026-09-08
- .claude/helpers/router.cjsFuente verificada 2026-09-08
- v3/@claude-flow/memory/src/agent-memory-scope.tsFuente verificada 2026-09-08