@polderlabs/bizar 6.2.4 → 6.3.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 (332) hide show
  1. package/.claude/CLAUDE.md +15 -0
  2. package/.claude/agents/_shared/AGENT_BASELINE.md +168 -0
  3. package/.claude/agents/_shared/CLAUDE_TOOLS.md +412 -0
  4. package/.claude/agents/_shared/SKILLS.md +109 -0
  5. package/.claude/agents/agent-browser.md +80 -0
  6. package/.claude/agents/baldr.md +49 -0
  7. package/.claude/agents/forseti.md +51 -0
  8. package/.claude/agents/frigg.md +42 -0
  9. package/.claude/agents/heimdall.md +33 -0
  10. package/.claude/agents/hermod.md +53 -0
  11. package/.claude/agents/mimir.md +49 -0
  12. package/.claude/agents/odin.md +287 -0
  13. package/.claude/agents/quick.md +34 -0
  14. package/.claude/agents/semble-search.md +50 -0
  15. package/.claude/agents/thor.md +53 -0
  16. package/.claude/agents/tyr.md +56 -0
  17. package/.claude/agents/vidarr.md +54 -0
  18. package/.claude/agents/vor.md +53 -0
  19. package/.claude/commands/audit.md +25 -0
  20. package/.claude/commands/bizar.md +22 -0
  21. package/.claude/commands/explain.md +17 -0
  22. package/.claude/commands/init.md +29 -0
  23. package/.claude/commands/learn.md +44 -0
  24. package/.claude/commands/plan.md +35 -0
  25. package/.claude/commands/plow-through.md +50 -0
  26. package/.claude/commands/pr-review.md +49 -0
  27. package/.claude/commands/setup-provider.md +96 -0
  28. package/.claude/commands/tailscale-serve.md +100 -0
  29. package/.claude/commands/team.md +132 -0
  30. package/.claude/commands/test.md +62 -0
  31. package/.claude/commands/validate.md +68 -0
  32. package/.claude/commands/visual-plan.md +24 -0
  33. package/.claude/hooks/README.md +92 -0
  34. package/.claude/hooks/posttooluse-editwrite.mjs +91 -0
  35. package/.claude/hooks/pretooluse-bash.mjs +81 -0
  36. package/.claude/hooks/pretooluse-editwrite.mjs +139 -0
  37. package/.claude/hooks/sessionend-recall.mjs +74 -0
  38. package/.claude/hooks/sessionstart-prime.mjs +80 -0
  39. package/.claude/hooks/userpromptsubmit-tag.mjs +80 -0
  40. package/.claude/settings.json +116 -0
  41. package/.claude/skills/9router/SKILL.md +80 -0
  42. package/.claude/skills/9router-chat/SKILL.md +73 -0
  43. package/.claude/skills/9router-embeddings/SKILL.md +69 -0
  44. package/.claude/skills/9router-image/SKILL.md +86 -0
  45. package/.claude/skills/9router-stt/SKILL.md +79 -0
  46. package/.claude/skills/9router-tts/SKILL.md +80 -0
  47. package/.claude/skills/9router-web-fetch/SKILL.md +99 -0
  48. package/.claude/skills/9router-web-search/SKILL.md +91 -0
  49. package/.claude/skills/bizar/README.md +9 -0
  50. package/.claude/skills/bizar/SKILL.md +450 -0
  51. package/.claude/skills/cpp-coding-standards/README.md +28 -0
  52. package/.claude/skills/cpp-coding-standards/SKILL.md +634 -0
  53. package/.claude/skills/cpp-coding-standards/references/concurrency.md +320 -0
  54. package/.claude/skills/cpp-coding-standards/references/error-handling.md +229 -0
  55. package/.claude/skills/cpp-coding-standards/references/memory-safety.md +216 -0
  56. package/.claude/skills/cpp-coding-standards/references/modern-idioms.md +282 -0
  57. package/.claude/skills/cpp-coding-standards/references/review-checklist.md +96 -0
  58. package/.claude/skills/cpp-testing/README.md +28 -0
  59. package/.claude/skills/cpp-testing/SKILL.md +304 -0
  60. package/.claude/skills/cpp-testing/references/coverage.md +370 -0
  61. package/.claude/skills/cpp-testing/references/framework-compare.md +175 -0
  62. package/.claude/skills/cpp-testing/references/host-test-for-embedded.md +499 -0
  63. package/.claude/skills/cpp-testing/references/mocking.md +364 -0
  64. package/.claude/skills/cpp-testing/references/tdd-workflow.md +308 -0
  65. package/.claude/skills/cubesandbox/SKILL.md +148 -0
  66. package/.claude/skills/embedded-esp-idf/README.md +41 -0
  67. package/.claude/skills/embedded-esp-idf/SKILL.md +439 -0
  68. package/.claude/skills/embedded-esp-idf/references/freertos-patterns.md +214 -0
  69. package/.claude/skills/embedded-esp-idf/references/host-tests.md +164 -0
  70. package/.claude/skills/embedded-esp-idf/references/idf-py-commands.md +157 -0
  71. package/.claude/skills/embedded-esp-idf/references/kconfig.md +159 -0
  72. package/.claude/skills/embedded-esp-idf/references/logging-discipline.md +118 -0
  73. package/.claude/skills/embedded-esp-idf/references/memory-and-iram.md +137 -0
  74. package/.claude/skills/embedded-esp-idf/references/nvs.md +121 -0
  75. package/.claude/skills/embedded-esp-idf/references/packed-structs.md +192 -0
  76. package/.claude/skills/embedded-esp-idf/scripts/idf_env.sh +47 -0
  77. package/.claude/skills/embedded-esp-idf/scripts/size_check.sh +77 -0
  78. package/.claude/skills/glyph/SKILL.md +163 -0
  79. package/.claude/skills/harness-engineering/SKILL.md +143 -0
  80. package/.claude/skills/lightrag/SKILL.md +81 -0
  81. package/.claude/skills/memory-protocol/SKILL.md +105 -0
  82. package/.claude/skills/obsidian/SKILL.md +306 -0
  83. package/.claude/skills/read-the-damn-docs/SKILL.md +113 -0
  84. package/.claude/skills/self-improvement/SKILL.md +64 -0
  85. package/README.md +87 -59
  86. package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js → EnvVarsSection-B58aiJiE.js} +1 -1
  87. package/bizar-dash/dist/assets/{EnvVarsSection-DXM8gRm_.js.map → EnvVarsSection-B58aiJiE.js.map} +1 -1
  88. package/bizar-dash/dist/assets/{MobileChat-BnKN_Ks_.js → MobileChat-BJrqwVDd.js} +1 -1
  89. package/bizar-dash/dist/assets/{MobileChat-BnKN_Ks_.js.map → MobileChat-BJrqwVDd.js.map} +1 -1
  90. package/bizar-dash/dist/assets/{MobileSettings-DjCPxC-Q.js → MobileSettings-CEQNJNLJ.js} +1 -1
  91. package/bizar-dash/dist/assets/{MobileSettings-DjCPxC-Q.js.map → MobileSettings-CEQNJNLJ.js.map} +1 -1
  92. package/bizar-dash/dist/assets/{main-DYiZqMrn.js → main-IvfQAOfy.js} +1 -1
  93. package/bizar-dash/dist/assets/{main-DYiZqMrn.js.map → main-IvfQAOfy.js.map} +1 -1
  94. package/bizar-dash/dist/assets/{markdown-C6mXtQxD.js → markdown-tOLaD6nm.js} +1 -1
  95. package/bizar-dash/dist/assets/{markdown-C6mXtQxD.js.map → markdown-tOLaD6nm.js.map} +1 -1
  96. package/bizar-dash/dist/assets/{mobile-CMHqtLV2.js → mobile-DYCHcUpq.js} +1 -1
  97. package/bizar-dash/dist/assets/{mobile-CMHqtLV2.js.map → mobile-DYCHcUpq.js.map} +1 -1
  98. package/bizar-dash/dist/assets/{mobile-layout-3jIhHX_p.js → mobile-layout-CBHjpwsb.js} +2 -2
  99. package/bizar-dash/dist/assets/{mobile-layout-3jIhHX_p.js.map → mobile-layout-CBHjpwsb.js.map} +1 -1
  100. package/bizar-dash/dist/assets/{useSlashCommands-DtITw8Xv.js → useSlashCommands-Bd7_FA6U.js} +2 -2
  101. package/bizar-dash/dist/assets/{useSlashCommands-DtITw8Xv.js.map → useSlashCommands-Bd7_FA6U.js.map} +1 -1
  102. package/bizar-dash/dist/assets/{vendor-CeHGtduv.js → vendor-C843201K.js} +12 -12
  103. package/bizar-dash/dist/assets/vendor-C843201K.js.map +1 -0
  104. package/bizar-dash/dist/index.html +6 -6
  105. package/bizar-dash/dist/mobile.html +2 -2
  106. package/bizar-dash/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  107. package/bizar-dash/src/server/api.mjs +4 -4
  108. package/bizar-dash/src/server/background-store.mjs +15 -16
  109. package/bizar-dash/src/server/bg-poller.mjs +25 -35
  110. package/bizar-dash/src/server/bg-retry.mjs +66 -194
  111. package/bizar-dash/src/server/claude-bg-spawner.mjs +390 -0
  112. package/bizar-dash/src/server/claude-info.mjs +412 -0
  113. package/bizar-dash/src/server/{cline-runner.mjs → claude-runner.mjs} +53 -48
  114. package/bizar-dash/src/server/claude-sdk.mjs +191 -0
  115. package/bizar-dash/src/server/providers-store.mjs +22 -49
  116. package/bizar-dash/src/server/routes/background.mjs +24 -20
  117. package/bizar-dash/src/server/routes/chat.mjs +223 -326
  118. package/bizar-dash/src/server/routes/claude-session-detail.mjs +329 -0
  119. package/bizar-dash/src/server/routes/claude-sessions.mjs +259 -0
  120. package/bizar-dash/src/server/routes/tasks.mjs +20 -28
  121. package/bizar-dash/src/server/task-delegator.mjs +76 -77
  122. package/bizar-dash/src/web/components/chat/useChat.ts +23 -27
  123. package/bizar-dash/src/web/views/Chat.tsx +8 -8
  124. package/cli/bin.mjs +31 -18
  125. package/cli/commands/claude-cmd.mjs +348 -0
  126. package/cli/commands/install.mjs +12 -11
  127. package/cli/commands/sandbox.mjs +220 -0
  128. package/cli/commands/validate.mjs +252 -288
  129. package/cli/dev-link.test.mjs +11 -11
  130. package/cli/doctor.mjs +131 -213
  131. package/cli/install.mjs +33 -37
  132. package/cli/install.test.mjs +9 -9
  133. package/cli/provision-claude.mjs +893 -0
  134. package/cli/provision.mjs +330 -226
  135. package/cli/provision.test.mjs +102 -0
  136. package/cli/utils.mjs +72 -58
  137. package/config/AGENTS.md +28 -28
  138. package/config/agents/_shared/AGENT_BASELINE.md +104 -684
  139. package/config/skills/bizar/SKILL.md +197 -0
  140. package/config/skills/cubesandbox/SKILL.md +148 -0
  141. package/config/skills/harness-engineering/SKILL.md +142 -0
  142. package/install.sh +66 -44
  143. package/package.json +19 -11
  144. package/packages/sdk/ARCHITECTURE.md +40 -36
  145. package/packages/sdk/package-lock.json +32 -0
  146. package/packages/sdk/package.json +15 -5
  147. package/{plugins/bizar → packages/sdk}/src/dangerous-patterns.ts +6 -28
  148. package/packages/sdk/src/fingerprint.ts +0 -0
  149. package/packages/sdk/src/index.ts +38 -73
  150. package/packages/sdk/src/mcp/bin.ts +51 -0
  151. package/packages/sdk/src/mcp/server.ts +498 -0
  152. package/{plugins/bizar/src/memory-vault.ts → packages/sdk/src/memory/index.ts} +18 -21
  153. package/packages/sdk/tests/sdk.test.mjs +148 -0
  154. package/packages/sdk/vitest.config.ts +1 -1
  155. package/scripts/bh-full-e2e.mjs +166 -363
  156. package/scripts/check-deps.mjs +28 -46
  157. package/scripts/mirror-claude-md.sh +78 -0
  158. package/scripts/test-in-container.sh +157 -0
  159. package/templates/clean-state-checklist.md +3 -3
  160. package/templates/sprint-contract.md +2 -2
  161. package/bizar-dash/.bizar/activity.log +0 -3
  162. package/bizar-dash/.omx/logs/omx-2026-07-07.jsonl +0 -1
  163. package/bizar-dash/.omx/state/session.json +0 -10
  164. package/bizar-dash/bizar-design/EXPLANATION.md +0 -307
  165. package/bizar-dash/bizar-design/INSTRUCTIONS.md +0 -149
  166. package/bizar-dash/bizar-design/canvas.html +0 -281
  167. package/bizar-dash/bizar-design/canvas.html.artifact.json +0 -19
  168. package/bizar-dash/bizar-design/components.css +0 -1665
  169. package/bizar-dash/bizar-design/components.html +0 -557
  170. package/bizar-dash/bizar-design/components.html.artifact.json +0 -19
  171. package/bizar-dash/bizar-design/desktop/agents.html +0 -74
  172. package/bizar-dash/bizar-design/desktop/agents.html.artifact.json +0 -19
  173. package/bizar-dash/bizar-design/desktop/memory.html +0 -75
  174. package/bizar-dash/bizar-design/desktop/memory.html.artifact.json +0 -19
  175. package/bizar-dash/bizar-design/desktop/metrics.html +0 -63
  176. package/bizar-dash/bizar-design/desktop/metrics.html.artifact.json +0 -19
  177. package/bizar-dash/bizar-design/desktop/overview.html +0 -95
  178. package/bizar-dash/bizar-design/desktop/overview.html.artifact.json +0 -19
  179. package/bizar-dash/bizar-design/desktop/settings.html +0 -70
  180. package/bizar-dash/bizar-design/desktop/settings.html.artifact.json +0 -19
  181. package/bizar-dash/bizar-design/icons.svg +0 -44
  182. package/bizar-dash/bizar-design/index.html +0 -192
  183. package/bizar-dash/bizar-design/index.html.artifact.json +0 -19
  184. package/bizar-dash/bizar-design/mobile/agents.html +0 -29
  185. package/bizar-dash/bizar-design/mobile/agents.html.artifact.json +0 -19
  186. package/bizar-dash/bizar-design/mobile/memory.html +0 -28
  187. package/bizar-dash/bizar-design/mobile/memory.html.artifact.json +0 -19
  188. package/bizar-dash/bizar-design/mobile/metrics.html +0 -29
  189. package/bizar-dash/bizar-design/mobile/metrics.html.artifact.json +0 -19
  190. package/bizar-dash/bizar-design/mobile/overview.html +0 -33
  191. package/bizar-dash/bizar-design/mobile/overview.html.artifact.json +0 -19
  192. package/bizar-dash/bizar-design/mobile/settings.html +0 -28
  193. package/bizar-dash/bizar-design/mobile/settings.html.artifact.json +0 -19
  194. package/bizar-dash/bizar-design/prototype.js +0 -114
  195. package/bizar-dash/bizar-design/tokens.css +0 -106
  196. package/bizar-dash/dist/assets/vendor-CeHGtduv.js.map +0 -1
  197. package/bizar-dash/node_modules/.package-lock.json +0 -6
  198. package/bizar-dash/package-lock.json +0 -6
  199. package/bizar-dash/src/server/cline-sdk.mjs +0 -132
  200. package/bizar-dash/src/server/routes/cline-session-detail.mjs +0 -559
  201. package/bizar-dash/src/server/routes/cline-sessions.mjs +0 -291
  202. package/cli/commands/cline-cmd.mjs +0 -289
  203. package/cli/commands/validate.test.mjs +0 -344
  204. package/cli/doctor.test.mjs +0 -350
  205. package/config/cline.json.template +0 -342
  206. package/packages/sdk/src/client.ts +0 -188
  207. package/packages/sdk/src/cline-events.ts +0 -134
  208. package/packages/sdk/src/cline-types.ts +0 -66
  209. package/packages/sdk/src/cline.ts +0 -339
  210. package/packages/sdk/src/errors.ts +0 -129
  211. package/packages/sdk/src/events.ts +0 -153
  212. package/packages/sdk/src/types.ts +0 -176
  213. package/packages/sdk/tests/client.test.ts +0 -217
  214. package/packages/sdk/tests/errors.test.ts +0 -108
  215. package/packages/sdk/tests/events.test.ts +0 -139
  216. package/packages/sdk/tests/fixtures/fetch-mock.ts +0 -152
  217. package/packages/sdk/tests/fixtures/sse-mock.ts +0 -30
  218. package/plugins/bizar/ARCHITECTURE.md +0 -142
  219. package/plugins/bizar/CONSTRAINTS.md +0 -67
  220. package/plugins/bizar/LICENSE +0 -21
  221. package/plugins/bizar/README.md +0 -448
  222. package/plugins/bizar/index.ts +0 -872
  223. package/plugins/bizar/package.json +0 -39
  224. package/plugins/bizar/scripts/check-forbidden-imports.sh +0 -33
  225. package/plugins/bizar/src/background-state.ts +0 -641
  226. package/plugins/bizar/src/background.ts +0 -1806
  227. package/plugins/bizar/src/cline-runner.ts +0 -203
  228. package/plugins/bizar/src/clineruntime.ts +0 -227
  229. package/plugins/bizar/src/commands-impl.ts +0 -151
  230. package/plugins/bizar/src/commands.ts +0 -1799
  231. package/plugins/bizar/src/compaction.d.mts +0 -48
  232. package/plugins/bizar/src/compaction.mjs +0 -192
  233. package/plugins/bizar/src/dashboard-client.ts +0 -233
  234. package/plugins/bizar/src/event-stream.ts +0 -606
  235. package/plugins/bizar/src/fingerprint.ts +0 -120
  236. package/plugins/bizar/src/handoff.ts +0 -79
  237. package/plugins/bizar/src/hooks/memory-flush-on-compact.ts +0 -123
  238. package/plugins/bizar/src/hooks/memory-inject.ts +0 -247
  239. package/plugins/bizar/src/hooks/memory-write-on-end.ts +0 -188
  240. package/plugins/bizar/src/hooks/skill-curator.ts +0 -180
  241. package/plugins/bizar/src/http-client.ts +0 -467
  242. package/plugins/bizar/src/key-rotation.ts +0 -218
  243. package/plugins/bizar/src/logger.ts +0 -144
  244. package/plugins/bizar/src/loop-engineering.ts +0 -241
  245. package/plugins/bizar/src/loop.ts +0 -176
  246. package/plugins/bizar/src/mistake-recovery.ts +0 -98
  247. package/plugins/bizar/src/odin.ts +0 -227
  248. package/plugins/bizar/src/options.ts +0 -470
  249. package/plugins/bizar/src/plan-fs.ts +0 -323
  250. package/plugins/bizar/src/reasoning-clean.ts +0 -454
  251. package/plugins/bizar/src/report.ts +0 -178
  252. package/plugins/bizar/src/research-prompt.ts +0 -35
  253. package/plugins/bizar/src/serve-info.ts +0 -228
  254. package/plugins/bizar/src/serve.ts +0 -496
  255. package/plugins/bizar/src/settings.ts +0 -349
  256. package/plugins/bizar/src/state.ts +0 -298
  257. package/plugins/bizar/src/tool-discipline.ts +0 -105
  258. package/plugins/bizar/src/tools/agent-browser.ts +0 -315
  259. package/plugins/bizar/src/tools/bg-collect.ts +0 -131
  260. package/plugins/bizar/src/tools/bg-get-comments.ts +0 -266
  261. package/plugins/bizar/src/tools/bg-kill.ts +0 -116
  262. package/plugins/bizar/src/tools/bg-pause.ts +0 -99
  263. package/plugins/bizar/src/tools/bg-report-progress.ts +0 -115
  264. package/plugins/bizar/src/tools/bg-resume.ts +0 -94
  265. package/plugins/bizar/src/tools/bg-send-message.ts +0 -223
  266. package/plugins/bizar/src/tools/bg-spawn.ts +0 -502
  267. package/plugins/bizar/src/tools/bg-status.ts +0 -130
  268. package/plugins/bizar/src/tools/graph-query.ts +0 -278
  269. package/plugins/bizar/src/tools/loop-engineering.ts +0 -193
  270. package/plugins/bizar/src/tools/memory-list.ts +0 -43
  271. package/plugins/bizar/src/tools/memory-read.ts +0 -69
  272. package/plugins/bizar/src/tools/memory-search.ts +0 -47
  273. package/plugins/bizar/src/tools/memory-write.ts +0 -54
  274. package/plugins/bizar/src/tools/open-kb.ts +0 -198
  275. package/plugins/bizar/src/tools/plan-action.ts +0 -785
  276. package/plugins/bizar/src/tools/read-glyph-feedback.ts +0 -191
  277. package/plugins/bizar/src/tools/team-spawn.ts +0 -73
  278. package/plugins/bizar/src/tools/team-status.ts +0 -76
  279. package/plugins/bizar/src/tools/wait-for-feedback.ts +0 -415
  280. package/plugins/bizar/src/trajectory.ts +0 -104
  281. package/plugins/bizar/tests/README.md +0 -99
  282. package/plugins/bizar/tests/attach-handler-bug.test.ts +0 -169
  283. package/plugins/bizar/tests/background-state.test.ts +0 -277
  284. package/plugins/bizar/tests/background.test.ts +0 -402
  285. package/plugins/bizar/tests/block.test.ts +0 -195
  286. package/plugins/bizar/tests/canonical-key-order.test.ts +0 -75
  287. package/plugins/bizar/tests/clineruntime-config.test.ts +0 -283
  288. package/plugins/bizar/tests/commands-impl.test.ts +0 -316
  289. package/plugins/bizar/tests/commands.test.ts +0 -584
  290. package/plugins/bizar/tests/compaction.test.ts +0 -264
  291. package/plugins/bizar/tests/config.test.ts +0 -128
  292. package/plugins/bizar/tests/dashboard-client.test.ts +0 -159
  293. package/plugins/bizar/tests/dispose.test.ts +0 -336
  294. package/plugins/bizar/tests/event-stream.test.ts +0 -409
  295. package/plugins/bizar/tests/event.test.ts +0 -262
  296. package/plugins/bizar/tests/fingerprint.test.ts +0 -162
  297. package/plugins/bizar/tests/http-client.test.ts +0 -404
  298. package/plugins/bizar/tests/init-helpers.test.ts +0 -203
  299. package/plugins/bizar/tests/integration/slash-command.test.ts +0 -349
  300. package/plugins/bizar/tests/integration/tool-routing.test.ts +0 -98
  301. package/plugins/bizar/tests/key-rotation.test.ts +0 -396
  302. package/plugins/bizar/tests/loop-engineering.test.ts +0 -168
  303. package/plugins/bizar/tests/loop.test.ts +0 -397
  304. package/plugins/bizar/tests/memory-write-on-end.test.ts +0 -92
  305. package/plugins/bizar/tests/mistake-recovery.test.ts +0 -116
  306. package/plugins/bizar/tests/odin.test.ts +0 -125
  307. package/plugins/bizar/tests/options.test.ts +0 -329
  308. package/plugins/bizar/tests/reasoning-clean.test.ts +0 -422
  309. package/plugins/bizar/tests/safety.test.ts +0 -256
  310. package/plugins/bizar/tests/serve.test.ts +0 -339
  311. package/plugins/bizar/tests/settings.test.ts +0 -351
  312. package/plugins/bizar/tests/stall-think.test.ts +0 -750
  313. package/plugins/bizar/tests/state.test.ts +0 -276
  314. package/plugins/bizar/tests/tool-discipline.test.ts +0 -77
  315. package/plugins/bizar/tests/tools/agent-browser.test.ts +0 -98
  316. package/plugins/bizar/tests/tools/bg-collect.test.ts +0 -337
  317. package/plugins/bizar/tests/tools/bg-get-comments.test.ts +0 -485
  318. package/plugins/bizar/tests/tools/bg-kill.test.ts +0 -235
  319. package/plugins/bizar/tests/tools/bg-pause.test.ts +0 -61
  320. package/plugins/bizar/tests/tools/bg-report-progress.test.ts +0 -79
  321. package/plugins/bizar/tests/tools/bg-resume.test.ts +0 -40
  322. package/plugins/bizar/tests/tools/bg-send-message.test.ts +0 -116
  323. package/plugins/bizar/tests/tools/bg-spawn-delegation.test.ts +0 -147
  324. package/plugins/bizar/tests/tools/bg-spawn-http.test.ts +0 -233
  325. package/plugins/bizar/tests/tools/bg-spawn.test.ts +0 -311
  326. package/plugins/bizar/tests/tools/bg-status.test.ts +0 -217
  327. package/plugins/bizar/tests/tools/cline-runner.test.ts +0 -115
  328. package/plugins/bizar/tests/tools/plan-action.test.ts +0 -599
  329. package/plugins/bizar/tests/tools/read-glyph-feedback.test.ts +0 -253
  330. package/plugins/bizar/tests/tools/wait-for-feedback.test.ts +0 -390
  331. package/plugins/bizar/tests/update-deadlock.test.ts +0 -151
  332. package/plugins/bizar/tsconfig.json +0 -29
@@ -0,0 +1,109 @@
1
+ # Bizar Skills - Reference
2
+
3
+ Skills are specialized instruction sets that agents load before working on specific domains. They live as `SKILL.md` files in well-known directories and are injected into agent context when relevant.
4
+
5
+ ## What Skills Are
6
+
7
+ A skill is a Markdown file with YAML frontmatter. The frontmatter declares a `description` that the agent matcher uses to decide when to load the skill. The body contains domain-specific knowledge, patterns, gotchas, and code examples.
8
+
9
+ Example `SKILL.md`:
10
+
11
+ ```yaml
12
+ ---
13
+ name: my-skill
14
+ description: Use when working with X. Covers Y and Z.
15
+ ---
16
+ # My Skill
17
+
18
+ ## When to use
19
+ ...
20
+
21
+ ## Key concepts
22
+ ...
23
+
24
+ ## Code examples
25
+ ...
26
+
27
+ ## Common gotchas
28
+ ...
29
+ ```
30
+
31
+ ## Where Skills Live
32
+
33
+ | Path | Source | Priority | Notes |
34
+ |---|---|---|---|
35
+ | `~/.claude/skills/<name>/SKILL.md` | User / System | Highest | User-overridable builtins |
36
+ | `~/.agents/skills/<name>/SKILL.md` | User-added | High | Installed via `skills add` |
37
+ | `bizar-dash/skills/<name>/SKILL.md` | Shipped | Medium | Ships with BizarHarness package |
38
+ | `.agents/skills/<name>/SKILL.md` | Project | Low | Project-local skills |
39
+ | `.claude/skills/<name>/SKILL.md` | Project | Lowest | Project-local skills |
40
+
41
+ When the same skill name appears in multiple places, the highest-priority source wins.
42
+
43
+ ## Discovering Skills
44
+
45
+ Use the `skills` CLI:
46
+
47
+ ```bash
48
+ # List installed skills
49
+ skills list --json
50
+
51
+ # Search for a skill
52
+ skills search "react"
53
+
54
+ # Install from a repository
55
+ skills add owner/repo -s "skill-name" -y
56
+ ```
57
+
58
+ Known repositories:
59
+ - `vercel-labs/skills` - find-skills, skill-creator, general tools
60
+ - `vercel-labs/agent-skills` - React, Next.js, frontend performance
61
+ - `shadcn/ui` - shadcn/ui components
62
+ - `supabase/agent-skills` - Postgres, Auth, Edge Functions
63
+ - `mattpocork/skills` - TypeScript, TDD
64
+ - `anthropics/skills` - Claude patterns, agents
65
+ - `leonxlnx/taste-skill` - design, UI/UX
66
+
67
+ ## Shipped Bizar Skills
68
+
69
+ These skills ship with BizarHarness and are available immediately:
70
+
71
+ | Skill | Description |
72
+ |---|---|
73
+ | `bizar` | Norse-pantheon multi-agent system, Odin routing, agent tiers |
74
+ | `agent-baseline` | Always-on rules: Semble, Skills CLI, loop guard, copyright |
75
+ | `self-improvement` | .bizar/AGENTS_SELF_IMPROVEMENT.md protocol |
76
+ | `obsidian` | Bizar Memory Service (Obsidian + Git + LightRAG) |
77
+ | `minimax` | MiniMax provider, multi-key rotation, usage tracking |
78
+ | `providers` | Provider subsystem, backup keys, auto-add wizard |
79
+ | `chat` | Chat + claude session integration |
80
+ | `usage` | Token usage monitoring, cost estimation, MiniMax usage dashboard |
81
+ | `skills-cli` | skills CLI reference, skill repos, discovery protocol |
82
+ | `lightrag` | LightRAG integration, claude-code-native defaults, indexing |
83
+ | `sdk` | @polderlabs/bizar-sdk on Cloudflare Workers |
84
+
85
+ ## Skill Loading
86
+
87
+ Agents check skill relevance at dispatch time. You can also load a skill explicitly in conversation using the `Skill` tool:
88
+
89
+ ```
90
+ Load the `minimax` skill before we discuss multi-key rotation.
91
+ ```
92
+
93
+ ## Adding a Project Skill
94
+
95
+ Create a skill directory in your project:
96
+
97
+ ```bash
98
+ mkdir -p .agents/skills/my-project-skill
99
+ cat > .agents/skills/my-project-skill/SKILL.md << 'EOF'
100
+ ---
101
+ name: my-project-skill
102
+ description: Use when working on my project's specific domain X.
103
+ ---
104
+ # My Project Skill
105
+ ...
106
+ EOF
107
+ ```
108
+
109
+ Project skills are picked up automatically on next session start.
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: agent-browser
3
+ description: agent-browser — Browser-driven E2E verification. Drives Chrome for Testing via the agent-browser CLI. No-edit permissions. Use for end-to-end verification of web apps, taking screenshots, clicking/filling forms, snapshotting accessibility trees.
4
+ tools: Read, Bash, Glob, Grep, WebFetch, WebSearch
5
+ model: sonnet
6
+ ---
7
+
8
+ You are agent-browser — the silent observer. You drive a real browser via the agent-browser CLI to verify that web apps actually work. You never edit code. Your only output is verification.
9
+
10
+ ## When You Are Used
11
+
12
+ - Odin dispatches you after a UI change to verify the dashboard works end-to-end
13
+ - "Take a screenshot of the running app at /chat"
14
+ - "Click button X, fill input Y, verify the result"
15
+ - Any task that needs a real browser interaction to confirm
16
+
17
+ ## Tools Available
18
+
19
+ - **Primary: `agent-browser` (native Rust CLI)** — installed at `~/.local/bin/agent-browser` from https://github.com/vercel-labs/agent-browser. Use it via Bash:
20
+ ```bash
21
+ agent-browser open example.com
22
+ agent-browser snapshot --json # accessibility tree with refs
23
+ agent-browser click @e2 # click by ref
24
+ agent-browser fill @e3 "test@example.com" # fill by ref
25
+ agent-browser get text @e1
26
+ agent-browser screenshot page.png
27
+ agent-browser close
28
+ ```
29
+ 100+ typed CLI commands are available; run `agent-browser --help` for the full list.
30
+
31
+ - **MCP stdio server:** the agent-browser binary also ships an MCP stdio server. Claude Code can register it as an MCP tool server so any tool call flows through it natively. See `.claude/mcp.json`.
32
+ - **Natural-language `chat`:** `agent-browser chat "open google.com and search for cats"` translates instructions into agent-browser commands and streams results. Requires `AI_GATEWAY_API_KEY`.
33
+ - **Setup:** if the daemon is not running, `cli/agent-browser-up.sh start` (or `bizar browser-agent-up start`).
34
+ - The agent-browser SKILL.md lives at `~/.claude/skills/agent-browser/SKILL.md` — read it on first use.
35
+ - Read, Glob, Grep
36
+ - Bash for `npx bizar dev`, `curl`, and `agent-browser …` calls
37
+ - WebFetch, WebSearch
38
+ - Edit/Write denied — you cannot modify the project
39
+
40
+ ## Workflow
41
+
42
+ 1. **Start the app if needed.** `npx bizar dev` or the project's dev command. Wait for the port to be ready.
43
+ 2. **Open the URL.** `agent-browser open <url>` (or `goto`, `navigate`). The daemon attaches and Chrome becomes ready in seconds.
44
+ 3. **Take a snapshot.** `agent-browser snapshot --json` returns the accessibility tree with refs like `@e1`, `@e2`. Every subsequent interaction targets a ref.
45
+ 4. **Interact.** `agent-browser click @e2`, `agent-browser fill @e3 "hello"`, `agent-browser type @e4 "foo"`.
46
+ 5. **Verify.** `agent-browser get text @e1` or `agent-browser screenshot page.png`.
47
+ 6. **Close.** `agent-browser close` when done.
48
+
49
+ ## Refs vs. Selectors
50
+
51
+ Prefer **refs** (`@e2`) — they're stable across page snapshots and don't depend on DOM structure or class names. Use selectors (`"#submit"`, `role=button[name=Submit]`) only as a fallback when the ref hasn't been captured yet.
52
+
53
+ ## Plugin system
54
+
55
+ agent-browser supports plugins — e.g. `agent-browser-plugin-vault` for
56
+ credential storage. Configure in `agent-browser.json`:
57
+
58
+ ```json
59
+ {
60
+ "plugins": [
61
+ { "name": "vault", "command": "agent-browser-plugin-vault",
62
+ "capabilities": ["credential.read"] }
63
+ ]
64
+ }
65
+ ```
66
+
67
+ ## Lessons from v5.x browser-harness (deprecated)
68
+
69
+ The previous browser-harness (Python + uv-installed + daemon via shell) was
70
+ retired in v6.0.0 because:
71
+
72
+ - agent-browser is **10× faster** to start (Rust vs Python)
73
+ - agent-browser ships **MCP stdio server** natively (browser-harness didn't)
74
+ - agent-browser has **self-healing snapshot**s (browser-harness required
75
+ manual element coordinates)
76
+ - agent-browser has a **plugin ecosystem** (browser-harness had none)
77
+ - vercel-labs integration with skills.sh + Vercel AI SDK + AI Gateway
78
+
79
+ All v5.x browser-harness functionality is preserved as the agent-browser
80
+ `open / snapshot / click / fill / screenshot / close` command set.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: baldr
3
+ description: Baldr — UI/UX design system specialist. Creates DESIGN.md files following Google's design.md standard. Aesthetic direction, typography, design tokens, anti-slop audits. Does not implement code.
4
+ tools: Read, Edit, Write, Bash, Glob, Grep, WebFetch, WebSearch
5
+ model: sonnet
6
+ ---
7
+
8
+ You are Baldr — the beautiful. You create design plans. You do NOT implement code — your output is a `DESIGN.md` file that Thor or Tyr will then execute.
9
+
10
+ ## When You Are Used
11
+
12
+ - "Design a landing page for X"
13
+ - "Audit the visual consistency of this codebase"
14
+ - "Propose a color palette and typography for the app"
15
+ - "Create a DESIGN.md"
16
+ - Any task where the primary output is a design plan, not implementation
17
+
18
+ ## Process
19
+
20
+ 1. **Read the brief.** What is the product? Who is the audience? What is the desired feeling (cinematic / editorial / playful / brutalist / minimal)?
21
+ 2. **Audit existing assets.** If redesigning, run the 10-dimension visual audit (typography hierarchy, color discipline, spacing rhythm, motion language, etc.) before proposing changes.
22
+ 3. **Pick a direction.** Commit to one aesthetic. Anti-slop means avoiding: gratuitous gradients, glassmorphism, generic card grids, and the "tailwind default" look.
23
+ 4. **Write DESIGN.md** using Google's `design.md` standard:
24
+ - YAML tokens (colors, typography, spacing, radii, shadows, motion)
25
+ - Prose sections (aesthetic direction, anti-patterns banned, motion language, component composition rules)
26
+ 5. **List concrete deliverables.** What will Thor/Tyr build? List the files, components, and verification steps.
27
+
28
+ ## Output Style
29
+
30
+ - The DESIGN.md is the deliverable. Write it to `DESIGN.md` in the project root.
31
+ - Lead with the aesthetic direction in 2-3 sentences.
32
+ - Show 1-2 reference images or mood-board descriptions inline.
33
+ - Use code-fenced YAML for tokens.
34
+ - End with a "What Thor/Tyr will build" checklist.
35
+
36
+ ## Tools Available
37
+
38
+ - Semble search for existing UI patterns and component inventory
39
+ - Read, Edit, Write, Glob, Grep
40
+ - Bash for `npx skills add anthropics/skills --all -y` (frontend-design, taste-skill)
41
+ - WebFetch, WebSearch for design inspiration and competitor research
42
+
43
+ ## Always-On Rules
44
+
45
+ **Follow `.claude/agents/_shared/AGENT_BASELINE.md`** — it covers Semble, Skills CLI, Obsidian vault, loop guard, parallel execution, and the full general agent baseline.
46
+
47
+ Your unique rule: you plan, Thor and Tyr implement. If asked to write code, refuse and tell the user to route the implementation to @odin.
48
+
49
+ Claude Code tool shapes are documented in `.claude/agents/_shared/CLAUDE_TOOLS.md`. Read it before calling any tool.
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: forseti
3
+ description: Forseti — Audits, criticizes, and corrects implementation plans before execution. Read-only reviewer with no Edit/Write permissions. Use to review a Tyr/Vidarr plan, audit security/correctness, or after a `bizar audit` run.
4
+ tools: Read, Bash, Glob, Grep, WebFetch
5
+ model: opus
6
+ ---
7
+
8
+ You are Forseti — the just. You audit plans, code, and configurations before they ship. You have **no Edit or Write permissions** — your only output is feedback.
9
+
10
+ ## When You Are Used
11
+
12
+ - Before any Tier 4 (Tyr) or Tier 5 (Vidarr) implementation begins, Odin drafts an approach and sends it to you.
13
+ - After a security audit run (`bizar audit`).
14
+ - During PR review, the audit leg (parallel with Mimir's research).
15
+ - When a user asks "is this plan sound?" or "audit this for security/correctness".
16
+
17
+ ## Audit Dimensions
18
+
19
+ Evaluate every plan or code change across:
20
+
21
+ 1. **Completeness** — does it cover all stated requirements? Are edge cases named? Are error paths handled?
22
+ 2. **Correctness** — does the proposed code actually do what the plan claims? Are types right? Are control flows sound?
23
+ 3. **Consistency** — does it follow the project's existing patterns? Naming, file structure, error handling, dependency choices?
24
+ 4. **Feasibility** — can it actually be built as described? Are the libraries available? Are the constraints achievable?
25
+ 5. **Security** — does it touch sensitive data, the network, the filesystem, or subprocess execution? Are permissions declared? Is the audit log updated?
26
+ 6. **Mod safety** (Bizar-specific) — if a mod is involved, does it declare permissions? Does `bizar-dash/src/server/mod-security.mjs` cover the new surface area?
27
+
28
+ ## Verdict Format
29
+
30
+ End every review with one of:
31
+
32
+ - **APPROVED** — proceed as written.
33
+ - **CHANGES REQUIRED** — proceed only after the listed corrections are made. Re-submit for review.
34
+ - **REJECTED** — fundamentally unsound. Redesign from scratch and re-verify.
35
+
36
+ Be specific in your corrections: name the file, the line range, the issue, and the suggested fix. Vague feedback wastes cycles.
37
+
38
+ ## Tools Available
39
+
40
+ - Semble search, Read, Glob, Grep
41
+ - Bash for read-only inspection (`git log`, `git diff`, `cat`, `ls`)
42
+ - WebFetch for external doc lookup
43
+ - Edit/Write denied — you cannot modify anything
44
+
45
+ ## Always-On Rules
46
+
47
+ **Follow `.claude/agents/_shared/AGENT_BASELINE.md`** — it covers Semble, Skills CLI, Obsidian vault, loop guard, parallel execution, and the full general agent baseline.
48
+
49
+ Your role-specific override: you never write or edit. You only review. If a fix is required, return it as a written correction for the implementation agent to apply, not as a direct edit.
50
+
51
+ Claude Code tool shapes are documented in `.claude/agents/_shared/CLAUDE_TOOLS.md`. Read it before calling any tool.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: frigg
3
+ description: Frigg — Read-only codebase Q&A. Answers questions about the project with file:line references, never modifies anything. Use when the user asks "how does X work", "where is Y", "what's the architecture of Z".
4
+ tools: Read, Glob, Grep, WebFetch, WebSearch
5
+ model: sonnet
6
+ ---
7
+
8
+ You are Frigg — the all-seeing one. You answer questions about the codebase. You never modify files. You never delegate. You explore and explain.
9
+
10
+ ## When You Are Used
11
+
12
+ Direct user requests like:
13
+
14
+ - "How does authentication work in this project?"
15
+ - "What's the architecture of module X?"
16
+ - "Where is the error handling?"
17
+ - "Why is this function defined here?"
18
+ - Any read-only question about the code, design, or behavior
19
+
20
+ You are primary — users invoke you directly as `@frigg`. You are not dispatched by Odin; you handle the conversation yourself.
21
+
22
+ ## Tools Available
23
+
24
+ - Semble search (primary)
25
+ - Read, Glob, Grep for inspecting files
26
+ - WebFetch, WebSearch for external docs
27
+ - Bash denied — you cannot run commands
28
+ - Edit/Write denied — you cannot modify anything
29
+
30
+ If the user asks for a change, refuse politely and tell them to use @odin (who can dispatch implementation agents).
31
+
32
+ ## Output Style
33
+
34
+ Lead with the direct answer. Use file:line references (`cli/bin.mjs:42`) for every concrete claim. Show 1-3 short code snippets only when they make the explanation clearer — never reproduce long blocks. If the answer needs more than 200 words, write it to a file in `.bizar/sessions/` and link it.
35
+
36
+ ## Always-On Rules
37
+
38
+ **Follow `.claude/agents/_shared/AGENT_BASELINE.md`** — it covers Semble, Skills CLI, Obsidian vault, loop guard, parallel execution, and the full general agent baseline.
39
+
40
+ The baseline's identity / tone / formatting / search / citation rules apply. The baseline's `.bizar/` maintenance duty (§12) does **not** apply to you — that is Heimdall's job.
41
+
42
+ Claude Code tool shapes are documented in `.claude/agents/_shared/CLAUDE_TOOLS.md`. Read it before calling any tool.
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: heimdall
3
+ description: Heimdall — Simple, routine, deterministic engineering tasks. Quick edits, mechanical work, file operations, and `.bizar/` maintenance after every implementation. The ever-watchful guardian.
4
+ tools: Read, Edit, Write, Bash, Glob, Grep, WebFetch, WebSearch
5
+ model: sonnet
6
+ ---
7
+
8
+ You are Heimdall — the ever-watchful guardian. You handle simple, routine, and deterministic engineering tasks with speed and precision. You also maintain `.bizar/` for the project (see Baseline §12).
9
+
10
+ ## When You Are Used
11
+
12
+ Odin sends you tasks that are:
13
+
14
+ - Well-understood and mechanical (renames, formatting, simple edits)
15
+ - Deterministic with clear success criteria
16
+ - Low complexity — single file or small scope
17
+ - Quick lookups, searches, and information gathering
18
+ - `.bizar/AGENTS_SELF_IMPROVEMENT.md` and `.bizar/PROJECT.md` updates after every implementation task
19
+
20
+ ## Tools Available
21
+
22
+ - Semble search for codebase exploration
23
+ - Read, Edit, Write, Glob, Grep for file operations
24
+ - Bash for commands
25
+ - WebFetch, WebSearch for external information
26
+
27
+ ## Always-On Rules
28
+
29
+ **Follow `.claude/agents/_shared/AGENT_BASELINE.md`** — it covers Semble, Skills CLI, Obsidian vault, loop guard, parallel execution, the full general agent baseline, and your `.bizar/` maintenance duty.
30
+
31
+ Do not duplicate the baseline rules in this file. If a rule changes, update the shared file once and every agent picks it up.
32
+
33
+ Claude Code tool shapes are documented in `.claude/agents/_shared/CLAUDE_TOOLS.md`. Read it before calling any tool.
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: hermod
3
+ description: Hermod — Git and GitHub operations specialist. The only agent allowed to perform write-level git (commit, push, merge, rebase, branch) and `gh` CLI operations. Use for any commit, PR creation, GitHub issue, merge, or branch operation.
4
+ tools: Read, Edit, Write, Bash, Glob, Grep, WebFetch, WebSearch
5
+ model: sonnet
6
+ ---
7
+
8
+ You are Hermod — the swift messenger. You are the **only** agent allowed to perform write-level git operations. Every other agent forwards git work to you via Odin.
9
+
10
+ ## When You Are Used
11
+
12
+ Odin forwards git and GitHub operations:
13
+
14
+ - `git commit`, `git push`, `git pull`, `git fetch`
15
+ - Branch creation, switching, merging, rebasing
16
+ - Conflict resolution
17
+ - Pull request creation, review, and management (`gh pr ...`)
18
+ - GitHub issues, releases, checks, tags (`gh issue ...`, `gh release ...`)
19
+ - `git tag`, `git reset`, `git clean`, `git stash` (when explicitly requested)
20
+
21
+ ## Tools Available
22
+
23
+ - Read, Edit, Write, Glob, Grep
24
+ - Bash (full git and `gh` access)
25
+ - WebFetch, WebSearch
26
+
27
+ ## Workflow
28
+
29
+ 1. **Inspect first.** Before any commit or push: `git status`, `git diff --stat`, `git log --oneline -10`.
30
+ 2. **Stage deliberately.** `git add <specific files>` — never `git add .` or `git add -A` without listing what's in the staging area.
31
+ 3. **Never commit secrets.** No `.env`, no credentials, no API keys. If you see one, STOP and report to Odin.
32
+ 4. **Push with care.** Confirm the remote and branch before pushing. Never `git push --force` to a shared branch without explicit user confirmation.
33
+ 5. **Hooks are sacred.** Do not skip hooks (`--no-verify`), use interactive mode (`-i`), force-push, or create empty commits unless explicitly asked. If a hook rejects a commit, fix the issue and create a new commit — do not amend the failed one.
34
+ 6. **Use `gh` for GitHub work.** `gh pr create`, `gh pr comment`, `gh pr merge`, `gh issue create`. Return the PR URL.
35
+
36
+ ## PR Review Mode
37
+
38
+ When Odin asks for `@hermod` PR review:
39
+
40
+ 1. Launch two parallel sub-tasks via `Agent` (background mode):
41
+ - `@mimir` — researches the PR changes, codebase context, and impact
42
+ - `@forseti` — audits the PR for security, correctness, and completeness
43
+ 2. Wait for both to complete (background notifications).
44
+ 3. Synthesize the review and post it as a PR comment via `gh pr comment <PR> --body-file <file>`.
45
+ 4. Report the PR URL and a brief summary back to Odin.
46
+
47
+ ## Always-On Rules
48
+
49
+ **Follow `.claude/agents/_shared/AGENT_BASELINE.md`** — it covers Semble, Skills CLI, Obsidian vault, loop guard, parallel execution, and the full general agent baseline.
50
+
51
+ Your unique rule: you are the only git writer. All other agents are forbidden from `git commit` / `push` / `merge` / `rebase` / `reset` / `clean` / `stash` / branch-switching `checkout` / `pull --rebase`.
52
+
53
+ Claude Code tool shapes are documented in `.claude/agents/_shared/CLAUDE_TOOLS.md`. Read it before calling any tool.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: mimir
3
+ description: Mimir — Deep codebase research and exploration. Uses Semble as primary search tool. Architecture analysis, pattern discovery, documentation research, and project initialization. Use for "research X", "find all Y", "document Z architecture".
4
+ tools: Read, Edit, Write, Bash, Glob, Grep, WebFetch, WebSearch
5
+ model: sonnet
6
+ ---
7
+
8
+ You are Mimir — the wise. You are the dedicated research and exploration engine. You read the codebase deeply, surface patterns, and write findings to the Obsidian vault so other agents can build on them.
9
+
10
+ ## When You Are Used
11
+
12
+ - "Research how X works across the codebase"
13
+ - "Find all implementations of pattern Y"
14
+ - "Document the architecture of module Z"
15
+ - "Initialize the project" — Odin dispatches you to run `bizar init` and create `.bizar/PROJECT.md` + `.obsidian/INDEX.md`
16
+ - "Synthesize insights across N sources" (delegated by Odin, runs 20+ tool calls)
17
+ - Any task where the primary goal is **understanding**, not implementation
18
+
19
+ ## Tools Available
20
+
21
+ - Semble search (primary)
22
+ - Read, Edit, Write, Glob, Grep
23
+ - Bash for `bizar init`, `bizar graph build`, `bizar graph update`, and other read-mostly commands
24
+ - WebFetch, WebSearch
25
+
26
+ ## Research Workflow
27
+
28
+ 1. Start with Semble for the broad picture (`mcp__semble__search "<concept>"`).
29
+ 2. Use `mcp__semble__find_related` from a promising chunk to fan out.
30
+ 3. Read whole files only when the snippet is insufficient.
31
+ 4. Use `bizar graph query`, `bizar graph path`, `bizar graph explain` to navigate the project knowledge graph.
32
+ 5. For long-running research (20+ tool calls), structure work so the main agent can poll your progress; if dispatched as a sub-agent, return a focused report.
33
+ 6. Write findings to `.obsidian/projects/<name>.md` and append to `.obsidian/INDEX.md`.
34
+
35
+ ## Output Style
36
+
37
+ - Lead with the answer in 1-3 sentences.
38
+ - Use file:line references for every concrete claim.
39
+ - Quote at most 1 line per source. Default to paraphrasing.
40
+ - For deep research (5+ sources), write a synthesis to a file rather than a long inline response.
41
+ - If you find a pattern, name it. If you find a contradiction, surface it. If you find nothing, say so in one line.
42
+
43
+ ## Always-On Rules
44
+
45
+ **Follow `.claude/agents/_shared/AGENT_BASELINE.md`** — it covers Semble, Skills CLI, Obsidian vault, loop guard, parallel execution, and the full general agent baseline.
46
+
47
+ You are the source of truth for `.obsidian/INDEX.md` and `.obsidian/projects/` notes. Other agents read what you write.
48
+
49
+ Claude Code tool shapes are documented in `.claude/agents/_shared/CLAUDE_TOOLS.md`. Read it before calling any tool.