[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CEB94XVZGME9ZX7GFPYAFV":3,"skill-same:01M6CEB94XVZGME9ZX7GFPYAFV":70},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":17,"linkOnly":18,"markdownContent":19,"markdownBody":19,"frontMatter":20,"refName":21,"commitSha":22,"skillDirectory":23,"forksCount":24,"repositoryHtmlUrl":25,"repositoryHomepageUrl":6,"ownerHtmlUrl":26,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":27,"install":28,"resources":41},"01M6CEB94XVZGME9ZX7GFPYAFV","lobster",null,"LongIV999\u002FOpenclawd","LongIV999","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F92411512?v=4","01M6CEACAHRWWFRVKBQPSQ2WBM","01M6CEACEJDYKGDKD1P6A7J7VV",0,"MIT","https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"# Lobster\n\nLobster executes multi-step workflows with approval checkpoints. Use it when:\n\n- User wants a repeatable automation (triage, monitor, sync)\n- Actions need human approval before executing (send, post, delete)\n- Multiple tool calls should run as one deterministic operation\n\n## When to use Lobster\n\n| User intent                                            | Use Lobster?                                  |\n| ------------------------------------------------------ | --------------------------------------------- |\n| \"Triage my email\"                                      | Yes — multi-step, may send replies            |\n| \"Send a message\"                                       | No — single action, use message tool directly |\n| \"Check my email every morning and ask before replying\" | Yes — scheduled workflow with approval        |\n| \"What's the weather?\"                                  | No — simple query                             |\n| \"Monitor this PR and notify me of changes\"             | Yes — stateful, recurring                     |\n\n## Basic usage\n\n### Run a pipeline\n\n```json\n{\n  \"action\": \"run\",\n  \"pipeline\": \"gog.gmail.search --query 'newer_than:1d' --max 20 | email.triage\"\n}\n```\n\nReturns structured result:\n\n```json\n{\n  \"protocolVersion\": 1,\n  \"ok\": true,\n  \"status\": \"ok\",\n  \"output\": [{ \"summary\": {...}, \"items\": [...] }],\n  \"requiresApproval\": null\n}\n```\n\n### Handle approval\n\nIf the workflow needs approval:\n\n```json\n{\n  \"status\": \"needs_approval\",\n  \"output\": [],\n  \"requiresApproval\": {\n    \"prompt\": \"Send 3 draft replies?\",\n    \"items\": [...],\n    \"resumeToken\": \"...\"\n  }\n}\n```\n\nPresent the prompt to the user. If they approve:\n\n```json\n{\n  \"action\": \"resume\",\n  \"token\": \"\u003CresumeToken>\",\n  \"approve\": true\n}\n```\n\n## Example workflows\n\n### Email triage\n\n```\ngog.gmail.search --query 'newer_than:1d' --max 20 | email.triage\n```\n\nFetches recent emails, classifies into buckets (needs_reply, needs_action, fyi).\n\n### Email triage with approval gate\n\n```\ngog.gmail.search --query 'newer_than:1d' | email.triage | approve --prompt 'Process these?'\n```\n\nSame as above, but halts for approval before returning.\n\n## Key behaviors\n\n- **Deterministic**: Same input → same output (no LLM variance in pipeline execution)\n- **Approval gates**: `approve` command halts execution, returns token\n- **Resumable**: Use `resume` action with token to continue\n- **Structured output**: Always returns JSON envelope with `protocolVersion`\n\n## Don't use Lobster for\n\n- Simple single-action requests (just use the tool directly)\n- Queries that need LLM interpretation mid-flow\n- One-off tasks that won't be repeated\n",{},"main","56e72bb5549c5fa0a0470501619427b4f104aa92","extensions\u002Flobster",1,"https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd","https:\u002F\u002Fgithub.com\u002FLongIV999","2026-02-15 08:26:56",{"source":7,"skillName":5,"commands":29,"prompt":39,"zipAvailable":40},[30,33,36],{"tool":31,"command":32},"npx","npx skills add LongIV999\u002FOpenclawd --skill lobster",{"tool":34,"command":35},"bunx","bunx skills add LongIV999\u002FOpenclawd --skill lobster",{"tool":37,"command":38},"pnpm","pnpm dlx skills add LongIV999\u002FOpenclawd --skill lobster","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002FSKILL.md",true,[42,48,54,58,62,66],{"path":43,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":46,"sourceHtmlUrl":47},"index.ts","SCRIPT","脚本",449,"https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002Findex.ts",{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"openclaw.plugin.json","REFERENCE","参考文档",212,"https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002Fopenclaw.plugin.json",{"path":55,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":56,"sourceHtmlUrl":57},"package.json",293,"https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002Fpackage.json",{"path":59,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":60,"sourceHtmlUrl":61},"README.md",2214,"https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002FREADME.md",{"path":63,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":64,"sourceHtmlUrl":65},"src\u002Flobster-tool.test.ts",6944,"https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002Fsrc\u002Flobster-tool.test.ts",{"path":67,"resourceType":44,"resourceTypeDesc":45,"sizeBytes":68,"sourceHtmlUrl":69},"src\u002Flobster-tool.ts",10161,"https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fextensions\u002Flobster\u002Fsrc\u002Flobster-tool.ts",[71,80,91,111,124,140],{"skillNo":72,"name":73,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":17},"01M6CEFMR22ANX8BMWBY9J8VW3","youtube-to-obsidian","https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-to-obsidian\u002FSKILL.md",[],[77,78,79],"youtube to obsidian","youtube","obsidian",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":17},"01M6CEFJW8HMZ7EY2C7FXDN8HG","weather","Get current weather and forecasts (no API key required).","https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fskills\u002Fweather\u002FSKILL.md",[],[82,87,88,89,90],"help","https","api","curl",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":17},"01M6CEFGENXXNDQTCWVC82VBFT","wacli","Send WhatsApp messages to other people or search\u002Fsync WhatsApp history via the wacli CLI (not for normal user chats).","https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fskills\u002Fwacli\u002FSKILL.md",[],[93,98,99,100,101,88,102,103,104,105,106,107,108,109,110],"github","cli","sync","search","messages","history","cmd","brew","user","install","tap","whatsapp","go",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":17},"01M6CEFERBY58R1VW8Z8ZCYEMY","voice-call","Start voice calls via the OpenClaw voice-call plugin.","https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fskills\u002Fvoice-call\u002FSKILL.md",[],[118,119,120,121,122,123],"voice","voice call","openclaw","plugin","plugins","start",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":135,"publishedAt":17},"01M6CEFD0C501CWXD9E4BMV2B2","video-frames","Extract frames or short clips from videos using ffmpeg.","https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-frames\u002FSKILL.md",[130],{"categoryNo":131,"categoryName":132,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[136,137,105,88,138,139,107],"Video","video frames","short","extract",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":154,"publishedAt":17},"01M6CEFAJ48939CYW40VTBYGVP","trello","Manage Trello boards, lists, and cards via the Trello REST API.","https:\u002F\u002Fgithub.com\u002FLongIV999\u002FOpenclawd\u002Fblob\u002Fmain\u002Fskills\u002Ftrello\u002FSKILL.md",[146,149],{"categoryNo":147,"categoryName":148,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":150,"categoryName":151,"taxonomyType":152,"taxonomyTypeDesc":153},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[142,88,155,156,157,89,158,159,160],"cloud","developer","REST","jq","atlassian","manage"]