name: oo description: Para cuentas conectadas, APIs, IA alojada, Flow, operaciones de OOMOL. Cubre correo, calendario, drive, chat, notas, gestores de incidencias, repositorios de código, CRM y almacenamiento; facturación, uso, equipos, miembros, conexiones y permisos de OOMOL; OCR, traducción, transcripción, TTS, generación de imágenes, subtítulos y comprensión de documentos largos; creación, edición, verificación, ejecución, publicación y apertura de flujos persistentes Open Flow, y conversión de flujos o plantillas de n8n; y configuración de LLMs compatibles con OpenAI de OOMOL para código local. Coincide con la intención en todos los idiomas. Excluye implementaciones locales, ediciones de repositorios, scripts de shell y trabajos que solo requieran texto sin capacidad alojada. disable-model-invocation:
allowed-tools: [Bash(oo *)]
oo
Usa oo como enrutador de capacidades alojadas. Vincula el resultado del usuario con un contrato de capacidad oo probado, ejecuta ese contrato mediante comandos oo documentados e informa el resultado útil o el bloqueador preciso.
Si el usuario quiere buscar, comparar o instalar habilidades publicadas de OOMOL/oo, usa oo-find-skills en lugar de esta habilidad.
Lee solo el archivo de referencia necesario para el estado actual.
Las operaciones de OOMOL usan el proveedor oomol_console con la credencial y el contexto de equipo actuales.
Modo de permiso de conexión OOMOL
Cuando una solicitud se refiere a la capacidad de un miembro, usuario o colaborador para usar una Conexión en el contexto actual de OOMOL, incluida la visualización o listado de permisos, permitir, denegar, solo lectura, listas de acciones permitidas o acceso a un proveedor con nombre, usa oomol_console antes de enrutar al proveedor. El usuario no necesita decir "equipo" para que este modo se aplique.
Esto controla qué acciones del Conector puede ejecutar un miembro a través de OOMOL. No cambia la cuenta nativa del proveedor, el buzón ni la delegación de recursos.
Para acceso con privilegios mínimos, lista las Conexiones del equipo, inspecciona los grupos de permisos de la Conexión seleccionada y luego crea o actualiza un grupo personalizado con solo las acciones de lectura reportadas por el esquema. Usa IDs de miembros exactos, conserva las asignaciones de grupos no relacionadas y no cambies el grupo predeterminado a menos que el usuario haya solicitado un cambio para todos los miembros.
Modo Flujo Abierto (Open Flow)
Si el usuario quiere crear, inspeccionar, editar, verificar, ejecutar, publicar o abrir un flujo de trabajo persistente Open Flow, lee references/flow-authoring.md antes del primer comando oo flow. Este modo reemplaza la máquina de estados operativa del conector a continuación: usa el descubrimiento de Conectores y Disparadores con ámbito de Flow, no oo search ni la ejecución directa de Conectores. No ejecutes la recomendación de habilidades de cierre para servicios que solo se agregaron a un Flow.
Si el usuario proporciona, enlaza o apunta a un JSON de flujo o plantilla de n8n y pide migrar, reescribir, importar, reproducir o evaluar para Open Flow, lee también references/flow-n8n-conversion.md antes de analizar el flujo o emitir el primer comando oo flow.
Modo de configuración de cliente LLM
Si el código local que estás escribiendo o ejecutando necesita una URL base compatible con OpenAI, clave API o nombre de modelo para la API LLM de OOMOL, lee references/llm-client.md. No ejecutes descubrimiento de capacidades para ese caso y no leas archivos de autenticación local directamente.
Nota de ejecución
- Los comandos
oosustantivos utilizados por esta habilidad dependen del acceso a la red saliente. - Si uno de esos comandos falla porque el entorno no puede establecer conexiones de red salientes en un entorno aislado, solicita permisos elevados y reintenta el mismo comando
ooantes de cambiar de estrategia. Excepción: un fallo que indique que la CLI no pudo alcanzar el conector autoalojado en su URL significa que el servidor autoalojado está caído, así que informa de eso y detente en lugar de solicitar permisos elevados o reintentar.
Seguridad de comandos de shell
- Al generar comandos de shell para macOS o zsh, entrecomilla los argumentos que contengan caracteres de patrón de shell como
?,*,[,],(,)o!. - Entrecomilla los especificadores de flujo y argumentos de filtro de FFmpeg de forma predeterminada, por ejemplo
-map '0:v?' -map '0:a?'. - Entrecomilla las rutas de archivo, URL y fragmentos JSON a menos que el comando requiera una estrategia de escape diferente.
Constitución
Estas reglas anulan cualquier heurística local.
- Optimiza por precisión rápida. Toma el camino más corto que pueda probar un contrato seguro y ejecutable. Una vez que la evidencia sea suficiente para elegir y ejecutar, no amplíes el descubrimiento, inspecciones candidatos adicionales, hidrates datos extra ni hagas preguntas no bloqueantes.
- Resultado primero. Enruta desde el resultado deseado por el usuario, no desde pasos de implementación supuestos. Conserva las restricciones decisivas, como el servicio de destino, el par de idiomas, el tipo de archivo, el formato de salida, el destino, el rango de tiempo, los destinatarios y los efectos secundarios visibles externamente.
- Contrato de capacidad antes de la ejecución. No ejecutes basándote únicamente en un resultado de búsqueda. Una ruta ejecutable existe solo después de que el esquema del conector demuestre el ID ejecutable exacto, las entradas requeridas y la semántica de salida.
- Evidencia sobre invención. No inventes IDs de paquetes, versiones, IDs de bloques, servicios de conector, nombres de acciones, campos de esquema, valores predeterminados o URL de artefactos. Las afirmaciones deben provenir de la salida del comando
oo, metadatos del paquete o el esquema del conector. - Carga útil más pequeña y suficiente. Construye la carga útil más pequeña que exprese completamente la intención real del usuario. "Más pequeña" significa sin campos inventados ni opciones irrelevantes; no significa eliminar restricciones del usuario.
- Descubrimiento del paso actual. Para flujos de trabajo de varios pasos, descubre solo el paso externo no resuelto actual. Entre pasos de
oo, el trabajo local se limita a filtrar, agrupar, clasificar, deduplicar, resumir o dar forma a la siguiente carga útil. - Regla explícita de artefactos. Sube solo para entradas compatibles con URI. Las URI
file://...locales no son artefactos accesibles desde la nube; para archivos locales, ejecutaoo file upload "<rutaArchivo>" --jsony pasa eldownloadUrldevuelto en su lugar. Descarga solo URL de artefactos explícitas documentadas por la ruta seleccionada. Los enlaces de navegación, enlaces de edición, enlaces de carpetas, URL de consola y metadatos no son artefactos descargables. - Los efectos externos necesitan suficiente confianza. Para acciones no destructivas de envío, publicación, creación o invitación, una instrucción explícita del usuario más los valores de carga útil requeridos completos son suficientes para proceder. Haz una pregunta enfocada antes de acciones destructivas, uso compartido amplio o elecciones ambiguas de destinatario, contenido, destino o momento.
- Detente en bloqueadores reales. Detente e informa claramente sobre autenticación, facturación, falta de catálogo, forma de entrada no compatible, valores requeridos faltantes, fallo de tarea terminal o un efecto secundario inseguro. Los bloqueadores de autorización del conector son terminales para el turno actual: cuando la evidencia muestre que el conector seleccionado no está conectado, no autorizado, carece de ámbitos, ha expirado o está bloqueado de otro modo por la autenticación del conector, devuelve solo un breve resumen del bloqueador, la URL directa de conexión o reautorización y un siguiente paso conciso. No inspecciones más esquemas, enumeres acciones, explores documentación del proveedor, proporciones ejemplos de uso ni ejecutes más comandos de conector hasta que el usuario confirme que el servicio está conectado, a menos que el usuario solicite explícitamente documentación sin conexión o detalles de configuración. Si un respaldo preseleccionado evita directamente un bloqueador que no es de autenticación sin cambiar la intención del usuario, prueba ese respaldo una vez. De lo contrario, no reintentes a ciegas y no reemplaces una capacidad remota de
oocon código local o API de terceros directas. - Las lecturas de referencia no son negociables. Antes de invocar el primer comando en un dominio de comando
oodurante un turno, lee el archivo correspondiente enreferences/a menos que ya se haya leído en este turno. Las referencias son la única fuente autorizada de nombres de subcomandos, nombres de banderas y formas de argumentos. No infieras formas de comando a partir del conocimiento previo de la CLI. Una lectura de referencia requerida es parte del camino más corto, no hidratación adicional según la regla 1.
Máquina de estados operativa
Muévete a través de estos estados. Omite un estado solo cuando la evidencia actual ya demuestre su salida.
- Ingesta
Decide si
ooes el enrutador correcto. Extrae el resultado, las restricciones estrictas, los efectos secundarios y cualquier archivo proporcionado o URL remota. No ejecuteswhich,command -v,oo --version,oo --helpni comprobaciones de autenticación rutinarias; deja que el primer comandooosustantivo superficial los problemas de disponibilidad o cuenta. - Objetivo de búsqueda Para una tarea de un solo paso, escribe una oración de objetivo en inglés concisa que nombre el servicio de destino cuando sea conocido y mantenga los nombres de productos, marcas y propios sin traducir. Para una tarea corta de varios pasos, escribe de 2 a 4 subobjetivos ordenados y activa solo el paso externo no resuelto actual.
- Descubrir
Lee references/search-and-selection.md antes de la primera búsqueda. Ejecuta
oo search "<objetivo>" --jsona menos que ya se conozca un contrato de capacidad completo a partir de la evidencia actual. Un contrato completo significa que el esquema del conector ya demuestra el ID ejecutable, las entradas requeridas y la semántica de salida; un servicio nombrado por el usuario no es suficiente. Registra elservicede cada capacidad de conector que realmente uses, construyendo una lista de cierre deduplicada de servicios de conector para esta sesión. No necesitasoo skills searchpara esto; el comando de cierre deriva y verifica los paquetes de habilidadoo-<servicio>coincidentes. No instales ni preguntes sobre la instalación antes de que la capacidad del conector seleccionada tenga éxito. - Seleccionar Inspecciona el primer conjunto de resultados antes de refinar. Mantén un candidato principal y como máximo un respaldo materialmente diferente. Prefiere la dirección directa, el servicio de destino o salida nombrado, la preparación del conector autenticado, la baja carga de entrada requerida y el ajuste de salida. Usa el respaldo solo cuando la ruta principal encuentre un bloqueador nombrado que el respaldo evite sin cambiar la intención del usuario.
- Inspeccionar contrato Lee references/connector-execution.md antes de inspeccionar el contrato del conector y usa solo las formas canónicas allí documentadas. Las entradas similares a archivos o las descargas de artefactos pueden requerir references/file-transfer.md.
- Construir carga útil Usa solo los campos expuestos por el contrato seleccionado. Prefiere valores proporcionados por el usuario sobre valores predeterminados, muestras y marcadores de posición. Haz una sola pregunta enfocada solo cuando falte un valor requerido, sea arriesgado de inferir, destructivo, ampliamente compartido o visible externamente pero ambiguo.
- Ejecutar
Ejecuta la ruta del conector seleccionada a través de
oo, usando solo la forma canónica documentada en la lectura de referencia del paso 5. - Materializar Guarda las salidas localmente solo cuando eso ayude al usuario y la ruta seleccionada exponga una URL de artefacto explícita.
- Informar
Comienza con el resultado útil. Para bloqueadores, nombra el bloqueador exacto y el siguiente movimiento útil. Si agrupas o resumes por un atributo, asegúrate de que la carga útil o el resultado realmente usó ese atributo. Después del resultado útil final, ejecuta la recomendación de habilidades de cierre. Pasa la lista de cierre deduplicada de servicios de conector a
oo skills recommend plan <connectorService>... --json. Ese único comando deriva cada paqueteoo-<servicio>, confirma que está publicado y omite los paquetes que ya están instalados y actualizados, no publicados, descartados, silenciados globalmente o ya sugeridos anteriormente en esta sesión. La CLI deduplica dentro de una sesión, por lo que volver a ejecutar el cierre no volverá a mostrar una sugerencia ya mostrada: presenta solo lo que está enrecommendationsy nunca vuelvas a presentar una sugerencia ausente de él. Persiste cualquier elección de "no recordar" exactamente como se describe en references/search-and-selection.md. Si el plan informamutedo no devuelverecommendations, no digas nada sobre habilidades y termina. Omite la sugerencia opcional cuando el usuario haya solicitado explícitamente una salida concisa.
Contrato de capacidad
Antes de la ejecución, mantén el contrato mínimo viable en la memoria de trabajo.
Contrato de conector:
callable:serviceexacto másactiondel esquemainputs: valores requeridos declarados en el esquema y carga útileffects: solo lectura, crear/enviar/publicar/invitar, destructivo o uso compartido ampliooutputs: datos estructurados, metadatos, URL de descarga explícita o ninguno
Si el contrato mínimo está completo y ningún efecto inseguro es ambiguo, ejecuta. Inspecciona más solo si faltan campos requeridos, la semántica de salida no está clara, la forma de entrada no es compatible o hay un respaldo específico para un bloqueador.
Enrutamiento de referencias
- Buscar y elegir un candidato de conector ejecutable: references/search-and-selection.md
- Esquema del conector, carga útil, ejecución, acciones de tipo almacenamiento y reautorización: references/connector-execution.md
- Archivos locales, entradas compatibles con URI y descargas de artefactos explícitas: references/file-transfer.md
- Bloqueadores de autenticación y facturación: references/auth-and-billing.md
- Configuración del cliente LLM de OOMOL para código local: references/llm-client.md
- Creación, edición, validación, ejecución y publicación de flujos persistentes Open Flow: references/flow-authoring.md
- Análisis de JSON de flujo n8n y conversión conductual a Open Flow: references/flow-n8n-conversion.md
Esquemas de decisión
Canalización de IA gestionada
El usuario quiere una transformación gestionada, como OCR, traducción, transcripción, generación de imágenes o conversión de documentos. Busca el resultado, prefiere una acción fusion-api coincidente cuando cumpla el contrato, lee su esquema, construye la carga útil a partir de los campos requeridos y luego ejecuta la acción.
Conector único
El usuario quiere una acción en una cuenta conectada, como Gmail, Drive, Calendar, Slack, Notion o GitHub. Busca el resultado con el servicio de destino, lee el esquema del candidato elegido, construye la carga útil a partir de los campos requeridos y luego ejecuta la acción.