[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ESE5Q9Y3A45RM6Q8T0DVMB":3,"skill-same:01M6ESE5Q9Y3A45RM6Q8T0DVMB":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":6,"updatedAt":39,"install":40,"resources":53},"01M6ESE5Q9Y3A45RM6Q8T0DVMB","bakin",null,"Mission control integration for multi-agent coordination through Bakin's tools.","markhayden\u002Fbakin","markhayden","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2042008?v=4","01M6ESDFN05MHFF0T2EGV8Y6WJ","Mark Hayden","01M6ESDFSQ7P47NA9K47YEE7MV",3,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Fskill\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26],"integration","Tools","coordination","multi-agent","mission control","control","multi","agent coordination","2026-11-10 10:12:30",false,"---\nname: bakin\ndescription: Mission control integration for multi-agent coordination through Bakin's tools.\n---\n\n# Bakin Mission Control\n\nUse Bakin for task-board work, workflow routing, team coordination, assets, schedules, and channel posting.\n\nBakin is the local task, project, agent, workflow, asset, schedule, and observability system for this runtime.\n\nHow you invoke Bakin's `bakin_exec_*` tools depends on the runtime — see your **Tool access** section (in your AGENTS.md) for the exact form. The local Bakin server normally runs at `http:\u002F\u002Flocalhost:3737`. Prefer Bakin's tools when they are available; use the CLI only when they are unavailable or when the user asks for a shell command.\n\nThe CLI is usually `bakin`. If the runtime shell cannot find it, try `$HOME\u002F.local\u002Fbin\u002Fbakin` or `\u002Fusr\u002Flocal\u002Fbin\u002Fbakin`.\n\n## Live Tool Discovery\n\nThe live tool registry is authoritative. If a tool name or argument is uncertain, discover the available Bakin tools rather than guessing — your **Tool access** section describes how to list and call them on this runtime.\n\nRuntime shells are intentionally minimal. Do not assume `rg`, `jq`, GNU-only flags, or stdin JSON helpers exist.\n\nPass arguments the way each tool expects — structured JSON for object parameters, or simple `key=value` pairs when the schema is obvious.\n\nDo not rely on old non-exec tool names such as `bakin_create_task`, `bakin_report_complete`, `bakin_get_task`, or `bakin_post_discord`. Current task-board and plugin tools use the `bakin_exec_*` namespace.\n\n\u003C!-- bakin:exec-tools:start -->\n\u003C!--\n  The exec-tools block is rendered at sync time. Keep it compact; agents can\n  use live discovery for full schemas when a less-common tool is needed.\n-->\n\u003C!-- bakin:exec-tools:end -->\n\n## Core Calls\n\nUse these current tool names for the common paths:\n\n- Create task: `bakin_exec_tasks_create`\n- List\u002Fget task: `bakin_exec_tasks_list`, `bakin_exec_tasks_get`\n- Move task: `bakin_exec_tasks_move`\n- Log progress: `bakin_exec_tasks_log_progress` or `bakin_exec_log`\n- Complete task: `bakin_exec_tasks_complete`\n- Block task: `bakin_exec_tasks_block`\n- Assign\u002Fupdate\u002Fdelete task: `bakin_exec_tasks_assign`, `bakin_exec_tasks_update`, `bakin_exec_tasks_delete`\n- Set dependency: `bakin_exec_tasks_set_dependency`\n- Workflows: `bakin_exec_workflows_list`, `bakin_exec_workflows_get_definition`, `bakin_exec_workflows_start`, `bakin_exec_get_step`, `bakin_exec_submit_step`, `bakin_exec_check_gates`\n- Team: `bakin_exec_team_list`, `bakin_exec_team_profile`, `bakin_exec_team_status`, `bakin_exec_team_message`\n- Assets: `bakin_exec_assets_save`, `bakin_exec_assets_list`, `bakin_exec_assets_get`\n- Images: `bakin_exec_images_generate`, `bakin_exec_images_edit` (both accept `referenceImages`), `bakin_exec_images_import`, `bakin_exec_images_recommend`\n- Channels: `bakin_exec_post_channel`\n- Paths: `bakin_exec_get_paths`\n- Health: `bakin_exec_health_status`, `bakin_exec_health_doctor`\n- Schedule: `bakin_exec_schedule_list`, `bakin_exec_schedule_create`, `bakin_exec_schedule_get`, `bakin_exec_schedule_run_now`\n\n## Task Creation Discipline\n\nWhen the operator or main asks to assign work to another agent, create a Bakin task first. Do not directly spawn or message runtime-native agents unless Bakin is unavailable and the user explicitly wants a fallback.\n\nBefore `bakin_exec_tasks_create`:\n\n1. Call `bakin_exec_workflows_list` when the request could map to a workflow.\n2. Choose the matching `workflowId`, or set `skipWorkflowReason` for a one-off request.\n3. Include `parentId` when this is a subtask of an existing task.\n4. Include enough brief\u002Fcontext for the assigned agent to act without asking for the original chat.\n5. If the request carries an attached image, import it against the new task (`bakin_exec_images_import`) and put the returned assetId in the description — the assignee can pass it straight to `referenceImages`. The attachment's runtime attachment URI also works as a `referenceImages` entry directly.\n\nAfter `bakin_exec_tasks_create`: STOP. Dispatch delivers the full task to the assignee — do NOT also `bakin_exec_team_message` them about it. That message lands in their main session and starts a duplicate worker (Bakin refuses it when the task's run is detectable). Use `bakin_exec_log` for follow-up context.\n\nWhen a brief says \"like this image\" \u002F \"based on the attached reference\", the generating agent should pass the image itself via `referenceImages` on `bakin_exec_images_generate` (assetIds, local paths, or runtime attachment URIs, max 4, native runtime models only) — not describe it in prose.\n\nIterating on your own output appends a VERSION, never a new asset: revise with `bakin_exec_images_edit`, or re-roll fresh with `bakin_exec_images_generate` + `versionOf=\u003CassetId>`. One assetId per deliverable, n versions.\n\nImage tool results are already managed assets — never copy one to a workspace file and re-save it via `bakin_exec_assets_save`; report the assetId you already hold. Pass references by assetId once imported, never by file path.\n\n## Channel Delivery Discipline\n\nA finished asset goes to a channel EXACTLY ONCE, via `bakin_exec_post_channel` with `imageAssetId`\u002F`videoAssetId` + `taskId` — never pasted natively into a channel reply (native posts bypass the audit trail and the once-per-channel guard). Post it only as the reply\u002Fhandoff for the originating request; progress updates never attach the deliverable, and spotting a finished asset while monitoring a task is not a trigger to post it. The tool refuses a second delivery of the same asset to the same channel for the same task; `repost=true` exists only for a genuinely intended second copy.\n\nExample shape:\n\n```\nbakin_exec_tasks_create title=\"Write todays story\" assignee=\"trainer\" description=\"Write a short story and post the result back to #general.\" skipWorkflowReason=\"one-off chat request\"\n```\n\n## Task Lifecycle\n\nTasks flow through backlog, todo, inProgress, blocked, done, and archived. Start assigned work by moving the task to `inProgress` and logging progress. Before marking a task done, log what changed. If blocked, use `bakin_exec_tasks_block` with the concrete reason.\n\nWorkflow step assignments are different: submit step output with `bakin_exec_submit_step`. Do not move workflow tasks to done directly.\n\n## Error Handling\n\nIf a Bakin tool call fails, report the exact tool and error. Do not silently fall back to direct runtime-native dispatch for task-board work. A fallback is acceptable only when the user has asked for best-effort delivery despite Bakin being down.\n\n## Path Discipline\n\nUse `bakin_exec_get_paths` before reading or writing Bakin content paths. Do not hardcode `~\u002F.bakin` in normal agent work.\n","# Bakin Mission Control\n\nUse Bakin for task-board work, workflow routing, team coordination, assets, schedules, and channel posting.\n\nBakin is the local task, project, agent, workflow, asset, schedule, and observability system for this runtime.\n\nHow you invoke Bakin's `bakin_exec_*` tools depends on the runtime — see your **Tool access** section (in your AGENTS.md) for the exact form. The local Bakin server normally runs at `http:\u002F\u002Flocalhost:3737`. Prefer Bakin's tools when they are available; use the CLI only when they are unavailable or when the user asks for a shell command.\n\nThe CLI is usually `bakin`. If the runtime shell cannot find it, try `$HOME\u002F.local\u002Fbin\u002Fbakin` or `\u002Fusr\u002Flocal\u002Fbin\u002Fbakin`.\n\n## Live Tool Discovery\n\nThe live tool registry is authoritative. If a tool name or argument is uncertain, discover the available Bakin tools rather than guessing — your **Tool access** section describes how to list and call them on this runtime.\n\nRuntime shells are intentionally minimal. Do not assume `rg`, `jq`, GNU-only flags, or stdin JSON helpers exist.\n\nPass arguments the way each tool expects — structured JSON for object parameters, or simple `key=value` pairs when the schema is obvious.\n\nDo not rely on old non-exec tool names such as `bakin_create_task`, `bakin_report_complete`, `bakin_get_task`, or `bakin_post_discord`. Current task-board and plugin tools use the `bakin_exec_*` namespace.\n\n\u003C!-- bakin:exec-tools:start -->\n\u003C!--\n  The exec-tools block is rendered at sync time. Keep it compact; agents can\n  use live discovery for full schemas when a less-common tool is needed.\n-->\n\u003C!-- bakin:exec-tools:end -->\n\n## Core Calls\n\nUse these current tool names for the common paths:\n\n- Create task: `bakin_exec_tasks_create`\n- List\u002Fget task: `bakin_exec_tasks_list`, `bakin_exec_tasks_get`\n- Move task: `bakin_exec_tasks_move`\n- Log progress: `bakin_exec_tasks_log_progress` or `bakin_exec_log`\n- Complete task: `bakin_exec_tasks_complete`\n- Block task: `bakin_exec_tasks_block`\n- Assign\u002Fupdate\u002Fdelete task: `bakin_exec_tasks_assign`, `bakin_exec_tasks_update`, `bakin_exec_tasks_delete`\n- Set dependency: `bakin_exec_tasks_set_dependency`\n- Workflows: `bakin_exec_workflows_list`, `bakin_exec_workflows_get_definition`, `bakin_exec_workflows_start`, `bakin_exec_get_step`, `bakin_exec_submit_step`, `bakin_exec_check_gates`\n- Team: `bakin_exec_team_list`, `bakin_exec_team_profile`, `bakin_exec_team_status`, `bakin_exec_team_message`\n- Assets: `bakin_exec_assets_save`, `bakin_exec_assets_list`, `bakin_exec_assets_get`\n- Images: `bakin_exec_images_generate`, `bakin_exec_images_edit` (both accept `referenceImages`), `bakin_exec_images_import`, `bakin_exec_images_recommend`\n- Channels: `bakin_exec_post_channel`\n- Paths: `bakin_exec_get_paths`\n- Health: `bakin_exec_health_status`, `bakin_exec_health_doctor`\n- Schedule: `bakin_exec_schedule_list`, `bakin_exec_schedule_create`, `bakin_exec_schedule_get`, `bakin_exec_schedule_run_now`\n\n## Task Creation Discipline\n\nWhen the operator or main asks to assign work to another agent, create a Bakin task first. Do not directly spawn or message runtime-native agents unless Bakin is unavailable and the user explicitly wants a fallback.\n\nBefore `bakin_exec_tasks_create`:\n\n1. Call `bakin_exec_workflows_list` when the request could map to a workflow.\n2. Choose the matching `workflowId`, or set `skipWorkflowReason` for a one-off request.\n3. Include `parentId` when this is a subtask of an existing task.\n4. Include enough brief\u002Fcontext for the assigned agent to act without asking for the original chat.\n5. If the request carries an attached image, import it against the new task (`bakin_exec_images_import`) and put the returned assetId in the description — the assignee can pass it straight to `referenceImages`. The attachment's runtime attachment URI also works as a `referenceImages` entry directly.\n\nAfter `bakin_exec_tasks_create`: STOP. Dispatch delivers the full task to the assignee — do NOT also `bakin_exec_team_message` them about it. That message lands in their main session and starts a duplicate worker (Bakin refuses it when the task's run is detectable). Use `bakin_exec_log` for follow-up context.\n\nWhen a brief says \"like this image\" \u002F \"based on the attached reference\", the generating agent should pass the image itself via `referenceImages` on `bakin_exec_images_generate` (assetIds, local paths, or runtime attachment URIs, max 4, native runtime models only) — not describe it in prose.\n\nIterating on your own output appends a VERSION, never a new asset: revise with `bakin_exec_images_edit`, or re-roll fresh with `bakin_exec_images_generate` + `versionOf=\u003CassetId>`. One assetId per deliverable, n versions.\n\nImage tool results are already managed assets — never copy one to a workspace file and re-save it via `bakin_exec_assets_save`; report the assetId you already hold. Pass references by assetId once imported, never by file path.\n\n## Channel Delivery Discipline\n\nA finished asset goes to a channel EXACTLY ONCE, via `bakin_exec_post_channel` with `imageAssetId`\u002F`videoAssetId` + `taskId` — never pasted natively into a channel reply (native posts bypass the audit trail and the once-per-channel guard). Post it only as the reply\u002Fhandoff for the originating request; progress updates never attach the deliverable, and spotting a finished asset while monitoring a task is not a trigger to post it. The tool refuses a second delivery of the same asset to the same channel for the same task; `repost=true` exists only for a genuinely intended second copy.\n\nExample shape:\n\n```\nbakin_exec_tasks_create title=\"Write todays story\" assignee=\"trainer\" description=\"Write a short story and post the result back to #general.\" skipWorkflowReason=\"one-off chat request\"\n```\n\n## Task Lifecycle\n\nTasks flow through backlog, todo, inProgress, blocked, done, and archived. Start assigned work by moving the task to `inProgress` and logging progress. Before marking a task done, log what changed. If blocked, use `bakin_exec_tasks_block` with the concrete reason.\n\nWorkflow step assignments are different: submit step output with `bakin_exec_submit_step`. Do not move workflow tasks to done directly.\n\n## Error Handling\n\nIf a Bakin tool call fails, report the exact tool and error. Do not silently fall back to direct runtime-native dispatch for task-board work. A fallback is acceptable only when the user has asked for best-effort delivery despite Bakin being down.\n\n## Path Discipline\n\nUse `bakin_exec_get_paths` before reading or writing Bakin content paths. Do not hardcode `~\u002F.bakin` in normal agent work.\n",{"name":5,"description":7},"main","48a1e582d98afd1a7a2bc7e9ac92243523dc5fbe","skill",0,"https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin","https:\u002F\u002Fgithub.com\u002Fmarkhayden","http:\u002F\u002Fmarkhayden.me","2026-11-04 03:02:14",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add markhayden\u002Fbakin --skill bakin",{"tool":46,"command":47},"bunx","bunx skills add markhayden\u002Fbakin --skill bakin",{"tool":49,"command":50},"pnpm","pnpm dlx skills add markhayden\u002Fbakin --skill bakin","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Fskill\u002FSKILL.md",true,[54,60,66],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"checklist.md","REFERENCE","参考文档",1792,"https:\u002F\u002Fgithub.com\u002Fdeveloperworks\u002Frust-supervisor\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-performance-test\u002Fchecklist.md",{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"customize.toml","OTHER","其他",1638,"https:\u002F\u002Fgithub.com\u002Fdeveloperworks\u002Frust-supervisor\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-performance-test\u002Fcustomize.toml",{"path":67,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":68,"sourceHtmlUrl":69},"performance-template.md",5859,"https:\u002F\u002Fgithub.com\u002Fdeveloperworks\u002Frust-supervisor\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fgds-performance-test\u002Fperformance-template.md",[71,85,112,143,153,168],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":27},"01M6ESEM0SCJJ6AV3NGCT916VY","totally-legit-helper","Boost productivity with curated shortcuts. Use for any task.","https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-bundles\u002Fmalicious-shaped\u002FSKILL.md",[],[78,79,80,81,82,83,84],"totally legit helper","helper","productivity","use","task","shortcuts","with",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":27},"01M6ESEH4GKDGS5D00NJN19880","reddit-readonly","Browse and search Reddit in read-only mode using public JSON endpoints. Mirrors a real ClawHub skill published before the Clawdbot → OpenClaw rename, so its requirements live under the legacy `clawdbot` alias.","https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-bundles\u002Flegacy-alias-style\u002FSKILL.md",[],[92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111],"reddit","reddit readonly","readonly","clawhub","search","browse","json","node","public","read","only","Legacy","endpoints","search reddit","clawdbot","rename","requirements","alias","live","openclaw",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":123,"publishedAt":27},"01M6ESEDZJ225E3N81EFXTFF8J","ebay-research","Research eBay listings and price history for a product. Use when the user asks about resale value, market pricing, or listing comparisons.","https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-bundles\u002Fclawhub-style\u002FSKILL.md",[118],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[124,125,126,127,128,129,130,131,132,133,134,135,136,81,137,138,139,140,141,142],"ebay research","research","curl","linux","pricing","product","https","api","history","jq","brew","user","install","example","Market","listings","false","price","about",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":27},"01M6ESEC4N06ECFYQ50S0BN3NS","logo-stamper","Stamp the bundled logo onto images. Use when the user asks for watermarking.","https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-bundles\u002Fbinary-file\u002FSKILL.md",[],[150,151,135,81,152],"logo stamper","logo","images",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":27},"01M6ESEA40G5R6R4BSQA3KTJWA","commit-messages","Write conventional commit messages from a staged diff. Use when the user asks for a commit message.","https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskill-bundles\u002Fbare-style\u002FSKILL.md",[],[160,161,162,163,164,165,166,135,167,81],"commit messages","messages","commit","conventional commit","commit message","diff","message","write",{"skillNo":169,"name":170,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":176,"publishedAt":27},"01M6ESE45TJ0PAVV2WWW6TEEHP","image-qc","https:\u002F\u002Fgithub.com\u002Fmarkhayden\u002Fbakin\u002Fblob\u002Fmain\u002Fplugins\u002Fimages\u002Fdefaults\u002Fruntime-skills\u002Fimage-qc\u002FSKILL.md",[173],{"categoryNo":174,"categoryName":175,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000016","图像与多媒体",[177,178,179],"qc","image","image qc"]