@lavralabs/lavra 0.7.0

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 (452) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/bin/install.js +302 -0
  4. package/bin/plan-export.js +300 -0
  5. package/bin/plan-view.js +695 -0
  6. package/install.sh +136 -0
  7. package/package.json +28 -0
  8. package/plugins/lavra/.claude-plugin/plugin.json +22 -0
  9. package/plugins/lavra/.mcp.json +8 -0
  10. package/plugins/lavra/README.md +125 -0
  11. package/plugins/lavra/agents/design/design-implementation-reviewer.md +123 -0
  12. package/plugins/lavra/agents/design/design-iterator.md +219 -0
  13. package/plugins/lavra/agents/design/figma-design-sync.md +212 -0
  14. package/plugins/lavra/agents/docs/ankane-readme-writer.md +90 -0
  15. package/plugins/lavra/agents/research/best-practices-researcher.md +131 -0
  16. package/plugins/lavra/agents/research/framework-docs-researcher.md +111 -0
  17. package/plugins/lavra/agents/research/git-history-analyzer.md +73 -0
  18. package/plugins/lavra/agents/research/learnings-researcher.md +255 -0
  19. package/plugins/lavra/agents/research/repo-research-analyst.md +157 -0
  20. package/plugins/lavra/agents/review/agent-native-reviewer.md +274 -0
  21. package/plugins/lavra/agents/review/architecture-strategist.md +82 -0
  22. package/plugins/lavra/agents/review/code-simplicity-reviewer.md +109 -0
  23. package/plugins/lavra/agents/review/data-integrity-guardian.md +89 -0
  24. package/plugins/lavra/agents/review/data-migration-expert.md +118 -0
  25. package/plugins/lavra/agents/review/deployment-verification-agent.md +178 -0
  26. package/plugins/lavra/agents/review/dhh-rails-reviewer.md +94 -0
  27. package/plugins/lavra/agents/review/goal-verifier.md +109 -0
  28. package/plugins/lavra/agents/review/julik-frontend-races-reviewer.md +239 -0
  29. package/plugins/lavra/agents/review/kieran-python-reviewer.md +148 -0
  30. package/plugins/lavra/agents/review/kieran-rails-reviewer.md +130 -0
  31. package/plugins/lavra/agents/review/kieran-typescript-reviewer.md +139 -0
  32. package/plugins/lavra/agents/review/migration-drift-detector.md +307 -0
  33. package/plugins/lavra/agents/review/pattern-recognition-specialist.md +87 -0
  34. package/plugins/lavra/agents/review/performance-oracle.md +154 -0
  35. package/plugins/lavra/agents/review/security-sentinel.md +125 -0
  36. package/plugins/lavra/agents/workflow/bug-reproduction-validator.md +119 -0
  37. package/plugins/lavra/agents/workflow/every-style-editor.md +97 -0
  38. package/plugins/lavra/agents/workflow/lint.md +30 -0
  39. package/plugins/lavra/agents/workflow/pr-comment-resolver.md +95 -0
  40. package/plugins/lavra/agents/workflow/spec-flow-analyzer.md +156 -0
  41. package/plugins/lavra/commands/changelog.md +149 -0
  42. package/plugins/lavra/commands/heal-skill.md +130 -0
  43. package/plugins/lavra/commands/lavra-brainstorm.md +388 -0
  44. package/plugins/lavra/commands/lavra-ceo-review.md +388 -0
  45. package/plugins/lavra/commands/lavra-checkpoint.md +162 -0
  46. package/plugins/lavra/commands/lavra-design.md +621 -0
  47. package/plugins/lavra/commands/lavra-eng-review.md +262 -0
  48. package/plugins/lavra/commands/lavra-import.md +194 -0
  49. package/plugins/lavra/commands/lavra-learn.md +176 -0
  50. package/plugins/lavra/commands/lavra-plan.md +515 -0
  51. package/plugins/lavra/commands/lavra-qa.md +357 -0
  52. package/plugins/lavra/commands/lavra-quick.md +178 -0
  53. package/plugins/lavra/commands/lavra-recall.md +279 -0
  54. package/plugins/lavra/commands/lavra-research.md +267 -0
  55. package/plugins/lavra/commands/lavra-retro.md +400 -0
  56. package/plugins/lavra/commands/lavra-review.md +401 -0
  57. package/plugins/lavra/commands/lavra-ship.md +330 -0
  58. package/plugins/lavra/commands/lavra-triage.md +159 -0
  59. package/plugins/lavra/commands/lavra-work-ralph.md +521 -0
  60. package/plugins/lavra/commands/lavra-work-teams.md +504 -0
  61. package/plugins/lavra/commands/lavra-work.md +1019 -0
  62. package/plugins/lavra/commands/optional/agent-native-audit.md +282 -0
  63. package/plugins/lavra/commands/optional/feature-video.md +262 -0
  64. package/plugins/lavra/commands/optional/generate-command.md +146 -0
  65. package/plugins/lavra/commands/optional/reproduce-bug.md +97 -0
  66. package/plugins/lavra/commands/optional/xcode-test.md +287 -0
  67. package/plugins/lavra/commands/report-bug.md +155 -0
  68. package/plugins/lavra/commands/test-browser.md +305 -0
  69. package/plugins/lavra/cortex/agents/design/design-implementation-reviewer.md +127 -0
  70. package/plugins/lavra/cortex/agents/design/design-iterator.md +222 -0
  71. package/plugins/lavra/cortex/agents/design/figma-design-sync.md +215 -0
  72. package/plugins/lavra/cortex/agents/docs/ankane-readme-writer.md +93 -0
  73. package/plugins/lavra/cortex/agents/research/best-practices-researcher.md +135 -0
  74. package/plugins/lavra/cortex/agents/research/framework-docs-researcher.md +115 -0
  75. package/plugins/lavra/cortex/agents/research/git-history-analyzer.md +77 -0
  76. package/plugins/lavra/cortex/agents/research/learnings-researcher.md +259 -0
  77. package/plugins/lavra/cortex/agents/research/repo-research-analyst.md +161 -0
  78. package/plugins/lavra/cortex/agents/review/agent-native-reviewer.md +278 -0
  79. package/plugins/lavra/cortex/agents/review/architecture-strategist.md +86 -0
  80. package/plugins/lavra/cortex/agents/review/code-simplicity-reviewer.md +113 -0
  81. package/plugins/lavra/cortex/agents/review/data-integrity-guardian.md +93 -0
  82. package/plugins/lavra/cortex/agents/review/data-migration-expert.md +122 -0
  83. package/plugins/lavra/cortex/agents/review/deployment-verification-agent.md +182 -0
  84. package/plugins/lavra/cortex/agents/review/dhh-rails-reviewer.md +98 -0
  85. package/plugins/lavra/cortex/agents/review/goal-verifier.md +113 -0
  86. package/plugins/lavra/cortex/agents/review/julik-frontend-races-reviewer.md +243 -0
  87. package/plugins/lavra/cortex/agents/review/kieran-python-reviewer.md +152 -0
  88. package/plugins/lavra/cortex/agents/review/kieran-rails-reviewer.md +134 -0
  89. package/plugins/lavra/cortex/agents/review/kieran-typescript-reviewer.md +143 -0
  90. package/plugins/lavra/cortex/agents/review/migration-drift-detector.md +311 -0
  91. package/plugins/lavra/cortex/agents/review/pattern-recognition-specialist.md +91 -0
  92. package/plugins/lavra/cortex/agents/review/performance-oracle.md +158 -0
  93. package/plugins/lavra/cortex/agents/review/security-sentinel.md +129 -0
  94. package/plugins/lavra/cortex/agents/workflow/bug-reproduction-validator.md +123 -0
  95. package/plugins/lavra/cortex/agents/workflow/every-style-editor.md +101 -0
  96. package/plugins/lavra/cortex/agents/workflow/lint.md +33 -0
  97. package/plugins/lavra/cortex/agents/workflow/pr-comment-resolver.md +98 -0
  98. package/plugins/lavra/cortex/agents/workflow/spec-flow-analyzer.md +160 -0
  99. package/plugins/lavra/cortex/commands/agent-native-audit.md +286 -0
  100. package/plugins/lavra/cortex/commands/changelog.md +153 -0
  101. package/plugins/lavra/cortex/commands/create-agent-skill.md +21 -0
  102. package/plugins/lavra/cortex/commands/deploy-docs.md +69 -0
  103. package/plugins/lavra/cortex/commands/feature-video.md +266 -0
  104. package/plugins/lavra/cortex/commands/generate-command.md +150 -0
  105. package/plugins/lavra/cortex/commands/heal-skill.md +134 -0
  106. package/plugins/lavra/cortex/commands/lavra-brainstorm.md +392 -0
  107. package/plugins/lavra/cortex/commands/lavra-ceo-review.md +392 -0
  108. package/plugins/lavra/cortex/commands/lavra-checkpoint.md +166 -0
  109. package/plugins/lavra/cortex/commands/lavra-compound.md +168 -0
  110. package/plugins/lavra/cortex/commands/lavra-deepen.md +389 -0
  111. package/plugins/lavra/cortex/commands/lavra-design.md +625 -0
  112. package/plugins/lavra/cortex/commands/lavra-eng-review.md +266 -0
  113. package/plugins/lavra/cortex/commands/lavra-import.md +198 -0
  114. package/plugins/lavra/cortex/commands/lavra-learn.md +180 -0
  115. package/plugins/lavra/cortex/commands/lavra-parallel.md +910 -0
  116. package/plugins/lavra/cortex/commands/lavra-plan.md +519 -0
  117. package/plugins/lavra/cortex/commands/lavra-qa.md +361 -0
  118. package/plugins/lavra/cortex/commands/lavra-quick.md +182 -0
  119. package/plugins/lavra/cortex/commands/lavra-recall.md +283 -0
  120. package/plugins/lavra/cortex/commands/lavra-research.md +271 -0
  121. package/plugins/lavra/cortex/commands/lavra-retro.md +404 -0
  122. package/plugins/lavra/cortex/commands/lavra-review.md +405 -0
  123. package/plugins/lavra/cortex/commands/lavra-ship.md +334 -0
  124. package/plugins/lavra/cortex/commands/lavra-triage.md +163 -0
  125. package/plugins/lavra/cortex/commands/lavra-work-ralph.md +525 -0
  126. package/plugins/lavra/cortex/commands/lavra-work-teams.md +508 -0
  127. package/plugins/lavra/cortex/commands/lavra-work.md +1023 -0
  128. package/plugins/lavra/cortex/commands/lfg.md +30 -0
  129. package/plugins/lavra/cortex/commands/release-docs.md +148 -0
  130. package/plugins/lavra/cortex/commands/report-bug.md +159 -0
  131. package/plugins/lavra/cortex/commands/reproduce-bug.md +101 -0
  132. package/plugins/lavra/cortex/commands/resolve-pr-parallel.md +58 -0
  133. package/plugins/lavra/cortex/commands/resolve-todo-parallel.md +56 -0
  134. package/plugins/lavra/cortex/commands/test-browser.md +309 -0
  135. package/plugins/lavra/cortex/commands/xcode-test.md +291 -0
  136. package/plugins/lavra/cortex/skills/agent-browser/SKILL.md +227 -0
  137. package/plugins/lavra/cortex/skills/agent-native-architecture/SKILL.md +439 -0
  138. package/plugins/lavra/cortex/skills/andrew-kane-gem-writer/SKILL.md +188 -0
  139. package/plugins/lavra/cortex/skills/brainstorming/SKILL.md +197 -0
  140. package/plugins/lavra/cortex/skills/create-agent-skills/SKILL.md +304 -0
  141. package/plugins/lavra/cortex/skills/dhh-rails-style/SKILL.md +189 -0
  142. package/plugins/lavra/cortex/skills/dspy-ruby/SKILL.md +741 -0
  143. package/plugins/lavra/cortex/skills/every-style-editor/SKILL.md +138 -0
  144. package/plugins/lavra/cortex/skills/file-todos/SKILL.md +256 -0
  145. package/plugins/lavra/cortex/skills/frontend-design/SKILL.md +46 -0
  146. package/plugins/lavra/cortex/skills/gemini-imagegen/SKILL.md +242 -0
  147. package/plugins/lavra/cortex/skills/git-worktree/SKILL.md +307 -0
  148. package/plugins/lavra/cortex/skills/lavra-knowledge/SKILL.md +464 -0
  149. package/plugins/lavra/cortex/skills/project-setup/SKILL.md +418 -0
  150. package/plugins/lavra/cortex/skills/rclone/SKILL.md +155 -0
  151. package/plugins/lavra/docs/quickstart.md +267 -0
  152. package/plugins/lavra/examples/example-plan.md +197 -0
  153. package/plugins/lavra/gemini/agents/design/design-implementation-reviewer.md +130 -0
  154. package/plugins/lavra/gemini/agents/design/design-iterator.md +225 -0
  155. package/plugins/lavra/gemini/agents/design/figma-design-sync.md +218 -0
  156. package/plugins/lavra/gemini/agents/docs/ankane-readme-writer.md +96 -0
  157. package/plugins/lavra/gemini/agents/research/best-practices-researcher.md +138 -0
  158. package/plugins/lavra/gemini/agents/research/framework-docs-researcher.md +118 -0
  159. package/plugins/lavra/gemini/agents/research/git-history-analyzer.md +80 -0
  160. package/plugins/lavra/gemini/agents/research/learnings-researcher.md +262 -0
  161. package/plugins/lavra/gemini/agents/research/repo-research-analyst.md +164 -0
  162. package/plugins/lavra/gemini/agents/review/agent-native-reviewer.md +281 -0
  163. package/plugins/lavra/gemini/agents/review/architecture-strategist.md +89 -0
  164. package/plugins/lavra/gemini/agents/review/code-simplicity-reviewer.md +116 -0
  165. package/plugins/lavra/gemini/agents/review/data-integrity-guardian.md +96 -0
  166. package/plugins/lavra/gemini/agents/review/data-migration-expert.md +125 -0
  167. package/plugins/lavra/gemini/agents/review/deployment-verification-agent.md +185 -0
  168. package/plugins/lavra/gemini/agents/review/dhh-rails-reviewer.md +101 -0
  169. package/plugins/lavra/gemini/agents/review/goal-verifier.md +116 -0
  170. package/plugins/lavra/gemini/agents/review/julik-frontend-races-reviewer.md +246 -0
  171. package/plugins/lavra/gemini/agents/review/kieran-python-reviewer.md +155 -0
  172. package/plugins/lavra/gemini/agents/review/kieran-rails-reviewer.md +137 -0
  173. package/plugins/lavra/gemini/agents/review/kieran-typescript-reviewer.md +146 -0
  174. package/plugins/lavra/gemini/agents/review/migration-drift-detector.md +314 -0
  175. package/plugins/lavra/gemini/agents/review/pattern-recognition-specialist.md +94 -0
  176. package/plugins/lavra/gemini/agents/review/performance-oracle.md +161 -0
  177. package/plugins/lavra/gemini/agents/review/security-sentinel.md +132 -0
  178. package/plugins/lavra/gemini/agents/workflow/bug-reproduction-validator.md +126 -0
  179. package/plugins/lavra/gemini/agents/workflow/every-style-editor.md +103 -0
  180. package/plugins/lavra/gemini/agents/workflow/lint.md +36 -0
  181. package/plugins/lavra/gemini/agents/workflow/pr-comment-resolver.md +101 -0
  182. package/plugins/lavra/gemini/agents/workflow/spec-flow-analyzer.md +163 -0
  183. package/plugins/lavra/gemini/commands/agent-native-audit.toml +284 -0
  184. package/plugins/lavra/gemini/commands/beads-brainstorm.toml +292 -0
  185. package/plugins/lavra/gemini/commands/beads-checkpoint.toml +145 -0
  186. package/plugins/lavra/gemini/commands/beads-compound.toml +167 -0
  187. package/plugins/lavra/gemini/commands/beads-deepen.toml +388 -0
  188. package/plugins/lavra/gemini/commands/beads-design.toml +295 -0
  189. package/plugins/lavra/gemini/commands/beads-import.toml +197 -0
  190. package/plugins/lavra/gemini/commands/beads-parallel.toml +909 -0
  191. package/plugins/lavra/gemini/commands/beads-plan-review.toml +201 -0
  192. package/plugins/lavra/gemini/commands/beads-plan.toml +391 -0
  193. package/plugins/lavra/gemini/commands/beads-quick.toml +134 -0
  194. package/plugins/lavra/gemini/commands/beads-recall.toml +281 -0
  195. package/plugins/lavra/gemini/commands/beads-review.toml +338 -0
  196. package/plugins/lavra/gemini/commands/beads-triage.toml +161 -0
  197. package/plugins/lavra/gemini/commands/beads-work.toml +347 -0
  198. package/plugins/lavra/gemini/commands/changelog.toml +151 -0
  199. package/plugins/lavra/gemini/commands/create-agent-skill.toml +18 -0
  200. package/plugins/lavra/gemini/commands/deploy-docs.toml +68 -0
  201. package/plugins/lavra/gemini/commands/feature-video.toml +264 -0
  202. package/plugins/lavra/gemini/commands/generate-command.toml +148 -0
  203. package/plugins/lavra/gemini/commands/heal-skill.toml +131 -0
  204. package/plugins/lavra/gemini/commands/lavra-brainstorm.toml +391 -0
  205. package/plugins/lavra/gemini/commands/lavra-ceo-review.toml +391 -0
  206. package/plugins/lavra/gemini/commands/lavra-checkpoint.toml +165 -0
  207. package/plugins/lavra/gemini/commands/lavra-design.toml +624 -0
  208. package/plugins/lavra/gemini/commands/lavra-eng-review.toml +265 -0
  209. package/plugins/lavra/gemini/commands/lavra-import.toml +197 -0
  210. package/plugins/lavra/gemini/commands/lavra-learn.toml +179 -0
  211. package/plugins/lavra/gemini/commands/lavra-plan-review.toml +201 -0
  212. package/plugins/lavra/gemini/commands/lavra-plan.toml +518 -0
  213. package/plugins/lavra/gemini/commands/lavra-qa.toml +360 -0
  214. package/plugins/lavra/gemini/commands/lavra-quick.toml +181 -0
  215. package/plugins/lavra/gemini/commands/lavra-recall.toml +281 -0
  216. package/plugins/lavra/gemini/commands/lavra-research.toml +270 -0
  217. package/plugins/lavra/gemini/commands/lavra-retro.toml +403 -0
  218. package/plugins/lavra/gemini/commands/lavra-review.toml +404 -0
  219. package/plugins/lavra/gemini/commands/lavra-ship.toml +333 -0
  220. package/plugins/lavra/gemini/commands/lavra-triage.toml +161 -0
  221. package/plugins/lavra/gemini/commands/lavra-work-ralph.toml +523 -0
  222. package/plugins/lavra/gemini/commands/lavra-work-teams.toml +507 -0
  223. package/plugins/lavra/gemini/commands/lavra-work.toml +1022 -0
  224. package/plugins/lavra/gemini/commands/lfg.toml +28 -0
  225. package/plugins/lavra/gemini/commands/release-docs.toml +146 -0
  226. package/plugins/lavra/gemini/commands/report-bug.toml +157 -0
  227. package/plugins/lavra/gemini/commands/reproduce-bug.toml +99 -0
  228. package/plugins/lavra/gemini/commands/resolve-pr-parallel.toml +56 -0
  229. package/plugins/lavra/gemini/commands/resolve-todo-parallel.toml +54 -0
  230. package/plugins/lavra/gemini/commands/test-browser.toml +307 -0
  231. package/plugins/lavra/gemini/commands/xcode-test.toml +289 -0
  232. package/plugins/lavra/gemini/docs/MCP_SETUP.md +41 -0
  233. package/plugins/lavra/gemini/skills/agent-browser/SKILL.md +227 -0
  234. package/plugins/lavra/gemini/skills/agent-native-architecture/SKILL.md +439 -0
  235. package/plugins/lavra/gemini/skills/andrew-kane-gem-writer/SKILL.md +188 -0
  236. package/plugins/lavra/gemini/skills/beads-knowledge/SKILL.md +464 -0
  237. package/plugins/lavra/gemini/skills/brainstorming/SKILL.md +197 -0
  238. package/plugins/lavra/gemini/skills/create-agent-skills/SKILL.md +304 -0
  239. package/plugins/lavra/gemini/skills/dhh-rails-style/SKILL.md +189 -0
  240. package/plugins/lavra/gemini/skills/dspy-ruby/SKILL.md +741 -0
  241. package/plugins/lavra/gemini/skills/every-style-editor/SKILL.md +138 -0
  242. package/plugins/lavra/gemini/skills/file-todos/SKILL.md +256 -0
  243. package/plugins/lavra/gemini/skills/frontend-design/SKILL.md +46 -0
  244. package/plugins/lavra/gemini/skills/gemini-imagegen/SKILL.md +242 -0
  245. package/plugins/lavra/gemini/skills/git-worktree/SKILL.md +307 -0
  246. package/plugins/lavra/gemini/skills/lavra-knowledge/SKILL.md +464 -0
  247. package/plugins/lavra/gemini/skills/project-setup/SKILL.md +418 -0
  248. package/plugins/lavra/gemini/skills/rclone/SKILL.md +155 -0
  249. package/plugins/lavra/gemini-extension.json +50 -0
  250. package/plugins/lavra/gemini-src/settings.json +37 -0
  251. package/plugins/lavra/hooks/auto-recall.sh +210 -0
  252. package/plugins/lavra/hooks/check-memory.sh +169 -0
  253. package/plugins/lavra/hooks/hooks.json +47 -0
  254. package/plugins/lavra/hooks/knowledge-db.sh +255 -0
  255. package/plugins/lavra/hooks/memory-capture.sh +132 -0
  256. package/plugins/lavra/hooks/provision-memory.sh +144 -0
  257. package/plugins/lavra/hooks/recall.sh +152 -0
  258. package/plugins/lavra/hooks/subagent-wrapup.sh +44 -0
  259. package/plugins/lavra/hooks/teammate-idle-check.sh +29 -0
  260. package/plugins/lavra/opencode/agents/design/design-implementation-reviewer.md +127 -0
  261. package/plugins/lavra/opencode/agents/design/design-iterator.md +222 -0
  262. package/plugins/lavra/opencode/agents/design/figma-design-sync.md +215 -0
  263. package/plugins/lavra/opencode/agents/docs/ankane-readme-writer.md +93 -0
  264. package/plugins/lavra/opencode/agents/research/best-practices-researcher.md +135 -0
  265. package/plugins/lavra/opencode/agents/research/framework-docs-researcher.md +115 -0
  266. package/plugins/lavra/opencode/agents/research/git-history-analyzer.md +77 -0
  267. package/plugins/lavra/opencode/agents/research/learnings-researcher.md +259 -0
  268. package/plugins/lavra/opencode/agents/research/repo-research-analyst.md +161 -0
  269. package/plugins/lavra/opencode/agents/review/agent-native-reviewer.md +278 -0
  270. package/plugins/lavra/opencode/agents/review/architecture-strategist.md +86 -0
  271. package/plugins/lavra/opencode/agents/review/code-simplicity-reviewer.md +113 -0
  272. package/plugins/lavra/opencode/agents/review/data-integrity-guardian.md +93 -0
  273. package/plugins/lavra/opencode/agents/review/data-migration-expert.md +122 -0
  274. package/plugins/lavra/opencode/agents/review/deployment-verification-agent.md +182 -0
  275. package/plugins/lavra/opencode/agents/review/dhh-rails-reviewer.md +98 -0
  276. package/plugins/lavra/opencode/agents/review/goal-verifier.md +113 -0
  277. package/plugins/lavra/opencode/agents/review/julik-frontend-races-reviewer.md +243 -0
  278. package/plugins/lavra/opencode/agents/review/kieran-python-reviewer.md +152 -0
  279. package/plugins/lavra/opencode/agents/review/kieran-rails-reviewer.md +134 -0
  280. package/plugins/lavra/opencode/agents/review/kieran-typescript-reviewer.md +143 -0
  281. package/plugins/lavra/opencode/agents/review/migration-drift-detector.md +311 -0
  282. package/plugins/lavra/opencode/agents/review/pattern-recognition-specialist.md +91 -0
  283. package/plugins/lavra/opencode/agents/review/performance-oracle.md +158 -0
  284. package/plugins/lavra/opencode/agents/review/security-sentinel.md +129 -0
  285. package/plugins/lavra/opencode/agents/workflow/bug-reproduction-validator.md +123 -0
  286. package/plugins/lavra/opencode/agents/workflow/every-style-editor.md +100 -0
  287. package/plugins/lavra/opencode/agents/workflow/lint.md +33 -0
  288. package/plugins/lavra/opencode/agents/workflow/pr-comment-resolver.md +98 -0
  289. package/plugins/lavra/opencode/agents/workflow/spec-flow-analyzer.md +160 -0
  290. package/plugins/lavra/opencode/commands/agent-native-audit.md +286 -0
  291. package/plugins/lavra/opencode/commands/changelog.md +153 -0
  292. package/plugins/lavra/opencode/commands/create-agent-skill.md +21 -0
  293. package/plugins/lavra/opencode/commands/deploy-docs.md +69 -0
  294. package/plugins/lavra/opencode/commands/feature-video.md +266 -0
  295. package/plugins/lavra/opencode/commands/generate-command.md +150 -0
  296. package/plugins/lavra/opencode/commands/heal-skill.md +134 -0
  297. package/plugins/lavra/opencode/commands/lavra-brainstorm.md +392 -0
  298. package/plugins/lavra/opencode/commands/lavra-ceo-review.md +392 -0
  299. package/plugins/lavra/opencode/commands/lavra-checkpoint.md +166 -0
  300. package/plugins/lavra/opencode/commands/lavra-compound.md +168 -0
  301. package/plugins/lavra/opencode/commands/lavra-deepen.md +389 -0
  302. package/plugins/lavra/opencode/commands/lavra-design.md +625 -0
  303. package/plugins/lavra/opencode/commands/lavra-eng-review.md +266 -0
  304. package/plugins/lavra/opencode/commands/lavra-import.md +198 -0
  305. package/plugins/lavra/opencode/commands/lavra-learn.md +180 -0
  306. package/plugins/lavra/opencode/commands/lavra-parallel.md +910 -0
  307. package/plugins/lavra/opencode/commands/lavra-plan.md +519 -0
  308. package/plugins/lavra/opencode/commands/lavra-qa.md +361 -0
  309. package/plugins/lavra/opencode/commands/lavra-quick.md +182 -0
  310. package/plugins/lavra/opencode/commands/lavra-recall.md +283 -0
  311. package/plugins/lavra/opencode/commands/lavra-research.md +271 -0
  312. package/plugins/lavra/opencode/commands/lavra-retro.md +404 -0
  313. package/plugins/lavra/opencode/commands/lavra-review.md +405 -0
  314. package/plugins/lavra/opencode/commands/lavra-ship.md +334 -0
  315. package/plugins/lavra/opencode/commands/lavra-triage.md +163 -0
  316. package/plugins/lavra/opencode/commands/lavra-work-ralph.md +525 -0
  317. package/plugins/lavra/opencode/commands/lavra-work-teams.md +508 -0
  318. package/plugins/lavra/opencode/commands/lavra-work.md +1023 -0
  319. package/plugins/lavra/opencode/commands/lfg.md +30 -0
  320. package/plugins/lavra/opencode/commands/release-docs.md +148 -0
  321. package/plugins/lavra/opencode/commands/report-bug.md +159 -0
  322. package/plugins/lavra/opencode/commands/reproduce-bug.md +101 -0
  323. package/plugins/lavra/opencode/commands/resolve-pr-parallel.md +58 -0
  324. package/plugins/lavra/opencode/commands/resolve-todo-parallel.md +56 -0
  325. package/plugins/lavra/opencode/commands/test-browser.md +309 -0
  326. package/plugins/lavra/opencode/commands/xcode-test.md +291 -0
  327. package/plugins/lavra/opencode/docs/MCP_SETUP.md +48 -0
  328. package/plugins/lavra/opencode/skills/agent-browser/SKILL.md +227 -0
  329. package/plugins/lavra/opencode/skills/agent-native-architecture/SKILL.md +439 -0
  330. package/plugins/lavra/opencode/skills/andrew-kane-gem-writer/SKILL.md +188 -0
  331. package/plugins/lavra/opencode/skills/brainstorming/SKILL.md +197 -0
  332. package/plugins/lavra/opencode/skills/create-agent-skills/SKILL.md +304 -0
  333. package/plugins/lavra/opencode/skills/dhh-rails-style/SKILL.md +189 -0
  334. package/plugins/lavra/opencode/skills/dspy-ruby/SKILL.md +741 -0
  335. package/plugins/lavra/opencode/skills/every-style-editor/SKILL.md +138 -0
  336. package/plugins/lavra/opencode/skills/file-todos/SKILL.md +256 -0
  337. package/plugins/lavra/opencode/skills/frontend-design/SKILL.md +46 -0
  338. package/plugins/lavra/opencode/skills/gemini-imagegen/SKILL.md +242 -0
  339. package/plugins/lavra/opencode/skills/git-worktree/SKILL.md +307 -0
  340. package/plugins/lavra/opencode/skills/lavra-knowledge/SKILL.md +464 -0
  341. package/plugins/lavra/opencode/skills/project-setup/SKILL.md +418 -0
  342. package/plugins/lavra/opencode/skills/rclone/SKILL.md +155 -0
  343. package/plugins/lavra/opencode-src/package.json +13 -0
  344. package/plugins/lavra/opencode-src/plugin.ts +176 -0
  345. package/plugins/lavra/scripts/import-plan.sh +141 -0
  346. package/plugins/lavra/skills/agent-browser/SKILL.md +223 -0
  347. package/plugins/lavra/skills/agent-native-architecture/SKILL.md +435 -0
  348. package/plugins/lavra/skills/agent-native-architecture/references/action-parity-discipline.md +353 -0
  349. package/plugins/lavra/skills/agent-native-architecture/references/agent-execution-patterns.md +362 -0
  350. package/plugins/lavra/skills/agent-native-architecture/references/agent-native-testing.md +508 -0
  351. package/plugins/lavra/skills/agent-native-architecture/references/architecture-patterns.md +478 -0
  352. package/plugins/lavra/skills/agent-native-architecture/references/dynamic-context-injection.md +281 -0
  353. package/plugins/lavra/skills/agent-native-architecture/references/files-universal-interface.md +301 -0
  354. package/plugins/lavra/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +227 -0
  355. package/plugins/lavra/skills/agent-native-architecture/references/mcp-tool-design.md +427 -0
  356. package/plugins/lavra/skills/agent-native-architecture/references/mobile-patterns.md +410 -0
  357. package/plugins/lavra/skills/agent-native-architecture/references/product-implications.md +341 -0
  358. package/plugins/lavra/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +317 -0
  359. package/plugins/lavra/skills/agent-native-architecture/references/self-modification.md +269 -0
  360. package/plugins/lavra/skills/agent-native-architecture/references/shared-workspace-architecture.md +517 -0
  361. package/plugins/lavra/skills/agent-native-architecture/references/system-prompt-design.md +250 -0
  362. package/plugins/lavra/skills/brainstorming/SKILL.md +193 -0
  363. package/plugins/lavra/skills/create-agent-skills/SKILL.md +300 -0
  364. package/plugins/lavra/skills/create-agent-skills/references/api-security.md +60 -0
  365. package/plugins/lavra/skills/create-agent-skills/references/be-clear-and-direct.md +84 -0
  366. package/plugins/lavra/skills/create-agent-skills/references/best-practices.md +404 -0
  367. package/plugins/lavra/skills/create-agent-skills/references/common-patterns.md +121 -0
  368. package/plugins/lavra/skills/create-agent-skills/references/core-principles.md +103 -0
  369. package/plugins/lavra/skills/create-agent-skills/references/executable-code.md +92 -0
  370. package/plugins/lavra/skills/create-agent-skills/references/iteration-and-testing.md +164 -0
  371. package/plugins/lavra/skills/create-agent-skills/references/official-spec.md +185 -0
  372. package/plugins/lavra/skills/create-agent-skills/references/recommended-structure.md +168 -0
  373. package/plugins/lavra/skills/create-agent-skills/references/skill-structure.md +215 -0
  374. package/plugins/lavra/skills/create-agent-skills/references/using-scripts.md +113 -0
  375. package/plugins/lavra/skills/create-agent-skills/references/using-templates.md +112 -0
  376. package/plugins/lavra/skills/create-agent-skills/references/workflows-and-validation.md +122 -0
  377. package/plugins/lavra/skills/create-agent-skills/templates/router-skill.md +73 -0
  378. package/plugins/lavra/skills/create-agent-skills/templates/simple-skill.md +33 -0
  379. package/plugins/lavra/skills/create-agent-skills/workflows/add-reference.md +55 -0
  380. package/plugins/lavra/skills/create-agent-skills/workflows/add-script.md +59 -0
  381. package/plugins/lavra/skills/create-agent-skills/workflows/add-template.md +51 -0
  382. package/plugins/lavra/skills/create-agent-skills/workflows/add-workflow.md +54 -0
  383. package/plugins/lavra/skills/create-agent-skills/workflows/audit-skill.md +63 -0
  384. package/plugins/lavra/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +68 -0
  385. package/plugins/lavra/skills/create-agent-skills/workflows/create-new-skill.md +92 -0
  386. package/plugins/lavra/skills/create-agent-skills/workflows/get-guidance.md +70 -0
  387. package/plugins/lavra/skills/create-agent-skills/workflows/upgrade-to-router.md +68 -0
  388. package/plugins/lavra/skills/create-agent-skills/workflows/verify-skill.md +63 -0
  389. package/plugins/lavra/skills/file-todos/SKILL.md +252 -0
  390. package/plugins/lavra/skills/file-todos/assets/todo-template.md +155 -0
  391. package/plugins/lavra/skills/git-worktree/SKILL.md +303 -0
  392. package/plugins/lavra/skills/git-worktree/scripts/worktree-manager.sh +345 -0
  393. package/plugins/lavra/skills/lavra-knowledge/SKILL.md +460 -0
  394. package/plugins/lavra/skills/lavra-knowledge/references/jsonl-schema.md +104 -0
  395. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/SKILL.md +184 -0
  396. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/database-adapters.md +231 -0
  397. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/module-organization.md +121 -0
  398. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/rails-integration.md +183 -0
  399. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/resources.md +119 -0
  400. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
  401. package/plugins/lavra/skills/optional/dhh-rails-style/SKILL.md +185 -0
  402. package/plugins/lavra/skills/optional/dhh-rails-style/references/architecture.md +653 -0
  403. package/plugins/lavra/skills/optional/dhh-rails-style/references/controllers.md +303 -0
  404. package/plugins/lavra/skills/optional/dhh-rails-style/references/frontend.md +510 -0
  405. package/plugins/lavra/skills/optional/dhh-rails-style/references/gems.md +266 -0
  406. package/plugins/lavra/skills/optional/dhh-rails-style/references/models.md +359 -0
  407. package/plugins/lavra/skills/optional/dhh-rails-style/references/testing.md +338 -0
  408. package/plugins/lavra/skills/optional/dspy-ruby/SKILL.md +737 -0
  409. package/plugins/lavra/skills/optional/dspy-ruby/assets/config-template.rb +187 -0
  410. package/plugins/lavra/skills/optional/dspy-ruby/assets/module-template.rb +300 -0
  411. package/plugins/lavra/skills/optional/dspy-ruby/assets/signature-template.rb +221 -0
  412. package/plugins/lavra/skills/optional/dspy-ruby/references/core-concepts.md +674 -0
  413. package/plugins/lavra/skills/optional/dspy-ruby/references/observability.md +366 -0
  414. package/plugins/lavra/skills/optional/dspy-ruby/references/optimization.md +603 -0
  415. package/plugins/lavra/skills/optional/dspy-ruby/references/providers.md +418 -0
  416. package/plugins/lavra/skills/optional/dspy-ruby/references/toolsets.md +502 -0
  417. package/plugins/lavra/skills/optional/every-style-editor/SKILL.md +134 -0
  418. package/plugins/lavra/skills/optional/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
  419. package/plugins/lavra/skills/optional/frontend-design/SKILL.md +42 -0
  420. package/plugins/lavra/skills/optional/gemini-imagegen/SKILL.md +238 -0
  421. package/plugins/lavra/skills/optional/gemini-imagegen/requirements.txt +2 -0
  422. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/compose_images.py +157 -0
  423. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/edit_image.py +144 -0
  424. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/gemini_images.py +263 -0
  425. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/generate_image.py +133 -0
  426. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/multi_turn_chat.py +216 -0
  427. package/plugins/lavra/skills/optional/rclone/SKILL.md +151 -0
  428. package/plugins/lavra/skills/optional/rclone/scripts/check_setup.sh +60 -0
  429. package/plugins/lavra/skills/project-setup/SKILL.md +414 -0
  430. package/plugins/lavra/tests/build-index.sh +116 -0
  431. package/plugins/lavra/tests/recall-bench.sh +224 -0
  432. package/plugins/lavra/tests/search-fts5.sh +65 -0
  433. package/plugins/lavra/tests/search-grep.sh +54 -0
  434. package/plugins/lavra/tests/test-queries.jsonl +25 -0
  435. package/scripts/apply-context-optimizations.py +345 -0
  436. package/scripts/convert-cortex.ts +257 -0
  437. package/scripts/convert-gemini.ts +369 -0
  438. package/scripts/convert-opencode.ts +313 -0
  439. package/scripts/package.json +27 -0
  440. package/scripts/pre-release-check.sh +176 -0
  441. package/scripts/select-opencode-models.sh +178 -0
  442. package/scripts/shared/model-config.json +17 -0
  443. package/scripts/shared/model-mapping.ts +129 -0
  444. package/scripts/shared/security.ts +97 -0
  445. package/scripts/shared/yaml-parser.ts +55 -0
  446. package/scripts/sqlite-to-jsonl.py +207 -0
  447. package/scripts/test-compatibility.ts +539 -0
  448. package/scripts/test-features.sh +342 -0
  449. package/scripts/test-installation.sh +514 -0
  450. package/scripts/test-security.ts +275 -0
  451. package/scripts/trim-agent-descriptions.py +177 -0
  452. package/uninstall.sh +133 -0
@@ -0,0 +1,176 @@
1
+ /**
2
+ * lavra plugin for OpenCode
3
+ *
4
+ * Ports auto-recall.sh and memory-capture.sh hooks to OpenCode's event system.
5
+ * Subagent wrapup is handled separately via tool.execute.after with tool=task filter.
6
+ */
7
+
8
+ import type { Plugin } from "@opencode-ai/plugin";
9
+ import { resolve } from "node:path";
10
+
11
+ console.log("[lavra] Plugin loaded successfully");
12
+
13
+ export default {
14
+ // Set CLAUDE_PROJECT_DIR globally for all bd commands
15
+ "shell.env": async ({ directory }) => {
16
+ console.log("[lavra] shell.env hook triggered");
17
+
18
+ // Validate that directory is an absolute path (security)
19
+ if (!directory || !resolve(directory).startsWith("/")) {
20
+ return {};
21
+ }
22
+
23
+ return {
24
+ CLAUDE_PROJECT_DIR: directory,
25
+ };
26
+ },
27
+
28
+ // Auto-recall: inject relevant knowledge at session start
29
+ "session.created": async ({ directory }) => {
30
+ console.log("[lavra] session.created hook triggered");
31
+ // Validate absolute path (security)
32
+ if (!directory || !resolve(directory).startsWith("/")) {
33
+ return;
34
+ }
35
+
36
+ const hookScript = resolve(
37
+ import.meta.dir,
38
+ "../hooks/auto-recall.sh"
39
+ );
40
+
41
+ const proc = Bun.spawn(["bash", hookScript], {
42
+ env: {
43
+ ...process.env,
44
+ CLAUDE_PROJECT_DIR: directory,
45
+ },
46
+ stdout: "pipe",
47
+ stderr: "pipe",
48
+ });
49
+
50
+ const stdout = await new Response(proc.stdout).text();
51
+ const stderr = await new Response(proc.stderr).text();
52
+
53
+ if (stderr) {
54
+ console.error("[lavra] auto-recall error:", stderr);
55
+ }
56
+
57
+ // Parse JSON output
58
+ try {
59
+ const output = JSON.parse(stdout);
60
+ if (output.hookSpecificOutput?.systemMessage) {
61
+ return {
62
+ systemMessage: output.hookSpecificOutput.systemMessage,
63
+ };
64
+ }
65
+ } catch (err) {
66
+ // Not JSON or parse error - no output to inject
67
+ }
68
+
69
+ return;
70
+ },
71
+
72
+ // Memory capture: extract knowledge from bd comments add commands
73
+ // Subagent wrapup: warn when subagents complete without logging knowledge
74
+ "tool.execute.after": async ({ tool, input, output, metadata, directory }) => {
75
+ // Handle subagent completion (tool=task)
76
+ if (tool === "task") {
77
+ // Check if BEAD_ID is referenced in the subagent output or title
78
+ const beadIdPattern = /\b(BD-[A-Za-z0-9._-]+|bdcompound-[A-Za-z0-9._-]+)\b/i;
79
+ const hasBeadId =
80
+ beadIdPattern.test(input?.title || "") ||
81
+ beadIdPattern.test(output || "") ||
82
+ beadIdPattern.test(metadata?.summary || "");
83
+
84
+ if (!hasBeadId) {
85
+ // No BEAD_ID found, no action needed
86
+ return;
87
+ }
88
+
89
+ // Check if subagent logged any knowledge comments
90
+ const hasKnowledgeComment =
91
+ (metadata?.summary || "").includes("bd comments add") ||
92
+ (metadata?.summary || "").includes("bd comment add");
93
+
94
+ if (hasKnowledgeComment) {
95
+ // Knowledge was captured, all good
96
+ return;
97
+ }
98
+
99
+ // BEAD_ID found but no knowledge logged - inject reminder
100
+ return {
101
+ systemMessage: `⚠️ **Subagent completed without logging knowledge**
102
+
103
+ The subagent referenced a bead but didn't capture any learnings. Consider running:
104
+
105
+ \`\`\`bash
106
+ bd comments add <BEAD_ID> "LEARNED: <key insight from subagent work>"
107
+ \`\`\`
108
+
109
+ Use one of: LEARNED, DECISION, FACT, PATTERN, INVESTIGATION`,
110
+ };
111
+ }
112
+
113
+ // Pre-filter: only process bash commands (performance optimization)
114
+ if (tool !== "bash") {
115
+ return;
116
+ }
117
+
118
+ const command = input?.command;
119
+ if (!command || typeof command !== "string") {
120
+ return;
121
+ }
122
+
123
+ // Pre-filter: check for bd comments pattern before spawning subprocess
124
+ // This is a hot path - 95% of bash commands are not bd comments
125
+ if (!command.match(/bd\s+comments?\s+add\s+/)) {
126
+ return;
127
+ }
128
+
129
+ // Pre-filter: check for knowledge prefixes
130
+ if (!command.match(/(INVESTIGATION:|LEARNED:|DECISION:|FACT:|PATTERN:)/)) {
131
+ return;
132
+ }
133
+
134
+ // Validate directory path (security)
135
+ if (!directory || !resolve(directory).startsWith("/")) {
136
+ return;
137
+ }
138
+
139
+ // Construct stdin payload in Claude Code format
140
+ const stdinPayload = JSON.stringify({
141
+ tool_name: "Bash",
142
+ tool_input: {
143
+ command: command,
144
+ },
145
+ cwd: directory,
146
+ });
147
+
148
+ const hookScript = resolve(
149
+ import.meta.dir,
150
+ "../hooks/memory-capture.sh"
151
+ );
152
+
153
+ // Use Bun.spawn() with stdin piping (security: prevents shell injection)
154
+ const proc = Bun.spawn(["bash", hookScript], {
155
+ env: {
156
+ ...process.env,
157
+ CLAUDE_PROJECT_DIR: directory,
158
+ },
159
+ stdin: "pipe",
160
+ stdout: "pipe",
161
+ stderr: "pipe",
162
+ });
163
+
164
+ // Write stdin payload
165
+ const writer = proc.stdin.getWriter();
166
+ await writer.write(new TextEncoder().encode(stdinPayload));
167
+ await writer.close();
168
+
169
+ const stderr = await new Response(proc.stderr).text();
170
+ if (stderr) {
171
+ console.error("[lavra] memory-capture error:", stderr);
172
+ }
173
+
174
+ return;
175
+ },
176
+ } satisfies Plugin;
@@ -0,0 +1,141 @@
1
+ #!/bin/bash
2
+ #
3
+ # Import a markdown plan into beads
4
+ #
5
+ # Usage:
6
+ # ./import-plan.sh plan.md "Epic Title"
7
+ #
8
+ # Expected markdown format:
9
+ # # Epic Title
10
+ # Description here
11
+ #
12
+ # ## Research / Background
13
+ # Research findings...
14
+ #
15
+ # ## Implementation Steps
16
+ # ### Step 1: Database Schema
17
+ # Details...
18
+ #
19
+ # ### Step 2: API Endpoints
20
+ # Details...
21
+ #
22
+ # This will create:
23
+ # - Epic bead with full plan as description
24
+ # - Child beads for each step (### headers under Implementation Steps)
25
+ # - Knowledge comments for research/background sections
26
+ #
27
+
28
+ set -euo pipefail
29
+
30
+ PLAN_FILE="${1:-}"
31
+ EPIC_TITLE="${2:-}"
32
+
33
+ if [[ -z "$PLAN_FILE" || ! -f "$PLAN_FILE" ]]; then
34
+ echo "Usage: $0 <plan.md> <epic-title>"
35
+ echo ""
36
+ echo "Example:"
37
+ echo " $0 auth-plan.md \"Add two-factor authentication\""
38
+ exit 1
39
+ fi
40
+
41
+ if [[ -z "$EPIC_TITLE" ]]; then
42
+ echo "Error: Epic title required"
43
+ echo "Usage: $0 <plan.md> <epic-title>"
44
+ exit 1
45
+ fi
46
+
47
+ echo "Importing plan from: $PLAN_FILE"
48
+ echo "Epic title: $EPIC_TITLE"
49
+ echo ""
50
+
51
+ # Read full plan
52
+ FULL_PLAN=$(cat "$PLAN_FILE")
53
+
54
+ # Create epic bead
55
+ echo "Creating epic bead..."
56
+ EPIC_OUTPUT=$(bd create "$EPIC_TITLE" -d "$FULL_PLAN" --type epic 2>&1)
57
+ EPIC_ID=$(echo "$EPIC_OUTPUT" | grep -oE '[A-Z]+-[0-9]+' | head -1)
58
+
59
+ if [[ -z "$EPIC_ID" ]]; then
60
+ echo "Error: Failed to create epic bead"
61
+ echo "$EPIC_OUTPUT"
62
+ exit 1
63
+ fi
64
+
65
+ echo "Created epic: $EPIC_ID"
66
+ echo ""
67
+
68
+ # Extract research/background section and add as INVESTIGATION
69
+ RESEARCH=$(awk '/^## (Research|Background|Context)/{flag=1;next}/^## /{flag=0}flag' "$PLAN_FILE")
70
+
71
+ if [[ -n "$RESEARCH" ]]; then
72
+ echo "Adding research findings as INVESTIGATION..."
73
+ bd comments add "$EPIC_ID" "INVESTIGATION: Background and Research
74
+
75
+ $RESEARCH"
76
+ fi
77
+
78
+ # Extract decisions section and add as DECISION
79
+ DECISIONS=$(awk '/^## (Decisions|Choices|Approach)/{flag=1;next}/^## /{flag=0}flag' "$PLAN_FILE")
80
+
81
+ if [[ -n "$DECISIONS" ]]; then
82
+ echo "Adding decisions..."
83
+ bd comments add "$EPIC_ID" "DECISION: Architectural Decisions
84
+
85
+ $DECISIONS"
86
+ fi
87
+
88
+ # Extract implementation steps (### headers under Implementation/Tasks/Steps section)
89
+ echo ""
90
+ echo "Creating child beads for implementation steps..."
91
+
92
+ PREV_BEAD=""
93
+ STEP_NUM=0
94
+
95
+ # Find the Implementation Steps section and extract ### headers
96
+ awk '/^## (Implementation|Tasks|Steps|Work)/{flag=1;next}/^## /{flag=0}flag' "$PLAN_FILE" | \
97
+ grep -E '^### ' | \
98
+ while IFS= read -r line; do
99
+ ((STEP_NUM++))
100
+
101
+ # Extract step title (remove ###)
102
+ STEP_TITLE=$(echo "$line" | sed 's/^### *//')
103
+
104
+ # Extract step description (text between this ### and next ### or ##)
105
+ STEP_DESC=$(awk -v title="$line" '
106
+ $0 == title {flag=1; next}
107
+ /^##/ {flag=0}
108
+ flag && /^$/ {next}
109
+ flag {print}
110
+ ' "$PLAN_FILE" | head -20)
111
+
112
+ # Create child bead
113
+ if [[ -z "$PREV_BEAD" ]]; then
114
+ # First step, no dependencies
115
+ CHILD_OUTPUT=$(bd create "$STEP_TITLE" -d "$STEP_DESC" --parent "$EPIC_ID" 2>&1)
116
+ else
117
+ # Subsequent steps depend on previous
118
+ CHILD_OUTPUT=$(bd create "$STEP_TITLE" -d "$STEP_DESC" --parent "$EPIC_ID" --deps "$PREV_BEAD" 2>&1)
119
+ fi
120
+
121
+ CHILD_ID=$(echo "$CHILD_OUTPUT" | grep -oE '[A-Z]+-[0-9.]+' | head -1)
122
+
123
+ if [[ -n "$CHILD_ID" ]]; then
124
+ echo " Created: $CHILD_ID - $STEP_TITLE"
125
+ PREV_BEAD="$CHILD_ID"
126
+ else
127
+ echo " Warning: Failed to create bead for: $STEP_TITLE"
128
+ fi
129
+ done
130
+
131
+ echo ""
132
+ echo "Import complete!"
133
+ echo ""
134
+ echo "Epic: $EPIC_ID"
135
+ echo "View: bd show $EPIC_ID"
136
+ echo "List children: bd list --parent $EPIC_ID"
137
+ echo ""
138
+ echo "Next steps:"
139
+ echo " 1. Review the created beads: bd show $EPIC_ID"
140
+ echo " 2. Start work: /lavra-work ${EPIC_ID}.1"
141
+ echo " 3. Or refine with research: /lavra-plan $EPIC_ID"
@@ -0,0 +1,223 @@
1
+ ---
2
+ name: agent-browser
3
+ description: Browser automation using Vercel's agent-browser CLI. Use when you need to interact with web pages, fill forms, take screenshots, or scrape data. Alternative to Playwright MCP - uses Bash commands with ref-based element selection. Triggers on "browse website", "fill form", "click button", "take screenshot", "scrape page", "web automation".
4
+ ---
5
+
6
+ # agent-browser: CLI Browser Automation
7
+
8
+ Vercel's headless browser automation CLI designed for AI agents. Uses ref-based selection (@e1, @e2) from accessibility snapshots.
9
+
10
+ ## Setup Check
11
+
12
+ ```bash
13
+ # Check installation
14
+ command -v agent-browser >/dev/null 2>&1 && echo "Installed" || echo "NOT INSTALLED - run: npm install -g agent-browser && agent-browser install"
15
+ ```
16
+
17
+ ### Install if needed
18
+
19
+ ```bash
20
+ npm install -g agent-browser
21
+ agent-browser install # Downloads Chromium
22
+ ```
23
+
24
+ ## Core Workflow
25
+
26
+ **The snapshot + ref pattern is optimal for LLMs:**
27
+
28
+ 1. **Navigate** to URL
29
+ 2. **Snapshot** to get interactive elements with refs
30
+ 3. **Interact** using refs (@e1, @e2, etc.)
31
+ 4. **Re-snapshot** after navigation or DOM changes
32
+
33
+ ```bash
34
+ # Step 1: Open URL
35
+ agent-browser open https://example.com
36
+
37
+ # Step 2: Get interactive elements with refs
38
+ agent-browser snapshot -i --json
39
+
40
+ # Step 3: Interact using refs
41
+ agent-browser click @e1
42
+ agent-browser fill @e2 "search query"
43
+
44
+ # Step 4: Re-snapshot after changes
45
+ agent-browser snapshot -i
46
+ ```
47
+
48
+ ## Key Commands
49
+
50
+ ### Navigation
51
+
52
+ ```bash
53
+ agent-browser open <url> # Navigate to URL
54
+ agent-browser back # Go back
55
+ agent-browser forward # Go forward
56
+ agent-browser reload # Reload page
57
+ agent-browser close # Close browser
58
+ ```
59
+
60
+ ### Snapshots (Essential for AI)
61
+
62
+ ```bash
63
+ agent-browser snapshot # Full accessibility tree
64
+ agent-browser snapshot -i # Interactive elements only (recommended)
65
+ agent-browser snapshot -i --json # JSON output for parsing
66
+ agent-browser snapshot -c # Compact (remove empty elements)
67
+ agent-browser snapshot -d 3 # Limit depth
68
+ ```
69
+
70
+ ### Interactions
71
+
72
+ ```bash
73
+ agent-browser click @e1 # Click element
74
+ agent-browser dblclick @e1 # Double-click
75
+ agent-browser fill @e1 "text" # Clear and fill input
76
+ agent-browser type @e1 "text" # Type without clearing
77
+ agent-browser press Enter # Press key
78
+ agent-browser hover @e1 # Hover element
79
+ agent-browser check @e1 # Check checkbox
80
+ agent-browser uncheck @e1 # Uncheck checkbox
81
+ agent-browser select @e1 "option" # Select dropdown option
82
+ agent-browser scroll down 500 # Scroll (up/down/left/right)
83
+ agent-browser scrollintoview @e1 # Scroll element into view
84
+ ```
85
+
86
+ ### Get Information
87
+
88
+ ```bash
89
+ agent-browser get text @e1 # Get element text
90
+ agent-browser get html @e1 # Get element HTML
91
+ agent-browser get value @e1 # Get input value
92
+ agent-browser get attr href @e1 # Get attribute
93
+ agent-browser get title # Get page title
94
+ agent-browser get url # Get current URL
95
+ agent-browser get count "button" # Count matching elements
96
+ ```
97
+
98
+ ### Screenshots & PDFs
99
+
100
+ ```bash
101
+ agent-browser screenshot # Viewport screenshot
102
+ agent-browser screenshot --full # Full page
103
+ agent-browser screenshot output.png # Save to file
104
+ agent-browser screenshot --full output.png # Full page to file
105
+ agent-browser pdf output.pdf # Save as PDF
106
+ ```
107
+
108
+ ### Wait
109
+
110
+ ```bash
111
+ agent-browser wait @e1 # Wait for element
112
+ agent-browser wait 2000 # Wait milliseconds
113
+ agent-browser wait "text" # Wait for text to appear
114
+ ```
115
+
116
+ ## Semantic Locators (Alternative to Refs)
117
+
118
+ ```bash
119
+ agent-browser find role button click --name "Submit"
120
+ agent-browser find text "Sign up" click
121
+ agent-browser find label "Email" fill "user@example.com"
122
+ agent-browser find placeholder "Search..." fill "query"
123
+ ```
124
+
125
+ ## Sessions (Parallel Browsers)
126
+
127
+ ```bash
128
+ # Run multiple independent browser sessions
129
+ agent-browser --session browser1 open https://site1.com
130
+ agent-browser --session browser2 open https://site2.com
131
+
132
+ # List active sessions
133
+ agent-browser session list
134
+ ```
135
+
136
+ ## Examples
137
+
138
+ ### Login Flow
139
+
140
+ ```bash
141
+ agent-browser open https://app.example.com/login
142
+ agent-browser snapshot -i
143
+ # Output shows: textbox "Email" [ref=e1], textbox "Password" [ref=e2], button "Sign in" [ref=e3]
144
+ agent-browser fill @e1 "user@example.com"
145
+ agent-browser fill @e2 "password123"
146
+ agent-browser click @e3
147
+ agent-browser wait 2000
148
+ agent-browser snapshot -i # Verify logged in
149
+ ```
150
+
151
+ ### Search and Extract
152
+
153
+ ```bash
154
+ agent-browser open https://news.ycombinator.com
155
+ agent-browser snapshot -i --json
156
+ # Parse JSON to find story links
157
+ agent-browser get text @e12 # Get headline text
158
+ agent-browser click @e12 # Click to open story
159
+ ```
160
+
161
+ ### Form Filling
162
+
163
+ ```bash
164
+ agent-browser open https://forms.example.com
165
+ agent-browser snapshot -i
166
+ agent-browser fill @e1 "John Doe"
167
+ agent-browser fill @e2 "john@example.com"
168
+ agent-browser select @e3 "United States"
169
+ agent-browser check @e4 # Agree to terms
170
+ agent-browser click @e5 # Submit button
171
+ agent-browser screenshot confirmation.png
172
+ ```
173
+
174
+ ### Debug Mode
175
+
176
+ ```bash
177
+ # Run with visible browser window
178
+ agent-browser --headed open https://example.com
179
+ agent-browser --headed snapshot -i
180
+ agent-browser --headed click @e1
181
+ ```
182
+
183
+ ## JSON Output
184
+
185
+ Add `--json` for structured output:
186
+
187
+ ```bash
188
+ agent-browser snapshot -i --json
189
+ ```
190
+
191
+ Returns:
192
+ ```json
193
+ {
194
+ "success": true,
195
+ "data": {
196
+ "refs": {
197
+ "e1": {"name": "Submit", "role": "button"},
198
+ "e2": {"name": "Email", "role": "textbox"}
199
+ },
200
+ "snapshot": "- button \"Submit\" [ref=e1]\n- textbox \"Email\" [ref=e2]"
201
+ }
202
+ }
203
+ ```
204
+
205
+ ## vs Playwright MCP
206
+
207
+ | Feature | agent-browser (CLI) | Playwright MCP |
208
+ |---------|---------------------|----------------|
209
+ | Interface | Bash commands | MCP tools |
210
+ | Selection | Refs (@e1) | Refs (e1) |
211
+ | Output | Text/JSON | Tool responses |
212
+ | Parallel | Sessions | Tabs |
213
+ | Best for | Quick automation | Tool integration |
214
+
215
+ Use agent-browser when:
216
+ - You prefer Bash-based workflows
217
+ - You want simpler CLI commands
218
+ - You need quick one-off automation
219
+
220
+ Use Playwright MCP when:
221
+ - You need deep MCP tool integration
222
+ - You want tool-based responses
223
+ - You're building complex automation