nodmix 2026.5.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (827) hide show
  1. package/CHANGELOG.md +11573 -0
  2. package/LICENSE +21 -0
  3. package/README.md +486 -0
  4. package/docs/.i18n/README.md +81 -0
  5. package/docs/.i18n/ar-navigation.json +18 -0
  6. package/docs/.i18n/de-navigation.json +18 -0
  7. package/docs/.i18n/es-navigation.json +18 -0
  8. package/docs/.i18n/fr-navigation.json +18 -0
  9. package/docs/.i18n/glossary.ar.json +78 -0
  10. package/docs/.i18n/glossary.de.json +78 -0
  11. package/docs/.i18n/glossary.es.json +78 -0
  12. package/docs/.i18n/glossary.fa.json +78 -0
  13. package/docs/.i18n/glossary.fr.json +78 -0
  14. package/docs/.i18n/glossary.id.json +78 -0
  15. package/docs/.i18n/glossary.it.json +78 -0
  16. package/docs/.i18n/glossary.ja-JP.json +98 -0
  17. package/docs/.i18n/glossary.ko.json +78 -0
  18. package/docs/.i18n/glossary.nl.json +78 -0
  19. package/docs/.i18n/glossary.pl.json +78 -0
  20. package/docs/.i18n/glossary.pt-BR.json +78 -0
  21. package/docs/.i18n/glossary.th.json +78 -0
  22. package/docs/.i18n/glossary.tr.json +78 -0
  23. package/docs/.i18n/glossary.uk.json +78 -0
  24. package/docs/.i18n/glossary.vi.json +78 -0
  25. package/docs/.i18n/glossary.zh-CN.json +1002 -0
  26. package/docs/.i18n/glossary.zh-TW.json +78 -0
  27. package/docs/.i18n/id-navigation.json +18 -0
  28. package/docs/.i18n/it-navigation.json +18 -0
  29. package/docs/.i18n/ja-navigation.json +18 -0
  30. package/docs/.i18n/ko-navigation.json +18 -0
  31. package/docs/.i18n/pl-navigation.json +18 -0
  32. package/docs/.i18n/pt-BR-navigation.json +18 -0
  33. package/docs/.i18n/tr-navigation.json +18 -0
  34. package/docs/.i18n/translation-workflow.md +111 -0
  35. package/docs/.i18n/zh-Hans-navigation.json +542 -0
  36. package/docs/AGENTS.md +36 -0
  37. package/docs/announcements/bluebubbles-imessage.md +79 -0
  38. package/docs/assets/install-script.svg +1 -0
  39. package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
  40. package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
  41. package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
  42. package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
  43. package/docs/assets/macos-onboarding/05-permissions.png +0 -0
  44. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  45. package/docs/assets/openclaw-logo-text-dark.svg +418 -0
  46. package/docs/assets/openclaw-logo-text.png +0 -0
  47. package/docs/assets/openclaw-logo-text.svg +418 -0
  48. package/docs/assets/pixel-lobster.svg +60 -0
  49. package/docs/assets/pr/quick-settings-browser-tools.png +0 -0
  50. package/docs/assets/showcase/agents-ui.jpg +0 -0
  51. package/docs/assets/showcase/bambu-cli.png +0 -0
  52. package/docs/assets/showcase/codexmonitor.png +0 -0
  53. package/docs/assets/showcase/gohome-grafana.png +0 -0
  54. package/docs/assets/showcase/ios-testflight.jpg +0 -0
  55. package/docs/assets/showcase/oura-health.png +0 -0
  56. package/docs/assets/showcase/padel-cli.svg +11 -0
  57. package/docs/assets/showcase/padel-screenshot.jpg +0 -0
  58. package/docs/assets/showcase/papla-tts.jpg +0 -0
  59. package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
  60. package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
  61. package/docs/assets/showcase/roborock-status.svg +13 -0
  62. package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
  63. package/docs/assets/showcase/snag.png +0 -0
  64. package/docs/assets/showcase/tesco-shop.jpg +0 -0
  65. package/docs/assets/showcase/wienerlinien.png +0 -0
  66. package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
  67. package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
  68. package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
  69. package/docs/assets/sponsors/blacksmith-light.svg +14 -0
  70. package/docs/assets/sponsors/blacksmith.svg +14 -0
  71. package/docs/assets/sponsors/convex-light.svg +16 -0
  72. package/docs/assets/sponsors/convex.svg +16 -0
  73. package/docs/assets/sponsors/github-light.svg +3 -0
  74. package/docs/assets/sponsors/github.svg +3 -0
  75. package/docs/assets/sponsors/nvidia-dark.svg +9 -0
  76. package/docs/assets/sponsors/nvidia.svg +9 -0
  77. package/docs/assets/sponsors/openai-light.svg +3 -0
  78. package/docs/assets/sponsors/openai.svg +3 -0
  79. package/docs/assets/sponsors/vercel-light.svg +5 -0
  80. package/docs/assets/sponsors/vercel.svg +5 -0
  81. package/docs/auth-credential-semantics.md +124 -0
  82. package/docs/automation/auth-monitoring.md +11 -0
  83. package/docs/automation/clawflow.md +12 -0
  84. package/docs/automation/cron-jobs.md +500 -0
  85. package/docs/automation/cron-vs-heartbeat.md +11 -0
  86. package/docs/automation/gmail-pubsub.md +11 -0
  87. package/docs/automation/hooks.md +365 -0
  88. package/docs/automation/index.md +135 -0
  89. package/docs/automation/poll.md +12 -0
  90. package/docs/automation/standing-orders.md +250 -0
  91. package/docs/automation/taskflow.md +155 -0
  92. package/docs/automation/tasks.md +374 -0
  93. package/docs/automation/troubleshooting.md +12 -0
  94. package/docs/automation/webhook.md +12 -0
  95. package/docs/brave-search.md +11 -0
  96. package/docs/channels/access-groups.md +201 -0
  97. package/docs/channels/ambient-room-events.md +214 -0
  98. package/docs/channels/bot-loop-protection.md +131 -0
  99. package/docs/channels/broadcast-groups.md +472 -0
  100. package/docs/channels/channel-routing.md +162 -0
  101. package/docs/channels/clickclack.md +138 -0
  102. package/docs/channels/discord.md +1762 -0
  103. package/docs/channels/feishu.md +502 -0
  104. package/docs/channels/googlechat.md +284 -0
  105. package/docs/channels/group-messages.md +95 -0
  106. package/docs/channels/groups.md +519 -0
  107. package/docs/channels/imessage-from-bluebubbles.md +259 -0
  108. package/docs/channels/imessage.md +813 -0
  109. package/docs/channels/index.md +64 -0
  110. package/docs/channels/irc.md +253 -0
  111. package/docs/channels/line.md +243 -0
  112. package/docs/channels/location.md +71 -0
  113. package/docs/channels/matrix-migration.md +370 -0
  114. package/docs/channels/matrix-presentation.md +77 -0
  115. package/docs/channels/matrix-push-rules.md +150 -0
  116. package/docs/channels/matrix.md +921 -0
  117. package/docs/channels/mattermost.md +542 -0
  118. package/docs/channels/msteams.md +1042 -0
  119. package/docs/channels/nextcloud-talk.md +176 -0
  120. package/docs/channels/nostr.md +253 -0
  121. package/docs/channels/pairing.md +214 -0
  122. package/docs/channels/qqbot.md +309 -0
  123. package/docs/channels/signal.md +400 -0
  124. package/docs/channels/slack.md +1564 -0
  125. package/docs/channels/synology-chat.md +187 -0
  126. package/docs/channels/telegram.md +1107 -0
  127. package/docs/channels/tlon.md +296 -0
  128. package/docs/channels/troubleshooting.md +161 -0
  129. package/docs/channels/twitch.md +431 -0
  130. package/docs/channels/wechat.md +171 -0
  131. package/docs/channels/whatsapp.md +739 -0
  132. package/docs/channels/yuanbao.md +416 -0
  133. package/docs/channels/zalo.md +253 -0
  134. package/docs/channels/zalouser.md +199 -0
  135. package/docs/ci.md +612 -0
  136. package/docs/clawhub/publishing.md +96 -0
  137. package/docs/cli/acp.md +370 -0
  138. package/docs/cli/agent.md +103 -0
  139. package/docs/cli/agents.md +232 -0
  140. package/docs/cli/approvals.md +190 -0
  141. package/docs/cli/backup.md +97 -0
  142. package/docs/cli/browser.md +307 -0
  143. package/docs/cli/channels.md +154 -0
  144. package/docs/cli/clawbot.md +25 -0
  145. package/docs/cli/commitments.md +90 -0
  146. package/docs/cli/completion.md +39 -0
  147. package/docs/cli/config.md +504 -0
  148. package/docs/cli/configure.md +77 -0
  149. package/docs/cli/crestodian.md +332 -0
  150. package/docs/cli/cron.md +281 -0
  151. package/docs/cli/daemon.md +67 -0
  152. package/docs/cli/dashboard.md +33 -0
  153. package/docs/cli/devices.md +204 -0
  154. package/docs/cli/directory.md +68 -0
  155. package/docs/cli/dns.md +53 -0
  156. package/docs/cli/docs.md +73 -0
  157. package/docs/cli/doctor.md +237 -0
  158. package/docs/cli/flows.md +52 -0
  159. package/docs/cli/gateway.md +567 -0
  160. package/docs/cli/health.md +43 -0
  161. package/docs/cli/hooks.md +345 -0
  162. package/docs/cli/index.md +396 -0
  163. package/docs/cli/infer.md +364 -0
  164. package/docs/cli/logs.md +65 -0
  165. package/docs/cli/mcp.md +529 -0
  166. package/docs/cli/memory.md +183 -0
  167. package/docs/cli/message.md +317 -0
  168. package/docs/cli/migrate.md +290 -0
  169. package/docs/cli/models.md +224 -0
  170. package/docs/cli/node.md +177 -0
  171. package/docs/cli/nodes.md +76 -0
  172. package/docs/cli/onboard.md +245 -0
  173. package/docs/cli/pairing.md +77 -0
  174. package/docs/cli/path.md +502 -0
  175. package/docs/cli/plugins.md +454 -0
  176. package/docs/cli/policy.md +418 -0
  177. package/docs/cli/proxy.md +89 -0
  178. package/docs/cli/qr.md +56 -0
  179. package/docs/cli/reset.md +39 -0
  180. package/docs/cli/sandbox.md +208 -0
  181. package/docs/cli/secrets.md +202 -0
  182. package/docs/cli/security.md +124 -0
  183. package/docs/cli/sessions.md +164 -0
  184. package/docs/cli/setup.md +59 -0
  185. package/docs/cli/skills.md +102 -0
  186. package/docs/cli/status.md +45 -0
  187. package/docs/cli/system.md +89 -0
  188. package/docs/cli/tasks.md +111 -0
  189. package/docs/cli/tui.md +89 -0
  190. package/docs/cli/uninstall.md +44 -0
  191. package/docs/cli/update.md +242 -0
  192. package/docs/cli/voicecall.md +204 -0
  193. package/docs/cli/webhooks.md +117 -0
  194. package/docs/cli/wiki.md +256 -0
  195. package/docs/concepts/active-memory.md +856 -0
  196. package/docs/concepts/agent-loop.md +185 -0
  197. package/docs/concepts/agent-runtimes.md +243 -0
  198. package/docs/concepts/agent-workspace.md +230 -0
  199. package/docs/concepts/agent.md +136 -0
  200. package/docs/concepts/architecture.md +154 -0
  201. package/docs/concepts/channel-docking.md +145 -0
  202. package/docs/concepts/commitments.md +150 -0
  203. package/docs/concepts/compaction.md +203 -0
  204. package/docs/concepts/context-engine.md +306 -0
  205. package/docs/concepts/context.md +199 -0
  206. package/docs/concepts/delegate-architecture.md +319 -0
  207. package/docs/concepts/dreaming.md +261 -0
  208. package/docs/concepts/experimental-features.md +108 -0
  209. package/docs/concepts/features.md +91 -0
  210. package/docs/concepts/mantis-slack-desktop-runbook.md +202 -0
  211. package/docs/concepts/mantis.md +740 -0
  212. package/docs/concepts/markdown-formatting.md +139 -0
  213. package/docs/concepts/memory-builtin.md +146 -0
  214. package/docs/concepts/memory-honcho.md +144 -0
  215. package/docs/concepts/memory-qmd.md +271 -0
  216. package/docs/concepts/memory-search.md +166 -0
  217. package/docs/concepts/memory.md +258 -0
  218. package/docs/concepts/message-lifecycle-refactor.md +1128 -0
  219. package/docs/concepts/messages.md +214 -0
  220. package/docs/concepts/model-failover.md +385 -0
  221. package/docs/concepts/model-providers.md +715 -0
  222. package/docs/concepts/models.md +370 -0
  223. package/docs/concepts/multi-agent.md +619 -0
  224. package/docs/concepts/oauth.md +198 -0
  225. package/docs/concepts/openclaw-sdk.md +323 -0
  226. package/docs/concepts/parallel-specialist-lanes.md +127 -0
  227. package/docs/concepts/personal-agent-benchmark-pack.md +74 -0
  228. package/docs/concepts/presence.md +117 -0
  229. package/docs/concepts/progress-drafts.md +362 -0
  230. package/docs/concepts/qa-e2e-automation.md +820 -0
  231. package/docs/concepts/qa-matrix.md +139 -0
  232. package/docs/concepts/queue-steering.md +90 -0
  233. package/docs/concepts/queue.md +122 -0
  234. package/docs/concepts/retry.md +86 -0
  235. package/docs/concepts/session-pruning.md +104 -0
  236. package/docs/concepts/session-tool.md +190 -0
  237. package/docs/concepts/session.md +164 -0
  238. package/docs/concepts/soul.md +116 -0
  239. package/docs/concepts/streaming.md +251 -0
  240. package/docs/concepts/system-prompt.md +310 -0
  241. package/docs/concepts/timezone.md +47 -0
  242. package/docs/concepts/typebox.md +309 -0
  243. package/docs/concepts/typing-indicators.md +88 -0
  244. package/docs/concepts/usage-tracking.md +66 -0
  245. package/docs/date-time.md +126 -0
  246. package/docs/debug/node-issue.md +90 -0
  247. package/docs/diagnostics/flags.md +138 -0
  248. package/docs/docs.json +1832 -0
  249. package/docs/gateway/authentication.md +239 -0
  250. package/docs/gateway/background-process.md +147 -0
  251. package/docs/gateway/bonjour.md +303 -0
  252. package/docs/gateway/bridge-protocol.md +94 -0
  253. package/docs/gateway/cli-backends.md +420 -0
  254. package/docs/gateway/config-agents.md +1514 -0
  255. package/docs/gateway/config-channels.md +945 -0
  256. package/docs/gateway/config-tools.md +769 -0
  257. package/docs/gateway/configuration-examples.md +705 -0
  258. package/docs/gateway/configuration-reference.md +1393 -0
  259. package/docs/gateway/configuration.md +737 -0
  260. package/docs/gateway/diagnostics.md +213 -0
  261. package/docs/gateway/discovery.md +154 -0
  262. package/docs/gateway/doctor.md +574 -0
  263. package/docs/gateway/gateway-lock.md +37 -0
  264. package/docs/gateway/health.md +73 -0
  265. package/docs/gateway/heartbeat.md +493 -0
  266. package/docs/gateway/index.md +383 -0
  267. package/docs/gateway/local-model-services.md +205 -0
  268. package/docs/gateway/local-models.md +355 -0
  269. package/docs/gateway/logging.md +149 -0
  270. package/docs/gateway/multiple-gateways.md +178 -0
  271. package/docs/gateway/network-model.md +15 -0
  272. package/docs/gateway/openai-http-api.md +350 -0
  273. package/docs/gateway/openresponses-http-api.md +347 -0
  274. package/docs/gateway/openshell.md +316 -0
  275. package/docs/gateway/opentelemetry.md +404 -0
  276. package/docs/gateway/operator-scopes.md +111 -0
  277. package/docs/gateway/pairing.md +207 -0
  278. package/docs/gateway/prometheus.md +230 -0
  279. package/docs/gateway/protocol.md +803 -0
  280. package/docs/gateway/remote-gateway-readme.md +169 -0
  281. package/docs/gateway/remote.md +280 -0
  282. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +146 -0
  283. package/docs/gateway/sandboxing.md +545 -0
  284. package/docs/gateway/secrets-plan-contract.md +114 -0
  285. package/docs/gateway/secrets.md +609 -0
  286. package/docs/gateway/security/audit-checks.md +127 -0
  287. package/docs/gateway/security/index.md +1326 -0
  288. package/docs/gateway/security/secure-file-operations.md +76 -0
  289. package/docs/gateway/tailscale.md +156 -0
  290. package/docs/gateway/tools-invoke-http-api.md +169 -0
  291. package/docs/gateway/troubleshooting.md +772 -0
  292. package/docs/gateway/trusted-proxy-auth.md +451 -0
  293. package/docs/help/debugging.md +344 -0
  294. package/docs/help/environment.md +214 -0
  295. package/docs/help/faq-first-run.md +867 -0
  296. package/docs/help/faq-models.md +553 -0
  297. package/docs/help/faq.md +1975 -0
  298. package/docs/help/gpt55-codex-agentic-parity-maintainers.md +196 -0
  299. package/docs/help/gpt55-codex-agentic-parity.md +230 -0
  300. package/docs/help/index.md +39 -0
  301. package/docs/help/scripts.md +56 -0
  302. package/docs/help/testing-live.md +580 -0
  303. package/docs/help/testing-updates-plugins.md +291 -0
  304. package/docs/help/testing.md +928 -0
  305. package/docs/help/troubleshooting.md +424 -0
  306. package/docs/images/configure-model-picker-unsearchable.png +0 -0
  307. package/docs/images/feishu-get-group-id.png +0 -0
  308. package/docs/images/groups-flow.svg +52 -0
  309. package/docs/images/mobile-ui-screenshot.png +0 -0
  310. package/docs/index.md +196 -0
  311. package/docs/install/ansible.md +233 -0
  312. package/docs/install/azure.md +315 -0
  313. package/docs/install/bun.md +59 -0
  314. package/docs/install/clawdock.md +112 -0
  315. package/docs/install/development-channels.md +135 -0
  316. package/docs/install/digitalocean.md +174 -0
  317. package/docs/install/docker-vm-runtime.md +154 -0
  318. package/docs/install/docker.md +562 -0
  319. package/docs/install/exe-dev.md +201 -0
  320. package/docs/install/fly.md +524 -0
  321. package/docs/install/gcp.md +418 -0
  322. package/docs/install/hetzner.md +285 -0
  323. package/docs/install/hostinger.md +98 -0
  324. package/docs/install/index.md +221 -0
  325. package/docs/install/installer.md +455 -0
  326. package/docs/install/kubernetes.md +196 -0
  327. package/docs/install/macos-vm.md +281 -0
  328. package/docs/install/migrating-claude.md +165 -0
  329. package/docs/install/migrating-hermes.md +177 -0
  330. package/docs/install/migrating.md +137 -0
  331. package/docs/install/nix.md +112 -0
  332. package/docs/install/node.md +142 -0
  333. package/docs/install/northflank.mdx +44 -0
  334. package/docs/install/oracle.md +218 -0
  335. package/docs/install/podman.md +210 -0
  336. package/docs/install/railway.mdx +92 -0
  337. package/docs/install/raspberry-pi.md +234 -0
  338. package/docs/install/render.mdx +167 -0
  339. package/docs/install/uninstall.md +131 -0
  340. package/docs/install/updating.md +280 -0
  341. package/docs/logging.md +318 -0
  342. package/docs/nav-tabs-underline.js +100 -0
  343. package/docs/network.md +72 -0
  344. package/docs/nodes/audio.md +215 -0
  345. package/docs/nodes/camera.md +166 -0
  346. package/docs/nodes/images.md +77 -0
  347. package/docs/nodes/index.md +439 -0
  348. package/docs/nodes/location-command.md +102 -0
  349. package/docs/nodes/media-understanding.md +469 -0
  350. package/docs/nodes/talk.md +154 -0
  351. package/docs/nodes/troubleshooting.md +123 -0
  352. package/docs/nodes/voicewake.md +93 -0
  353. package/docs/perplexity.md +11 -0
  354. package/docs/pi-dev.md +82 -0
  355. package/docs/pi.md +573 -0
  356. package/docs/plan/codex-context-engine-harness.md +624 -0
  357. package/docs/plan/ui-channels.md +284 -0
  358. package/docs/platforms/android.md +285 -0
  359. package/docs/platforms/digitalocean.md +12 -0
  360. package/docs/platforms/index.md +60 -0
  361. package/docs/platforms/ios.md +283 -0
  362. package/docs/platforms/linux.md +141 -0
  363. package/docs/platforms/mac/bundled-gateway.md +79 -0
  364. package/docs/platforms/mac/canvas.md +128 -0
  365. package/docs/platforms/mac/child-process.md +72 -0
  366. package/docs/platforms/mac/dev-setup.md +112 -0
  367. package/docs/platforms/mac/health.md +39 -0
  368. package/docs/platforms/mac/icon.md +36 -0
  369. package/docs/platforms/mac/logging.md +62 -0
  370. package/docs/platforms/mac/menu-bar.md +93 -0
  371. package/docs/platforms/mac/peekaboo.md +92 -0
  372. package/docs/platforms/mac/permissions.md +53 -0
  373. package/docs/platforms/mac/remote.md +123 -0
  374. package/docs/platforms/mac/signing.md +52 -0
  375. package/docs/platforms/mac/skills.md +43 -0
  376. package/docs/platforms/mac/voice-overlay.md +66 -0
  377. package/docs/platforms/mac/voicewake.md +73 -0
  378. package/docs/platforms/mac/webchat.md +54 -0
  379. package/docs/platforms/mac/xpc.md +66 -0
  380. package/docs/platforms/macos.md +226 -0
  381. package/docs/platforms/oracle.md +12 -0
  382. package/docs/platforms/raspberry-pi.md +13 -0
  383. package/docs/platforms/windows.md +286 -0
  384. package/docs/plugins/adding-capabilities.md +133 -0
  385. package/docs/plugins/admin-http-rpc.md +216 -0
  386. package/docs/plugins/agent-tools.md +13 -0
  387. package/docs/plugins/architecture-internals.md +1195 -0
  388. package/docs/plugins/architecture.md +481 -0
  389. package/docs/plugins/building-extensions.md +13 -0
  390. package/docs/plugins/building-plugins.md +330 -0
  391. package/docs/plugins/bundles.md +310 -0
  392. package/docs/plugins/cli-backend-plugins.md +310 -0
  393. package/docs/plugins/codex-computer-use.md +293 -0
  394. package/docs/plugins/codex-harness-reference.md +409 -0
  395. package/docs/plugins/codex-harness-runtime.md +247 -0
  396. package/docs/plugins/codex-harness.md +746 -0
  397. package/docs/plugins/codex-native-plugins.md +276 -0
  398. package/docs/plugins/community.md +77 -0
  399. package/docs/plugins/compatibility.md +164 -0
  400. package/docs/plugins/dependency-resolution.md +143 -0
  401. package/docs/plugins/google-meet.md +1737 -0
  402. package/docs/plugins/hooks.md +459 -0
  403. package/docs/plugins/install-overrides.md +80 -0
  404. package/docs/plugins/manage-plugins.md +210 -0
  405. package/docs/plugins/manifest.md +1359 -0
  406. package/docs/plugins/memory-lancedb.md +385 -0
  407. package/docs/plugins/memory-wiki.md +529 -0
  408. package/docs/plugins/message-presentation.md +473 -0
  409. package/docs/plugins/oc-path.md +166 -0
  410. package/docs/plugins/plugin-inventory.md +182 -0
  411. package/docs/plugins/reference/acpx.md +23 -0
  412. package/docs/plugins/reference/admin-http-rpc.md +23 -0
  413. package/docs/plugins/reference/alibaba.md +23 -0
  414. package/docs/plugins/reference/amazon-bedrock-mantle.md +23 -0
  415. package/docs/plugins/reference/amazon-bedrock.md +23 -0
  416. package/docs/plugins/reference/anthropic-vertex.md +19 -0
  417. package/docs/plugins/reference/anthropic.md +23 -0
  418. package/docs/plugins/reference/arcee.md +23 -0
  419. package/docs/plugins/reference/azure-speech.md +23 -0
  420. package/docs/plugins/reference/bonjour.md +19 -0
  421. package/docs/plugins/reference/brave.md +23 -0
  422. package/docs/plugins/reference/browser.md +23 -0
  423. package/docs/plugins/reference/byteplus.md +19 -0
  424. package/docs/plugins/reference/canvas.md +19 -0
  425. package/docs/plugins/reference/cerebras.md +23 -0
  426. package/docs/plugins/reference/chutes.md +23 -0
  427. package/docs/plugins/reference/clickclack.md +23 -0
  428. package/docs/plugins/reference/cloudflare-ai-gateway.md +23 -0
  429. package/docs/plugins/reference/codex.md +23 -0
  430. package/docs/plugins/reference/comfy.md +23 -0
  431. package/docs/plugins/reference/copilot-proxy.md +19 -0
  432. package/docs/plugins/reference/deepgram.md +23 -0
  433. package/docs/plugins/reference/deepinfra.md +23 -0
  434. package/docs/plugins/reference/deepseek.md +23 -0
  435. package/docs/plugins/reference/diagnostics-otel.md +19 -0
  436. package/docs/plugins/reference/diagnostics-prometheus.md +19 -0
  437. package/docs/plugins/reference/diffs.md +19 -0
  438. package/docs/plugins/reference/discord.md +23 -0
  439. package/docs/plugins/reference/document-extract.md +23 -0
  440. package/docs/plugins/reference/duckduckgo.md +23 -0
  441. package/docs/plugins/reference/elevenlabs.md +23 -0
  442. package/docs/plugins/reference/exa.md +23 -0
  443. package/docs/plugins/reference/fal.md +23 -0
  444. package/docs/plugins/reference/feishu.md +23 -0
  445. package/docs/plugins/reference/file-transfer.md +19 -0
  446. package/docs/plugins/reference/firecrawl.md +23 -0
  447. package/docs/plugins/reference/fireworks.md +23 -0
  448. package/docs/plugins/reference/github-copilot.md +23 -0
  449. package/docs/plugins/reference/google-meet.md +23 -0
  450. package/docs/plugins/reference/google.md +23 -0
  451. package/docs/plugins/reference/googlechat.md +23 -0
  452. package/docs/plugins/reference/gradium.md +23 -0
  453. package/docs/plugins/reference/groq.md +23 -0
  454. package/docs/plugins/reference/huggingface.md +23 -0
  455. package/docs/plugins/reference/imessage.md +23 -0
  456. package/docs/plugins/reference/inworld.md +23 -0
  457. package/docs/plugins/reference/irc.md +23 -0
  458. package/docs/plugins/reference/kilocode.md +23 -0
  459. package/docs/plugins/reference/kimi.md +23 -0
  460. package/docs/plugins/reference/line.md +23 -0
  461. package/docs/plugins/reference/litellm.md +23 -0
  462. package/docs/plugins/reference/llm-task.md +19 -0
  463. package/docs/plugins/reference/lmstudio.md +23 -0
  464. package/docs/plugins/reference/lobster.md +19 -0
  465. package/docs/plugins/reference/matrix.md +23 -0
  466. package/docs/plugins/reference/mattermost.md +23 -0
  467. package/docs/plugins/reference/memory-core.md +19 -0
  468. package/docs/plugins/reference/memory-lancedb.md +23 -0
  469. package/docs/plugins/reference/memory-wiki.md +23 -0
  470. package/docs/plugins/reference/microsoft-foundry.md +19 -0
  471. package/docs/plugins/reference/microsoft.md +19 -0
  472. package/docs/plugins/reference/migrate-claude.md +19 -0
  473. package/docs/plugins/reference/migrate-hermes.md +19 -0
  474. package/docs/plugins/reference/minimax.md +23 -0
  475. package/docs/plugins/reference/mistral.md +23 -0
  476. package/docs/plugins/reference/moonshot.md +23 -0
  477. package/docs/plugins/reference/msteams.md +23 -0
  478. package/docs/plugins/reference/nextcloud-talk.md +23 -0
  479. package/docs/plugins/reference/nostr.md +23 -0
  480. package/docs/plugins/reference/nvidia.md +23 -0
  481. package/docs/plugins/reference/oc-path.md +23 -0
  482. package/docs/plugins/reference/ollama.md +23 -0
  483. package/docs/plugins/reference/open-prose.md +19 -0
  484. package/docs/plugins/reference/openai.md +23 -0
  485. package/docs/plugins/reference/opencode-go.md +23 -0
  486. package/docs/plugins/reference/opencode.md +23 -0
  487. package/docs/plugins/reference/openrouter.md +23 -0
  488. package/docs/plugins/reference/openshell.md +19 -0
  489. package/docs/plugins/reference/perplexity.md +23 -0
  490. package/docs/plugins/reference/policy.md +23 -0
  491. package/docs/plugins/reference/qa-channel.md +23 -0
  492. package/docs/plugins/reference/qa-lab.md +19 -0
  493. package/docs/plugins/reference/qa-matrix.md +19 -0
  494. package/docs/plugins/reference/qianfan.md +23 -0
  495. package/docs/plugins/reference/qqbot.md +23 -0
  496. package/docs/plugins/reference/qwen.md +23 -0
  497. package/docs/plugins/reference/runway.md +23 -0
  498. package/docs/plugins/reference/searxng.md +19 -0
  499. package/docs/plugins/reference/senseaudio.md +23 -0
  500. package/docs/plugins/reference/sglang.md +23 -0
  501. package/docs/plugins/reference/signal.md +23 -0
  502. package/docs/plugins/reference/skill-workshop.md +23 -0
  503. package/docs/plugins/reference/slack.md +23 -0
  504. package/docs/plugins/reference/stepfun.md +23 -0
  505. package/docs/plugins/reference/synology-chat.md +23 -0
  506. package/docs/plugins/reference/synthetic.md +23 -0
  507. package/docs/plugins/reference/tavily.md +23 -0
  508. package/docs/plugins/reference/telegram.md +23 -0
  509. package/docs/plugins/reference/tencent.md +23 -0
  510. package/docs/plugins/reference/tlon.md +23 -0
  511. package/docs/plugins/reference/together.md +23 -0
  512. package/docs/plugins/reference/tokenjuice.md +23 -0
  513. package/docs/plugins/reference/tts-local-cli.md +19 -0
  514. package/docs/plugins/reference/twitch.md +23 -0
  515. package/docs/plugins/reference/venice.md +23 -0
  516. package/docs/plugins/reference/vercel-ai-gateway.md +23 -0
  517. package/docs/plugins/reference/vllm.md +23 -0
  518. package/docs/plugins/reference/voice-call.md +23 -0
  519. package/docs/plugins/reference/volcengine.md +23 -0
  520. package/docs/plugins/reference/voyage.md +19 -0
  521. package/docs/plugins/reference/vydra.md +23 -0
  522. package/docs/plugins/reference/web-readability.md +19 -0
  523. package/docs/plugins/reference/webhooks.md +23 -0
  524. package/docs/plugins/reference/whatsapp.md +23 -0
  525. package/docs/plugins/reference/xai.md +23 -0
  526. package/docs/plugins/reference/xiaomi.md +23 -0
  527. package/docs/plugins/reference/zai.md +23 -0
  528. package/docs/plugins/reference/zalo.md +23 -0
  529. package/docs/plugins/reference/zalouser.md +24 -0
  530. package/docs/plugins/reference.md +138 -0
  531. package/docs/plugins/sdk-agent-harness.md +339 -0
  532. package/docs/plugins/sdk-channel-ingress.md +137 -0
  533. package/docs/plugins/sdk-channel-message.md +458 -0
  534. package/docs/plugins/sdk-channel-plugins.md +762 -0
  535. package/docs/plugins/sdk-channel-turn.md +580 -0
  536. package/docs/plugins/sdk-entrypoints.md +333 -0
  537. package/docs/plugins/sdk-migration.md +949 -0
  538. package/docs/plugins/sdk-overview.md +501 -0
  539. package/docs/plugins/sdk-provider-plugins.md +807 -0
  540. package/docs/plugins/sdk-runtime.md +676 -0
  541. package/docs/plugins/sdk-setup.md +550 -0
  542. package/docs/plugins/sdk-subpaths.md +396 -0
  543. package/docs/plugins/sdk-testing.md +401 -0
  544. package/docs/plugins/skill-workshop.md +713 -0
  545. package/docs/plugins/tool-plugins.md +411 -0
  546. package/docs/plugins/voice-call.md +943 -0
  547. package/docs/plugins/webhooks.md +192 -0
  548. package/docs/plugins/zalouser.md +86 -0
  549. package/docs/prose.md +137 -0
  550. package/docs/providers/alibaba.md +158 -0
  551. package/docs/providers/anthropic.md +344 -0
  552. package/docs/providers/arcee.md +144 -0
  553. package/docs/providers/azure-speech.md +119 -0
  554. package/docs/providers/bedrock-mantle.md +211 -0
  555. package/docs/providers/bedrock.md +414 -0
  556. package/docs/providers/cerebras.md +130 -0
  557. package/docs/providers/chutes.md +153 -0
  558. package/docs/providers/claude-max-api-proxy.md +188 -0
  559. package/docs/providers/cloudflare-ai-gateway.md +119 -0
  560. package/docs/providers/comfy.md +362 -0
  561. package/docs/providers/deepgram.md +184 -0
  562. package/docs/providers/deepinfra.md +87 -0
  563. package/docs/providers/deepseek.md +146 -0
  564. package/docs/providers/ds4.md +309 -0
  565. package/docs/providers/elevenlabs.md +130 -0
  566. package/docs/providers/fal.md +204 -0
  567. package/docs/providers/fireworks.md +144 -0
  568. package/docs/providers/github-copilot.md +225 -0
  569. package/docs/providers/glm.md +137 -0
  570. package/docs/providers/google.md +472 -0
  571. package/docs/providers/gradium.md +123 -0
  572. package/docs/providers/groq.md +180 -0
  573. package/docs/providers/huggingface.md +235 -0
  574. package/docs/providers/index.md +102 -0
  575. package/docs/providers/inferrs.md +272 -0
  576. package/docs/providers/inworld.md +120 -0
  577. package/docs/providers/kilocode.md +135 -0
  578. package/docs/providers/litellm.md +234 -0
  579. package/docs/providers/lmstudio.md +224 -0
  580. package/docs/providers/minimax.md +505 -0
  581. package/docs/providers/mistral.md +235 -0
  582. package/docs/providers/models.md +65 -0
  583. package/docs/providers/moonshot.md +413 -0
  584. package/docs/providers/nvidia.md +140 -0
  585. package/docs/providers/ollama.md +1180 -0
  586. package/docs/providers/openai.md +1057 -0
  587. package/docs/providers/opencode-go.md +123 -0
  588. package/docs/providers/opencode.md +149 -0
  589. package/docs/providers/openrouter.md +349 -0
  590. package/docs/providers/perplexity-provider.md +123 -0
  591. package/docs/providers/qianfan.md +132 -0
  592. package/docs/providers/qwen.md +332 -0
  593. package/docs/providers/runway.md +103 -0
  594. package/docs/providers/senseaudio.md +68 -0
  595. package/docs/providers/sglang.md +161 -0
  596. package/docs/providers/stepfun.md +229 -0
  597. package/docs/providers/synthetic.md +154 -0
  598. package/docs/providers/tencent.md +130 -0
  599. package/docs/providers/together.md +141 -0
  600. package/docs/providers/venice.md +315 -0
  601. package/docs/providers/vercel-ai-gateway.md +128 -0
  602. package/docs/providers/vllm.md +383 -0
  603. package/docs/providers/volcengine.md +199 -0
  604. package/docs/providers/vydra.md +180 -0
  605. package/docs/providers/xai.md +560 -0
  606. package/docs/providers/xiaomi.md +188 -0
  607. package/docs/providers/zai.md +203 -0
  608. package/docs/refactor/access.md +9 -0
  609. package/docs/refactor/acp.md +298 -0
  610. package/docs/refactor/canvas.md +131 -0
  611. package/docs/refactor/ingress-core.md +341 -0
  612. package/docs/reference/AGENTS.default.md +129 -0
  613. package/docs/reference/RELEASING.md +767 -0
  614. package/docs/reference/api-usage-costs.md +202 -0
  615. package/docs/reference/application-modernization-plan.md +208 -0
  616. package/docs/reference/code-mode.md +757 -0
  617. package/docs/reference/credits.md +33 -0
  618. package/docs/reference/device-models.md +50 -0
  619. package/docs/reference/full-release-validation.md +202 -0
  620. package/docs/reference/memory-config.md +630 -0
  621. package/docs/reference/openclaw-sdk-api-design.md +390 -0
  622. package/docs/reference/prompt-caching.md +358 -0
  623. package/docs/reference/rich-output-protocol.md +79 -0
  624. package/docs/reference/rpc.md +43 -0
  625. package/docs/reference/secretref-credential-surface.md +159 -0
  626. package/docs/reference/secretref-user-supplied-credentials-matrix.json +663 -0
  627. package/docs/reference/session-management-compaction.md +461 -0
  628. package/docs/reference/templates/AGENTS.dev.md +89 -0
  629. package/docs/reference/templates/AGENTS.md +225 -0
  630. package/docs/reference/templates/BOOT.md +16 -0
  631. package/docs/reference/templates/BOOTSTRAP.md +66 -0
  632. package/docs/reference/templates/HEARTBEAT.md +16 -0
  633. package/docs/reference/templates/IDENTITY.dev.md +52 -0
  634. package/docs/reference/templates/IDENTITY.md +34 -0
  635. package/docs/reference/templates/SOUL.dev.md +82 -0
  636. package/docs/reference/templates/SOUL.md +49 -0
  637. package/docs/reference/templates/TOOLS.dev.md +29 -0
  638. package/docs/reference/templates/TOOLS.md +51 -0
  639. package/docs/reference/templates/USER.dev.md +23 -0
  640. package/docs/reference/templates/USER.md +28 -0
  641. package/docs/reference/test.md +239 -0
  642. package/docs/reference/token-use.md +233 -0
  643. package/docs/reference/transcript-hygiene.md +214 -0
  644. package/docs/reference/wizard.md +252 -0
  645. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +101 -0
  646. package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
  647. package/docs/security/formal-verification.md +170 -0
  648. package/docs/security/incident-response.md +59 -0
  649. package/docs/security/network-proxy.md +268 -0
  650. package/docs/snippets/plugin-publish/minimal-openclaw.plugin.json +12 -0
  651. package/docs/snippets/plugin-publish/minimal-package.json +16 -0
  652. package/docs/start/bootstrapping.md +49 -0
  653. package/docs/start/docs-directory.md +69 -0
  654. package/docs/start/getting-started.md +152 -0
  655. package/docs/start/hubs.md +201 -0
  656. package/docs/start/lore.md +223 -0
  657. package/docs/start/onboarding-overview.md +72 -0
  658. package/docs/start/onboarding.md +95 -0
  659. package/docs/start/openclaw.md +244 -0
  660. package/docs/start/quickstart.md +25 -0
  661. package/docs/start/setup.md +178 -0
  662. package/docs/start/showcase.md +383 -0
  663. package/docs/start/wizard-cli-automation.md +232 -0
  664. package/docs/start/wizard-cli-reference.md +331 -0
  665. package/docs/start/wizard.md +141 -0
  666. package/docs/style.css +184 -0
  667. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +316 -0
  668. package/docs/tools/acp-agents-setup.md +352 -0
  669. package/docs/tools/acp-agents.md +847 -0
  670. package/docs/tools/agent-send.md +112 -0
  671. package/docs/tools/apply-patch.md +64 -0
  672. package/docs/tools/brave-search.md +139 -0
  673. package/docs/tools/browser-control.md +391 -0
  674. package/docs/tools/browser-linux-troubleshooting.md +173 -0
  675. package/docs/tools/browser-login.md +77 -0
  676. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +219 -0
  677. package/docs/tools/browser.md +769 -0
  678. package/docs/tools/btw.md +159 -0
  679. package/docs/tools/capability-cookbook.md +12 -0
  680. package/docs/tools/clawhub.md +5 -0
  681. package/docs/tools/code-execution.md +173 -0
  682. package/docs/tools/creating-skills.md +120 -0
  683. package/docs/tools/diffs.md +506 -0
  684. package/docs/tools/duckduckgo-search.md +109 -0
  685. package/docs/tools/elevated.md +128 -0
  686. package/docs/tools/exa-search.md +152 -0
  687. package/docs/tools/exec-approvals-advanced.md +360 -0
  688. package/docs/tools/exec-approvals.md +474 -0
  689. package/docs/tools/exec.md +282 -0
  690. package/docs/tools/firecrawl.md +155 -0
  691. package/docs/tools/gemini-search.md +114 -0
  692. package/docs/tools/grok-search.md +113 -0
  693. package/docs/tools/image-generation.md +433 -0
  694. package/docs/tools/index.md +178 -0
  695. package/docs/tools/kimi-search.md +105 -0
  696. package/docs/tools/llm-task.md +137 -0
  697. package/docs/tools/lobster.md +365 -0
  698. package/docs/tools/loop-detection.md +154 -0
  699. package/docs/tools/media-overview.md +157 -0
  700. package/docs/tools/minimax-search.md +102 -0
  701. package/docs/tools/multi-agent-sandbox-tools.md +409 -0
  702. package/docs/tools/music-generation.md +371 -0
  703. package/docs/tools/ollama-search.md +153 -0
  704. package/docs/tools/pdf.md +195 -0
  705. package/docs/tools/perplexity-search.md +220 -0
  706. package/docs/tools/plugin.md +327 -0
  707. package/docs/tools/reactions.md +100 -0
  708. package/docs/tools/searxng-search.md +141 -0
  709. package/docs/tools/skills-config.md +195 -0
  710. package/docs/tools/skills.md +535 -0
  711. package/docs/tools/slash-commands.md +488 -0
  712. package/docs/tools/steer.md +84 -0
  713. package/docs/tools/subagents.md +650 -0
  714. package/docs/tools/tavily.md +162 -0
  715. package/docs/tools/thinking.md +140 -0
  716. package/docs/tools/tokenjuice.md +81 -0
  717. package/docs/tools/tool-search.md +269 -0
  718. package/docs/tools/trajectory.md +229 -0
  719. package/docs/tools/tts.md +1004 -0
  720. package/docs/tools/video-generation.md +552 -0
  721. package/docs/tools/web-fetch.md +195 -0
  722. package/docs/tools/web.md +459 -0
  723. package/docs/tts.md +11 -0
  724. package/docs/vps.md +139 -0
  725. package/docs/web/control-ui.md +503 -0
  726. package/docs/web/dashboard.md +107 -0
  727. package/docs/web/index.md +133 -0
  728. package/docs/web/tui.md +246 -0
  729. package/docs/web/webchat.md +99 -0
  730. package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
  731. package/docs/whatsapp-openclaw.jpg +0 -0
  732. package/nodmix.mjs +487 -0
  733. package/package.json +1852 -0
  734. package/patches/.gitkeep +0 -0
  735. package/patches/@agentclientprotocol__claude-agent-acp@0.36.1.patch +41 -0
  736. package/pnpm-workspace.yaml +63 -0
  737. package/scripts/crabbox-wrapper.mjs +353 -0
  738. package/scripts/lib/official-external-channel-catalog.json +559 -0
  739. package/scripts/lib/official-external-plugin-catalog.json +192 -0
  740. package/scripts/lib/official-external-provider-catalog.json +117 -0
  741. package/scripts/lib/package-dist-imports.mjs +171 -0
  742. package/scripts/npm-runner.mjs +91 -0
  743. package/scripts/postinstall-bundled-plugins.mjs +978 -0
  744. package/scripts/preinstall-package-manager-warning.mjs +64 -0
  745. package/scripts/windows-cmd-helpers.mjs +20 -0
  746. package/skills/1password/SKILL.md +70 -0
  747. package/skills/1password/references/cli-examples.md +29 -0
  748. package/skills/1password/references/get-started.md +17 -0
  749. package/skills/apple-notes/SKILL.md +77 -0
  750. package/skills/apple-reminders/SKILL.md +118 -0
  751. package/skills/bear-notes/SKILL.md +107 -0
  752. package/skills/blogwatcher/SKILL.md +69 -0
  753. package/skills/blucli/SKILL.md +47 -0
  754. package/skills/camsnap/SKILL.md +45 -0
  755. package/skills/canvas/SKILL.md +78 -0
  756. package/skills/clawhub/SKILL.md +77 -0
  757. package/skills/coding-agent/SKILL.md +149 -0
  758. package/skills/diagram-maker/SKILL.md +53 -0
  759. package/skills/diagram-maker/references/excalidraw-patterns.md +85 -0
  760. package/skills/diagram-maker/references/svg-template.md +112 -0
  761. package/skills/discord/SKILL.md +136 -0
  762. package/skills/eightctl/SKILL.md +50 -0
  763. package/skills/gemini/SKILL.md +47 -0
  764. package/skills/gh-issues/SKILL.md +213 -0
  765. package/skills/gifgrep/SKILL.md +85 -0
  766. package/skills/github/SKILL.md +84 -0
  767. package/skills/gog/SKILL.md +116 -0
  768. package/skills/goplaces/SKILL.md +52 -0
  769. package/skills/healthcheck/SKILL.md +105 -0
  770. package/skills/himalaya/SKILL.md +80 -0
  771. package/skills/himalaya/references/configuration.md +184 -0
  772. package/skills/himalaya/references/message-composition.md +199 -0
  773. package/skills/imsg/SKILL.md +122 -0
  774. package/skills/mcporter/SKILL.md +61 -0
  775. package/skills/meme-maker/SKILL.md +42 -0
  776. package/skills/meme-maker/references/templates.json +358 -0
  777. package/skills/meme-maker/scripts/meme.mjs +398 -0
  778. package/skills/model-usage/SKILL.md +69 -0
  779. package/skills/model-usage/references/codexbar-cli.md +33 -0
  780. package/skills/model-usage/scripts/model_usage.py +319 -0
  781. package/skills/model-usage/scripts/test_model_usage.py +40 -0
  782. package/skills/nano-pdf/SKILL.md +38 -0
  783. package/skills/node-connect/SKILL.md +142 -0
  784. package/skills/node-inspect-debugger/SKILL.md +85 -0
  785. package/skills/notion/SKILL.md +150 -0
  786. package/skills/obsidian/SKILL.md +119 -0
  787. package/skills/openai-whisper/SKILL.md +38 -0
  788. package/skills/openai-whisper-api/SKILL.md +71 -0
  789. package/skills/openai-whisper-api/scripts/transcribe.sh +154 -0
  790. package/skills/openhue/SKILL.md +112 -0
  791. package/skills/oracle/SKILL.md +126 -0
  792. package/skills/ordercli/SKILL.md +78 -0
  793. package/skills/peekaboo/SKILL.md +190 -0
  794. package/skills/pyproject.toml +10 -0
  795. package/skills/python-debugpy/SKILL.md +73 -0
  796. package/skills/sag/SKILL.md +87 -0
  797. package/skills/session-logs/SKILL.md +151 -0
  798. package/skills/sherpa-onnx-tts/SKILL.md +109 -0
  799. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
  800. package/skills/skill-creator/SKILL.md +78 -0
  801. package/skills/skill-creator/license.txt +202 -0
  802. package/skills/skill-creator/scripts/init_skill.py +378 -0
  803. package/skills/skill-creator/scripts/package_skill.py +139 -0
  804. package/skills/skill-creator/scripts/quick_validate.py +169 -0
  805. package/skills/skill-creator/scripts/test_package_skill.py +161 -0
  806. package/skills/skill-creator/scripts/test_quick_validate.py +116 -0
  807. package/skills/slack/SKILL.md +78 -0
  808. package/skills/songsee/SKILL.md +49 -0
  809. package/skills/sonoscli/SKILL.md +65 -0
  810. package/skills/spike/SKILL.md +51 -0
  811. package/skills/spotify-player/SKILL.md +64 -0
  812. package/skills/summarize/SKILL.md +87 -0
  813. package/skills/taskflow/SKILL.md +149 -0
  814. package/skills/taskflow/examples/inbox-triage.lobster +33 -0
  815. package/skills/taskflow/examples/pr-intake.lobster +32 -0
  816. package/skills/taskflow-inbox-triage/SKILL.md +119 -0
  817. package/skills/things-mac/SKILL.md +86 -0
  818. package/skills/tmux/SKILL.md +91 -0
  819. package/skills/tmux/scripts/find-sessions.sh +112 -0
  820. package/skills/tmux/scripts/wait-for-text.sh +83 -0
  821. package/skills/trello/SKILL.md +108 -0
  822. package/skills/video-frames/SKILL.md +46 -0
  823. package/skills/video-frames/scripts/frame.sh +81 -0
  824. package/skills/voice-call/SKILL.md +45 -0
  825. package/skills/wacli/SKILL.md +72 -0
  826. package/skills/weather/SKILL.md +64 -0
  827. package/skills/xurl/SKILL.md +120 -0
@@ -0,0 +1,713 @@
1
+ ---
2
+ summary: "Experimental capture of reusable procedures as workspace skills with review, approval, quarantine, and hot skill refresh"
3
+ title: "Skill workshop plugin"
4
+ read_when:
5
+ - You want agents to turn corrections or reusable procedures into workspace skills
6
+ - You are configuring procedural skill memory
7
+ - You are debugging skill_workshop tool behavior
8
+ - You are deciding whether to enable automatic skill creation
9
+ ---
10
+
11
+ Skill Workshop is **experimental**. It is disabled by default, its capture
12
+ heuristics and reviewer prompts may change between releases, and automatic
13
+ writes should be used only in trusted workspaces after reviewing pending-mode
14
+ output first.
15
+
16
+ Skill Workshop is procedural memory for workspace skills. It lets an agent turn
17
+ reusable workflows, user corrections, hard-won fixes, and recurring pitfalls
18
+ into `SKILL.md` files under:
19
+
20
+ ```text
21
+ <workspace>/skills/<skill-name>/SKILL.md
22
+ ```
23
+
24
+ This is different from long-term memory:
25
+
26
+ - **Memory** stores facts, preferences, entities, and past context.
27
+ - **Skills** store reusable procedures the agent should follow on future tasks.
28
+ - **Skill Workshop** is the bridge from a useful turn to a durable workspace
29
+ skill, with safety checks and optional approval.
30
+
31
+ Skill Workshop is useful when the agent learns a procedure such as:
32
+
33
+ - how to validate externally sourced animated GIF assets
34
+ - how to replace screenshot assets and verify dimensions
35
+ - how to run a repo-specific QA scenario
36
+ - how to debug a recurring provider failure
37
+ - how to repair a stale local workflow note
38
+
39
+ It is not intended for:
40
+
41
+ - facts like "the user likes blue"
42
+ - broad autobiographical memory
43
+ - raw transcript archiving
44
+ - secrets, credentials, or hidden prompt text
45
+ - one-off instructions that will not repeat
46
+
47
+ ## Default state
48
+
49
+ The bundled plugin is **experimental** and **disabled by default** unless it is
50
+ explicitly enabled in `plugins.entries.skill-workshop`.
51
+
52
+ The plugin manifest does not set `enabledByDefault: true`. The `enabled: true`
53
+ default inside the plugin config schema applies only after the plugin entry has
54
+ already been selected and loaded.
55
+
56
+ Experimental means:
57
+
58
+ - the plugin is supported enough for opt-in testing and dogfooding
59
+ - proposal storage, reviewer thresholds, and capture heuristics can evolve
60
+ - pending approval is the recommended starting mode
61
+ - auto apply is for trusted personal/workspace setups, not shared or hostile
62
+ input-heavy environments
63
+
64
+ ## Enable
65
+
66
+ Minimal safe config:
67
+
68
+ ```json5
69
+ {
70
+ plugins: {
71
+ entries: {
72
+ "skill-workshop": {
73
+ enabled: true,
74
+ config: {
75
+ autoCapture: true,
76
+ approvalPolicy: "pending",
77
+ reviewMode: "hybrid",
78
+ },
79
+ },
80
+ },
81
+ },
82
+ }
83
+ ```
84
+
85
+ With this config:
86
+
87
+ - the `skill_workshop` tool is available
88
+ - explicit reusable corrections are queued as pending proposals
89
+ - threshold-based reviewer passes can propose skill updates
90
+ - no skill file is written until a pending proposal is applied
91
+
92
+ Use automatic writes only in trusted workspaces:
93
+
94
+ ```json5
95
+ {
96
+ plugins: {
97
+ entries: {
98
+ "skill-workshop": {
99
+ enabled: true,
100
+ config: {
101
+ autoCapture: true,
102
+ approvalPolicy: "auto",
103
+ reviewMode: "hybrid",
104
+ },
105
+ },
106
+ },
107
+ },
108
+ }
109
+ ```
110
+
111
+ `approvalPolicy: "auto"` still uses the same scanner and quarantine path. It
112
+ does not apply proposals with critical findings.
113
+
114
+ ## Configuration
115
+
116
+ | Key | Default | Range / values | Meaning |
117
+ | -------------------- | ----------- | ------------------------------------------- | -------------------------------------------------------------------- |
118
+ | `enabled` | `true` | boolean | Enables the plugin after the plugin entry is loaded. |
119
+ | `autoCapture` | `true` | boolean | Enables post-turn capture/review on successful agent turns. |
120
+ | `approvalPolicy` | `"pending"` | `"pending"`, `"auto"` | Queue proposals or write safe proposals automatically. |
121
+ | `reviewMode` | `"hybrid"` | `"off"`, `"heuristic"`, `"llm"`, `"hybrid"` | Chooses explicit correction capture, LLM reviewer, both, or neither. |
122
+ | `reviewInterval` | `15` | `1..200` | Run reviewer after this many successful turns. |
123
+ | `reviewMinToolCalls` | `8` | `1..500` | Run reviewer after this many observed tool calls. |
124
+ | `reviewTimeoutMs` | `45000` | `5000..180000` | Timeout for the embedded reviewer run. |
125
+ | `maxPending` | `50` | `1..200` | Max pending/quarantined proposals kept per workspace. |
126
+ | `maxSkillBytes` | `40000` | `1024..200000` | Max generated skill/support file size. |
127
+
128
+ Recommended profiles:
129
+
130
+ ```json5
131
+ // Conservative: explicit tool use only, no automatic capture.
132
+ {
133
+ autoCapture: false,
134
+ approvalPolicy: "pending",
135
+ reviewMode: "off",
136
+ }
137
+ ```
138
+
139
+ ```json5
140
+ // Review-first: capture automatically, but require approval.
141
+ {
142
+ autoCapture: true,
143
+ approvalPolicy: "pending",
144
+ reviewMode: "hybrid",
145
+ }
146
+ ```
147
+
148
+ ```json5
149
+ // Trusted automation: write safe proposals immediately.
150
+ {
151
+ autoCapture: true,
152
+ approvalPolicy: "auto",
153
+ reviewMode: "hybrid",
154
+ }
155
+ ```
156
+
157
+ ```json5
158
+ // Low-cost: no reviewer LLM call, only explicit correction phrases.
159
+ {
160
+ autoCapture: true,
161
+ approvalPolicy: "pending",
162
+ reviewMode: "heuristic",
163
+ }
164
+ ```
165
+
166
+ ## Capture paths
167
+
168
+ Skill Workshop has three capture paths.
169
+
170
+ ### Tool suggestions
171
+
172
+ The model can call `skill_workshop` directly when it sees a reusable procedure
173
+ or when the user asks it to save/update a skill.
174
+
175
+ This is the most explicit path and works even with `autoCapture: false`.
176
+
177
+ ### Heuristic capture
178
+
179
+ When `autoCapture` is enabled and `reviewMode` is `heuristic` or `hybrid`, the
180
+ plugin scans successful turns for explicit user correction phrases:
181
+
182
+ - `next time`
183
+ - `from now on`
184
+ - `remember to`
185
+ - `make sure to`
186
+ - `always ... use/check/verify/record/save/prefer`
187
+ - `prefer ... when/for/instead/use`
188
+ - `when asked`
189
+
190
+ The heuristic creates a proposal from the latest matching user instruction. It
191
+ uses topic hints to choose skill names for common workflows:
192
+
193
+ - animated GIF tasks -> `animated-gif-workflow`
194
+ - screenshot or asset tasks -> `screenshot-asset-workflow`
195
+ - QA or scenario tasks -> `qa-scenario-workflow`
196
+ - GitHub PR tasks -> `github-pr-workflow`
197
+ - fallback -> `learned-workflows`
198
+
199
+ Heuristic capture is intentionally narrow. It is for clear corrections and
200
+ repeatable process notes, not for general transcript summarization.
201
+
202
+ ### LLM reviewer
203
+
204
+ When `autoCapture` is enabled and `reviewMode` is `llm` or `hybrid`, the plugin
205
+ runs a compact embedded reviewer after thresholds are reached.
206
+
207
+ The reviewer receives:
208
+
209
+ - the recent transcript text, capped to the last 12,000 characters
210
+ - up to 12 existing workspace skills
211
+ - up to 2,000 characters from each existing skill
212
+ - JSON-only instructions
213
+
214
+ The reviewer has no tools:
215
+
216
+ - `disableTools: true`
217
+ - `toolsAllow: []`
218
+ - `disableMessageTool: true`
219
+
220
+ The reviewer returns either `{ "action": "none" }` or one proposal. The `action` field is `create`, `append`, or `replace` - prefer `append`/`replace` when a relevant skill already exists; use `create` only when no existing skill fits.
221
+
222
+ Example `create`:
223
+
224
+ ```json
225
+ {
226
+ "action": "create",
227
+ "skillName": "media-asset-qa",
228
+ "title": "Media Asset QA",
229
+ "reason": "Reusable animated media acceptance workflow",
230
+ "description": "Validate externally sourced animated media before product use.",
231
+ "body": "## Workflow\n\n- Verify true animation.\n- Record attribution.\n- Store a local approved copy.\n- Verify in product UI before final reply."
232
+ }
233
+ ```
234
+
235
+ `append` adds `section` + `body`. `replace` swaps `oldText` for `newText` in the named skill.
236
+
237
+ ## Proposal lifecycle
238
+
239
+ Every generated update becomes a proposal with:
240
+
241
+ - `id`
242
+ - `createdAt`
243
+ - `updatedAt`
244
+ - `workspaceDir`
245
+ - optional `agentId`
246
+ - optional `sessionId`
247
+ - `skillName`
248
+ - `title`
249
+ - `reason`
250
+ - `source`: `tool`, `agent_end`, or `reviewer`
251
+ - `status`
252
+ - `change`
253
+ - optional `scanFindings`
254
+ - optional `quarantineReason`
255
+
256
+ Proposal statuses:
257
+
258
+ - `pending` - waiting for approval
259
+ - `applied` - written to `<workspace>/skills`
260
+ - `rejected` - rejected by operator/model
261
+ - `quarantined` - blocked by critical scanner findings
262
+
263
+ State is stored per workspace under the Gateway state directory:
264
+
265
+ ```text
266
+ <stateDir>/skill-workshop/<workspace-hash>.json
267
+ ```
268
+
269
+ Pending and quarantined proposals are deduplicated by skill name and change
270
+ payload. The store keeps the newest pending/quarantined proposals up to
271
+ `maxPending`.
272
+
273
+ ## Tool reference
274
+
275
+ The plugin registers one agent tool:
276
+
277
+ ```text
278
+ skill_workshop
279
+ ```
280
+
281
+ ### `status`
282
+
283
+ Count proposals by state for the active workspace.
284
+
285
+ ```json
286
+ { "action": "status" }
287
+ ```
288
+
289
+ Result shape:
290
+
291
+ ```json
292
+ {
293
+ "workspaceDir": "/path/to/workspace",
294
+ "pending": 1,
295
+ "quarantined": 0,
296
+ "applied": 3,
297
+ "rejected": 0
298
+ }
299
+ ```
300
+
301
+ ### `list_pending`
302
+
303
+ List pending proposals.
304
+
305
+ ```json
306
+ { "action": "list_pending" }
307
+ ```
308
+
309
+ To list another status:
310
+
311
+ ```json
312
+ { "action": "list_pending", "status": "applied" }
313
+ ```
314
+
315
+ Valid `status` values:
316
+
317
+ - `pending`
318
+ - `applied`
319
+ - `rejected`
320
+ - `quarantined`
321
+
322
+ ### `list_quarantine`
323
+
324
+ List quarantined proposals.
325
+
326
+ ```json
327
+ { "action": "list_quarantine" }
328
+ ```
329
+
330
+ Use this when automatic capture appears to do nothing and the logs mention
331
+ `skill-workshop: quarantined <skill>`.
332
+
333
+ ### `inspect`
334
+
335
+ Fetch a proposal by id.
336
+
337
+ ```json
338
+ {
339
+ "action": "inspect",
340
+ "id": "proposal-id"
341
+ }
342
+ ```
343
+
344
+ ### `suggest`
345
+
346
+ Create a proposal. With `approvalPolicy: "pending"` (default), this queues instead of writing.
347
+
348
+ ```json
349
+ {
350
+ "action": "suggest",
351
+ "skillName": "animated-gif-workflow",
352
+ "title": "Animated GIF Workflow",
353
+ "reason": "User established reusable GIF validation rules.",
354
+ "description": "Validate animated GIF assets before using them.",
355
+ "body": "## Workflow\n\n- Verify the URL resolves to image/gif.\n- Confirm it has multiple frames.\n- Record attribution and license.\n- Avoid hotlinking when a local asset is needed."
356
+ }
357
+ ```
358
+
359
+ <AccordionGroup>
360
+ <Accordion title="Request immediate write in auto mode (apply: true)">
361
+
362
+ ```json
363
+ {
364
+ "action": "suggest",
365
+ "apply": true,
366
+ "skillName": "animated-gif-workflow",
367
+ "description": "Validate animated GIF assets before using them.",
368
+ "body": "## Workflow\n\n- Verify true animation.\n- Record attribution."
369
+ }
370
+ ```
371
+
372
+ With `approvalPolicy: "pending"`, `apply: true` still queues the proposal. Review it, then use
373
+ the `apply` action after approval.
374
+
375
+ </Accordion>
376
+
377
+ <Accordion title="Force pending under auto policy (apply: false)">
378
+
379
+ ```json
380
+ {
381
+ "action": "suggest",
382
+ "apply": false,
383
+ "skillName": "screenshot-asset-workflow",
384
+ "description": "Screenshot replacement workflow.",
385
+ "body": "## Workflow\n\n- Verify dimensions.\n- Optimize the PNG.\n- Run the relevant gate."
386
+ }
387
+ ```
388
+
389
+ </Accordion>
390
+
391
+ <Accordion title="Append to a named section">
392
+
393
+ ```json
394
+ {
395
+ "action": "suggest",
396
+ "skillName": "qa-scenario-workflow",
397
+ "section": "Workflow",
398
+ "description": "QA scenario workflow.",
399
+ "body": "- For media QA, verify generated assets render and pass final assertions."
400
+ }
401
+ ```
402
+
403
+ </Accordion>
404
+
405
+ <Accordion title="Replace exact text">
406
+
407
+ ```json
408
+ {
409
+ "action": "suggest",
410
+ "skillName": "github-pr-workflow",
411
+ "oldText": "- Check the PR.",
412
+ "newText": "- Check unresolved review threads, CI status, linked issues, and changed files before deciding."
413
+ }
414
+ ```
415
+
416
+ </Accordion>
417
+ </AccordionGroup>
418
+
419
+ ### `apply`
420
+
421
+ Apply a pending proposal.
422
+
423
+ With `approvalPolicy: "pending"`, this action asks for operator approval before writing the
424
+ workspace skill.
425
+
426
+ ```json
427
+ {
428
+ "action": "apply",
429
+ "id": "proposal-id"
430
+ }
431
+ ```
432
+
433
+ `apply` refuses quarantined proposals:
434
+
435
+ ```text
436
+ quarantined proposal cannot be applied
437
+ ```
438
+
439
+ ### `reject`
440
+
441
+ Mark a proposal rejected.
442
+
443
+ ```json
444
+ {
445
+ "action": "reject",
446
+ "id": "proposal-id"
447
+ }
448
+ ```
449
+
450
+ ### `write_support_file`
451
+
452
+ Write a supporting file inside an existing or proposed skill directory.
453
+
454
+ Allowed top-level support directories:
455
+
456
+ - `references/`
457
+ - `templates/`
458
+ - `scripts/`
459
+ - `assets/`
460
+
461
+ Example:
462
+
463
+ ```json
464
+ {
465
+ "action": "write_support_file",
466
+ "skillName": "release-workflow",
467
+ "relativePath": "references/checklist.md",
468
+ "body": "# Release Checklist\n\n- Run release docs.\n- Verify changelog.\n"
469
+ }
470
+ ```
471
+
472
+ Support files are workspace-scoped, path-checked, byte-limited by
473
+ `maxSkillBytes`, scanned, and written atomically.
474
+
475
+ ## Skill writes
476
+
477
+ Skill Workshop writes only under:
478
+
479
+ ```text
480
+ <workspace>/skills/<normalized-skill-name>/
481
+ ```
482
+
483
+ Skill names are normalized:
484
+
485
+ - lowercased
486
+ - non `[a-z0-9_-]` runs become `-`
487
+ - leading/trailing non-alphanumerics are removed
488
+ - max length is 80 characters
489
+ - final name must match `[a-z0-9][a-z0-9_-]{1,79}`
490
+
491
+ For `create`:
492
+
493
+ - if the skill does not exist, Skill Workshop writes a new `SKILL.md`
494
+ - if it already exists, Skill Workshop appends the body to `## Workflow`
495
+
496
+ For `append`:
497
+
498
+ - if the skill exists, Skill Workshop appends to the requested section
499
+ - if it does not exist, Skill Workshop creates a minimal skill then appends
500
+
501
+ For `replace`:
502
+
503
+ - the skill must already exist
504
+ - `oldText` must be present exactly
505
+ - only the first exact match is replaced
506
+
507
+ All writes are atomic and refresh the in-memory skills snapshot immediately, so
508
+ the new or updated skill can become visible without a Gateway restart.
509
+
510
+ ## Safety model
511
+
512
+ Skill Workshop has a safety scanner on generated `SKILL.md` content and support
513
+ files.
514
+
515
+ Critical findings quarantine proposals:
516
+
517
+ | Rule id | Blocks content that... |
518
+ | -------------------------------------- | --------------------------------------------------------------------- |
519
+ | `prompt-injection-ignore-instructions` | tells the agent to ignore prior/higher instructions |
520
+ | `prompt-injection-system` | references system prompts, developer messages, or hidden instructions |
521
+ | `prompt-injection-tool` | encourages bypassing tool permission/approval |
522
+ | `shell-pipe-to-shell` | includes `curl`/`wget` piped into `sh`, `bash`, or `zsh` |
523
+ | `secret-exfiltration` | appears to send env/process env data over the network |
524
+
525
+ Warn findings are retained but do not block by themselves:
526
+
527
+ | Rule id | Warns on... |
528
+ | -------------------- | -------------------------------- |
529
+ | `destructive-delete` | broad `rm -rf` style commands |
530
+ | `unsafe-permissions` | `chmod 777` style permission use |
531
+
532
+ Quarantined proposals:
533
+
534
+ - keep `scanFindings`
535
+ - keep `quarantineReason`
536
+ - appear in `list_quarantine`
537
+ - cannot be applied through `apply`
538
+
539
+ To recover from a quarantined proposal, create a new safe proposal with the
540
+ unsafe content removed. Do not edit the store JSON by hand.
541
+
542
+ ## Prompt guidance
543
+
544
+ When enabled, Skill Workshop injects a short prompt section that tells the agent
545
+ to use `skill_workshop` for durable procedural memory.
546
+
547
+ The guidance emphasizes:
548
+
549
+ - procedures, not facts/preferences
550
+ - user corrections
551
+ - non-obvious successful procedures
552
+ - recurring pitfalls
553
+ - stale/thin/wrong skill repair through append/replace
554
+ - saving reusable procedure after long tool loops or hard fixes
555
+ - short imperative skill text
556
+ - no transcript dumps
557
+
558
+ The write mode text changes with `approvalPolicy`:
559
+
560
+ - pending mode: queue suggestions; use `apply` after explicit approval
561
+ - auto mode: apply safe workspace-skill updates unless `apply: false` queues instead
562
+
563
+ ## Costs and runtime behavior
564
+
565
+ Heuristic capture does not call a model.
566
+
567
+ LLM review uses an embedded run on the active/default agent model. It is
568
+ threshold-based so it does not run on every turn by default.
569
+
570
+ The reviewer:
571
+
572
+ - uses the same configured provider/model context when available
573
+ - falls back to runtime agent defaults
574
+ - has `reviewTimeoutMs`
575
+ - uses lightweight bootstrap context
576
+ - has no tools
577
+ - writes nothing directly
578
+ - can only emit a proposal that goes through the normal scanner and
579
+ approval/quarantine path
580
+
581
+ If the reviewer fails, times out, or returns invalid JSON, the plugin logs a
582
+ warning/debug message and skips that review pass.
583
+
584
+ ## Operating patterns
585
+
586
+ Use Skill Workshop when the user says:
587
+
588
+ - "next time, do X"
589
+ - "from now on, prefer Y"
590
+ - "make sure to verify Z"
591
+ - "save this as a workflow"
592
+ - "this took a while; remember the process"
593
+ - "update the local skill for this"
594
+
595
+ Good skill text:
596
+
597
+ ```markdown
598
+ ## Workflow
599
+
600
+ - Verify the GIF URL resolves to `image/gif`.
601
+ - Confirm the file has multiple frames.
602
+ - Record source URL, license, and attribution.
603
+ - Store a local copy when the asset will ship with the product.
604
+ - Verify the local asset renders in the target UI before final reply.
605
+ ```
606
+
607
+ Poor skill text:
608
+
609
+ ```markdown
610
+ The user asked about a GIF and I searched two websites. Then one was blocked by
611
+ Cloudflare. The final answer said to check attribution.
612
+ ```
613
+
614
+ Reasons the poor version should not be saved:
615
+
616
+ - transcript-shaped
617
+ - not imperative
618
+ - includes noisy one-off details
619
+ - does not tell the next agent what to do
620
+
621
+ ## Debugging
622
+
623
+ Check whether the plugin is loaded:
624
+
625
+ ```bash
626
+ nodmix plugins list --enabled
627
+ ```
628
+
629
+ Check proposal counts from an agent/tool context:
630
+
631
+ ```json
632
+ { "action": "status" }
633
+ ```
634
+
635
+ Inspect pending proposals:
636
+
637
+ ```json
638
+ { "action": "list_pending" }
639
+ ```
640
+
641
+ Inspect quarantined proposals:
642
+
643
+ ```json
644
+ { "action": "list_quarantine" }
645
+ ```
646
+
647
+ Common symptoms:
648
+
649
+ | Symptom | Likely cause | Check |
650
+ | ------------------------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
651
+ | Tool is unavailable | Plugin entry is not enabled | `plugins.entries.skill-workshop.enabled` and `nodmix plugins list` |
652
+ | No automatic proposal appears | `autoCapture: false`, `reviewMode: "off"`, or thresholds not met | Config, proposal status, Gateway logs |
653
+ | Heuristic did not capture | User wording did not match correction patterns | Use explicit `skill_workshop.suggest` or enable LLM reviewer |
654
+ | Reviewer did not create a proposal | Reviewer returned `none`, invalid JSON, or timed out | Gateway logs, `reviewTimeoutMs`, thresholds |
655
+ | Proposal is not applied | `approvalPolicy: "pending"` | `list_pending`, then `apply` |
656
+ | Proposal disappeared from pending | Duplicate proposal reused, max pending pruning, or was applied/rejected/quarantined | `status`, `list_pending` with status filters, `list_quarantine` |
657
+ | Skill file exists but model misses it | Skill snapshot not refreshed or skill gating excludes it | `nodmix skills` status and workspace skill eligibility |
658
+
659
+ Relevant logs:
660
+
661
+ - `skill-workshop: queued <skill>`
662
+ - `skill-workshop: applied <skill>`
663
+ - `skill-workshop: quarantined <skill>`
664
+ - `skill-workshop: heuristic capture skipped: ...`
665
+ - `skill-workshop: reviewer skipped: ...`
666
+ - `skill-workshop: reviewer found no update`
667
+
668
+ ## QA scenarios
669
+
670
+ Repo-backed QA scenarios:
671
+
672
+ - `qa/scenarios/plugins/skill-workshop-animated-gif-autocreate.md`
673
+ - `qa/scenarios/plugins/skill-workshop-pending-approval.md`
674
+ - `qa/scenarios/plugins/skill-workshop-reviewer-autonomous.md`
675
+
676
+ Run the deterministic coverage:
677
+
678
+ ```bash
679
+ pnpm nodmix qa suite \
680
+ --scenario skill-workshop-animated-gif-autocreate \
681
+ --scenario skill-workshop-pending-approval \
682
+ --concurrency 1
683
+ ```
684
+
685
+ Run reviewer coverage:
686
+
687
+ ```bash
688
+ pnpm nodmix qa suite \
689
+ --scenario skill-workshop-reviewer-autonomous \
690
+ --concurrency 1
691
+ ```
692
+
693
+ The reviewer scenario is intentionally separate because it enables
694
+ `reviewMode: "llm"` and exercises the embedded reviewer pass.
695
+
696
+ ## When not to enable auto apply
697
+
698
+ Avoid `approvalPolicy: "auto"` when:
699
+
700
+ - the workspace contains sensitive procedures
701
+ - the agent is working on untrusted input
702
+ - skills are shared across a broad team
703
+ - you are still tuning prompts or scanner rules
704
+ - the model frequently handles hostile web/email content
705
+
706
+ Use pending mode first. Switch to auto mode only after reviewing the kind of
707
+ skills the agent proposes in that workspace.
708
+
709
+ ## Related docs
710
+
711
+ - [Skills](/tools/skills)
712
+ - [Plugins](/tools/plugin)
713
+ - [Testing](/reference/test)