$npx -y skills add SafeAI-Lab-X/ClawKeeper --skill lobsterLobster executes multi-step workflows with approval checkpoints. Use it when:
| 1 | # Lobster |
| 2 | |
| 3 | Lobster executes multi-step workflows with approval checkpoints. Use it when: |
| 4 | |
| 5 | - User wants a repeatable automation (triage, monitor, sync) |
| 6 | - Actions need human approval before executing (send, post, delete) |
| 7 | - Multiple tool calls should run as one deterministic operation |
| 8 | |
| 9 | ## When to use Lobster |
| 10 | |
| 11 | | User intent | Use Lobster? | |
| 12 | | ------------------------------------------------------ | --------------------------------------------- | |
| 13 | | "Triage my email" | Yes — multi-step, may send replies | |
| 14 | | "Send a message" | No — single action, use message tool directly | |
| 15 | | "Check my email every morning and ask before replying" | Yes — scheduled workflow with approval | |
| 16 | | "What's the weather?" | No — simple query | |
| 17 | | "Monitor this PR and notify me of changes" | Yes — stateful, recurring | |
| 18 | |
| 19 | ## Basic usage |
| 20 | |
| 21 | ### Run a pipeline |
| 22 | |
| 23 | ```json |
| 24 | { |
| 25 | "action": "run", |
| 26 | "pipeline": "gog.gmail.search --query 'newer_than:1d' --max 20 | email.triage" |
| 27 | } |
| 28 | ``` |
| 29 | |
| 30 | Returns structured result: |
| 31 | |
| 32 | ```json |
| 33 | { |
| 34 | "protocolVersion": 1, |
| 35 | "ok": true, |
| 36 | "status": "ok", |
| 37 | "output": [{ "summary": {...}, "items": [...] }], |
| 38 | "requiresApproval": null |
| 39 | } |
| 40 | ``` |
| 41 | |
| 42 | ### Handle approval |
| 43 | |
| 44 | If the workflow needs approval: |
| 45 | |
| 46 | ```json |
| 47 | { |
| 48 | "status": "needs_approval", |
| 49 | "output": [], |
| 50 | "requiresApproval": { |
| 51 | "prompt": "Send 3 draft replies?", |
| 52 | "items": [...], |
| 53 | "resumeToken": "..." |
| 54 | } |
| 55 | } |
| 56 | ``` |
| 57 | |
| 58 | Present the prompt to the user. If they approve: |
| 59 | |
| 60 | ```json |
| 61 | { |
| 62 | "action": "resume", |
| 63 | "token": "<resumeToken>", |
| 64 | "approve": true |
| 65 | } |
| 66 | ``` |
| 67 | |
| 68 | ## Example workflows |
| 69 | |
| 70 | ### Email triage |
| 71 | |
| 72 | ``` |
| 73 | gog.gmail.search --query 'newer_than:1d' --max 20 | email.triage |
| 74 | ``` |
| 75 | |
| 76 | Fetches recent emails, classifies into buckets (needs_reply, needs_action, fyi). |
| 77 | |
| 78 | ### Email triage with approval gate |
| 79 | |
| 80 | ``` |
| 81 | gog.gmail.search --query 'newer_than:1d' | email.triage | approve --prompt 'Process these?' |
| 82 | ``` |
| 83 | |
| 84 | Same as above, but halts for approval before returning. |
| 85 | |
| 86 | ## Key behaviors |
| 87 | |
| 88 | - **Deterministic**: Same input → same output (no LLM variance in pipeline execution) |
| 89 | - **Approval gates**: `approve` command halts execution, returns token |
| 90 | - **Resumable**: Use `resume` action with token to continue |
| 91 | - **Structured output**: Always returns JSON envelope with `protocolVersion` |
| 92 | |
| 93 | ## Don't use Lobster for |
| 94 | |
| 95 | - Simple single-action requests (just use the tool directly) |
| 96 | - Queries that need LLM interpretation mid-flow |
| 97 | - One-off tasks that won't be repeated |