Skip to main content

claude-code-notify-setup

Usar una sola vez para que uno o varios agentes de Grok Bot se despierten con los avisos de Claude Code en Slack. Le pregunta al usuario el canal de avisos, su channel id y qué bots activar; asigna un slug notify-<slug> por bot sin colisiones, crea la routine con trigger por keyword, lo guarda en memoria y prueba que dispara. Dos flujos: coordinador (configura a varios bots) o por agente (se configura solo).

Quellinformationen

Repository
luck-prg/grokbot-claude-code
Letzte Quellaktivität
16. Oktober 2026 um 00:57
Erkannte Sprache von SKILL.md
Spanisch
Sterne
2
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
claude-code-notify-setup
description
Usar una sola vez para que uno o varios agentes de Grok Bot se despierten con los avisos de Claude Code en Slack. Le pregunta al usuario el canal de avisos, su channel id y qué bots activar; asigna un slug notify-<slug> por bot sin colisiones, crea la routine con trigger por keyword, lo guarda en memoria y prueba que dispara. Dos flujos: coordinador (configura a varios bots) o por agente (se configura solo).
# Configurar agentes para recibir avisos de Claude Code Los hooks de Claude Code (en la nube, por defecto, o local como fallback) publican en el canal de avisos un mensaje así: ``` *Claude Code* • *evento:* `<evento>` • *sesión:* <url|session_xxx> • *repo:* `owner/name` • *rama:* `<rama>` • *agente:* `notify-<slug>` • *tarea:* `<tarea>` ``` Un campo por línea (`• *<campo>:* <valor>`, valor entre backticks o `<url|session_xxx>`); los campos vacíos no aparecen. La routine identifica al agente por la línea `*agente:*` `` `notify-<slug>` ``, que es el único `notify-` real del mensaje. Detalle del parseo en la skill `claude-code-task`. El hook saca el agente de la línea `notify: <slug>` del primer mensaje del prompt de la tarea (sin archivos ni variables por tarea) y la `tarea` de la rama, sin el prefijo `feature/`, `hotfix/` o `release/`. Si el prompt no trae esa línea, el aviso sale con agente `` `desconocido` `` y no despierta a nadie. Cada agente tiene una routine que despierta solo con **su** keyword `notify-<slug>`. Esta skill se corre una vez (por agente o una vez para varios). Para lanzar tareas después, usá la skill `claude-code-task`. ## Qué le preguntás al usuario (nunca lo adivines) Nada de esto viene fijo en la skill: el canal y los bots son los del usuario de Grok Bot. 1. **Nombre del canal de avisos** (`#<canal>`): el canal privado donde publica el bot de notificaciones. 2. **Channel id** de ese canal (estilo `C0123456789`; en Slack: detalles del canal → abajo de todo). Es el valor de `SLACK_NOTIFY_CHANNEL` (nube, por defecto: en las variables del environment; local: en `~/.config/grokbot-claude-code/env`). 3. **Qué bots activar** (flujo coordinador) o confirmación de que sos vos (flujo por agente), y el **slug** de cada uno. 4. **Los `notify-...` que ya se usan** en `#<canal>`, si el usuario los conoce (además, revisá el historial del canal si podés leerlo). Si falta algún dato, preguntá y esperá la respuesta. No pegues ni pidas tokens por el chat: el token `xoxb-...` va solo en el archivo de config o como network secret. ## Reglas del slug Tu keyword va a ser `notify-<slug>`: - Minúsculas, números y guiones (`^[a-z0-9][a-z0-9-]*$`), sin espacios. El hook no pasa a minúsculas por vos. - Único: ningún otro agente lo usa. - **Sin colisión por substring.** La routine matchea el keyword como substring del mensaje, así que un keyword **no puede estar contenido** en el de otro agente **ni contener** el de otro. Ejemplo: `notify-dev` y `notify-dev-ml` chocan (un aviso para `notify-dev-ml` despierta también a `notify-dev`). Preferí algo distintivo, p.ej. el nombre del bot en vez de un rol genérico. Chequealo siempre con el helper del repo, pasando **todos** los slugs: los nuevos y los que ya se usan en el canal (con o sin el prefijo `notify-`): ```bash bash ~/grokbot-claude-code/local/check-slugs <slug-nuevo-1> <slug-nuevo-2> <slug-ya-usado-1> ... ``` [`local/check-slugs`](../../local/check-slugs) sale 0 si está todo bien y 1 si hay problemas (formato, duplicados o colisión por substring; los imprime). Si sale 1, proponé otros slugs al usuario y volvé a chequear. Si no tenés el repo a mano, aplicá la regla a mano par por par. ## Routine (igual para todos los flujos) Trigger, con el nombre de canal que te dio el usuario: ```json {"type":"slack","channel":"#<canal>","match":{"kind":"keyword","keyword":"notify-<slug>"}} ``` Instrucción de la routine: > Llegó un aviso de Claude Code. Confirmá que la línea `*agente:*` diga `` `notify-<slug>` `` (si no, ignorá el mensaje). Cada línea es `• *<campo>:* <valor>`, con el valor entre backticks o como `<url|session_xxx>`: sacá `evento` (con su detalle, p.ej. `error=rate_limit`), `tarea`, `sesión` y `rama`. Buscá la tarea por `tarea` y seguí "Al recibir el aviso" de la skill claude-code-task: continuá la tarea o reportá el resultado a quien la pidió. No cambies nada fuera del alcance de esa tarea. Requisito: `@Cursor` tiene que estar invitado a `#<canal>` (es la app que dispara las routines; si no ve el canal, la routine nunca salta). Si no está, pedíselo al usuario. ## Prueba (exactamente UNA por bot) Siempre con el bot de notificaciones (vía el hook), no con un mensaje escrito a mano, así se prueba el mismo camino que los avisos reales. Con el hook instalado y `SLACK_NOTIFY_TOKEN` / `SLACK_NOTIFY_CHANNEL` configurados: ```bash d=$(mktemp -d) # Transcript mínimo: el primer mensaje del usuario trae la línea notify: <slug>. printf '{"type":"user","message":{"role":"user","content":"Prueba de routine.\\nnotify: <slug>"}}\n' > "$d/t.jsonl" echo "{\"session_id\":\"prueba-$(date +%s)\",\"transcript_path\":\"$d/t.jsonl\",\"cwd\":\"$d\",\"hook_event_name\":\"Stop\"}" \ | bash ~/.claude/hooks/grokbot-notify.sh rm -rf "$d" ``` (Si no corriste `local/install.sh`, usá `hooks/notify.sh` del repo. El `session_id` distinto evita que el dedup lo descarte.) Sin acceso local: pedile al usuario que publique con el bot de notificaciones un mensaje con el formato de arriba, con las líneas `` • *evento:* `Stop` `` y `` • *agente:* `notify-<slug>` ``. Confirmá que la routine de ese bot disparó **una** vez y que no despertó a otro. Si no salta: revisá `${XDG_STATE_HOME:-~/.local/state}/grokbot-claude-code/notify.log`, que `@Cursor` y el bot de notificaciones estén en el canal y que el keyword esté bien escrito. No reintentes en loop. --- ## Flujo A: coordinador (un agente configura a varios bots) Usalo cuando el usuario te pide configurar a varios de sus bots de una. 1. **Preguntá** al usuario: nombre del canal (`#<canal>`), channel id (`C0123456789`), la lista de bots a activar y un slug por bot (proponé uno si no lo tiene, y que lo confirme). Preguntá también qué `notify-...` ya existen en el canal. 2. **Chequeá colisiones** sobre TODOS los slugs (nuevos + ya usados en el canal) con `local/check-slugs`. Si sale 1, ajustá con el usuario y repetí hasta que salga 0. 3. **Config del hook:** confirmá que el environment de la nube (por defecto) y la máquina compartida (fallback local) tienen `SLACK_NOTIFY_CHANNEL` con el channel id que te dieron (ver docs/instalacion.md del repo). El token no lo toques vos si no te lo pidieron. 4. **Mandale las instrucciones a cada bot:** - Si tenés `SendToAgent`, mandale a cada bot el **prompt por agente** de abajo con su canal y su slug ya completos. - Si no, dale al usuario un prompt listo para copiar y pegar por bot (el mismo, completo), uno por bot. Pedile a cada bot que cree la routine y guarde el slug en memoria, pero que **no** haga su propia prueba: la hacés vos en el paso 5 (así hay una sola por bot). 5. **Verificá:** cuando cada bot confirme su routine, hacé **exactamente una** prueba por bot (ver "Prueba") y anotá si disparó. 6. **Reportá** al usuario una tabla: | Bot | Keyword | Disparó | | :- | :- | :- | | `<bot>` | `notify-<slug>` | sí / no (motivo) | Más el canal usado y cualquier problema. Nunca pegues tokens en el reporte. Prompt por agente (lo que mandás con `SendToAgent` o le das al usuario para pegar): ```text Configurate para que te despierten los avisos de Claude Code (skill claude-code-notify-setup del repo grokbot-claude-code). - Canal de avisos: #<canal> - Tu slug: <slug> (keyword notify-<slug>). Ya está chequeado contra colisión por substring con los demás slugs. 1) Creá en vos una routine con trigger {"type":"slack","channel":"#<canal>","match":{"kind":"keyword","keyword":"notify-<slug>"}} cuya instrucción confirme la línea *agente:* `notify-<slug>`, lea los campos del aviso (una línea por campo, • *<campo>:* <valor>, valor entre backticks o <url|session_xxx>: evento, tarea, sesión, rama) y siga "Al recibir el aviso" de la skill claude-code-task, sin cambiar nada fuera del alcance de la tarea. 2) Guardá en tu memoria el slug, el keyword y el canal. Al lanzar tareas (por defecto en la nube con claude --cloud; local solo como fallback), poné en el prompt una línea sola "notify: <slug>". 3) No hagas la prueba vos: avisame cuando la routine esté creada y yo mando una sola prueba. No pegues tokens en el chat ni en ningún repo. No hagas polling. ``` ## Flujo B: por agente (te configurás vos) 1. **Preguntá** al usuario el nombre del canal (`#<canal>`) y su channel id (`C0123456789`), y **confirmá** tu slug (proponé uno si no te lo dieron). Preguntá qué `notify-...` ya se usan en el canal. 2. **Chequeá colisiones** con `local/check-slugs` pasando tu slug y todos los ya usados. Si sale 1, proponé otro y repetí. 3. **Creá tu routine** (ver "Routine") si no existe ya. 4. **Guardá en tu memoria** tu slug (`<slug>`), tu keyword (`notify-<slug>`) y el canal. Al lanzar cada tarea con Claude Code (nube por defecto, local como fallback), el prompt lleva una línea sola `notify: <slug>`, con el slug **sin** el prefijo `notify-`. Ver la skill `claude-code-task`. 5. **Probá** con **una** sola prueba (ver "Prueba"). 6. **Reportá** al usuario: keyword `notify-<slug>`, canal, si la prueba disparó (sí/no) y cualquier problema. Nunca pegues tokens en el reporte.
Auf GitHub ansehen