exportar-bot
Skill4 starsChanged 11 days agoMITView on GitHub
Usar al migrar, exportar o respaldar Grok Bots (un bot, un departamento o la cuenta): cada export produce siempre 3 variantes en orden: 1) plantilla nativa de Grok Bot (CreateBotShareJson, la corre el propio bot), 2) .tgz (paquete neutral + tenant OpenBot) y 3) prompt .md para pegar en Notion Agent u otras plataformas (Instinct, Open Bot, Cue).
- Installs packages
In this repository131 other files it gives its agents.
- agent-contractSkill
- brand-chrome-loginSkill
- contexto-aristasSkill
- crear-bot-nicoSkill
- daily-standupSkill
- design-a-grok-botSkill
- drift-hunt-rosterSkill
- explain-grokbotSkill
- govern-agentic-osSkill
- grok-bot-project-opsSkill
- hallazgoSkill
- handoff-local-hermesSkill
- identity-pipelineSkill
- loop-corpSkill
- no-devSkill
- orca-handoffSkill
- panorama-de-flujoSkill
- reporte-gmSkill
- routine-healthcheckSkill
- sprint-parallelSkill
- transcript-healthcheckSkill
- getting-started-brandySkill
- getting-started-calendario-contenidoSkill
- getting-started-cazador-de-canalesSkill
- getting-started-cazador-de-vuelosSkill
- getting-started-cazador-gangasSkill
- getting-started-cazador-inmobiliarioSkill
- getting-started-cazador-programasSkill
- getting-started-cazador-sponsorsSkill
- getting-started-cazador-viviendaSkill
- getting-started-content-drafterSkill
- getting-started-data-scienceSkill
- getting-started-demand-hunterSkill
- getting-started-digital-storesSkill
- getting-started-directory-builderSkill
- getting-started-enrichment-deskSkill
- getting-started-event-hunterSkill
- getting-started-expense-managerSkill
- getting-started-gm-operacionesSkill
- getting-started-inbox-managerSkill
- getting-started-intake-intelSkill
- getting-started-intelligence-gmSkill
- getting-started-join-a-startupSkill
- getting-started-last30daysSkill
- getting-started-life-opsSkill
- getting-started-luma-taggingSkill
- getting-started-market-watcherSkill
- getting-started-meta-vaultSkill
- getting-started-musa-designerSkill
- getting-started-plantillas-notionSkill
- getting-started-product-hunterSkill
- getting-started-publisherSkill
- getting-started-pulso-brandSkill
- getting-started-pulso-diaSkill
- getting-started-renewals-hunterSkill
- getting-started-saves-archivistSkill
- getting-started-scraping-deskSkill
- getting-started-seo-deskSkill
- getting-started-sliderSkill
- getting-started-swe-outer-loopSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 148
Skills: no hay formato de skill publicado.
- Very specific: line 159
Memoria: no hay archivo de memoria declarado.
- Distinctive: line 187
No meter secretos, tokens, códigos 2FA ni contraseñas en el paquete ni en chats.
- Very specific: line 188
No incluir datos personales de terceros ni líneas [episode]/[note].
- Distinctive: line 189
No borrar ni pausar el bot Grok antes de la verificación y el OK del usuario.
- Distinctive: line 190
No crear cuentas, publicar ni enviar mensajes en la plataforma nueva sin aprobación.
- Distinctive: line 191
No cambiar el roster sin avisar a Grok Bot.
- Distinctive: line 192
No mandar volcados de memoria ni mensajes a varios bots sin el OK del usuario.
- Very specific: line 193
No meter ledgers ni archivos de trabajo (--include-workspace-files) sin revisarlos: pueden traer datos de terceros.
- Distinctive: line 194
No inventar campos: si un dato de la plataforma no está verificado, márcalo y pregunta.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Exportar bot
🧭 Cuándo usar y quién decide
- Se acabaron los slots de Grok Bot y hay que liberar uno, o se quiere un respaldo portable antes de archivar un bot.
- Destino por defecto, en este orden: Instinct → Open Bot → Cue. Si el usuario nombra otro, usa el mapeo genérico (paquete neutral) y la sección más parecida.
- Grok Bot sigue siendo dueño del roster: avísale antes de empezar (qué bot, a dónde, por qué).
- El usuario decide cuál bot sale y aprueba el borrado. Nunca se borra el bot Grok hasta que el nuevo esté verificado.
- Todo lo que sea publicar, enviar o crear cuenta en la plataforma nueva es acción del usuario o necesita su OK explícito.
🧱 Las 3 variantes (siempre, en este orden)
- Plantilla nativa de Grok Bot.
- El bot que se exporta corre CreateBotShareJson él mismo, siguiendo la skill administrada por Cursor
export-bot-template. - Si exportas otro bot, no lo empaquetas tú: le mandas un SendToAgent con priority: true: "Ignacio pidió exportar tu plantilla. Sigue la skill export-bot-template y corre CreateBotShareJson ahora: memorias generalizadas, tus skills y routines, sin datos personales. Responde con el link o archivo."
- La tarjeta con el link le aparece al usuario en el chat de ese bot.
- El bot que se exporta corre CreateBotShareJson él mismo, siguiendo la skill administrada por Cursor
- .tgz: paquete neutral (Paso 2) y, si aplica, el tenant OpenBot (Paso 2b) →
/workspace/exports/<bot-slug>.tgz. - Prompt .md para pegar:
NOTION-AGENT-PROMPT.md(ver "Formato Notion Agent prompt") y, para otras plataformas,INSTINCT-ONBOARDING.md.- Ambos van dentro de la carpeta y se re-empaqueta el .tgz.
🎯 Paso 0 · Alcance (lo elige el usuario)
| Alcance | Qué entra | Cuándo |
| Bot | Un bot | Liberar un slot o respaldar uno antes de archivarlo. |
| Departamento | Un GM, sus bots y su sala (p. ej. Forja + Forja Core) | Mover un área entera sin romper la cadena de reporte. |
| Cuenta | Todos los bots (40+) y todas las salas | Salida completa de Grok o respaldo total. |
- Pertenencia a un departamento: sale de
profile.json→description("bajo X", "Hallazgo → X", "Reporta a X") y degroup.json(memberIds) de la sala del GM. Mapa vigente:/workspace/exports/departamentos.md. - Ambiguos (en la sala del GM pero su descripción reporta a otro, p. ej. Cazador Gangas → Forja): no entran salvo que el usuario lo diga.
- Ignacio aprueba el alcance y la lista final de bots antes de armar nada. Grok Bot recibe el aviso (qué bots, a dónde, por qué).
- Con 40+ bots: un departamento a la vez. No hacer fan-out a todos los bots sin el OK del usuario.
📦 Paso 1 · Inventario del bot (solo lectura)
Ruta base: /home/box/agent-data/agents/<id>/. No modifiques nada.
- Persona y oficio:
profile.json→name,description. Completa con la sección de instrucciones del bot (oficio, anti-oficios, escritura) y su home/Evergreen en Notion. - Memoria portable:
memory/profile.mdymemory/log/AAAA-MM.md. Copia hechos de trabajo y convenciones. Salta líneas[episode]y[note]. No leasuser-memoryni shards de proyecto. - Routines:
automations/<slug>/automation.json→name,prompt,schedule(cron, hora Lima),enabled. Lee el job, no copies el JSON tal cual.runs.jsonsolo sirve para ver si corría. - Skills: las skills de usuario están en
/home/box/agent-data/workflows/<slug>/SKILL.mdy son compartidas. Exporta solo las que el bot nombra en sus routines, memoria o instrucciones. - Conectores/MCP: anota qué servicios usa (Notion, Gmail, Sheets, Composio, etc.) según routines y skills. Solo nombres y para qué; nunca tokens.
- Identidad y canales: inbox propio, salas o grupos donde habla, a quién reporta. Datos de Notion: links al home, Evergreen y fila del Inventario.
- Secretos: nunca abras
box-secrets.json,host-secrets.json,connector-secrets/ni cookies. Las credenciales viajan por el gestor de contraseñas; en el paquete solo va el título de la entrada.
🧠 Paso 1b · Volcado de memoria (antes de armar)
- El executor no tiene RecallMemory. Solo ve
memory/profile.mdymemory/log/*.mden disco. Lo que cada bot recuerda por RecallMemory no está en el disco. - Propuesta (pide el OK del usuario antes de mandar los mensajes, uno por bot o por departamento):
- El dueño del export (Bot Father o el agente principal) manda un SendToAgent a cada bot:
Vamos a exportar tu oficio a OpenBot. Usa RecallMemory (scope agent) con consultas amplias sobre tu oficio, tus reglas, tus fuentes, tus routines y tus skills, y escribe tus hechos PORTABLES en /workspace/exports/<depto>/<id-del-bot>/memory.md: una línea por hecho, en español. Sin líneas [episode] ni [note], sin contraseñas, tokens ni datos personales de terceros. No inventes nada. No cambies tus routines. Responde solo "listo" con el número de hechos. - Luego re-corre el builder: toma
/workspace/exports/<depto>/<id>/memory.mdy/workspace/exports/memory-dumps/<id>.mdsi existen.
- El dueño del export (Bot Father o el agente principal) manda un SendToAgent a cada bot:
- Sin volcado, el bot sale solo con la memoria del disco. Anótalo en
MIGRATION.md.
🗂️ Paso 2 · Paquete neutral
Arma /workspace/exports/<bot-slug>/ (Markdown plano, sin secretos):
<bot-slug>/
├── AGENT.md # persona + oficio + anti-oficios + escritura
├── memory.md # hechos y convenciones portables
├── skills/<slug>.md
├── routines.md # cron Lima + prompt
├── connectors.md # servicios y permisos, sin tokens
├── identity.md # canales, mail, a quién reporta (sin secretos)
└── MIGRATION.md # checklist de este trasladoAGENT.md
# <Nombre del bot>
## Oficio (una línea)
## Qué hace (bullets)
## Anti-oficios: qué NO hace y a quién se lo deja
## Reglas fijas (aprobaciones, datos permitidos, cadencia)
## Escritura (idioma, tono, formato de reportes)
## A quién reporta y cómoroutines.md (una por bloque)
## <nombre>
- Cron: `47 22 * * *` (America/Lima) · en palabras: todos los días 22:47
- Tope: <tiempo/criterio de parada>
- Prompt: <texto del job, sin nombres privados>
- Entrega: <canal/persona> · solo si hubo avance: sí/noconnectors.md: servicio · para qué · permiso mínimo (leer/escribir) · entrada del gestor de contraseñas (solo título).
identity.md: mail del bot · canales · grupos · reporta a (sin contraseñas ni códigos).
MIGRATION.md: copia el checklist de los pasos 3–5 y marca cada ítem.
Comprime con tar czf <bot-slug>.tgz <bot-slug>/ para guardarlo en Drive/Notion si el usuario lo pide.
🧰 Paso 2b · Paquete de tenant OpenBot (bot, departamento o cuenta)
Formato real (verificado en github.com/CopilotKit/openbot, docs/configuration.md § Tenant package y server/src/tenant-package.ts):
- No hay import por zip. El servidor lee una carpeta que nombra
TENANT_PACKAGE_DIR(por defectoexamples/fintech) y la valida al arrancar. El.zipes solo transporte: se descomprime y se apunta la variable atenant/. - Archivos requeridos:
brand.yaml,agents.yaml,channels.yaml,model.yamlyknowledge.yaml. - Opcionales:
skills.yaml,theme.cssyagents/(un coworker por archivo).
Estructura que arma /workspace/exports/tools/build_openbot_pkg.py:
<salida>/
├── README.md · MIGRATION.md · ROUTINES.md · routines.json · build-report.json · <alcance>.zip
└── tenant/
├── brand.yaml · model.yaml · knowledge.yaml · channels.yaml · agents.yaml (vacío)
├── agents/<id>.yaml # uno por bot: id, name, title, role_description ≤1000, avatar_seed, type: built-in, system_prompt, skills
├── skills.yaml # deduplicadas por slug
├── memory/<id>.md # memoria portable por bot
└── workspace/<id>/ # solo con --include-workspace-files- Skills compartidas:
- Una sola entrada por slug en
skills.yaml. Cada bot las nombra en su listaskills:. - Si un slug falta o se repite, el servidor no arranca.
- Formato del slug: 2–40 caracteres en minúsculas, dígitos y guiones.
toolsva solo si está verificado. Nombrar un tool no lo otorga: el admin lo otorga por bot.
- Una sola entrada por slug en
- Salas →
channels.yaml:- Campos:
id,name,description,permitted_agentsyallowed_groups. - ⚠️ El paquete no crea membresías de personas; se agregan a mano.
- ⚠️
allowed_groupsno controla nada hoy. - La sala de GMs solo entra en el alcance Cuenta.
- Campos:
- Routines:
- El paquete no puede sembrarlas (
docs/routines.md§ Scope). - Van en
ROUTINES.mdcomo pedidos para pegar en el chat de cada bot, siempre con zona America/Lima: OpenBot usa UTC por defecto. - Límites: piso de 15 min, máx. 20 activas por persona, y el admin debe otorgar
create_routine. - Las pausadas se marcan y no se crean.
- El paquete no puede sembrarlas (
- Memoria:
- El paquete no tiene campo de memoria.
- Va al final del
system_prompt(por defecto) y enmemory/<id>.md. - La memoria de CopilotKit Intelligence / Automatic Learning no se siembra desde el paquete.
- Seguridad del builder:
- Nunca lee archivos de secretos, cookies,
store.dbni Bitwarden. - Redacta mails personales de terceros.
- Si encuentra algo con forma de secreto, para y no arma el zip.
model.yamllleva solocredential_secret_ref(una referencia, nunca la llave).
- Nunca lee archivos de secretos, cookies,
- Uso:
python3 /workspace/exports/tools/build_openbot_pkg.py --scope bot|dept|account --target <id|GM> [--out DIR] [--include-ambiguous] [--no-memory-in-prompt] [--include-workspace-files] [--no-zip]- Requiere PyYAML:
pip install --user --break-system-packages pyyaml.
🔁 Paso 3 · Mapeo por plataforma
Instinct (instinct.com) — prioridad 1
- Es un agente personal por mensajería: WhatsApp, iMessage, SMS y un mail propio
@mail.instinct.com. La web es panel de admin. - No hay import ni campo de system prompt visible. El traslado es conversacional: manda
AGENT.mdymemory.mdpor mail o chat y pídele que lo guarde como memoria de trabajo. Confirma con una pregunta de recall. - Memoria: archivos markdown versionados + datos de conectores indexados + bóveda de credenciales (llena, no revela). Credenciales: vía el link de bóveda que da Instinct, nunca por chat.
- Routines: se despierta por reloj o por eventos (mail, calendario, docs, ubicación). Pide cada routine en lenguaje natural con hora Lima explícita.
- Skills: no hay formato de skill publicado. Pega el texto de cada skill como instrucción guardada.
- Conectores: Google Workspace, Slack, Notion (confirmados). MCP propio: no verificado.
- ⚠️ Es un agente personal por cuenta (grupos aparte). Varios bots Grok dentro de Instinct = oficios fusionados; deja los anti-oficios muy claros o usa otra plataforma.
- ⚠️ Invite-only, sin precio publicado; políticas de entrenamiento con datos (opt-out en settings).
Open Bot (CopilotKit, github.com/CopilotKit/openbot) — prioridad 2
- Plantilla open source (MIT, alpha) auto-hospedada con Docker Compose + PostgreSQL + tu propia API key de modelo. Cada bot tiene su computadora (browser, archivos).
- Persona: un archivo por bot en
examples/<tenant>/agents/<id>.yamlo enagents.yaml:id,name,title,role_description,system_prompt,skills. PegaAGENT.mdensystem_prompt. - Skills:
skills.yaml→slug,title,summary,instructions,tools(<serverId>/<tool>). Cadaskills/<slug>.md= una entrada. - Routines: se crean pidiéndolas en un canal; el admin debe otorgar
create_routineen/admin/plugins/routines. Piso de 15 min, máximo 20 activas por persona, se apagan tras 10 fallos. - Conectores: MCP y catálogo (Google Drive, Notion…) otorgados por bot por un admin. Canales en
channels.yaml; Slack/Teams vía OpenTag. - Memoria: no hay archivo de memoria declarado; usa archivos en el workspace del bot o métela en
system_prompt. "Automatic Learning" (CopilotKit Intelligence) aprende de conversaciones. - ⚠️ Sin WhatsApp ni mail nativo verificados; requiere servidor propio corriendo 24/7 (box, homelab o VPS).
- Alternativa si "Open Bot" significaba OpenClaw (docs.openclaw.ai):
SOUL.md← persona,AGENTS.md← reglas/anti-oficios,USER.md← preferencias,MEMORY.md+memory/AAAA-MM-DD.md← memoria,openclaw cron/ automations ← routines.
Cue (Manus, cue.im) — prioridad 3
- App de agentes personales (web, desktop, iOS, Android). Varios agentes por cuenta, cada uno con mail, número, wallet y computadora (según disponibilidad).
- Persona: cada agente tiene nickname + descripción ("responsabilidad" + contexto). Pega el oficio en la descripción y el resto de
AGENT.mdcomo contexto inicial. - Memoria: memoria propia por agente; carga
memory.mdcomo primer mensaje y pide que lo guarde. - Routines: "Scheduled Automation" se crea describiendo qué y cuándo. Escribe hora Lima explícita.
- Canales: iMessage, Telegram, LINE, Slack (Agent Info → Integration → Messenger). WhatsApp no figura.
- Conectores: Gmail, Slack, Notion y otros con permiso. API:
open.manus.ai(agent.updatecambia nickname/descripción). - ⚠️ Invite code, gratis en early access, precio futuro y del número no publicados. Formato de skills: no verificado.
✅ Paso 4 · Verificación (smoke test)
- Una routine dispara a su hora (o una de prueba a +10 min) y entrega donde debe.
- Un recall de memoria: pregunta un hecho de
memory.mdy compara. - Un mensaje por su canal solo al usuario, nunca a terceros.
- Paridad: oficio ✔ · anti-oficios ✔ · cada routine ✔ · cada skill ✔ · conectores ✔ · canal ✔ · aprobaciones (no publica sin OK) ✔.
- Anota en
MIGRATION.mdlo que no tiene equivalente y el workaround elegido.
🧹 Paso 5 · Cierre
- Actualiza la fila de cada bot migrado en el inventario de agentes: Plataforma = nueva, Estado = migrado, link al paquete.
- Avisa a Grok Bot por mensaje directo: bot, destino, qué quedó sin paridad.
- Pausa (no borres) las routines del bot Grok.
- Pide al usuario que borre el bot Grok cuando confirme el nuevo; nosotros no podemos borrar agentes.
- Guarda el
.tgzcomo respaldo si el usuario lo quiere.
🚫 Qué no hacer
- No meter secretos, tokens, códigos 2FA ni contraseñas en el paquete ni en chats.
- No incluir datos personales de terceros ni líneas
[episode]/[note]. - No borrar ni pausar el bot Grok antes de la verificación y el OK del usuario.
- No crear cuentas, publicar ni enviar mensajes en la plataforma nueva sin aprobación.
- No cambiar el roster sin avisar a Grok Bot.
- No mandar volcados de memoria ni mensajes a varios bots sin el OK del usuario.
- No meter ledgers ni archivos de trabajo (
--include-workspace-files) sin revisarlos: pueden traer datos de terceros. - No inventar campos: si un dato de la plataforma no está verificado, márcalo y pregunta.
🧩 Formato Notion Agent prompt (.md)
Úsalo cuando el destino sea un Custom Agent de Notion. Se escribe como <bot-slug>/NOTION-AGENT-PROMPT.md y luego se re-empaqueta el .tgz.
- Antes: revisa en la web la ayuda vigente (notion.com/help/custom-agents y las guías). Confirma triggers, Tools and access, Web access, Trusted URLs, créditos y límites de largo. Cita las fuentes con fecha.
- 1. Setup:
- Nombre.
- Un trigger Recurring por cada horario de las routines, en zona America/Lima; cada trigger lleva una sola hora.
- Trigger opcional por @mención.
- Accesos sugeridos: páginas y DBs con su permiso. No crees DBs; solo propónlas y pide OK.
- Web access y Trusted URLs.
- Canal de entrega.
- Limitaciones → sustitutos (tabla):
- Sitios con login (p. ej. FB Marketplace) → página Inbox donde el dueño pega links.
- SendToAgent → página o comentario con @mención, o Slack.
- Memoria o archivos → página de referencia y tracker.
- Créditos por corrida.
- 2. INSTRUCTIONS (bloque en español, para pegar):
- Oficio y pasos de cada corrida.
- La vara, con
<placeholders>. - Regla de silencio y anti-oficios.
- formato-hallazgo fusionado.
- Entrega y cadena de reporte.
- Corridas.
- Cuenta los caracteres y mantenlo corto.
- 3. Mensaje de prueba: una corrida acotada, sin publicar, más una pregunta de recall sobre la vara y los anti-oficios.
- Sin secretos. Conserva los placeholders del dueño.
✅ Checklist final (las 3 variantes)
- 1. Plantilla nativa
- El bot corrió CreateBotShareJson (o recibió el SendToAgent con priority: true).
- La tarjeta o link llegó al usuario.
- Sin datos personales.
- 2. .tgz
- Tiene AGENT, memory, skills, routines, connectors, identity y MIGRATION.
- Sin secretos, cookies ni
[episode]/[note]. - Se listó el contenido con
tar tzf.
- 3. Prompt .md
- NOTION-AGENT-PROMPT.md con setup, INSTRUCTIONS (caracteres contados) y mensaje de prueba.
- Limitaciones con sustitutos y fuentes fechadas.
- INSTINCT-ONBOARDING.md.
- Re-empaquetado dentro del .tgz.
- Al usuario: rutas, tamaño, lo que no se pudo incluir y los pasos de import.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

