[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71R5R7MG6YNECWV7MPTNZ52":3,"skill-same:01M71R5R7MG6YNECWV7MPTNZ52":61},{"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":23,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M71R5R7MG6YNECWV7MPTNZ52","loop",null,"Run prompt-first scheduled loops with user confirmation, guards, and progressive loop tools.","human-plus-machine\u002Fmonkeybot","human-plus-machine","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F280167390?v=4","01M71R5340DFF1C4XV5B369MPN","human plus machine","01M71R5357ZTPM4CKBNH5XNSFY",3,"MIT","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fcli\u002Fsrc\u002Fmonkeybot_cli\u002Fscaffold_defaults\u002Floop\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34],"with","loops","first","run","progressive","guards","confirmation","scheduled","prompt","Tools","user","2026-11-10 13:02:02",false,"---\nname: loop\ndescription: Run prompt-first scheduled loops with user confirmation, guards, and progressive loop tools.\n---\n\n# Loop\n\nUse this skill when the user wants recurring agent work on an interval\n(for example \"check deploy every 5m\" or \"poll CI until green\").\n\n## Prerequisites\n\n1. Durable storage must be configured (`paths.db_url` \u002F `DB_URL`).\n2. A scheduler worker must be running (`scheduler.enabled: true` in\n   `monkeybot.yaml`, `MONKEYBOT_SCHEDULER_ENABLED=1`, or the standalone\n   scheduler process).\n3. Call `enable_loops` first if `start_loop` \u002F `loop_status` \u002F `pause_loop` \u002F\n   `resume_loop` \u002F `stop_loop` \u002F `disable_loops` are not yet in the active tool\n   list. New tools appear on the **next model step this turn**.\n\n## Start a loop\n\n1. Agree the plan with the user (what to do each tick, and when to stop).\n2. Put that plan in `prompt` using clear BUSINESS \u002F RULES sections.\n3. Choose `interval` (`20s`, `5m`, `1h`, …).\n4. Prefer a hard guard: `max_ticks` and\u002For `max_runtime` (e.g. `1h`).\n   Use `unbounded=true` only with explicit user confirmation.\n5. Call `start_loop`. The harness always asks the user to confirm before the\n   loop is registered.\n6. Soft stop criteria (\"stop when CI is green\") belong in the tick `prompt`;\n   on a later tick, call `stop_loop` when they are met.\n\n## Manage a loop\n\n- `loop_status` — one loop or list all (safe to poll; doom-loop exempt).\n- `pause_loop` \u002F `resume_loop` — temporary hold.\n- `stop_loop` — permanent stop.\n- `disable_loops` — hide loop tools from the next model step; does **not** stop\n  running loops (call `stop_loop` first).\n\n## Guidance\n\n- Read this skill before inventing your own scheduling approach.\n- Do not start duplicate loops for the same purpose; check `loop_status` first.\n- Keep tick prompts focused; avoid noisy side effects every tick.\n","# Loop\n\nUse this skill when the user wants recurring agent work on an interval\n(for example \"check deploy every 5m\" or \"poll CI until green\").\n\n## Prerequisites\n\n1. Durable storage must be configured (`paths.db_url` \u002F `DB_URL`).\n2. A scheduler worker must be running (`scheduler.enabled: true` in\n   `monkeybot.yaml`, `MONKEYBOT_SCHEDULER_ENABLED=1`, or the standalone\n   scheduler process).\n3. Call `enable_loops` first if `start_loop` \u002F `loop_status` \u002F `pause_loop` \u002F\n   `resume_loop` \u002F `stop_loop` \u002F `disable_loops` are not yet in the active tool\n   list. New tools appear on the **next model step this turn**.\n\n## Start a loop\n\n1. Agree the plan with the user (what to do each tick, and when to stop).\n2. Put that plan in `prompt` using clear BUSINESS \u002F RULES sections.\n3. Choose `interval` (`20s`, `5m`, `1h`, …).\n4. Prefer a hard guard: `max_ticks` and\u002For `max_runtime` (e.g. `1h`).\n   Use `unbounded=true` only with explicit user confirmation.\n5. Call `start_loop`. The harness always asks the user to confirm before the\n   loop is registered.\n6. Soft stop criteria (\"stop when CI is green\") belong in the tick `prompt`;\n   on a later tick, call `stop_loop` when they are met.\n\n## Manage a loop\n\n- `loop_status` — one loop or list all (safe to poll; doom-loop exempt).\n- `pause_loop` \u002F `resume_loop` — temporary hold.\n- `stop_loop` — permanent stop.\n- `disable_loops` — hide loop tools from the next model step; does **not** stop\n  running loops (call `stop_loop` first).\n\n## Guidance\n\n- Read this skill before inventing your own scheduling approach.\n- Do not start duplicate loops for the same purpose; check `loop_status` first.\n- Keep tick prompts focused; avoid noisy side effects every tick.\n",{"name":5,"description":7},"develop","3f4ce06b117cf078c4edf4cd8041134d301404ac","cli\u002Fsrc\u002Fmonkeybot_cli\u002Fscaffold_defaults\u002Floop",2,"https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine","2026-11-12 05:23:37",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add human-plus-machine\u002Fmonkeybot --skill loop",{"tool":53,"command":54},"bunx","bunx skills add human-plus-machine\u002Fmonkeybot --skill loop",{"tool":56,"command":57},"pnpm","pnpm dlx skills add human-plus-machine\u002Fmonkeybot --skill loop","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fcli\u002Fsrc\u002Fmonkeybot_cli\u002Fscaffold_defaults\u002Floop\u002FSKILL.md",true,[],[62,76,82,93,100,125],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":69,"publishedAt":35},"01M71R6545453TAC4Y71JM2362","browser","Smoke-test browser skill fixture.","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fregression\u002Ft4\u002Fagent\u002Fskills\u002Fbrowser\u002FSKILL.md",[68],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[64,70,71,72,73,74,75],"skill fixture","fixture","test","test browser","smoke","Browser Skill",{"skillNo":77,"name":78,"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":79,"categories":80,"keywords":81,"publishedAt":35},"01M71R63F3CPF727VZAXTPWJNW","plain","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fregression\u002Ffixtures\u002Fskills\u002Fplain\u002FSKILL.md",[],[78],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":35},"01M71R60VVZE567ZPHWTFHM58S","diagnostics","Inspect a failing run and report the first error.","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fregression\u002Ffixtures\u002Fskills\u002Fdiagnostics\u002FSKILL.md",[],[84,89,26,27,90,91,92],"error","inspect","report","failing",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":35},"01M71R5Z5JTN6H8NSDE755H9TB","nested","Nested skills must not be discovered.","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fregression\u002Ffixtures\u002Fskills\u002Fa\u002Fnested\u002FSKILL.md",[],[95],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":109,"publishedAt":35},"01M71R5XACZGNRRQ7DH1CA170Y","image-generator","Generate images with Gemini image models (Nano Banana Pro) and display them in chat.","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fexamples\u002Fskills\u002Fimage-generator\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[110,111,112,113,114,115,116,117,118,119,120,121,122,24,123,124],"image","generator","image generator","pro","banana","nano banana","images","models","gemini","nano banana pro","nano","display","chat","gemini image","generate",{"skillNo":126,"name":84,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":35},"01M71R5VJ9QHZT480VSWGP6B37","Run deployment health checks (env, runtime, computation) and return JSON status.","https:\u002F\u002Fgithub.com\u002Fhuman-plus-machine\u002Fmonkeybot\u002Fblob\u002Fdevelop\u002Fexamples\u002Fskills\u002Fdiagnostics\u002FSKILL.md",[],[84,131,132,27,133,134,135,136,137],"health","runtime","computation","json","deployment","status","env"]