@openrig/cli 0.5.2 → 0.5.3

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 (484) hide show
  1. package/daemon/assets/plugins/openrig-core/hooks/claude.json +36 -0
  2. package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
  3. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +132 -0
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
  7. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
  8. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
  9. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
  10. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +23 -1
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
  12. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  13. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
  14. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
  15. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  16. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
  17. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
  18. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +28 -1
  19. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
  20. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
  21. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
  22. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
  23. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
  24. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
  25. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
  26. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
  27. package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
  28. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
  29. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
  30. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
  31. package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
  32. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
  33. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
  34. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
  35. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
  36. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
  37. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  38. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
  39. package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
  40. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
  41. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
  42. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
  43. package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
  44. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
  45. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  46. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
  47. package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
  48. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
  49. package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
  50. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
  51. package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
  52. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
  53. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
  54. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
  55. package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
  56. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
  57. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
  58. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
  59. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
  60. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
  61. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
  62. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
  63. package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
  64. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
  65. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
  66. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
  67. package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
  68. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
  69. package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
  70. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
  71. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
  72. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
  73. package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
  74. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
  75. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
  76. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
  77. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
  78. package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
  79. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
  80. package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
  81. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
  82. package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
  83. package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
  84. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
  85. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
  86. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
  87. package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
  88. package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
  89. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
  90. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
  91. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
  92. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
  93. package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
  94. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
  95. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
  96. package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
  97. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
  98. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
  99. package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
  100. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
  101. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
  102. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
  103. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
  104. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
  105. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
  106. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
  107. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
  108. package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
  109. package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
  110. package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
  111. package/daemon/context-packs/world/install/04-ontology.md +790 -0
  112. package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
  113. package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
  114. package/daemon/context-packs/world/install/manifest.yaml +125 -0
  115. package/daemon/context-packs/world/install/reference-material.md +125 -0
  116. package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
  117. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/claude-code-adapter.js +7 -4
  119. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  120. package/daemon/dist/adapters/claude-resume.js +2 -2
  121. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  122. package/daemon/dist/adapters/tmux.d.ts +10 -2
  123. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  124. package/daemon/dist/adapters/tmux.js +27 -7
  125. package/daemon/dist/adapters/tmux.js.map +1 -1
  126. package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  127. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  128. package/daemon/dist/adapters/yolo-mode.js +21 -0
  129. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  130. package/daemon/dist/build-info.js +3 -3
  131. package/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  132. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  133. package/daemon/dist/domain/codex-thread-id.js +171 -2
  134. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  135. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  136. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  137. package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  138. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  139. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  140. package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  141. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  142. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  143. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  144. package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  145. package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  146. package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  147. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  148. package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  149. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  150. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  151. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  152. package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  153. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  154. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  155. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  156. package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  157. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  158. package/daemon/dist/domain/markdown-address.d.ts +56 -0
  159. package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  160. package/daemon/dist/domain/markdown-address.js +188 -0
  161. package/daemon/dist/domain/markdown-address.js.map +1 -0
  162. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  163. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  164. package/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  165. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  166. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  167. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  168. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  169. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  170. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  171. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  172. package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  173. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  174. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  175. package/daemon/dist/domain/permission-drift-observer.js +6 -1
  176. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  177. package/daemon/dist/domain/process-census.d.ts +25 -0
  178. package/daemon/dist/domain/process-census.d.ts.map +1 -0
  179. package/daemon/dist/domain/process-census.js +47 -0
  180. package/daemon/dist/domain/process-census.js.map +1 -0
  181. package/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  182. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  183. package/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  184. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  185. package/daemon/dist/domain/review/compose.d.ts +5 -26
  186. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  187. package/daemon/dist/domain/review/compose.js +31 -57
  188. package/daemon/dist/domain/review/compose.js.map +1 -1
  189. package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  190. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  191. package/daemon/dist/domain/rigspec-instantiator.js +39 -0
  192. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  193. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  194. package/daemon/dist/domain/rigspec-schema.js +19 -3
  195. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  196. package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  197. package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  198. package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  199. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  200. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  201. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  202. package/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  203. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  204. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  205. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  206. package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  207. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  208. package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  209. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  210. package/daemon/dist/domain/seat-activity-service.js +39 -23
  211. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  212. package/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  213. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  214. package/daemon/dist/domain/seat-handover-service.js +32 -2
  215. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  216. package/daemon/dist/domain/session-transport.d.ts +8 -0
  217. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  218. package/daemon/dist/domain/session-transport.js +116 -0
  219. package/daemon/dist/domain/session-transport.js.map +1 -1
  220. package/daemon/dist/domain/shell-classifier.d.ts +23 -0
  221. package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  222. package/daemon/dist/domain/shell-classifier.js +36 -0
  223. package/daemon/dist/domain/shell-classifier.js.map +1 -0
  224. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  225. package/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  226. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  227. package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  228. package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  229. package/daemon/dist/domain/spec-validation-advisory.js +38 -0
  230. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  231. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  232. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  233. package/daemon/dist/domain/successor-session-launcher.js +38 -1
  234. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  235. package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  236. package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  237. package/daemon/dist/domain/topology-defaults-installer.js +92 -0
  238. package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  239. package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  240. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  241. package/daemon/dist/domain/transcript-rotation.js +61 -3
  242. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  243. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  244. package/daemon/dist/domain/transcript-store.js +9 -2
  245. package/daemon/dist/domain/transcript-store.js.map +1 -1
  246. package/daemon/dist/domain/types.d.ts +3 -0
  247. package/daemon/dist/domain/types.d.ts.map +1 -1
  248. package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  249. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  250. package/daemon/dist/domain/user-settings/settings-store.js +39 -0
  251. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  252. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  253. package/daemon/dist/routes/context-packs.js +205 -0
  254. package/daemon/dist/routes/context-packs.js.map +1 -1
  255. package/daemon/dist/routes/seat.d.ts.map +1 -1
  256. package/daemon/dist/routes/seat.js +11 -0
  257. package/daemon/dist/routes/seat.js.map +1 -1
  258. package/daemon/dist/routes/sessions.js +55 -0
  259. package/daemon/dist/routes/sessions.js.map +1 -1
  260. package/daemon/dist/routes/transport.d.ts.map +1 -1
  261. package/daemon/dist/routes/transport.js +12 -3
  262. package/daemon/dist/routes/transport.js.map +1 -1
  263. package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  264. package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  265. package/daemon/dist/seat-recap-store-surface.js +6 -0
  266. package/daemon/dist/seat-recap-store-surface.js.map +1 -0
  267. package/daemon/dist/startup.d.ts.map +1 -1
  268. package/daemon/dist/startup.js +37 -6
  269. package/daemon/dist/startup.js.map +1 -1
  270. package/daemon/docs/reference/chain-file-convention.md +115 -0
  271. package/daemon/docs/reference/legacy-topology-migration.md +53 -0
  272. package/daemon/docs/reference/refocus-channel.md +80 -0
  273. package/daemon/docs/reference/sdlc-conventions.md +24 -0
  274. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
  275. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
  276. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
  277. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
  278. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
  279. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
  280. package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
  281. package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
  282. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
  283. package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
  284. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
  285. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
  286. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
  287. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
  288. package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
  289. package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
  290. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
  291. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
  292. package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
  293. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
  294. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
  295. package/dist/build-info.js +3 -3
  296. package/dist/commands/config.d.ts.map +1 -1
  297. package/dist/commands/config.js +8 -0
  298. package/dist/commands/config.js.map +1 -1
  299. package/dist/commands/context.d.ts.map +1 -1
  300. package/dist/commands/context.js +353 -48
  301. package/dist/commands/context.js.map +1 -1
  302. package/dist/commands/proof.d.ts.map +1 -1
  303. package/dist/commands/proof.js +70 -12
  304. package/dist/commands/proof.js.map +1 -1
  305. package/dist/commands/rig.d.ts.map +1 -1
  306. package/dist/commands/rig.js +5 -0
  307. package/dist/commands/rig.js.map +1 -1
  308. package/dist/commands/transcript.d.ts.map +1 -1
  309. package/dist/commands/transcript.js +25 -1
  310. package/dist/commands/transcript.js.map +1 -1
  311. package/dist/commands/walk.d.ts.map +1 -1
  312. package/dist/commands/walk.js +279 -26
  313. package/dist/commands/walk.js.map +1 -1
  314. package/dist/config-store.d.ts +15 -1
  315. package/dist/config-store.d.ts.map +1 -1
  316. package/dist/config-store.js +35 -1
  317. package/dist/config-store.js.map +1 -1
  318. package/dist/lib/scope/logical-checkbox.d.ts +26 -0
  319. package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
  320. package/dist/lib/scope/logical-checkbox.js +65 -0
  321. package/dist/lib/scope/logical-checkbox.js.map +1 -0
  322. package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
  323. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  324. package/dist/lib/scope/scaffold-placeholder.js +24 -0
  325. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  326. package/dist/lib/topology-trace.d.ts +36 -0
  327. package/dist/lib/topology-trace.d.ts.map +1 -0
  328. package/dist/lib/topology-trace.js +91 -0
  329. package/dist/lib/topology-trace.js.map +1 -0
  330. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  331. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
  332. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  333. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
  334. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
  335. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +10 -2
  336. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  337. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +27 -7
  338. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  339. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  340. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  341. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
  342. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
  343. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  344. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  345. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  346. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +171 -2
  347. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  348. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  349. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  350. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  351. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  352. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  353. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  354. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  355. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  356. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  357. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  358. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  359. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  360. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  361. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  362. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  363. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  364. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  365. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  366. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  367. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  368. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  369. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  370. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  371. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
  372. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  373. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
  374. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
  375. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  376. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  377. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  378. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  379. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  380. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  381. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  382. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  383. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  384. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  385. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  386. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  387. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  388. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
  389. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  390. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
  391. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
  392. package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
  393. package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
  394. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  395. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  396. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  397. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  398. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
  399. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  400. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
  401. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  402. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  403. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  404. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +39 -0
  405. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  406. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  407. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +19 -3
  408. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  409. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  410. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  411. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  412. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  413. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  414. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  415. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  416. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  417. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  418. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  419. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  420. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  421. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  422. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  423. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
  424. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  425. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  426. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  427. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +32 -2
  428. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  429. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -0
  430. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  431. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +116 -0
  432. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  433. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
  434. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  435. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
  436. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
  437. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  438. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  439. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  440. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  441. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  442. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
  443. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  444. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  445. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  446. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
  447. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  448. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  449. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  450. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
  451. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  452. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  453. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  454. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
  455. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
  456. package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  457. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
  458. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
  459. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +3 -0
  460. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  461. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  462. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  463. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +39 -0
  464. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  465. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  466. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
  467. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  468. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  469. package/node_modules/@openrig/daemon/dist/routes/seat.js +11 -0
  470. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  471. package/node_modules/@openrig/daemon/dist/routes/sessions.js +55 -0
  472. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  473. package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
  474. package/node_modules/@openrig/daemon/dist/routes/transport.js +12 -3
  475. package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
  476. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  477. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  478. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
  479. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
  480. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  481. package/node_modules/@openrig/daemon/dist/startup.js +37 -6
  482. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  483. package/node_modules/@openrig/daemon/package.json +6 -1
  484. package/package.json +1 -1
@@ -0,0 +1,9 @@
1
+ # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
+ # Package-time projection of a canonical skill; regenerated every build.
3
+ name: "review-team"
4
+ version: "0.5.3"
5
+ purpose: "Complete operating manual for the review pod. Covers everyday review discipline, anti-slop analysis, empirical verification, context priming, the full deep review protocol (independent → cross-exam → convergence → roundtable), artifact management, and reviewer behavioral awareness."
6
+ files:
7
+ - path: "SKILL.md"
8
+ role: "instruction"
9
+ summary: "Complete operating manual for the review pod. Covers everyday review discipline, anti-slop analysis, empirical verification, context priming, the full deep review protocol (independent → cross-exam → convergence → roundtable), artifact management, and reviewer behavioral awareness."
@@ -0,0 +1,189 @@
1
+ # agent-browser: Local Dev Insights
2
+
3
+ > Companion to the official SKILL.md. These are gotchas, corrections, and best practices
4
+ > discovered through hands-on testing that the upstream skill doesn't cover.
5
+ > Last updated: 2026-02-20 | Tested against: v0.13.0
6
+
7
+ ---
8
+
9
+ ## Command Compatibility Matrix
10
+
11
+ **Not all `get` subcommands accept @refs.** This is the #1 source of confusion.
12
+
13
+ | Command | @refs | CSS selectors | Notes |
14
+ |---------|-------|---------------|-------|
15
+ | `get text @e1` | YES | YES | Works with both |
16
+ | `get html` | NO | YES | Fails silently with refs |
17
+ | `get box` | NO | YES | Returns `{x, y, width, height}` JSON |
18
+ | `get styles` | NO | YES | Returns compact summary (font, color, bg, border-radius) |
19
+ | `get value` | NO | YES | For form inputs |
20
+ | `get attr` | NO | YES | Any HTML attribute |
21
+ | `get count` | N/A | YES | Returns element count |
22
+ | `get url` | N/A | N/A | No selector needed |
23
+ | `get title` | N/A | N/A | No selector needed |
24
+ | `click` | YES | YES | Works with both |
25
+ | `fill` | YES | YES | Works with both |
26
+ | `highlight` | NO | YES | Skill shows `highlight @e1` but this fails |
27
+
28
+ **Rule of thumb:** Interaction commands (click, fill, type, check, select) work with @refs.
29
+ Inspection commands (get html/box/styles, highlight) need CSS selectors.
30
+
31
+ ## CSS Selectors: Strict Mode
32
+
33
+ Playwright strict mode means CSS selectors must match **exactly one element**. If multiple match, you get an error listing all matches (which is actually helpful for debugging).
34
+
35
+ **Strategies for unique selectors:**
36
+ - Use IDs: `#fork-button`
37
+ - Use unique attributes: `[data-testid="submit"]`
38
+ - Combine: `.header > a:first-child`
39
+ - Use `nth`: `.item:nth-child(3)`
40
+
41
+ ## Ref Lifecycle: The Golden Rule
42
+
43
+ Refs are invalidated by **any page state change**. This includes:
44
+ - Navigation (click links, `open`, `back`, `forward`)
45
+ - Scoped snapshots (`snapshot -s`) <-- easy to forget this one
46
+ - Form submissions
47
+ - Dynamic content (modals, dropdowns, AJAX loads)
48
+ - Even `snapshot` itself replaces all previous refs
49
+
50
+ **Pattern:** Always snapshot immediately before interacting. Never cache refs across multiple actions that change the page.
51
+
52
+ ## Snapshot Mode Comparison
53
+
54
+ | Flag | What it returns | When to use |
55
+ |------|----------------|-------------|
56
+ | `-i` | Interactive elements only | **Default choice** - best token efficiency |
57
+ | `-i -C` | Interactive + cursor-interactive | When divs with onclick aren't showing up |
58
+ | `-c` | Compact (removes empty nodes) | Unreliable - can return "Empty page" on some sites |
59
+ | `-d N` | Depth-limited | When `-i` returns too much |
60
+ | `-s "#sel"` | Scoped to selector | Laser focus on one component |
61
+ | `--json` | JSON format | Programmatic parsing |
62
+
63
+ **Token efficiency example:** GitHub repo page with 4,574 DOM elements → `snapshot -i` returns ~25 lines.
64
+
65
+ ## Annotated Screenshots
66
+
67
+ `screenshot --annotate` is powerful but **can hang on complex pages** (known issue #509). If it hangs:
68
+ 1. Kill with Ctrl-C or timeout
69
+ 2. Fall back to regular `screenshot` + separate `snapshot -i`
70
+ 3. Works best on simpler pages
71
+
72
+ The annotated screenshot also **caches refs**, so you can interact with elements immediately after without a separate snapshot.
73
+
74
+ ## Network Monitoring
75
+
76
+ ```bash
77
+ # See all requests (captured since page was opened)
78
+ agent-browser network requests
79
+
80
+ # Filter to just API calls (huge noise reduction)
81
+ agent-browser network requests --filter "/api/"
82
+
83
+ # Mock an API response
84
+ agent-browser network route "https://api.example.com/data" --body '{"mocked": true}'
85
+
86
+ # Block a request (e.g., analytics)
87
+ agent-browser network route "https://www.google-analytics.com/*" --abort
88
+ ```
89
+
90
+ Requests are captured from session start. The `--filter` flag is essential on real sites - without it you get dozens of CSS/image/analytics requests.
91
+
92
+ ## JavaScript Eval Patterns
93
+
94
+ ```bash
95
+ # Quick one-liner (single quotes, no nesting)
96
+ agent-browser eval 'document.title'
97
+
98
+ # Complex JS (ALWAYS use --stdin for anything with quotes/arrows/template literals)
99
+ agent-browser eval --stdin <<'EVALEOF'
100
+ JSON.stringify(
101
+ Array.from(document.querySelectorAll("a"))
102
+ .map(a => ({ text: a.textContent.trim(), href: a.href }))
103
+ .filter(a => a.text.length > 0)
104
+ .slice(0, 10)
105
+ )
106
+ EVALEOF
107
+
108
+ # Fetch API from browser context (uses page cookies/auth)
109
+ agent-browser eval --stdin <<'EVALEOF'
110
+ (async () => {
111
+ const res = await fetch('/api/data');
112
+ return JSON.stringify(await res.json());
113
+ })()
114
+ EVALEOF
115
+ ```
116
+
117
+ ## Session Management
118
+
119
+ - **Always close when done:** `agent-browser close` prevents leaked daemon processes
120
+ - **Headed mode for debugging:** `agent-browser --headed open <url>`
121
+ - **Persistent headed config:** Add `{"headed": true}` to `~/.agent-browser/config.json`
122
+ - **Named sessions for parallel work:** `agent-browser --session name open <url>`
123
+
124
+ ## Authentication: What Actually Works
125
+
126
+ **`--session-name` (state save/restore) does NOT work for all apps.** It saves cookies and localStorage, but apps using HTTP-only cookies, server-side sessions, or complex auth flows may not persist. Tested and failed on: example-app-1 (Example Service One / localhost:8083).
127
+
128
+ **`--profile` (persistent Chrome profile) is the reliable approach.** It preserves everything - cookies, localStorage, IndexedDB, cache, service workers. This is what actually works for real apps.
129
+
130
+ ### Saved Profiles
131
+
132
+ | Profile | Service | URL | Command |
133
+ |---------|---------|-----|---------|
134
+ | `example-app-1` | Example Service One | `http://localhost:8083` | `agent-browser --profile ~/.agent-browser/profiles/example-app-1 open http://localhost:8083` |
135
+ | `localhost-3000` | Example Service Two (Clerk auth) | `http://localhost:3000` | `agent-browser --profile ~/.agent-browser/profiles/localhost-3000 open http://localhost:3000` |
136
+ | `local-app-email-profile` | Example Service Three (email login) | `http://localhost:3010` | `agent-browser --profile ~/.agent-browser/profiles/local-app-email-profile open http://localhost:3010` |
137
+ | `local-app-google-profile` | Example Service Three (Google auth) | `http://localhost:3010` | See Google OAuth note below |
138
+
139
+ ### Google OAuth Profiles
140
+
141
+ Google blocks sign-in from the bundled Chromium ("This browser or app may not be secure"). The workaround is to use the **real Chrome binary** with automation detection disabled:
142
+
143
+ ```bash
144
+ agent-browser \
145
+ --profile ~/.agent-browser/profiles/local-app-google-profile \
146
+ --executable-path "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
147
+ --args "--disable-blink-features=AutomationControlled" \
148
+ open http://localhost:3010
149
+ ```
150
+
151
+ **This applies to ANY profile that needs Google OAuth.** Always use `--executable-path` + `--args` for Google sign-in flows.
152
+
153
+ ### Auth Setup Pattern
154
+
155
+ ```bash
156
+ # First time: login in headed mode (user enters password)
157
+ agent-browser --profile ~/.agent-browser/profiles/<name> --headed true open <login-url>
158
+ # ... user logs in manually ...
159
+ agent-browser close
160
+
161
+ # Every future run: headless, already authenticated
162
+ agent-browser --profile ~/.agent-browser/profiles/<name> open <app-url>
163
+ ```
164
+
165
+ ### Encryption
166
+
167
+ Session state files in `~/.agent-browser/sessions/` are encrypted with AES-256-GCM.
168
+ Key stored at `~/.agent-browser/.encryption-key` (chmod 600).
169
+ Loaded via `AGENT_BROWSER_ENCRYPTION_KEY` env var in `~/.zshrc`.
170
+
171
+ Note: `--profile` directories are NOT encrypted (they're standard Chromium profile dirs).
172
+ Keep `~/.agent-browser/profiles/` permissions locked down.
173
+
174
+ ## Updating the Official Skill
175
+
176
+ To sync SKILL.md with upstream while preserving local insights:
177
+
178
+ ```bash
179
+ # Download latest official SKILL.md
180
+ curl -sL https://raw.githubusercontent.com/vercel-labs/agent-browser/main/skills/agent-browser/SKILL.md \
181
+ -o ~/.claude/skills/agent-browser/SKILL.md
182
+
183
+ # Re-append the local insights reference (3 lines at end of SKILL.md)
184
+ cat >> ~/.claude/skills/agent-browser/SKILL.md << 'EOF'
185
+
186
+ ## Local Dev Insights
187
+ **IMPORTANT:** Read `LOCAL-INSIGHTS.md` in this skill directory for gotchas, corrections, and tested workflows discovered through hands-on use that this upstream skill doesn't cover.
188
+ EOF
189
+ ```
@@ -0,0 +1,40 @@
1
+ ---
2
+ skill: agent-browser
3
+ openrig-relationship: vendored-supplemented
4
+ ---
5
+
6
+ # OpenRig and this skill
7
+
8
+ ## Origin
9
+
10
+ - **Upstream**: Vercel agent-browser CLI (https://github.com/vercel/agent-browser)
11
+ - **Vendoring pattern**: `add-supplementary-files`
12
+ - **Last upstream check**: 2026-05-13 (initial relationship declaration)
13
+
14
+ ## How OpenRig uses this skill
15
+
16
+ OpenRig ships `agent-browser` so any agent dispatched by an OpenRig topology can drive a real browser (snapshots, form fills, screenshots, scraping, web-app testing) without operators having to separately install a browser-automation skill. It's referenced from any agent profile whose role includes web work.
17
+
18
+ ## OpenRig-specific modifications
19
+
20
+ This is the canonical example of the **add-supplementary-files** pattern (see `writing-skills-for-openrig` SKILL.md §"Vendored skills"). The upstream skill is kept structurally intact; OpenRig adds a companion file that captures local-use insights without polluting the upstream content.
21
+
22
+ | Surface | What changed | Why |
23
+ |---|---|---|
24
+ | `SKILL.md` body | A short "## Local Dev Insights" section was added near the end with an `**IMPORTANT:** Read LOCAL-INSIGHTS.md` pointer. | Without the pointer, agents loading the skill wouldn't know the companion file exists. The pointer is the only structural modification needed for the supplementary pattern to be discoverable. |
25
+ | `LOCAL-INSIGHTS.md` (new sibling, ~189 lines) | Field-tested gotchas, command-compatibility matrices, corrections discovered through hands-on use that the upstream skill doesn't cover. | E.g., not all `get` subcommands accept `@refs` — `get text @e1` works but `get html @e1` fails silently. The compatibility matrix saves agents from the most common confusion class. |
26
+
27
+ Nothing else in `SKILL.md` diverges from upstream content as of the last upstream check.
28
+
29
+ ## Companion files
30
+
31
+ - `LOCAL-INSIGHTS.md` — load-bearing supplementary content. The SKILL.md body explicitly points readers here for hands-on gotchas the upstream skill doesn't cover.
32
+
33
+ ## When to re-sync upstream
34
+
35
+ Watch for new `agent-browser` CLI releases (Vercel). When the command surface changes meaningfully:
36
+
37
+ 1. Re-sync `SKILL.md` body from upstream, preserving the "Local Dev Insights" pointer section.
38
+ 2. Update `LOCAL-INSIGHTS.md` compatibility matrix to reflect new behavior (some `get` subcommands may gain `@ref` support, breaking the current matrix).
39
+ 3. Bump `last_upstream_check` in `SKILL.md` frontmatter.
40
+ 4. Note any structural shape changes in `divergence_notes`.
@@ -0,0 +1,427 @@
1
+ ---
2
+ name: agent-browser
3
+ description: Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.
4
+ allowed-tools: Bash(npx agent-browser:*), Bash(agent-browser:*)
5
+ metadata:
6
+ openrig:
7
+ vendored_from: "Vercel agent-browser (https://github.com/vercel/agent-browser)"
8
+ vendoring_pattern: add-supplementary-files
9
+ last_upstream_check: "2026-05-13 (initial vendoring declaration)"
10
+ divergence_notes: |
11
+ Upstream SKILL.md content tracks upstream; a small "Local Dev Insights"
12
+ pointer section was added near the end of the body to surface the sibling
13
+ LOCAL-INSIGHTS.md companion file. See OPENRIG.md for the full OpenRig
14
+ relationship to this skill.
15
+ ---
16
+
17
+ # Browser Automation with agent-browser
18
+
19
+ ## Core Workflow
20
+
21
+ Every browser automation follows this pattern:
22
+
23
+ 1. **Navigate**: `agent-browser open <url>`
24
+ 2. **Snapshot**: `agent-browser snapshot -i` (get element refs like `@e1`, `@e2`)
25
+ 3. **Interact**: Use refs to click, fill, select
26
+ 4. **Re-snapshot**: After navigation or DOM changes, get fresh refs
27
+
28
+ ```bash
29
+ agent-browser open https://example.com/form
30
+ agent-browser snapshot -i
31
+ # Output: @e1 [input type="email"], @e2 [input type="password"], @e3 [button] "Submit"
32
+
33
+ agent-browser fill @e1 "user@example.com"
34
+ agent-browser fill @e2 "password123"
35
+ agent-browser click @e3
36
+ agent-browser wait --load networkidle
37
+ agent-browser snapshot -i # Check result
38
+ ```
39
+
40
+ ## Command Chaining
41
+
42
+ Commands can be chained with `&&` in a single shell invocation. The browser persists between commands via a background daemon, so chaining is safe and more efficient than separate calls.
43
+
44
+ ```bash
45
+ # Chain open + wait + snapshot in one call
46
+ agent-browser open https://example.com && agent-browser wait --load networkidle && agent-browser snapshot -i
47
+
48
+ # Chain multiple interactions
49
+ agent-browser fill @e1 "user@example.com" && agent-browser fill @e2 "password123" && agent-browser click @e3
50
+
51
+ # Navigate and capture
52
+ agent-browser open https://example.com && agent-browser wait --load networkidle && agent-browser screenshot page.png
53
+ ```
54
+
55
+ **When to chain:** Use `&&` when you don't need to read the output of an intermediate command before proceeding (e.g., open + wait + screenshot). Run commands separately when you need to parse the output first (e.g., snapshot to discover refs, then interact using those refs).
56
+
57
+ ## Essential Commands
58
+
59
+ ```bash
60
+ # Navigation
61
+ agent-browser open <url> # Navigate (aliases: goto, navigate)
62
+ agent-browser close # Close browser
63
+
64
+ # Snapshot
65
+ agent-browser snapshot -i # Interactive elements with refs (recommended)
66
+ agent-browser snapshot -i -C # Include cursor-interactive elements (divs with onclick, cursor:pointer)
67
+ agent-browser snapshot -s "#selector" # Scope to CSS selector
68
+
69
+ # Interaction (use @refs from snapshot)
70
+ agent-browser click @e1 # Click element
71
+ agent-browser click @e1 --new-tab # Click and open in new tab
72
+ agent-browser fill @e2 "text" # Clear and type text
73
+ agent-browser type @e2 "text" # Type without clearing
74
+ agent-browser select @e1 "option" # Select dropdown option
75
+ agent-browser check @e1 # Check checkbox
76
+ agent-browser press Enter # Press key
77
+ agent-browser scroll down 500 # Scroll page
78
+
79
+ # Get information
80
+ agent-browser get text @e1 # Get element text
81
+ agent-browser get url # Get current URL
82
+ agent-browser get title # Get page title
83
+
84
+ # Wait
85
+ agent-browser wait @e1 # Wait for element
86
+ agent-browser wait --load networkidle # Wait for network idle
87
+ agent-browser wait --url "**/page" # Wait for URL pattern
88
+ agent-browser wait 2000 # Wait milliseconds
89
+
90
+ # Capture
91
+ agent-browser screenshot # Screenshot to temp dir
92
+ agent-browser screenshot --full # Full page screenshot
93
+ agent-browser screenshot --annotate # Annotated screenshot with numbered element labels
94
+ agent-browser pdf output.pdf # Save as PDF
95
+
96
+ # Diff (compare page states)
97
+ agent-browser diff snapshot # Compare current vs last snapshot
98
+ agent-browser diff snapshot --baseline before.txt # Compare current vs saved file
99
+ agent-browser diff screenshot --baseline before.png # Visual pixel diff
100
+ agent-browser diff url <url1> <url2> # Compare two pages
101
+ agent-browser diff url <url1> <url2> --wait-until networkidle # Custom wait strategy
102
+ agent-browser diff url <url1> <url2> --selector "#main" # Scope to element
103
+ ```
104
+
105
+ ## Common Patterns
106
+
107
+ ### Form Submission
108
+
109
+ ```bash
110
+ agent-browser open https://example.com/signup
111
+ agent-browser snapshot -i
112
+ agent-browser fill @e1 "Jane Doe"
113
+ agent-browser fill @e2 "jane@example.com"
114
+ agent-browser select @e3 "California"
115
+ agent-browser check @e4
116
+ agent-browser click @e5
117
+ agent-browser wait --load networkidle
118
+ ```
119
+
120
+ ### Authentication with State Persistence
121
+
122
+ ```bash
123
+ # Login once and save state
124
+ agent-browser open https://app.example.com/login
125
+ agent-browser snapshot -i
126
+ agent-browser fill @e1 "$USERNAME"
127
+ agent-browser fill @e2 "$PASSWORD"
128
+ agent-browser click @e3
129
+ agent-browser wait --url "**/dashboard"
130
+ agent-browser state save auth.json
131
+
132
+ # Reuse in future sessions
133
+ agent-browser state load auth.json
134
+ agent-browser open https://app.example.com/dashboard
135
+ ```
136
+
137
+ ### Session Persistence
138
+
139
+ ```bash
140
+ # Auto-save/restore cookies and localStorage across browser restarts
141
+ agent-browser --session-name myapp open https://app.example.com/login
142
+ # ... login flow ...
143
+ agent-browser close # State auto-saved to ~/.agent-browser/sessions/
144
+
145
+ # Next time, state is auto-loaded
146
+ agent-browser --session-name myapp open https://app.example.com/dashboard
147
+
148
+ # Encrypt state at rest
149
+ export AGENT_BROWSER_ENCRYPTION_KEY=$(openssl rand -hex 32)
150
+ agent-browser --session-name secure open https://app.example.com
151
+
152
+ # Manage saved states
153
+ agent-browser state list
154
+ agent-browser state show myapp-default.json
155
+ agent-browser state clear myapp
156
+ agent-browser state clean --older-than 7
157
+ ```
158
+
159
+ ### Data Extraction
160
+
161
+ ```bash
162
+ agent-browser open https://example.com/products
163
+ agent-browser snapshot -i
164
+ agent-browser get text @e5 # Get specific element text
165
+ agent-browser get text body > page.txt # Get all page text
166
+
167
+ # JSON output for parsing
168
+ agent-browser snapshot -i --json
169
+ agent-browser get text @e1 --json
170
+ ```
171
+
172
+ ### Parallel Sessions
173
+
174
+ ```bash
175
+ agent-browser --session site1 open https://site-a.com
176
+ agent-browser --session site2 open https://site-b.com
177
+
178
+ agent-browser --session site1 snapshot -i
179
+ agent-browser --session site2 snapshot -i
180
+
181
+ agent-browser session list
182
+ ```
183
+
184
+ ### Connect to Existing Chrome
185
+
186
+ ```bash
187
+ # Auto-discover running Chrome with remote debugging enabled
188
+ agent-browser --auto-connect open https://example.com
189
+ agent-browser --auto-connect snapshot
190
+
191
+ # Or with explicit CDP port
192
+ agent-browser --cdp 9222 snapshot
193
+ ```
194
+
195
+ ### Visual Browser (Debugging)
196
+
197
+ ```bash
198
+ agent-browser --headed open https://example.com
199
+ agent-browser highlight @e1 # Highlight element
200
+ agent-browser record start demo.webm # Record session
201
+ agent-browser profiler start # Start Chrome DevTools profiling
202
+ agent-browser profiler stop trace.json # Stop and save profile (path optional)
203
+ ```
204
+
205
+ ### Local Files (PDFs, HTML)
206
+
207
+ ```bash
208
+ # Open local files with file:// URLs
209
+ agent-browser --allow-file-access open file:///path/to/document.pdf
210
+ agent-browser --allow-file-access open file:///path/to/page.html
211
+ agent-browser screenshot output.png
212
+ ```
213
+
214
+ ### iOS Simulator (Mobile Safari)
215
+
216
+ ```bash
217
+ # List available iOS simulators
218
+ agent-browser device list
219
+
220
+ # Launch Safari on a specific device
221
+ agent-browser -p ios --device "iPhone 16 Pro" open https://example.com
222
+
223
+ # Same workflow as desktop - snapshot, interact, re-snapshot
224
+ agent-browser -p ios snapshot -i
225
+ agent-browser -p ios tap @e1 # Tap (alias for click)
226
+ agent-browser -p ios fill @e2 "text"
227
+ agent-browser -p ios swipe up # Mobile-specific gesture
228
+
229
+ # Take screenshot
230
+ agent-browser -p ios screenshot mobile.png
231
+
232
+ # Close session (shuts down simulator)
233
+ agent-browser -p ios close
234
+ ```
235
+
236
+ **Requirements:** macOS with Xcode, Appium (`npm install -g appium && appium driver install xcuitest`)
237
+
238
+ **Real devices:** Works with physical iOS devices if pre-configured. Use `--device "<UDID>"` where UDID is from `xcrun xctrace list devices`.
239
+
240
+ ## Diffing (Verifying Changes)
241
+
242
+ Use `diff snapshot` after performing an action to verify it had the intended effect. This compares the current accessibility tree against the last snapshot taken in the session.
243
+
244
+ ```bash
245
+ # Typical workflow: snapshot -> action -> diff
246
+ agent-browser snapshot -i # Take baseline snapshot
247
+ agent-browser click @e2 # Perform action
248
+ agent-browser diff snapshot # See what changed (auto-compares to last snapshot)
249
+ ```
250
+
251
+ For visual regression testing or monitoring:
252
+
253
+ ```bash
254
+ # Save a baseline screenshot, then compare later
255
+ agent-browser screenshot baseline.png
256
+ # ... time passes or changes are made ...
257
+ agent-browser diff screenshot --baseline baseline.png
258
+
259
+ # Compare staging vs production
260
+ agent-browser diff url https://staging.example.com https://prod.example.com --screenshot
261
+ ```
262
+
263
+ `diff snapshot` output uses `+` for additions and `-` for removals, similar to git diff. `diff screenshot` produces a diff image with changed pixels highlighted in red, plus a mismatch percentage.
264
+
265
+ ## Timeouts and Slow Pages
266
+
267
+ The default Playwright timeout is 60 seconds for local browsers. For slow websites or large pages, use explicit waits instead of relying on the default timeout:
268
+
269
+ ```bash
270
+ # Wait for network activity to settle (best for slow pages)
271
+ agent-browser wait --load networkidle
272
+
273
+ # Wait for a specific element to appear
274
+ agent-browser wait "#content"
275
+ agent-browser wait @e1
276
+
277
+ # Wait for a specific URL pattern (useful after redirects)
278
+ agent-browser wait --url "**/dashboard"
279
+
280
+ # Wait for a JavaScript condition
281
+ agent-browser wait --fn "document.readyState === 'complete'"
282
+
283
+ # Wait a fixed duration (milliseconds) as a last resort
284
+ agent-browser wait 5000
285
+ ```
286
+
287
+ When dealing with consistently slow websites, use `wait --load networkidle` after `open` to ensure the page is fully loaded before taking a snapshot. If a specific element is slow to render, wait for it directly with `wait <selector>` or `wait @ref`.
288
+
289
+ ## Session Management and Cleanup
290
+
291
+ When running multiple agents or automations concurrently, always use named sessions to avoid conflicts:
292
+
293
+ ```bash
294
+ # Each agent gets its own isolated session
295
+ agent-browser --session agent1 open site-a.com
296
+ agent-browser --session agent2 open site-b.com
297
+
298
+ # Check active sessions
299
+ agent-browser session list
300
+ ```
301
+
302
+ Always close your browser session when done to avoid leaked processes:
303
+
304
+ ```bash
305
+ agent-browser close # Close default session
306
+ agent-browser --session agent1 close # Close specific session
307
+ ```
308
+
309
+ If a previous session was not closed properly, the daemon may still be running. Use `agent-browser close` to clean it up before starting new work.
310
+
311
+ ## Ref Lifecycle (Important)
312
+
313
+ Refs (`@e1`, `@e2`, etc.) are invalidated when the page changes. Always re-snapshot after:
314
+
315
+ - Clicking links or buttons that navigate
316
+ - Form submissions
317
+ - Dynamic content loading (dropdowns, modals)
318
+
319
+ ```bash
320
+ agent-browser click @e5 # Navigates to new page
321
+ agent-browser snapshot -i # MUST re-snapshot
322
+ agent-browser click @e1 # Use new refs
323
+ ```
324
+
325
+ ## Annotated Screenshots (Vision Mode)
326
+
327
+ Use `--annotate` to take a screenshot with numbered labels overlaid on interactive elements. Each label `[N]` maps to ref `@eN`. This also caches refs, so you can interact with elements immediately without a separate snapshot.
328
+
329
+ ```bash
330
+ agent-browser screenshot --annotate
331
+ # Output includes the image path and a legend:
332
+ # [1] @e1 button "Submit"
333
+ # [2] @e2 link "Home"
334
+ # [3] @e3 textbox "Email"
335
+ agent-browser click @e2 # Click using ref from annotated screenshot
336
+ ```
337
+
338
+ Use annotated screenshots when:
339
+ - The page has unlabeled icon buttons or visual-only elements
340
+ - You need to verify visual layout or styling
341
+ - Canvas or chart elements are present (invisible to text snapshots)
342
+ - You need spatial reasoning about element positions
343
+
344
+ ## Semantic Locators (Alternative to Refs)
345
+
346
+ When refs are unavailable or unreliable, use semantic locators:
347
+
348
+ ```bash
349
+ agent-browser find text "Sign In" click
350
+ agent-browser find label "Email" fill "user@test.com"
351
+ agent-browser find role button click --name "Submit"
352
+ agent-browser find placeholder "Search" type "query"
353
+ agent-browser find testid "submit-btn" click
354
+ ```
355
+
356
+ ## JavaScript Evaluation (eval)
357
+
358
+ Use `eval` to run JavaScript in the browser context. **Shell quoting can corrupt complex expressions** -- use `--stdin` or `-b` to avoid issues.
359
+
360
+ ```bash
361
+ # Simple expressions work with regular quoting
362
+ agent-browser eval 'document.title'
363
+ agent-browser eval 'document.querySelectorAll("img").length'
364
+
365
+ # Complex JS: use --stdin with heredoc (RECOMMENDED)
366
+ agent-browser eval --stdin <<'EVALEOF'
367
+ JSON.stringify(
368
+ Array.from(document.querySelectorAll("img"))
369
+ .filter(i => !i.alt)
370
+ .map(i => ({ src: i.src.split("/").pop(), width: i.width }))
371
+ )
372
+ EVALEOF
373
+
374
+ # Alternative: base64 encoding (avoids all shell escaping issues)
375
+ agent-browser eval -b "$(echo -n 'Array.from(document.querySelectorAll("a")).map(a => a.href)' | base64)"
376
+ ```
377
+
378
+ **Why this matters:** When the shell processes your command, inner double quotes, `!` characters (history expansion), backticks, and `$()` can all corrupt the JavaScript before it reaches agent-browser. The `--stdin` and `-b` flags bypass shell interpretation entirely.
379
+
380
+ **Rules of thumb:**
381
+ - Single-line, no nested quotes -> regular `eval 'expression'` with single quotes is fine
382
+ - Nested quotes, arrow functions, template literals, or multiline -> use `eval --stdin <<'EVALEOF'`
383
+ - Programmatic/generated scripts -> use `eval -b` with base64
384
+
385
+ ## Configuration File
386
+
387
+ Create `agent-browser.json` in the project root for persistent settings:
388
+
389
+ ```json
390
+ {
391
+ "headed": true,
392
+ "proxy": "http://localhost:8080",
393
+ "profile": "./browser-data"
394
+ }
395
+ ```
396
+
397
+ Priority (lowest to highest): `~/.agent-browser/config.json` < `./agent-browser.json` < env vars < CLI flags. Use `--config <path>` or `AGENT_BROWSER_CONFIG` env var for a custom config file (exits with error if missing/invalid). All CLI options map to camelCase keys (e.g., `--executable-path` -> `"executablePath"`). Boolean flags accept `true`/`false` values (e.g., `--headed false` overrides config). Extensions from user and project configs are merged, not replaced.
398
+
399
+ ## Deep-Dive Documentation
400
+
401
+ | Reference | When to Use |
402
+ |-----------|-------------|
403
+ | [references/commands.md](references/commands.md) | Full command reference with all options |
404
+ | [references/snapshot-refs.md](references/snapshot-refs.md) | Ref lifecycle, invalidation rules, troubleshooting |
405
+ | [references/session-management.md](references/session-management.md) | Parallel sessions, state persistence, concurrent scraping |
406
+ | [references/authentication.md](references/authentication.md) | Login flows, OAuth, 2FA handling, state reuse |
407
+ | [references/video-recording.md](references/video-recording.md) | Recording workflows for debugging and documentation |
408
+ | [references/profiling.md](references/profiling.md) | Chrome DevTools profiling for performance analysis |
409
+ | [references/proxy-support.md](references/proxy-support.md) | Proxy configuration, geo-testing, rotating proxies |
410
+
411
+ ## Ready-to-Use Templates
412
+
413
+ | Template | Description |
414
+ |----------|-------------|
415
+ | [templates/form-automation.sh](templates/form-automation.sh) | Form filling with validation |
416
+ | [templates/authenticated-session.sh](templates/authenticated-session.sh) | Login once, reuse state |
417
+ | [templates/capture-workflow.sh](templates/capture-workflow.sh) | Content extraction with screenshots |
418
+
419
+ ```bash
420
+ ./templates/form-automation.sh https://example.com/form
421
+ ./templates/authenticated-session.sh https://app.example.com/login
422
+ ./templates/capture-workflow.sh https://example.com ./output
423
+ ```
424
+
425
+ ## Local Dev Insights
426
+
427
+ **IMPORTANT:** Read `LOCAL-INSIGHTS.md` in this skill directory for gotchas, corrections, and tested workflows discovered through hands-on use that this upstream skill doesn't cover.
@@ -0,0 +1,13 @@
1
+ # GENERATED by scripts/generate-context-packs.mjs — DO NOT EDIT.
2
+ # Package-time projection of a canonical skill; regenerated every build.
3
+ name: "agent-browser"
4
+ version: "0.5.3"
5
+ purpose: "Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction."
6
+ files:
7
+ - path: "SKILL.md"
8
+ role: "instruction"
9
+ summary: "Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to \"open a website\", \"fill out a form\", \"click a button\", \"take a screenshot\", \"scrape data from a page\", \"test this web app\", \"login to a site\", \"automate browser actions\", or any task requiring programmatic web interaction."
10
+ - path: "LOCAL-INSIGHTS.md"
11
+ role: "reference"
12
+ - path: "OPENRIG.md"
13
+ role: "reference"