@hera-al/server 1.6.1

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 (348) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +325 -0
  3. package/bundled/apple-notes/SKILL.md +77 -0
  4. package/bundled/apple-reminders/SKILL.md +96 -0
  5. package/bundled/blogwatcher/SKILL.md +69 -0
  6. package/bundled/camsnap/SKILL.md +45 -0
  7. package/bundled/discord/SKILL.md +578 -0
  8. package/bundled/gemini/SKILL.md +43 -0
  9. package/bundled/gifgrep/SKILL.md +79 -0
  10. package/bundled/github/SKILL.md +77 -0
  11. package/bundled/gog/SKILL.md +116 -0
  12. package/bundled/goplaces/SKILL.md +52 -0
  13. package/bundled/himalaya/SKILL.md +257 -0
  14. package/bundled/himalaya/references/configuration.md +184 -0
  15. package/bundled/himalaya/references/message-composition.md +199 -0
  16. package/bundled/homebrew/SKILL.md +82 -0
  17. package/bundled/local-places/SERVER_README.md +101 -0
  18. package/bundled/local-places/SKILL.md +102 -0
  19. package/bundled/local-places/pyproject.toml +21 -0
  20. package/bundled/local-places/src/local_places/__init__.py +2 -0
  21. package/bundled/local-places/src/local_places/google_places.py +314 -0
  22. package/bundled/local-places/src/local_places/main.py +65 -0
  23. package/bundled/local-places/src/local_places/schemas.py +107 -0
  24. package/bundled/markitdown/SKILL.md +96 -0
  25. package/bundled/mcporter/SKILL.md +61 -0
  26. package/bundled/merge-pr/SKILL.md +187 -0
  27. package/bundled/merge-pr/agents/openai.yaml +4 -0
  28. package/bundled/nano-banana-pro/SKILL.md +58 -0
  29. package/bundled/nano-banana-pro/scripts/generate_image.py +184 -0
  30. package/bundled/nano-pdf/SKILL.md +38 -0
  31. package/bundled/open-prose/README.md +25 -0
  32. package/bundled/open-prose/index.ts +5 -0
  33. package/bundled/open-prose/openclaw.plugin.json +11 -0
  34. package/bundled/open-prose/package.json +15 -0
  35. package/bundled/open-prose/skills/prose/LICENSE +21 -0
  36. package/bundled/open-prose/skills/prose/SKILL.md +323 -0
  37. package/bundled/open-prose/skills/prose/alt-borges.md +141 -0
  38. package/bundled/open-prose/skills/prose/alts/arabian-nights.md +358 -0
  39. package/bundled/open-prose/skills/prose/alts/borges.md +360 -0
  40. package/bundled/open-prose/skills/prose/alts/folk.md +322 -0
  41. package/bundled/open-prose/skills/prose/alts/homer.md +346 -0
  42. package/bundled/open-prose/skills/prose/alts/kafka.md +373 -0
  43. package/bundled/open-prose/skills/prose/compiler.md +2971 -0
  44. package/bundled/open-prose/skills/prose/examples/01-hello-world.prose +4 -0
  45. package/bundled/open-prose/skills/prose/examples/02-research-and-summarize.prose +6 -0
  46. package/bundled/open-prose/skills/prose/examples/03-code-review.prose +17 -0
  47. package/bundled/open-prose/skills/prose/examples/04-write-and-refine.prose +14 -0
  48. package/bundled/open-prose/skills/prose/examples/05-debug-issue.prose +20 -0
  49. package/bundled/open-prose/skills/prose/examples/06-explain-codebase.prose +17 -0
  50. package/bundled/open-prose/skills/prose/examples/07-refactor.prose +20 -0
  51. package/bundled/open-prose/skills/prose/examples/08-blog-post.prose +20 -0
  52. package/bundled/open-prose/skills/prose/examples/09-research-with-agents.prose +25 -0
  53. package/bundled/open-prose/skills/prose/examples/10-code-review-agents.prose +32 -0
  54. package/bundled/open-prose/skills/prose/examples/11-skills-and-imports.prose +27 -0
  55. package/bundled/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +43 -0
  56. package/bundled/open-prose/skills/prose/examples/13-variables-and-context.prose +51 -0
  57. package/bundled/open-prose/skills/prose/examples/14-composition-blocks.prose +48 -0
  58. package/bundled/open-prose/skills/prose/examples/15-inline-sequences.prose +23 -0
  59. package/bundled/open-prose/skills/prose/examples/16-parallel-reviews.prose +19 -0
  60. package/bundled/open-prose/skills/prose/examples/17-parallel-research.prose +19 -0
  61. package/bundled/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +36 -0
  62. package/bundled/open-prose/skills/prose/examples/19-advanced-parallel.prose +71 -0
  63. package/bundled/open-prose/skills/prose/examples/20-fixed-loops.prose +20 -0
  64. package/bundled/open-prose/skills/prose/examples/21-pipeline-operations.prose +35 -0
  65. package/bundled/open-prose/skills/prose/examples/22-error-handling.prose +51 -0
  66. package/bundled/open-prose/skills/prose/examples/23-retry-with-backoff.prose +63 -0
  67. package/bundled/open-prose/skills/prose/examples/24-choice-blocks.prose +86 -0
  68. package/bundled/open-prose/skills/prose/examples/25-conditionals.prose +114 -0
  69. package/bundled/open-prose/skills/prose/examples/26-parameterized-blocks.prose +100 -0
  70. package/bundled/open-prose/skills/prose/examples/27-string-interpolation.prose +105 -0
  71. package/bundled/open-prose/skills/prose/examples/28-automated-pr-review.prose +37 -0
  72. package/bundled/open-prose/skills/prose/examples/28-gas-town.prose +1572 -0
  73. package/bundled/open-prose/skills/prose/examples/29-captains-chair.prose +218 -0
  74. package/bundled/open-prose/skills/prose/examples/30-captains-chair-simple.prose +42 -0
  75. package/bundled/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +145 -0
  76. package/bundled/open-prose/skills/prose/examples/33-pr-review-autofix.prose +168 -0
  77. package/bundled/open-prose/skills/prose/examples/34-content-pipeline.prose +204 -0
  78. package/bundled/open-prose/skills/prose/examples/35-feature-factory.prose +296 -0
  79. package/bundled/open-prose/skills/prose/examples/36-bug-hunter.prose +237 -0
  80. package/bundled/open-prose/skills/prose/examples/37-the-forge.prose +1474 -0
  81. package/bundled/open-prose/skills/prose/examples/38-skill-scan.prose +455 -0
  82. package/bundled/open-prose/skills/prose/examples/39-architect-by-simulation.prose +277 -0
  83. package/bundled/open-prose/skills/prose/examples/40-rlm-self-refine.prose +32 -0
  84. package/bundled/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +38 -0
  85. package/bundled/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +46 -0
  86. package/bundled/open-prose/skills/prose/examples/43-rlm-pairwise.prose +50 -0
  87. package/bundled/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +261 -0
  88. package/bundled/open-prose/skills/prose/examples/45-plugin-release.prose +159 -0
  89. package/bundled/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +637 -0
  90. package/bundled/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +148 -0
  91. package/bundled/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +225 -0
  92. package/bundled/open-prose/skills/prose/examples/47-language-self-improvement.prose +356 -0
  93. package/bundled/open-prose/skills/prose/examples/48-habit-miner.prose +445 -0
  94. package/bundled/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +210 -0
  95. package/bundled/open-prose/skills/prose/examples/README.md +391 -0
  96. package/bundled/open-prose/skills/prose/examples/roadmap/README.md +22 -0
  97. package/bundled/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +20 -0
  98. package/bundled/open-prose/skills/prose/examples/roadmap/parallel-review.prose +18 -0
  99. package/bundled/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +17 -0
  100. package/bundled/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +223 -0
  101. package/bundled/open-prose/skills/prose/guidance/antipatterns.md +951 -0
  102. package/bundled/open-prose/skills/prose/guidance/patterns.md +700 -0
  103. package/bundled/open-prose/skills/prose/guidance/system-prompt.md +180 -0
  104. package/bundled/open-prose/skills/prose/help.md +144 -0
  105. package/bundled/open-prose/skills/prose/lib/README.md +108 -0
  106. package/bundled/open-prose/skills/prose/lib/calibrator.prose +215 -0
  107. package/bundled/open-prose/skills/prose/lib/cost-analyzer.prose +174 -0
  108. package/bundled/open-prose/skills/prose/lib/error-forensics.prose +250 -0
  109. package/bundled/open-prose/skills/prose/lib/inspector.prose +196 -0
  110. package/bundled/open-prose/skills/prose/lib/profiler.prose +460 -0
  111. package/bundled/open-prose/skills/prose/lib/program-improver.prose +275 -0
  112. package/bundled/open-prose/skills/prose/lib/project-memory.prose +118 -0
  113. package/bundled/open-prose/skills/prose/lib/user-memory.prose +93 -0
  114. package/bundled/open-prose/skills/prose/lib/vm-improver.prose +243 -0
  115. package/bundled/open-prose/skills/prose/primitives/session.md +593 -0
  116. package/bundled/open-prose/skills/prose/prose.md +1237 -0
  117. package/bundled/open-prose/skills/prose/state/filesystem.md +498 -0
  118. package/bundled/open-prose/skills/prose/state/in-context.md +384 -0
  119. package/bundled/open-prose/skills/prose/state/postgres.md +880 -0
  120. package/bundled/open-prose/skills/prose/state/sqlite.md +574 -0
  121. package/bundled/peekaboo/SKILL.md +190 -0
  122. package/bundled/prepare-pr/SKILL.md +277 -0
  123. package/bundled/prepare-pr/agents/openai.yaml +4 -0
  124. package/bundled/review-pr/SKILL.md +228 -0
  125. package/bundled/review-pr/agents/openai.yaml +4 -0
  126. package/bundled/sag/SKILL.md +87 -0
  127. package/bundled/skill-creator/SKILL.md +370 -0
  128. package/bundled/skill-creator/license.txt +202 -0
  129. package/bundled/skill-creator/scripts/init_skill.py +378 -0
  130. package/bundled/skill-creator/scripts/package_skill.py +111 -0
  131. package/bundled/skill-creator/scripts/quick_validate.py +101 -0
  132. package/bundled/spotify-player/SKILL.md +64 -0
  133. package/bundled/ssh/SKILL.md +119 -0
  134. package/bundled/summarize/SKILL.md +87 -0
  135. package/bundled/video-frames/SKILL.md +46 -0
  136. package/bundled/video-frames/scripts/frame.sh +81 -0
  137. package/bundled/voice-call/SKILL.md +45 -0
  138. package/bundled/wacli/SKILL.md +72 -0
  139. package/bundled/weather/SKILL.md +54 -0
  140. package/dist/agent/agent-service.d.ts +88 -0
  141. package/dist/agent/agent-service.js +1 -0
  142. package/dist/agent/message-queue.d.ts +24 -0
  143. package/dist/agent/message-queue.js +1 -0
  144. package/dist/agent/prompt-builder.d.ts +58 -0
  145. package/dist/agent/prompt-builder.js +1 -0
  146. package/dist/agent/session-agent.d.ts +197 -0
  147. package/dist/agent/session-agent.js +1 -0
  148. package/dist/agent/session-db.d.ts +26 -0
  149. package/dist/agent/session-db.js +1 -0
  150. package/dist/agent/session-error-handler.d.ts +37 -0
  151. package/dist/agent/session-error-handler.js +1 -0
  152. package/dist/agent/session-manager.d.ts +19 -0
  153. package/dist/agent/session-manager.js +1 -0
  154. package/dist/agent/workspace-files.d.ts +51 -0
  155. package/dist/agent/workspace-files.js +1 -0
  156. package/dist/auth/auth-middleware.d.ts +9 -0
  157. package/dist/auth/auth-middleware.js +1 -0
  158. package/dist/auth/node-signature-db.d.ts +30 -0
  159. package/dist/auth/node-signature-db.js +1 -0
  160. package/dist/auth/token-db.d.ts +38 -0
  161. package/dist/auth/token-db.js +1 -0
  162. package/dist/browser/browser-service.d.ts +9 -0
  163. package/dist/browser/browser-service.js +1 -0
  164. package/dist/channels/channel.d.ts +2 -0
  165. package/dist/channels/channel.js +1 -0
  166. package/dist/channels/responses.d.ts +21 -0
  167. package/dist/channels/responses.js +1 -0
  168. package/dist/commands/clear.d.ts +7 -0
  169. package/dist/commands/clear.js +1 -0
  170. package/dist/commands/cmd.d.ts +7 -0
  171. package/dist/commands/cmd.js +1 -0
  172. package/dist/commands/coder.d.ts +12 -0
  173. package/dist/commands/coder.js +1 -0
  174. package/dist/commands/command-registry.d.ts +12 -0
  175. package/dist/commands/command-registry.js +1 -0
  176. package/dist/commands/command.d.ts +22 -0
  177. package/dist/commands/command.js +1 -0
  178. package/dist/commands/compact.d.ts +7 -0
  179. package/dist/commands/compact.js +1 -0
  180. package/dist/commands/customsubagents.d.ts +15 -0
  181. package/dist/commands/customsubagents.js +1 -0
  182. package/dist/commands/help.d.ts +9 -0
  183. package/dist/commands/help.js +1 -0
  184. package/dist/commands/mcp.d.ts +9 -0
  185. package/dist/commands/mcp.js +1 -0
  186. package/dist/commands/model.d.ts +22 -0
  187. package/dist/commands/model.js +1 -0
  188. package/dist/commands/models.d.ts +11 -0
  189. package/dist/commands/models.js +1 -0
  190. package/dist/commands/new.d.ts +7 -0
  191. package/dist/commands/new.js +1 -0
  192. package/dist/commands/plugin.d.ts +7 -0
  193. package/dist/commands/plugin.js +1 -0
  194. package/dist/commands/sandbox.d.ts +12 -0
  195. package/dist/commands/sandbox.js +1 -0
  196. package/dist/commands/showtool.d.ts +12 -0
  197. package/dist/commands/showtool.js +1 -0
  198. package/dist/commands/status.d.ts +24 -0
  199. package/dist/commands/status.js +1 -0
  200. package/dist/commands/stop.d.ts +10 -0
  201. package/dist/commands/stop.js +1 -0
  202. package/dist/commands/subagents.d.ts +12 -0
  203. package/dist/commands/subagents.js +1 -0
  204. package/dist/commands/usage.d.ts +25 -0
  205. package/dist/commands/usage.js +1 -0
  206. package/dist/commands/useplugin.d.ts +7 -0
  207. package/dist/commands/useplugin.js +1 -0
  208. package/dist/config-watcher.d.ts +14 -0
  209. package/dist/config-watcher.js +1 -0
  210. package/dist/config.d.ts +267 -0
  211. package/dist/config.js +1 -0
  212. package/dist/cron/cron-service.d.ts +57 -0
  213. package/dist/cron/cron-service.js +1 -0
  214. package/dist/cron/heartbeat-token.d.ts +29 -0
  215. package/dist/cron/heartbeat-token.js +1 -0
  216. package/dist/cron/schedule.d.ts +3 -0
  217. package/dist/cron/schedule.js +1 -0
  218. package/dist/cron/store.d.ts +4 -0
  219. package/dist/cron/store.js +1 -0
  220. package/dist/cron/types.d.ts +47 -0
  221. package/dist/cron/types.js +1 -0
  222. package/dist/gateway/bridge.d.ts +38 -0
  223. package/dist/gateway/bridge.js +1 -0
  224. package/dist/gateway/channel-manager.d.ts +45 -0
  225. package/dist/gateway/channel-manager.js +1 -0
  226. package/dist/gateway/channels/qr-image.d.ts +5 -0
  227. package/dist/gateway/channels/qr-image.js +1 -0
  228. package/dist/gateway/channels/telegram.d.ts +39 -0
  229. package/dist/gateway/channels/telegram.js +1 -0
  230. package/dist/gateway/channels/webchat.d.ts +51 -0
  231. package/dist/gateway/channels/webchat.js +1 -0
  232. package/dist/gateway/channels/whatsapp.d.ts +40 -0
  233. package/dist/gateway/channels/whatsapp.js +1 -0
  234. package/dist/gateway/node-registry.d.ts +38 -0
  235. package/dist/gateway/node-registry.js +1 -0
  236. package/dist/heracli/index.d.ts +3 -0
  237. package/dist/heracli/index.js +2 -0
  238. package/dist/heracli/logs.d.ts +13 -0
  239. package/dist/heracli/logs.js +1 -0
  240. package/dist/heracli/security/audit.d.ts +17 -0
  241. package/dist/heracli/security/audit.js +1 -0
  242. package/dist/heracli/security/checks/channel-policies.d.ts +6 -0
  243. package/dist/heracli/security/checks/channel-policies.js +1 -0
  244. package/dist/heracli/security/checks/credentials.d.ts +6 -0
  245. package/dist/heracli/security/checks/credentials.js +1 -0
  246. package/dist/heracli/security/checks/fs-permissions.d.ts +6 -0
  247. package/dist/heracli/security/checks/fs-permissions.js +1 -0
  248. package/dist/heracli/security/checks/network.d.ts +4 -0
  249. package/dist/heracli/security/checks/network.js +1 -0
  250. package/dist/heracli/security/report.d.ts +4 -0
  251. package/dist/heracli/security/report.js +1 -0
  252. package/dist/index.d.ts +3 -0
  253. package/dist/index.js +2 -0
  254. package/dist/installer/hera.d.ts +3 -0
  255. package/dist/installer/hera.js +2 -0
  256. package/dist/media/message-processor.d.ts +23 -0
  257. package/dist/media/message-processor.js +1 -0
  258. package/dist/memory/memory-manager.d.ts +21 -0
  259. package/dist/memory/memory-manager.js +1 -0
  260. package/dist/memory/memory-provider.d.ts +22 -0
  261. package/dist/memory/memory-provider.js +1 -0
  262. package/dist/memory/memory-search.d.ts +102 -0
  263. package/dist/memory/memory-search.js +1 -0
  264. package/dist/memory/recall-strategies.d.ts +2 -0
  265. package/dist/memory/recall-strategies.js +1 -0
  266. package/dist/nostromo/auth.d.ts +29 -0
  267. package/dist/nostromo/auth.js +1 -0
  268. package/dist/nostromo/nostromo.d.ts +23 -0
  269. package/dist/nostromo/nostromo.js +1 -0
  270. package/dist/nostromo/ui-html-layout.d.ts +3 -0
  271. package/dist/nostromo/ui-html-layout.js +1 -0
  272. package/dist/nostromo/ui-html-modals.d.ts +3 -0
  273. package/dist/nostromo/ui-html-modals.js +1 -0
  274. package/dist/nostromo/ui-js-agent.d.ts +3 -0
  275. package/dist/nostromo/ui-js-agent.js +1 -0
  276. package/dist/nostromo/ui-js-channels.d.ts +3 -0
  277. package/dist/nostromo/ui-js-channels.js +1 -0
  278. package/dist/nostromo/ui-js-competences.d.ts +3 -0
  279. package/dist/nostromo/ui-js-competences.js +1 -0
  280. package/dist/nostromo/ui-js-config.d.ts +3 -0
  281. package/dist/nostromo/ui-js-config.js +1 -0
  282. package/dist/nostromo/ui-js-core.d.ts +3 -0
  283. package/dist/nostromo/ui-js-core.js +1 -0
  284. package/dist/nostromo/ui-js-ops.d.ts +3 -0
  285. package/dist/nostromo/ui-js-ops.js +1 -0
  286. package/dist/nostromo/ui-js-prompts.d.ts +3 -0
  287. package/dist/nostromo/ui-js-prompts.js +1 -0
  288. package/dist/nostromo/ui-styles.d.ts +3 -0
  289. package/dist/nostromo/ui-styles.js +1 -0
  290. package/dist/nostromo/ui.d.ts +2 -0
  291. package/dist/nostromo/ui.js +1 -0
  292. package/dist/server.d.ts +80 -0
  293. package/dist/server.js +1 -0
  294. package/dist/stt/local-whisper.d.ts +9 -0
  295. package/dist/stt/local-whisper.js +1 -0
  296. package/dist/stt/openai-whisper.d.ts +14 -0
  297. package/dist/stt/openai-whisper.js +1 -0
  298. package/dist/stt/stt-loader.d.ts +4 -0
  299. package/dist/stt/stt-loader.js +1 -0
  300. package/dist/stt/stt-provider.d.ts +4 -0
  301. package/dist/stt/stt-provider.js +1 -0
  302. package/dist/tools/browser-tools.d.ts +9 -0
  303. package/dist/tools/browser-tools.js +1 -0
  304. package/dist/tools/cron-tools.d.ts +4 -0
  305. package/dist/tools/cron-tools.js +1 -0
  306. package/dist/tools/memory-tools.d.ts +3 -0
  307. package/dist/tools/memory-tools.js +1 -0
  308. package/dist/tools/message-tools.d.ts +5 -0
  309. package/dist/tools/message-tools.js +1 -0
  310. package/dist/tools/node-tools.d.ts +3 -0
  311. package/dist/tools/node-tools.js +1 -0
  312. package/dist/tools/server-tools.d.ts +2 -0
  313. package/dist/tools/server-tools.js +1 -0
  314. package/dist/tools/tts-tools.d.ts +3 -0
  315. package/dist/tools/tts-tools.js +1 -0
  316. package/dist/tts/tts-service.d.ts +19 -0
  317. package/dist/tts/tts-service.js +1 -0
  318. package/dist/utils/chunk.d.ts +3 -0
  319. package/dist/utils/chunk.js +1 -0
  320. package/dist/utils/logger.d.ts +16 -0
  321. package/dist/utils/logger.js +1 -0
  322. package/dist/utils/markdown/fences.d.ts +11 -0
  323. package/dist/utils/markdown/fences.js +1 -0
  324. package/dist/utils/markdown/ir.d.ts +33 -0
  325. package/dist/utils/markdown/ir.js +1 -0
  326. package/dist/utils/markdown/render.d.ts +19 -0
  327. package/dist/utils/markdown/render.js +1 -0
  328. package/dist/utils/markdown/tables.d.ts +3 -0
  329. package/dist/utils/markdown/tables.js +1 -0
  330. package/dist/utils/media-response.d.ts +29 -0
  331. package/dist/utils/media-response.js +1 -0
  332. package/dist/utils/package-paths.d.ts +5 -0
  333. package/dist/utils/package-paths.js +1 -0
  334. package/dist/utils/telegram-format.d.ts +13 -0
  335. package/dist/utils/telegram-format.js +1 -0
  336. package/installationPkg/.env.example +26 -0
  337. package/installationPkg/AGENTS.md +143 -0
  338. package/installationPkg/BOOTSTRAP.md +45 -0
  339. package/installationPkg/CBINT.json +16 -0
  340. package/installationPkg/HEARTBEAT.md +5 -0
  341. package/installationPkg/IDENTITY.md +7 -0
  342. package/installationPkg/SOUL.md +36 -0
  343. package/installationPkg/SYSTEM_PROMPT.md +55 -0
  344. package/installationPkg/SYSTEM_PROMPT_SUBAGENT.md +40 -0
  345. package/installationPkg/TOOLS.md +36 -0
  346. package/installationPkg/USER.md +11 -0
  347. package/installationPkg/config.example.yaml +291 -0
  348. package/package.json +95 -0
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: peekaboo
3
+ description: Capture and automate macOS UI with the Peekaboo CLI.
4
+ homepage: https://peekaboo.boo
5
+ metadata:
6
+ {
7
+ "openclaw":
8
+ {
9
+ "emoji": "👀",
10
+ "os": ["darwin"],
11
+ "requires": { "bins": ["peekaboo"] },
12
+ "install":
13
+ [
14
+ {
15
+ "id": "brew",
16
+ "kind": "brew",
17
+ "formula": "steipete/tap/peekaboo",
18
+ "bins": ["peekaboo"],
19
+ "label": "Install Peekaboo (brew)",
20
+ },
21
+ ],
22
+ },
23
+ }
24
+ ---
25
+
26
+ # Peekaboo
27
+
28
+ Peekaboo is a full macOS UI automation CLI: capture/inspect screens, target UI
29
+ elements, drive input, and manage apps/windows/menus. Commands share a snapshot
30
+ cache and support `--json`/`-j` for scripting. Run `peekaboo` or
31
+ `peekaboo <cmd> --help` for flags; `peekaboo --version` prints build metadata.
32
+ Tip: run via `polter peekaboo` to ensure fresh builds.
33
+
34
+ ## Features (all CLI capabilities, excluding agent/MCP)
35
+
36
+ Core
37
+
38
+ - `bridge`: inspect Peekaboo Bridge host connectivity
39
+ - `capture`: live capture or video ingest + frame extraction
40
+ - `clean`: prune snapshot cache and temp files
41
+ - `config`: init/show/edit/validate, providers, models, credentials
42
+ - `image`: capture screenshots (screen/window/menu bar regions)
43
+ - `learn`: print the full agent guide + tool catalog
44
+ - `list`: apps, windows, screens, menubar, permissions
45
+ - `permissions`: check Screen Recording/Accessibility status
46
+ - `run`: execute `.peekaboo.json` scripts
47
+ - `sleep`: pause execution for a duration
48
+ - `tools`: list available tools with filtering/display options
49
+
50
+ Interaction
51
+
52
+ - `click`: target by ID/query/coords with smart waits
53
+ - `drag`: drag & drop across elements/coords/Dock
54
+ - `hotkey`: modifier combos like `cmd,shift,t`
55
+ - `move`: cursor positioning with optional smoothing
56
+ - `paste`: set clipboard -> paste -> restore
57
+ - `press`: special-key sequences with repeats
58
+ - `scroll`: directional scrolling (targeted + smooth)
59
+ - `swipe`: gesture-style drags between targets
60
+ - `type`: text + control keys (`--clear`, delays)
61
+
62
+ System
63
+
64
+ - `app`: launch/quit/relaunch/hide/unhide/switch/list apps
65
+ - `clipboard`: read/write clipboard (text/images/files)
66
+ - `dialog`: click/input/file/dismiss/list system dialogs
67
+ - `dock`: launch/right-click/hide/show/list Dock items
68
+ - `menu`: click/list application menus + menu extras
69
+ - `menubar`: list/click status bar items
70
+ - `open`: enhanced `open` with app targeting + JSON payloads
71
+ - `space`: list/switch/move-window (Spaces)
72
+ - `visualizer`: exercise Peekaboo visual feedback animations
73
+ - `window`: close/minimize/maximize/move/resize/focus/list
74
+
75
+ Vision
76
+
77
+ - `see`: annotated UI maps, snapshot IDs, optional analysis
78
+
79
+ Global runtime flags
80
+
81
+ - `--json`/`-j`, `--verbose`/`-v`, `--log-level <level>`
82
+ - `--no-remote`, `--bridge-socket <path>`
83
+
84
+ ## Quickstart (happy path)
85
+
86
+ ```bash
87
+ peekaboo permissions
88
+ peekaboo list apps --json
89
+ peekaboo see --annotate --path /tmp/peekaboo-see.png
90
+ peekaboo click --on B1
91
+ peekaboo type "Hello" --return
92
+ ```
93
+
94
+ ## Common targeting parameters (most interaction commands)
95
+
96
+ - App/window: `--app`, `--pid`, `--window-title`, `--window-id`, `--window-index`
97
+ - Snapshot targeting: `--snapshot` (ID from `see`; defaults to latest)
98
+ - Element/coords: `--on`/`--id` (element ID), `--coords x,y`
99
+ - Focus control: `--no-auto-focus`, `--space-switch`, `--bring-to-current-space`,
100
+ `--focus-timeout-seconds`, `--focus-retry-count`
101
+
102
+ ## Common capture parameters
103
+
104
+ - Output: `--path`, `--format png|jpg`, `--retina`
105
+ - Targeting: `--mode screen|window|frontmost`, `--screen-index`,
106
+ `--window-title`, `--window-id`
107
+ - Analysis: `--analyze "prompt"`, `--annotate`
108
+ - Capture engine: `--capture-engine auto|classic|cg|modern|sckit`
109
+
110
+ ## Common motion/typing parameters
111
+
112
+ - Timing: `--duration` (drag/swipe), `--steps`, `--delay` (type/scroll/press)
113
+ - Human-ish movement: `--profile human|linear`, `--wpm` (typing)
114
+ - Scroll: `--direction up|down|left|right`, `--amount <ticks>`, `--smooth`
115
+
116
+ ## Examples
117
+
118
+ ### See -> click -> type (most reliable flow)
119
+
120
+ ```bash
121
+ peekaboo see --app Safari --window-title "Login" --annotate --path /tmp/see.png
122
+ peekaboo click --on B3 --app Safari
123
+ peekaboo type "user@example.com" --app Safari
124
+ peekaboo press tab --count 1 --app Safari
125
+ peekaboo type "supersecret" --app Safari --return
126
+ ```
127
+
128
+ ### Target by window id
129
+
130
+ ```bash
131
+ peekaboo list windows --app "Visual Studio Code" --json
132
+ peekaboo click --window-id 12345 --coords 120,160
133
+ peekaboo type "Hello from Peekaboo" --window-id 12345
134
+ ```
135
+
136
+ ### Capture screenshots + analyze
137
+
138
+ ```bash
139
+ peekaboo image --mode screen --screen-index 0 --retina --path /tmp/screen.png
140
+ peekaboo image --app Safari --window-title "Dashboard" --analyze "Summarize KPIs"
141
+ peekaboo see --mode screen --screen-index 0 --analyze "Summarize the dashboard"
142
+ ```
143
+
144
+ ### Live capture (motion-aware)
145
+
146
+ ```bash
147
+ peekaboo capture live --mode region --region 100,100,800,600 --duration 30 \
148
+ --active-fps 8 --idle-fps 2 --highlight-changes --path /tmp/capture
149
+ ```
150
+
151
+ ### App + window management
152
+
153
+ ```bash
154
+ peekaboo app launch "Safari" --open https://example.com
155
+ peekaboo window focus --app Safari --window-title "Example"
156
+ peekaboo window set-bounds --app Safari --x 50 --y 50 --width 1200 --height 800
157
+ peekaboo app quit --app Safari
158
+ ```
159
+
160
+ ### Menus, menubar, dock
161
+
162
+ ```bash
163
+ peekaboo menu click --app Safari --item "New Window"
164
+ peekaboo menu click --app TextEdit --path "Format > Font > Show Fonts"
165
+ peekaboo menu click-extra --title "WiFi"
166
+ peekaboo dock launch Safari
167
+ peekaboo menubar list --json
168
+ ```
169
+
170
+ ### Mouse + gesture input
171
+
172
+ ```bash
173
+ peekaboo move 500,300 --smooth
174
+ peekaboo drag --from B1 --to T2
175
+ peekaboo swipe --from-coords 100,500 --to-coords 100,200 --duration 800
176
+ peekaboo scroll --direction down --amount 6 --smooth
177
+ ```
178
+
179
+ ### Keyboard input
180
+
181
+ ```bash
182
+ peekaboo hotkey --keys "cmd,shift,t"
183
+ peekaboo press escape
184
+ peekaboo type "Line 1\nLine 2" --delay 10
185
+ ```
186
+
187
+ Notes
188
+
189
+ - Requires Screen Recording + Accessibility permissions.
190
+ - Use `peekaboo see --annotate` to identify targets before clicking.
@@ -0,0 +1,277 @@
1
+ ---
2
+ name: prepare-pr
3
+ description: Prepare a GitHub PR for merge by rebasing onto main, fixing review findings, running gates, committing fixes, and pushing to the PR head branch. Use after /reviewpr. Never merge or push to main.
4
+ ---
5
+
6
+ # Prepare PR
7
+
8
+ ## Overview
9
+
10
+ Prepare a PR branch for merge with review fixes, green gates, and an updated head branch.
11
+
12
+ ## Inputs
13
+
14
+ - Ask for PR number or URL.
15
+ - If missing, auto-detect from conversation.
16
+ - If ambiguous, ask.
17
+
18
+ ## Safety
19
+
20
+ - Never push to `main` or `origin/main`. Push only to the PR head branch.
21
+ - Never run `git push` without specifying remote and branch explicitly. Do not run bare `git push`.
22
+ - Do not run gateway stop commands. Do not kill processes. Do not touch port 18792.
23
+ - Do not run `git clean -fdx`.
24
+ - Do not run `git add -A` or `git add .`. Stage only specific files changed.
25
+
26
+ ## Execution Rule
27
+
28
+ - Execute the workflow. Do not stop after printing the TODO checklist.
29
+ - If delegating, require the delegate to run commands and capture outputs.
30
+
31
+ ## Known Footguns
32
+
33
+ - If you see "fatal: not a git repository", you are in the wrong directory. Use `~/dev/openclaw` if available; otherwise ask user.
34
+ - Do not run `git clean -fdx`.
35
+ - Do not run `git add -A` or `git add .`.
36
+
37
+ ## Completion Criteria
38
+
39
+ - Rebase PR commits onto `origin/main`.
40
+ - Fix all BLOCKER and IMPORTANT items from `.local/review.md`.
41
+ - Run required gates and pass (docs-only PRs may skip `pnpm test` when high-confidence docs-only criteria are met and documented).
42
+ - Commit prep changes.
43
+ - Push the updated HEAD back to the PR head branch.
44
+ - Write `.local/prep.md` with a prep summary.
45
+ - Output exactly: `PR is ready for /mergepr`.
46
+
47
+ ## First: Create a TODO Checklist
48
+
49
+ Create a checklist of all prep steps, print it, then continue and execute the commands.
50
+
51
+ ## Setup: Use a Worktree
52
+
53
+ Use an isolated worktree for all prep work.
54
+
55
+ ```sh
56
+ cd ~/openclaw
57
+ # Sanity: confirm you are in the repo
58
+ git rev-parse --show-toplevel
59
+
60
+ WORKTREE_DIR=".worktrees/pr-<PR>"
61
+ ```
62
+
63
+ Run all commands inside the worktree directory.
64
+
65
+ ## Load Review Findings (Mandatory)
66
+
67
+ ```sh
68
+ if [ -f .local/review.md ]; then
69
+ echo "Found review findings from /reviewpr"
70
+ else
71
+ echo "Missing .local/review.md. Run /reviewpr first and save findings."
72
+ exit 1
73
+ fi
74
+
75
+ # Read it
76
+ sed -n '1,200p' .local/review.md
77
+ ```
78
+
79
+ ## Steps
80
+
81
+ 1. Identify PR meta (author, head branch, head repo URL)
82
+
83
+ ```sh
84
+ gh pr view <PR> --json number,title,author,headRefName,baseRefName,headRepository,body --jq '{number,title,author:.author.login,head:.headRefName,base:.baseRefName,headRepo:.headRepository.nameWithOwner,body}'
85
+ contrib=$(gh pr view <PR> --json author --jq .author.login)
86
+ head=$(gh pr view <PR> --json headRefName --jq .headRefName)
87
+ head_repo_url=$(gh pr view <PR> --json headRepository --jq .headRepository.url)
88
+ ```
89
+
90
+ 2. Fetch the PR branch tip into a local ref
91
+
92
+ ```sh
93
+ git fetch origin pull/<PR>/head:pr-<PR>
94
+ ```
95
+
96
+ 3. Rebase PR commits onto latest main
97
+
98
+ ```sh
99
+ # Move worktree to the PR tip first
100
+ git reset --hard pr-<PR>
101
+
102
+ # Rebase onto current main
103
+ git fetch origin main
104
+ git rebase origin/main
105
+ ```
106
+
107
+ If conflicts happen:
108
+
109
+ - Resolve each conflicted file.
110
+ - Run `git add <resolved_file>` for each file.
111
+ - Run `git rebase --continue`.
112
+
113
+ If the rebase gets confusing or you resolve conflicts 3 or more times, stop and report.
114
+
115
+ 4. Fix issues from `.local/review.md`
116
+
117
+ - Fix all BLOCKER and IMPORTANT items.
118
+ - NITs are optional.
119
+ - Keep scope tight.
120
+
121
+ Keep a running log in `.local/prep.md`:
122
+
123
+ - List which review items you fixed.
124
+ - List which files you touched.
125
+ - Note behavior changes.
126
+
127
+ 5. Update `CHANGELOG.md` if flagged in review
128
+
129
+ Check `.local/review.md` section H for guidance.
130
+ If flagged and user-facing:
131
+
132
+ - Check if `CHANGELOG.md` exists.
133
+
134
+ ```sh
135
+ ls CHANGELOG.md 2>/dev/null
136
+ ```
137
+
138
+ - Follow existing format.
139
+ - Add a concise entry with PR number and contributor.
140
+
141
+ 6. Update docs if flagged in review
142
+
143
+ Check `.local/review.md` section G for guidance.
144
+ If flagged, update only docs related to the PR changes.
145
+
146
+ 7. Commit prep fixes
147
+
148
+ Stage only specific files:
149
+
150
+ ```sh
151
+ git add <file1> <file2> ...
152
+ ```
153
+
154
+ Preferred commit tool:
155
+
156
+ ```sh
157
+ committer "fix: <summary> (#<PR>) (thanks @$contrib)" <changed files>
158
+ ```
159
+
160
+ If `committer` is not found:
161
+
162
+ ```sh
163
+ git commit -m "fix: <summary> (#<PR>) (thanks @$contrib)"
164
+ ```
165
+
166
+ 8. Decide verification mode and run required gates before pushing
167
+
168
+ If you are highly confident the change is docs-only, you may skip `pnpm test`.
169
+
170
+ High-confidence docs-only criteria (all must be true):
171
+
172
+ - Every changed file is documentation-only (`docs/**`, `README*.md`, `CHANGELOG.md`, `*.md`, `*.mdx`, `mintlify.json`, `docs.json`).
173
+ - No code, runtime, test, dependency, or build config files changed (`src/**`, `extensions/**`, `apps/**`, `package.json`, lockfiles, TS/JS config, test files, scripts).
174
+ - `.local/review.md` does not call for non-doc behavior fixes.
175
+
176
+ Suggested check:
177
+
178
+ ```sh
179
+ changed_files=$(git diff --name-only origin/main...HEAD)
180
+ non_docs=$(printf "%s\n" "$changed_files" | grep -Ev '^(docs/|README.*\.md$|CHANGELOG\.md$|.*\.md$|.*\.mdx$|mintlify\.json$|docs\.json$)' || true)
181
+
182
+ docs_only=false
183
+ if [ -n "$changed_files" ] && [ -z "$non_docs" ]; then
184
+ docs_only=true
185
+ fi
186
+
187
+ echo "docs_only=$docs_only"
188
+ ```
189
+
190
+ Run required gates:
191
+
192
+ ```sh
193
+ pnpm install
194
+ pnpm build
195
+ pnpm ui:build
196
+ pnpm check
197
+
198
+ if [ "$docs_only" = "true" ]; then
199
+ echo "Docs-only change detected with high confidence; skipping pnpm test." | tee -a .local/prep.md
200
+ else
201
+ pnpm test
202
+ fi
203
+ ```
204
+
205
+ Require all required gates to pass. If something fails, fix, commit, and rerun. Allow at most 3 fix and rerun cycles. If gates still fail after 3 attempts, stop and report the failures. Do not loop indefinitely.
206
+
207
+ 9. Push updates back to the PR head branch
208
+
209
+ ```sh
210
+ # Ensure remote for PR head exists
211
+ git remote add prhead "$head_repo_url.git" 2>/dev/null || git remote set-url prhead "$head_repo_url.git"
212
+
213
+ # Use force with lease after rebase
214
+ # Double check: $head must NOT be "main" or "master"
215
+ echo "Pushing to branch: $head"
216
+ if [ "$head" = "main" ] || [ "$head" = "master" ]; then
217
+ echo "ERROR: head branch is main/master. This is wrong. Stopping."
218
+ exit 1
219
+ fi
220
+ git push --force-with-lease prhead HEAD:$head
221
+ ```
222
+
223
+ 10. Verify PR is not behind main (Mandatory)
224
+
225
+ ```sh
226
+ git fetch origin main
227
+ git fetch origin pull/<PR>/head:pr-<PR>-verify --force
228
+ git merge-base --is-ancestor origin/main pr-<PR>-verify && echo "PR is up to date with main" || echo "ERROR: PR is still behind main, rebase again"
229
+ git branch -D pr-<PR>-verify 2>/dev/null || true
230
+ ```
231
+
232
+ If still behind main, repeat steps 2 through 9.
233
+
234
+ 11. Write prep summary artifacts (Mandatory)
235
+
236
+ Update `.local/prep.md` with:
237
+
238
+ - Current HEAD sha from `git rev-parse HEAD`.
239
+ - Short bullet list of changes.
240
+ - Gate results.
241
+ - Push confirmation.
242
+ - Rebase verification result.
243
+
244
+ Create or overwrite `.local/prep.md` and verify it exists and is non-empty:
245
+
246
+ ```sh
247
+ git rev-parse HEAD
248
+ ls -la .local/prep.md
249
+ wc -l .local/prep.md
250
+ ```
251
+
252
+ 12. Output
253
+
254
+ Include a diff stat summary:
255
+
256
+ ```sh
257
+ git diff --stat origin/main..HEAD
258
+ git diff --shortstat origin/main..HEAD
259
+ ```
260
+
261
+ Report totals: X files changed, Y insertions(+), Z deletions(-).
262
+
263
+ If gates passed and push succeeded, print exactly:
264
+
265
+ ```
266
+ PR is ready for /mergepr
267
+ ```
268
+
269
+ Otherwise, list remaining failures and stop.
270
+
271
+ ## Guardrails
272
+
273
+ - Worktree only.
274
+ - Do not delete the worktree on success. `/mergepr` may reuse it.
275
+ - Do not run `gh pr merge`.
276
+ - Never push to main. Only push to the PR head branch.
277
+ - Run and pass all required gates before pushing. `pnpm test` may be skipped only for high-confidence docs-only changes, and the skip must be explicitly recorded in `.local/prep.md`.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Prepare PR"
3
+ short_description: "Prepare GitHub PRs for merge"
4
+ default_prompt: "Use $prepare-pr to prep a GitHub PR for merge without merging."
@@ -0,0 +1,228 @@
1
+ ---
2
+ name: review-pr
3
+ description: Review-only GitHub pull request analysis with the gh CLI. Use when asked to review a PR, provide structured feedback, or assess readiness to land. Do not merge, push, or make code changes you intend to keep.
4
+ ---
5
+
6
+ # Review PR
7
+
8
+ ## Overview
9
+
10
+ Perform a thorough review-only PR assessment and return a structured recommendation on readiness for /preparepr.
11
+
12
+ ## Inputs
13
+
14
+ - Ask for PR number or URL.
15
+ - If missing, always ask. Never auto-detect from conversation.
16
+ - If ambiguous, ask.
17
+
18
+ ## Safety
19
+
20
+ - Never push to `main` or `origin/main`, not during review, not ever.
21
+ - Do not run `git push` at all during review. Treat review as read only.
22
+ - Do not stop or kill the gateway. Do not run gateway stop commands. Do not kill processes on port 18792.
23
+
24
+ ## Execution Rule
25
+
26
+ - Execute the workflow. Do not stop after printing the TODO checklist.
27
+ - If delegating, require the delegate to run commands and capture outputs, not a plan.
28
+
29
+ ## Known Failure Modes
30
+
31
+ - If you see "fatal: not a git repository", you are in the wrong directory. Use `~/dev/openclaw` if available; otherwise ask user.
32
+ - Do not stop after printing the checklist. That is not completion.
33
+
34
+ ## Writing Style for Output
35
+
36
+ - Write casual and direct.
37
+ - Avoid em dashes and en dashes. Use commas or separate sentences.
38
+
39
+ ## Completion Criteria
40
+
41
+ - Run the commands in the worktree and inspect the PR directly.
42
+ - Produce the structured review sections A through J.
43
+ - Save the full review to `.local/review.md` inside the worktree.
44
+
45
+ ## First: Create a TODO Checklist
46
+
47
+ Create a checklist of all review steps, print it, then continue and execute the commands.
48
+
49
+ ## Setup: Use a Worktree
50
+
51
+ Use an isolated worktree for all review work.
52
+
53
+ ```sh
54
+ cd ~/dev/openclaw
55
+ # Sanity: confirm you are in the repo
56
+ git rev-parse --show-toplevel
57
+
58
+ WORKTREE_DIR=".worktrees/pr-<PR>"
59
+ git fetch origin main
60
+
61
+ # Reuse existing worktree if it exists, otherwise create new
62
+ if [ -d "$WORKTREE_DIR" ]; then
63
+ cd "$WORKTREE_DIR"
64
+ git checkout temp/pr-<PR> 2>/dev/null || git checkout -b temp/pr-<PR>
65
+ git fetch origin main
66
+ git reset --hard origin/main
67
+ else
68
+ git worktree add "$WORKTREE_DIR" -b temp/pr-<PR> origin/main
69
+ cd "$WORKTREE_DIR"
70
+ fi
71
+
72
+ # Create local scratch space that persists across /reviewpr to /preparepr to /mergepr
73
+ mkdir -p .local
74
+ ```
75
+
76
+ Run all commands inside the worktree directory.
77
+ Start on `origin/main` so you can check for existing implementations before looking at PR code.
78
+
79
+ ## Steps
80
+
81
+ 1. Identify PR meta and context
82
+
83
+ ```sh
84
+ gh pr view <PR> --json number,title,state,isDraft,author,baseRefName,headRefName,headRepository,url,body,labels,assignees,reviewRequests,files,additions,deletions --jq '{number,title,url,state,isDraft,author:.author.login,base:.baseRefName,head:.headRefName,headRepo:.headRepository.nameWithOwner,additions,deletions,files:.files|length,body}'
85
+ ```
86
+
87
+ 2. Check if this already exists in main before looking at the PR branch
88
+
89
+ - Identify the core feature or fix from the PR title and description.
90
+ - Search for existing implementations using keywords from the PR title, changed file paths, and function or component names from the diff.
91
+
92
+ ```sh
93
+ # Use keywords from the PR title and changed files
94
+ rg -n "<keyword_from_pr_title>" -S src packages apps ui || true
95
+ rg -n "<function_or_component_name>" -S src packages apps ui || true
96
+
97
+ git log --oneline --all --grep="<keyword_from_pr_title>" | head -20
98
+ ```
99
+
100
+ If it already exists, call it out as a BLOCKER or at least IMPORTANT.
101
+
102
+ 3. Claim the PR
103
+
104
+ Assign yourself so others know someone is reviewing. Skip if the PR looks like spam or is a draft you plan to recommend closing.
105
+
106
+ ```sh
107
+ gh_user=$(gh api user --jq .login)
108
+ gh pr edit <PR> --add-assignee "$gh_user"
109
+ ```
110
+
111
+ 4. Read the PR description carefully
112
+
113
+ Use the body from step 1. Summarize goal, scope, and missing context.
114
+
115
+ 5. Read the diff thoroughly
116
+
117
+ Minimum:
118
+
119
+ ```sh
120
+ gh pr diff <PR>
121
+ ```
122
+
123
+ If you need full code context locally, fetch the PR head to a local ref and diff it. Do not create a merge commit.
124
+
125
+ ```sh
126
+ git fetch origin pull/<PR>/head:pr-<PR>
127
+ # Show changes without modifying the working tree
128
+
129
+ git diff --stat origin/main..pr-<PR>
130
+ git diff origin/main..pr-<PR>
131
+ ```
132
+
133
+ If you want to browse the PR version of files directly, temporarily check out `pr-<PR>` in the worktree. Do not commit or push. Return to `temp/pr-<PR>` and reset to `origin/main` afterward.
134
+
135
+ ```sh
136
+ # Use only if needed
137
+ # git checkout pr-<PR>
138
+ # ...inspect files...
139
+
140
+ git checkout temp/pr-<PR>
141
+ git reset --hard origin/main
142
+ ```
143
+
144
+ 6. Validate the change is needed and valuable
145
+
146
+ Be honest. Call out low value AI slop.
147
+
148
+ 7. Evaluate implementation quality
149
+
150
+ Review correctness, design, performance, and ergonomics.
151
+
152
+ 8. Perform a security review
153
+
154
+ Assume OpenClaw subagents run with full disk access, including git, gh, and shell. Check auth, input validation, secrets, dependencies, tool safety, and privacy.
155
+
156
+ 9. Review tests and verification
157
+
158
+ Identify what exists, what is missing, and what would be a minimal regression test.
159
+
160
+ 10. Check docs
161
+
162
+ Check if the PR touches code with related documentation such as README, docs, inline API docs, or config examples.
163
+
164
+ - If docs exist for the changed area and the PR does not update them, flag as IMPORTANT.
165
+ - If the PR adds a new feature or config option with no docs, flag as IMPORTANT.
166
+ - If the change is purely internal with no user-facing impact, skip this.
167
+
168
+ 11. Check changelog
169
+
170
+ Check if `CHANGELOG.md` exists and whether the PR warrants an entry.
171
+
172
+ - If the project has a changelog and the PR is user-facing, flag missing entry as IMPORTANT.
173
+ - Leave the change for /preparepr, only flag it here.
174
+
175
+ 12. Answer the key question
176
+
177
+ Decide if /preparepr can fix issues or the contributor must update the PR.
178
+
179
+ 13. Save findings to the worktree
180
+
181
+ Write the full structured review sections A through J to `.local/review.md`.
182
+ Create or overwrite the file and verify it exists and is non-empty.
183
+
184
+ ```sh
185
+ ls -la .local/review.md
186
+ wc -l .local/review.md
187
+ ```
188
+
189
+ 14. Output the structured review
190
+
191
+ Produce a review that matches what you saved to `.local/review.md`.
192
+
193
+ A) TL;DR recommendation
194
+
195
+ - One of: READY FOR /preparepr | NEEDS WORK | NEEDS DISCUSSION | NOT USEFUL (CLOSE)
196
+ - 1 to 3 sentences.
197
+
198
+ B) What changed
199
+
200
+ C) What is good
201
+
202
+ D) Security findings
203
+
204
+ E) Concerns or questions (actionable)
205
+
206
+ - Numbered list.
207
+ - Mark each item as BLOCKER, IMPORTANT, or NIT.
208
+ - For each, point to file or area and propose a concrete fix.
209
+
210
+ F) Tests
211
+
212
+ G) Docs status
213
+
214
+ - State if related docs are up to date, missing, or not applicable.
215
+
216
+ H) Changelog
217
+
218
+ - State if `CHANGELOG.md` needs an entry and which category.
219
+
220
+ I) Follow ups (optional)
221
+
222
+ J) Suggested PR comment (optional)
223
+
224
+ ## Guardrails
225
+
226
+ - Worktree only.
227
+ - Do not delete the worktree after review.
228
+ - Review only, do not merge, do not push.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Review PR"
3
+ short_description: "Review GitHub PRs without merging"
4
+ default_prompt: "Use $review-pr to perform a thorough, review-only GitHub PR review."