@bolloon/bolloon-agent 0.1.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 (808) hide show
  1. package/README.md +462 -0
  2. package/dist/agents/constraint-layer.js +211 -0
  3. package/dist/agents/constraint-layer.js.map +1 -0
  4. package/dist/agents/pi-sdk.js +1199 -0
  5. package/dist/agents/pi-sdk.js.map +1 -0
  6. package/dist/agents/protocol.js +229 -0
  7. package/dist/agents/subagent-manager.js +361 -0
  8. package/dist/agents/workflow-engine.js +222 -0
  9. package/dist/agents/workflow-engine.js.map +1 -0
  10. package/dist/bollharness-integration/bollharness-integration/context-router-judgment.d.ts +48 -0
  11. package/dist/bollharness-integration/bollharness-integration/context-router-judgment.js +261 -0
  12. package/dist/bollharness-integration/bollharness-integration/context-router.d.ts +110 -0
  13. package/dist/bollharness-integration/bollharness-integration/context-router.js +542 -0
  14. package/dist/bollharness-integration/bollharness-integration/gate-state-machine.d.ts +87 -0
  15. package/dist/bollharness-integration/bollharness-integration/gate-state-machine.js +231 -0
  16. package/dist/bollharness-integration/bollharness-integration/gate-transition-hooks.d.ts +30 -0
  17. package/dist/bollharness-integration/bollharness-integration/gate-transition-hooks.js +91 -0
  18. package/dist/bollharness-integration/bollharness-integration/guard-checker.d.ts +105 -0
  19. package/dist/bollharness-integration/bollharness-integration/guard-checker.js +353 -0
  20. package/dist/bollharness-integration/bollharness-integration/index.d.ts +66 -0
  21. package/dist/bollharness-integration/bollharness-integration/index.js +32 -0
  22. package/dist/bollharness-integration/bollharness-integration/integration.d.ts +219 -0
  23. package/dist/bollharness-integration/bollharness-integration/integration.js +420 -0
  24. package/dist/bollharness-integration/bollharness-integration/skill-adapter.d.ts +151 -0
  25. package/dist/bollharness-integration/bollharness-integration/skill-adapter.js +518 -0
  26. package/dist/bollharness-integration/context-router-judgment.js +269 -0
  27. package/dist/bollharness-integration/context-router-judgment.js.map +1 -0
  28. package/dist/bollharness-integration/context-router.js +584 -0
  29. package/dist/bollharness-integration/context-router.js.map +1 -0
  30. package/dist/bollharness-integration/gate-state-machine.js +349 -0
  31. package/dist/bollharness-integration/gate-state-machine.js.map +1 -0
  32. package/dist/bollharness-integration/gate-transition-hooks.js +136 -0
  33. package/dist/bollharness-integration/gate-transition-hooks.js.map +1 -0
  34. package/dist/bollharness-integration/guard-checker.js +400 -0
  35. package/dist/bollharness-integration/guard-checker.js.map +1 -0
  36. package/dist/bollharness-integration/index.js +142 -0
  37. package/dist/bollharness-integration/index.js.map +1 -0
  38. package/dist/bollharness-integration/integration.js +427 -0
  39. package/dist/bollharness-integration/integration.js.map +1 -0
  40. package/dist/bollharness-integration/llm/pi-ai.d.ts +60 -0
  41. package/dist/bollharness-integration/llm/pi-ai.js +397 -0
  42. package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +153 -0
  43. package/dist/bollharness-integration/pi-ecosystem-colony/index.js +365 -0
  44. package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +136 -0
  45. package/dist/bollharness-integration/pi-ecosystem-goals/index.js +458 -0
  46. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +117 -0
  47. package/dist/bollharness-integration/pi-ecosystem-judgment/decision.js +300 -0
  48. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +78 -0
  49. package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.js +291 -0
  50. package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +139 -0
  51. package/dist/bollharness-integration/pi-ecosystem-judgment/index.js +445 -0
  52. package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +127 -0
  53. package/dist/bollharness-integration/pi-ecosystem-mcp/index.js +331 -0
  54. package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +95 -0
  55. package/dist/bollharness-integration/pi-ecosystem-subagents/index.js +303 -0
  56. package/dist/bollharness-integration/skill-adapter.js +564 -0
  57. package/dist/bollharness-integration/skill-adapter.js.map +1 -0
  58. package/dist/cli/interface.js +181 -0
  59. package/dist/constraint-runtime/src/_archive_helper.js +9 -0
  60. package/dist/constraint-runtime/src/agent/coordinator.js +48 -0
  61. package/dist/constraint-runtime/src/agent/index.js +1 -0
  62. package/dist/constraint-runtime/src/assistant/index.js +12 -0
  63. package/dist/constraint-runtime/src/bootstrap/index.js +12 -0
  64. package/dist/constraint-runtime/src/bootstrap_graph.js +13 -0
  65. package/dist/constraint-runtime/src/bridge/index.js +12 -0
  66. package/dist/constraint-runtime/src/buddy/index.js +12 -0
  67. package/dist/constraint-runtime/src/cli/index.js +12 -0
  68. package/dist/constraint-runtime/src/command_graph.js +10 -0
  69. package/dist/constraint-runtime/src/commands.js +50 -0
  70. package/dist/constraint-runtime/src/components/index.js +12 -0
  71. package/dist/constraint-runtime/src/constants/index.js +12 -0
  72. package/dist/constraint-runtime/src/constraint/budget.js +27 -0
  73. package/dist/constraint-runtime/src/constraint/budget.js.map +1 -0
  74. package/dist/constraint-runtime/src/constraint/index.js +2 -0
  75. package/dist/constraint-runtime/src/constraint/permission.js +25 -0
  76. package/dist/constraint-runtime/src/constraint/permission.js.map +1 -0
  77. package/dist/constraint-runtime/src/context.js +30 -0
  78. package/dist/constraint-runtime/src/coordinator/index.js +12 -0
  79. package/dist/constraint-runtime/src/cost_hook.js +4 -0
  80. package/dist/constraint-runtime/src/cost_tracker.js +8 -0
  81. package/dist/constraint-runtime/src/deferred_init.js +10 -0
  82. package/dist/constraint-runtime/src/direct_modes.js +6 -0
  83. package/dist/constraint-runtime/src/dynamic-tool-loader.js +85 -0
  84. package/dist/constraint-runtime/src/entrypoints/index.js +12 -0
  85. package/dist/constraint-runtime/src/execution_registry.js +44 -0
  86. package/dist/constraint-runtime/src/history.js +9 -0
  87. package/dist/constraint-runtime/src/hooks/index.js +12 -0
  88. package/dist/constraint-runtime/src/index.js +26 -0
  89. package/dist/constraint-runtime/src/ink.js +4 -0
  90. package/dist/constraint-runtime/src/keybindings/index.js +12 -0
  91. package/dist/constraint-runtime/src/memdir/index.js +12 -0
  92. package/dist/constraint-runtime/src/migrations/index.js +12 -0
  93. package/dist/constraint-runtime/src/models.js +3 -0
  94. package/dist/constraint-runtime/src/models.js.map +1 -0
  95. package/dist/constraint-runtime/src/moreright/index.js +12 -0
  96. package/dist/constraint-runtime/src/native_ts/index.js +12 -0
  97. package/dist/constraint-runtime/src/output_styles/index.js +12 -0
  98. package/dist/constraint-runtime/src/parity_audit.js +12 -0
  99. package/dist/constraint-runtime/src/plugins/index.js +12 -0
  100. package/dist/constraint-runtime/src/port_manifest.js +11 -0
  101. package/dist/constraint-runtime/src/prefetch.js +9 -0
  102. package/dist/constraint-runtime/src/query.js +1 -0
  103. package/dist/constraint-runtime/src/remote/index.js +12 -0
  104. package/dist/constraint-runtime/src/remote_runtime.js +9 -0
  105. package/dist/constraint-runtime/src/runtime/index.js +1 -0
  106. package/dist/constraint-runtime/src/runtime/session.js +35 -0
  107. package/dist/constraint-runtime/src/schemas/index.js +12 -0
  108. package/dist/constraint-runtime/src/screens/index.js +12 -0
  109. package/dist/constraint-runtime/src/server/index.js +12 -0
  110. package/dist/constraint-runtime/src/services/index.js +12 -0
  111. package/dist/constraint-runtime/src/session_store.js +22 -0
  112. package/dist/constraint-runtime/src/setup.js +30 -0
  113. package/dist/constraint-runtime/src/skills/index.js +1 -0
  114. package/dist/constraint-runtime/src/skills/skill-registry.js +28 -0
  115. package/dist/constraint-runtime/src/state/index.js +12 -0
  116. package/dist/constraint-runtime/src/system_init.js +20 -0
  117. package/dist/constraint-runtime/src/thinking/engine.js +42 -0
  118. package/dist/constraint-runtime/src/thinking/index.js +1 -0
  119. package/dist/constraint-runtime/src/tool_pool.js +8 -0
  120. package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +7 -0
  121. package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +7 -0
  122. package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +7 -0
  123. package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +6 -0
  124. package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +6 -0
  125. package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +5 -0
  126. package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +6 -0
  127. package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +4 -0
  128. package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +6 -0
  129. package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +8 -0
  130. package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +6 -0
  131. package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +6 -0
  132. package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +6 -0
  133. package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +6 -0
  134. package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +6 -0
  135. package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +29 -0
  136. package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +10 -0
  137. package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +13 -0
  138. package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +22 -0
  139. package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +25 -0
  140. package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +10 -0
  141. package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +25 -0
  142. package/dist/constraint-runtime/src/tools.js +70 -0
  143. package/dist/constraint-runtime/src/transcript.js +19 -0
  144. package/dist/constraint-runtime/src/types/index.js +12 -0
  145. package/dist/constraint-runtime/src/upstream_proxy/index.js +12 -0
  146. package/dist/constraint-runtime/src/utils/index.js +12 -0
  147. package/dist/constraint-runtime/src/vim/index.js +12 -0
  148. package/dist/constraint-runtime/src/voice/index.js +12 -0
  149. package/dist/constraint-runtime/tests/agent.test.js +16 -0
  150. package/dist/constraint-runtime/tests/constraint.test.js +41 -0
  151. package/dist/constraint-runtime/tests/skill.test.js +19 -0
  152. package/dist/constraint-runtime/tests/thinking.test.js +22 -0
  153. package/dist/constraints/commands.js +100 -0
  154. package/dist/constraints/index.js +11 -0
  155. package/dist/constraints/index.js.map +1 -0
  156. package/dist/constraints/permissions.js +37 -0
  157. package/dist/constraints/runtime.js +135 -0
  158. package/dist/constraints/session.js +48 -0
  159. package/dist/constraints/system-init.js +51 -0
  160. package/dist/constraints/tools.js +104 -0
  161. package/dist/documents/reader.js +104 -0
  162. package/dist/documents/reader.js.map +1 -0
  163. package/dist/electron-preload.js +15 -0
  164. package/dist/electron-preload.js.map +1 -0
  165. package/dist/electron.js +206 -0
  166. package/dist/electron.js.map +1 -0
  167. package/dist/index.js +1053 -0
  168. package/dist/llm/config-store.js +301 -0
  169. package/dist/llm/config-store.js.map +1 -0
  170. package/dist/llm/minimax-provider.js +46 -0
  171. package/dist/llm/minimax.js +45 -0
  172. package/dist/llm/pi-ai.js +471 -0
  173. package/dist/llm/pi-ai.js.map +1 -0
  174. package/dist/network/agent-network.js +692 -0
  175. package/dist/network/agent-network.js.map +1 -0
  176. package/dist/network/iroh-integration.js +117 -0
  177. package/dist/network/iroh-integration.js.map +1 -0
  178. package/dist/network/iroh-transport.js +506 -0
  179. package/dist/network/iroh-transport.js.map +1 -0
  180. package/dist/network/p2p.js +864 -0
  181. package/dist/network/p2p.js.map +1 -0
  182. package/dist/network/storage/adapters/json-adapter.js +401 -0
  183. package/dist/network/storage/adapters/json-adapter.js.map +1 -0
  184. package/dist/pi-ecosystem-colony/index.js +426 -0
  185. package/dist/pi-ecosystem-colony/index.js.map +1 -0
  186. package/dist/pi-ecosystem-goals/index.js +512 -0
  187. package/dist/pi-ecosystem-goals/index.js.map +1 -0
  188. package/dist/pi-ecosystem-judgment/decision.js +318 -0
  189. package/dist/pi-ecosystem-judgment/decision.js.map +1 -0
  190. package/dist/pi-ecosystem-judgment/distillation.js +304 -0
  191. package/dist/pi-ecosystem-judgment/distillation.js.map +1 -0
  192. package/dist/pi-ecosystem-judgment/human-value-store.js +463 -0
  193. package/dist/pi-ecosystem-judgment/human-value-store.js.map +1 -0
  194. package/dist/pi-ecosystem-judgment/index.js +581 -0
  195. package/dist/pi-ecosystem-judgment/index.js.map +1 -0
  196. package/dist/pi-ecosystem-judgment/value-injection.js +592 -0
  197. package/dist/pi-ecosystem-judgment/value-injection.js.map +1 -0
  198. package/dist/pi-ecosystem-mcp/index.js +385 -0
  199. package/dist/pi-ecosystem-mcp/index.js.map +1 -0
  200. package/dist/pi-ecosystem-subagents/index.js +352 -0
  201. package/dist/pi-ecosystem-subagents/index.js.map +1 -0
  202. package/dist/runtime/context/minimax-prompt.js +178 -0
  203. package/dist/runtime/context/sys-prompt.js +1 -0
  204. package/dist/social/ant-colony/AdaptiveHeartbeat.js +106 -0
  205. package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +1 -0
  206. package/dist/social/ant-colony/PheromoneEngine.js +265 -0
  207. package/dist/social/ant-colony/PheromoneEngine.js.map +1 -0
  208. package/dist/social/ant-colony/types.js +28 -0
  209. package/dist/social/ant-colony/types.js.map +1 -0
  210. package/dist/social/channels/ChannelManager.js +444 -0
  211. package/dist/social/channels/ChannelManager.js.map +1 -0
  212. package/dist/social/channels/DiapChannelBridge.js +451 -0
  213. package/dist/social/channels/DiapChannelBridge.js.map +1 -0
  214. package/dist/social/channels/InterestMatcher.js +135 -0
  215. package/dist/social/channels/InterestMatcher.js.map +1 -0
  216. package/dist/social/channels/types.js +21 -0
  217. package/dist/social/channels/types.js.map +1 -0
  218. package/dist/social/global-shared-context.js +368 -0
  219. package/dist/social/global-shared-context.js.map +1 -0
  220. package/dist/social/heartbeat.js +865 -0
  221. package/dist/social/heartbeat.js.map +1 -0
  222. package/dist/test/constraint-layer.test.js +164 -0
  223. package/dist/test/global-shared-context.test.js +315 -0
  224. package/dist/test/pi-sdk.test.js +47 -0
  225. package/dist/test/set-persona.test.js +38 -0
  226. package/dist/test/subagent-manager.test.js +276 -0
  227. package/dist/test/workflow-engine.test.js +87 -0
  228. package/dist/web/api-config.html +265 -0
  229. package/dist/web/client.js +1401 -0
  230. package/dist/web/components/p2p/index.js +357 -0
  231. package/dist/web/components/p2p/p2p-connection.js +161 -0
  232. package/dist/web/components/p2p/p2p-identity.js +78 -0
  233. package/dist/web/components/p2p/p2p-manager.js +82 -0
  234. package/dist/web/components/p2p/p2p-messages.js +186 -0
  235. package/dist/web/components/p2p/p2p-store-memory.js +129 -0
  236. package/dist/web/components/p2p/types.js +23 -0
  237. package/dist/web/index.html +192 -0
  238. package/dist/web/server.js +1647 -0
  239. package/dist/web/server.js.map +1 -0
  240. package/dist/web/style.css +3260 -0
  241. package/dist/workflows/collaboration.js +374 -0
  242. package/dist/workflows/index.js +54 -0
  243. package/docs/agent-communication.md +333 -0
  244. package/docs/plans/2026-05-15-document-agent-design.md +479 -0
  245. package/docs/plans/2026-05-15-document-agent-implementation-plan.md +792 -0
  246. package/docs/plans/2026-05-16-chat-ui-design.md +86 -0
  247. package/docs/plans/2026-05-16-constraint-runtime-design.md +106 -0
  248. package/docs/plans/2026-05-16-constraint-runtime-implementation.md +441 -0
  249. package/docs//346/225/260/345/255/246/350/276/205/345/212/251/346/231/272/350/203/275/344/275/223-/346/240/270/345/277/203/346/225/210/346/236/234/345/256/232/344/271/211.md +287 -0
  250. package/package.json +121 -0
  251. package/scripts/build-web.ts +61 -0
  252. package/src/agents/constraint-layer.ts +309 -0
  253. package/src/agents/pi-sdk.ts +1591 -0
  254. package/src/agents/protocol.ts +304 -0
  255. package/src/agents/subagent-manager.ts +553 -0
  256. package/src/agents/workflow-engine.ts +332 -0
  257. package/src/bollharness/.boll/CLAUDE.md.template +34 -0
  258. package/src/bollharness/.boll/MANIFEST.yaml +213 -0
  259. package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
  260. package/src/bollharness/.boll/agents/review-base.yaml +108 -0
  261. package/src/bollharness/.boll/deploy-allowlist.yaml +38 -0
  262. package/src/bollharness/.boll/inbox/schema/message-v1.json +99 -0
  263. package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
  264. package/src/bollharness/.boll/issue-adapter.yaml +31 -0
  265. package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +85 -0
  266. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +102 -0
  267. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +247 -0
  268. package/src/bollharness/.boll/rules/backend-routes.md +31 -0
  269. package/src/bollharness/.boll/rules/closure-semantics.md +30 -0
  270. package/src/bollharness/.boll/rules/env-vars.md +32 -0
  271. package/src/bollharness/.boll/rules/hanis-protocol.md +145 -0
  272. package/src/bollharness/.boll/rules/repo-structure.md +42 -0
  273. package/src/bollharness/.boll/rules/review-agent-isolation.md +73 -0
  274. package/src/bollharness/.boll/rules/source-of-truth.md +33 -0
  275. package/src/bollharness/.boll/settings.json +180 -0
  276. package/src/bollharness/.boll/settings.json.template +31 -0
  277. package/src/bollharness/.boll/skills/arch/SKILL.md +372 -0
  278. package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +168 -0
  279. package/src/bollharness/.boll/skills/bug-triage/SKILL.md +161 -0
  280. package/src/bollharness/.boll/skills/context-chains/SKILL.md +250 -0
  281. package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +48 -0
  282. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +142 -0
  283. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +126 -0
  284. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +148 -0
  285. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +162 -0
  286. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +116 -0
  287. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +136 -0
  288. package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +93 -0
  289. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +34 -0
  290. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +34 -0
  291. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +35 -0
  292. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +34 -0
  293. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +43 -0
  294. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +34 -0
  295. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +37 -0
  296. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +46 -0
  297. package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +415 -0
  298. package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +320 -0
  299. package/src/bollharness/.boll/skills/harness-dev/SKILL.md +93 -0
  300. package/src/bollharness/.boll/skills/harness-dev/examples/README.md +227 -0
  301. package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +165 -0
  302. package/src/bollharness/.boll/skills/harness-eng/SKILL.md +110 -0
  303. package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +79 -0
  304. package/src/bollharness/.boll/skills/harness-lab/SKILL.md +170 -0
  305. package/src/bollharness/.boll/skills/harness-ops/SKILL.md +57 -0
  306. package/src/bollharness/.boll/skills/harness-voice/SKILL.md +183 -0
  307. package/src/bollharness/.boll/skills/judgment/SKILL.md +115 -0
  308. package/src/bollharness/.boll/skills/lead/SKILL.md +245 -0
  309. package/src/bollharness/.boll/skills/lead/install-wow-harness.md +77 -0
  310. package/src/bollharness/.boll/skills/lead/ref-review-sop.md +91 -0
  311. package/src/bollharness/.boll/skills/lead/ref-stages.md +129 -0
  312. package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +169 -0
  313. package/src/bollharness/.boll/skills/task-arch/SKILL.md +106 -0
  314. package/src/bollharness/.boll/skills/toolkit/SKILL.md +57 -0
  315. package/src/bollharness/.boll/tasks/.gitkeep +0 -0
  316. package/src/bollharness/.boll/toolkit-index.yaml +112 -0
  317. package/src/bollharness/.claude/agents/review-base.yaml +108 -0
  318. package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +44 -0
  319. package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +24 -0
  320. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +102 -0
  321. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +247 -0
  322. package/src/bollharness/.claude/settings.json +157 -0
  323. package/src/bollharness/.claude/skills/arch/SKILL.md +64 -0
  324. package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +93 -0
  325. package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +44 -0
  326. package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +324 -0
  327. package/src/bollharness/.claude/skills/harness-dev/SKILL.md +93 -0
  328. package/src/bollharness/.claude/skills/harness-dev/examples/README.md +17 -0
  329. package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +165 -0
  330. package/src/bollharness/.claude/skills/harness-eng/SKILL.md +183 -0
  331. package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +57 -0
  332. package/src/bollharness/.claude/skills/harness-ops/SKILL.md +57 -0
  333. package/src/bollharness/.claude/skills/harness-voice/SKILL.md +84 -0
  334. package/src/bollharness/.claude/skills/lead/INDEX.md +28 -0
  335. package/src/bollharness/.claude/skills/lead/SKILL.md +24 -0
  336. package/src/bollharness/.claude/skills/lead/install-wow-harness.md +77 -0
  337. package/src/bollharness/.claude/skills/lead/ref-review-sop.md +48 -0
  338. package/src/bollharness/.claude/skills/lead/ref-stages.md +58 -0
  339. package/src/bollharness/.claude/skills/plan-lock/SKILL.md +74 -0
  340. package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +120 -0
  341. package/src/bollharness/.claude/skills/task-arch/SKILL.md +106 -0
  342. package/src/bollharness/.claude/skills/toolkit/SKILL.md +57 -0
  343. package/src/bollharness/.claude/skills/toolkit/list.sh +92 -0
  344. package/src/bollharness/.githooks/pre-commit +21 -0
  345. package/src/bollharness/.github/workflows/ci.yml +88 -0
  346. package/src/bollharness/.sanitize-report.json +13 -0
  347. package/src/bollharness/CLAUDE.md +73 -0
  348. package/src/bollharness/LICENSE +21 -0
  349. package/src/bollharness/README.md +143 -0
  350. package/src/bollharness/README.zh-CN.md +131 -0
  351. package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +1076 -0
  352. package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +2039 -0
  353. package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +128 -0
  354. package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +188 -0
  355. package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +183 -0
  356. package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +133 -0
  357. package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +146 -0
  358. package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +212 -0
  359. package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +211 -0
  360. package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +202 -0
  361. package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +231 -0
  362. package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +270 -0
  363. package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +291 -0
  364. package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +228 -0
  365. package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +227 -0
  366. package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +239 -0
  367. package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +325 -0
  368. package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +242 -0
  369. package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +378 -0
  370. package/src/bollharness/docs/launch-article-en.md +276 -0
  371. package/src/bollharness/docs/launch-article-zh.md +305 -0
  372. package/src/bollharness/docs/practice.html +356 -0
  373. package/src/bollharness/docs/practice.md +82 -0
  374. package/src/bollharness/docs/research/round-1/README.md +11 -0
  375. package/src/bollharness/docs/research/round-2/README.md +11 -0
  376. package/src/bollharness/docs/research/round-3/README.md +11 -0
  377. package/src/bollharness/docs/research/round-4/README.md +11 -0
  378. package/src/bollharness/docs/research/round-5/README.md +11 -0
  379. package/src/bollharness/docs/research/round-6/README.md +11 -0
  380. package/src/bollharness/package-lock.json +48 -0
  381. package/src/bollharness/package.json +20 -0
  382. package/src/bollharness/reference/SOURCE-COMMIT.txt +3 -0
  383. package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +268 -0
  384. package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +20 -0
  385. package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +30 -0
  386. package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +13 -0
  387. package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +50 -0
  388. package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +12 -0
  389. package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +184 -0
  390. package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +112 -0
  391. package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +12 -0
  392. package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +551 -0
  393. package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +26 -0
  394. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +227 -0
  395. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +4 -0
  396. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +142 -0
  397. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +107 -0
  398. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +893 -0
  399. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +89 -0
  400. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +93 -0
  401. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +209 -0
  402. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +165 -0
  403. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +110 -0
  404. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +203 -0
  405. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +27 -0
  406. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +28 -0
  407. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +27 -0
  408. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +79 -0
  409. package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +372 -0
  410. package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +437 -0
  411. package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +27 -0
  412. package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +442 -0
  413. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +421 -0
  414. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +326 -0
  415. package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +155 -0
  416. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +91 -0
  417. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +129 -0
  418. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
  419. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
  420. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
  421. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
  422. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +425 -0
  423. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +62 -0
  424. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +78 -0
  425. package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +76 -0
  426. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +57 -0
  427. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +153 -0
  428. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +52 -0
  429. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +76 -0
  430. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +50 -0
  431. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +108 -0
  432. package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +151 -0
  433. package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +56 -0
  434. package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +76 -0
  435. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +116 -0
  436. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +200 -0
  437. package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +84 -0
  438. package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +209 -0
  439. package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +181 -0
  440. package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +754 -0
  441. package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +12 -0
  442. package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +27 -0
  443. package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +57 -0
  444. package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +57 -0
  445. package/src/bollharness/schemas/metrics-jsonl-allowlist.json +67 -0
  446. package/src/bollharness/scripts/checks/next_decision_number.sh +48 -0
  447. package/src/bollharness/scripts/ci/count-components.sh +65 -0
  448. package/src/bollharness/scripts/context-fragments/artifact-linkage.md +14 -0
  449. package/src/bollharness/scripts/context-fragments/auth-consumers.md +17 -0
  450. package/src/bollharness/scripts/context-fragments/bridge-constitution.md +13 -0
  451. package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +18 -0
  452. package/src/bollharness/scripts/context-fragments/closure-checklist.md +13 -0
  453. package/src/bollharness/scripts/context-fragments/contract-consumers.md +15 -0
  454. package/src/bollharness/scripts/context-fragments/db-shared-structures.md +15 -0
  455. package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +19 -0
  456. package/src/bollharness/scripts/context-fragments/general-dev-principles.md +11 -0
  457. package/src/bollharness/scripts/context-fragments/issue-first.md +8 -0
  458. package/src/bollharness/scripts/context-fragments/mcp-parity.md +16 -0
  459. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +74 -0
  460. package/src/bollharness/scripts/context-fragments/protocol-consumers.md +15 -0
  461. package/src/bollharness/scripts/context-fragments/run-events-consumers.md +15 -0
  462. package/src/bollharness/scripts/context-fragments/scene-fidelity.md +13 -0
  463. package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +15 -0
  464. package/src/bollharness/scripts/context-fragments/two-language.md +15 -0
  465. package/src/bollharness/scripts/context-fragments/version-sources.md +14 -0
  466. package/src/bollharness/scripts/hooks/find-project-root.sh +47 -0
  467. package/src/bollharness/scripts/hooks/inbox-poll.sh +78 -0
  468. package/src/bollharness/scripts/hooks/precompact.sh +56 -0
  469. package/src/bollharness/scripts/hooks/stop-evaluator.md +83 -0
  470. package/src/bollharness/scripts/sync-from-upstream.sh +281 -0
  471. package/src/bollharness/src/index.ts +5 -0
  472. package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +11 -0
  473. package/src/bollharness/src/scripts/checks/check_api_types.ts +52 -0
  474. package/src/bollharness/src/scripts/checks/check_artifact_link.ts +156 -0
  475. package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +11 -0
  476. package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +11 -0
  477. package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +11 -0
  478. package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +11 -0
  479. package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +141 -0
  480. package/src/bollharness/src/scripts/checks/check_doc_links.ts +36 -0
  481. package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +11 -0
  482. package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +40 -0
  483. package/src/bollharness/src/scripts/checks/check_hook_installed.ts +70 -0
  484. package/src/bollharness/src/scripts/checks/check_issue_closure.ts +51 -0
  485. package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +11 -0
  486. package/src/bollharness/src/scripts/checks/check_security.ts +54 -0
  487. package/src/bollharness/src/scripts/checks/check_skill_parity.ts +11 -0
  488. package/src/bollharness/src/scripts/checks/check_versions.ts +11 -0
  489. package/src/bollharness/src/scripts/checks/finding.ts +35 -0
  490. package/src/bollharness/src/scripts/checks/next_decision_number.ts +24 -0
  491. package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +11 -0
  492. package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +14 -0
  493. package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +14 -0
  494. package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +14 -0
  495. package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +14 -0
  496. package/src/bollharness/src/scripts/context_router.ts +76 -0
  497. package/src/bollharness/src/scripts/deploy-guard.ts +182 -0
  498. package/src/bollharness/src/scripts/guard-feedback.ts +215 -0
  499. package/src/bollharness/src/scripts/guard_router.ts +194 -0
  500. package/src/bollharness/src/scripts/hooks/_hook_output.js +3 -0
  501. package/src/bollharness/src/scripts/hooks/_hook_output.ts +11 -0
  502. package/src/bollharness/src/scripts/hooks/auto-python3.ts +10 -0
  503. package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +10 -0
  504. package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +10 -0
  505. package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +111 -0
  506. package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +74 -0
  507. package/src/bollharness/src/scripts/hooks/inbox-ack.ts +10 -0
  508. package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +10 -0
  509. package/src/bollharness/src/scripts/hooks/inbox-validate.ts +10 -0
  510. package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +10 -0
  511. package/src/bollharness/src/scripts/hooks/initializer-agent.ts +10 -0
  512. package/src/bollharness/src/scripts/hooks/loop-detection.ts +83 -0
  513. package/src/bollharness/src/scripts/hooks/owner-guard.ts +10 -0
  514. package/src/bollharness/src/scripts/hooks/precompact.ts +10 -0
  515. package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +10 -0
  516. package/src/bollharness/src/scripts/hooks/risk-tracker.ts +121 -0
  517. package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +10 -0
  518. package/src/bollharness/src/scripts/hooks/session-reflection.ts +12 -0
  519. package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +12 -0
  520. package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +12 -0
  521. package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +12 -0
  522. package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +164 -0
  523. package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +10 -0
  524. package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +14 -0
  525. package/src/bollharness/src/scripts/install/install-trust-token.ts +13 -0
  526. package/src/bollharness/src/scripts/install/multi_project_registry.ts +13 -0
  527. package/src/bollharness/src/scripts/install/phase2_auto.ts +28 -0
  528. package/src/bollharness/src/scripts/install/pre_commit_installer.ts +10 -0
  529. package/src/bollharness/src/scripts/install/tier_selector.ts +10 -0
  530. package/src/bollharness/src/scripts/install/transcript_miner.ts +13 -0
  531. package/src/bollharness/src/scripts/lib/claim_patterns.ts +11 -0
  532. package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +13 -0
  533. package/src/bollharness/src/scripts/sanitize.ts +9 -0
  534. package/src/bollharness/templates/persona/default.json +19 -0
  535. package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
  536. package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
  537. package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
  538. package/src/bollharness/templates/scaffold/.gitignore.append +16 -0
  539. package/src/bollharness/templates/scaffold/CLAUDE.md +89 -0
  540. package/src/bollharness/templates/scaffold/docs/INDEX.md +3 -0
  541. package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +38 -0
  542. package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +45 -0
  543. package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +2 -0
  544. package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
  545. package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +35 -0
  546. package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +51 -0
  547. package/src/bollharness/tsconfig.json +26 -0
  548. package/src/bollharness-integration/channel-judgment-engine.ts +634 -0
  549. package/src/bollharness-integration/context-chain-router.ts +474 -0
  550. package/src/bollharness-integration/context-router-judgment.ts +339 -0
  551. package/src/bollharness-integration/context-router.ts +583 -0
  552. package/src/bollharness-integration/gate-state-machine.ts +444 -0
  553. package/src/bollharness-integration/gate-transition-hooks.ts +137 -0
  554. package/src/bollharness-integration/guard-checker.ts +451 -0
  555. package/src/bollharness-integration/index.ts +219 -0
  556. package/src/bollharness-integration/integration.ts +538 -0
  557. package/src/bollharness-integration/judgment-prompts.yaml +535 -0
  558. package/src/bollharness-integration/llm-judgment-engine.ts +712 -0
  559. package/src/bollharness-integration/skill-adapter.ts +646 -0
  560. package/src/cli/interface.ts +211 -0
  561. package/src/constraint-runtime/package-lock.json +48 -0
  562. package/src/constraint-runtime/package.json +34 -0
  563. package/src/constraint-runtime/src/_archive_helper.ts +16 -0
  564. package/src/constraint-runtime/src/agent/coordinator.ts +71 -0
  565. package/src/constraint-runtime/src/agent/index.ts +1 -0
  566. package/src/constraint-runtime/src/assistant/index.ts +15 -0
  567. package/src/constraint-runtime/src/bootstrap/index.ts +15 -0
  568. package/src/constraint-runtime/src/bootstrap_graph.ts +17 -0
  569. package/src/constraint-runtime/src/bridge/index.ts +15 -0
  570. package/src/constraint-runtime/src/buddy/index.ts +15 -0
  571. package/src/constraint-runtime/src/cli/index.ts +15 -0
  572. package/src/constraint-runtime/src/command_graph.ts +20 -0
  573. package/src/constraint-runtime/src/commands.ts +83 -0
  574. package/src/constraint-runtime/src/components/index.ts +15 -0
  575. package/src/constraint-runtime/src/constants/index.ts +15 -0
  576. package/src/constraint-runtime/src/constraint/budget.ts +25 -0
  577. package/src/constraint-runtime/src/constraint/index.ts +3 -0
  578. package/src/constraint-runtime/src/constraint/permission.ts +28 -0
  579. package/src/constraint-runtime/src/context.ts +45 -0
  580. package/src/constraint-runtime/src/coordinator/index.ts +15 -0
  581. package/src/constraint-runtime/src/cost_hook.ts +6 -0
  582. package/src/constraint-runtime/src/cost_tracker.ts +9 -0
  583. package/src/constraint-runtime/src/deferred_init.ts +18 -0
  584. package/src/constraint-runtime/src/direct_modes.ts +13 -0
  585. package/src/constraint-runtime/src/dynamic-tool-loader.ts +115 -0
  586. package/src/constraint-runtime/src/entrypoints/index.ts +15 -0
  587. package/src/constraint-runtime/src/execution_registry.ts +41 -0
  588. package/src/constraint-runtime/src/history.ts +16 -0
  589. package/src/constraint-runtime/src/hooks/index.ts +15 -0
  590. package/src/constraint-runtime/src/index.ts +28 -0
  591. package/src/constraint-runtime/src/ink.ts +4 -0
  592. package/src/constraint-runtime/src/keybindings/index.ts +15 -0
  593. package/src/constraint-runtime/src/memdir/index.ts +15 -0
  594. package/src/constraint-runtime/src/migrations/index.ts +15 -0
  595. package/src/constraint-runtime/src/models.ts +49 -0
  596. package/src/constraint-runtime/src/moreright/index.ts +15 -0
  597. package/src/constraint-runtime/src/native_ts/index.ts +15 -0
  598. package/src/constraint-runtime/src/output_styles/index.ts +15 -0
  599. package/src/constraint-runtime/src/parity_audit.ts +23 -0
  600. package/src/constraint-runtime/src/plugins/index.ts +15 -0
  601. package/src/constraint-runtime/src/port_manifest.ts +20 -0
  602. package/src/constraint-runtime/src/prefetch.ts +17 -0
  603. package/src/constraint-runtime/src/query.ts +7 -0
  604. package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +63 -0
  605. package/src/constraint-runtime/src/reference_data/commands_snapshot.json +1037 -0
  606. package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +10 -0
  607. package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +12 -0
  608. package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +14 -0
  609. package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +8 -0
  610. package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +8 -0
  611. package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +32 -0
  612. package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +13 -0
  613. package/src/constraint-runtime/src/reference_data/subsystems/cli.json +26 -0
  614. package/src/constraint-runtime/src/reference_data/subsystems/components.json +32 -0
  615. package/src/constraint-runtime/src/reference_data/subsystems/constants.json +28 -0
  616. package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +8 -0
  617. package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +15 -0
  618. package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +32 -0
  619. package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +21 -0
  620. package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +15 -0
  621. package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +18 -0
  622. package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +8 -0
  623. package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +11 -0
  624. package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +8 -0
  625. package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +9 -0
  626. package/src/constraint-runtime/src/reference_data/subsystems/remote.json +11 -0
  627. package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +8 -0
  628. package/src/constraint-runtime/src/reference_data/subsystems/screens.json +10 -0
  629. package/src/constraint-runtime/src/reference_data/subsystems/server.json +10 -0
  630. package/src/constraint-runtime/src/reference_data/subsystems/services.json +32 -0
  631. package/src/constraint-runtime/src/reference_data/subsystems/skills.json +27 -0
  632. package/src/constraint-runtime/src/reference_data/subsystems/state.json +13 -0
  633. package/src/constraint-runtime/src/reference_data/subsystems/types.json +18 -0
  634. package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +9 -0
  635. package/src/constraint-runtime/src/reference_data/subsystems/utils.json +32 -0
  636. package/src/constraint-runtime/src/reference_data/subsystems/vim.json +12 -0
  637. package/src/constraint-runtime/src/reference_data/subsystems/voice.json +8 -0
  638. package/src/constraint-runtime/src/reference_data/tools_snapshot.json +1042 -0
  639. package/src/constraint-runtime/src/remote/index.ts +15 -0
  640. package/src/constraint-runtime/src/remote_runtime.ts +17 -0
  641. package/src/constraint-runtime/src/runtime/index.ts +1 -0
  642. package/src/constraint-runtime/src/runtime/session.ts +42 -0
  643. package/src/constraint-runtime/src/schemas/index.ts +15 -0
  644. package/src/constraint-runtime/src/screens/index.ts +15 -0
  645. package/src/constraint-runtime/src/server/index.ts +15 -0
  646. package/src/constraint-runtime/src/services/index.ts +15 -0
  647. package/src/constraint-runtime/src/session_store.ts +32 -0
  648. package/src/constraint-runtime/src/setup.ts +50 -0
  649. package/src/constraint-runtime/src/skills/index.ts +1 -0
  650. package/src/constraint-runtime/src/skills/skill-registry.ts +40 -0
  651. package/src/constraint-runtime/src/state/index.ts +15 -0
  652. package/src/constraint-runtime/src/system_init.ts +21 -0
  653. package/src/constraint-runtime/src/thinking/engine.ts +61 -0
  654. package/src/constraint-runtime/src/thinking/index.ts +1 -0
  655. package/src/constraint-runtime/src/tool_pool.ts +20 -0
  656. package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +12 -0
  657. package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +12 -0
  658. package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +13 -0
  659. package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +10 -0
  660. package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +13 -0
  661. package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +14 -0
  662. package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +10 -0
  663. package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +24 -0
  664. package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +13 -0
  665. package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +23 -0
  666. package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +12 -0
  667. package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +12 -0
  668. package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +10 -0
  669. package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +10 -0
  670. package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +14 -0
  671. package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +58 -0
  672. package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +19 -0
  673. package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +28 -0
  674. package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +34 -0
  675. package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +50 -0
  676. package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +23 -0
  677. package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +49 -0
  678. package/src/constraint-runtime/src/tools.ts +100 -0
  679. package/src/constraint-runtime/src/transcript.ts +23 -0
  680. package/src/constraint-runtime/src/types/index.ts +15 -0
  681. package/src/constraint-runtime/src/upstream_proxy/index.ts +15 -0
  682. package/src/constraint-runtime/src/utils/index.ts +15 -0
  683. package/src/constraint-runtime/src/vim/index.ts +15 -0
  684. package/src/constraint-runtime/src/voice/index.ts +15 -0
  685. package/src/constraint-runtime/tests/agent.test.ts +20 -0
  686. package/src/constraint-runtime/tests/constraint.test.ts +47 -0
  687. package/src/constraint-runtime/tests/skill.test.ts +23 -0
  688. package/src/constraint-runtime/tests/thinking.test.ts +28 -0
  689. package/src/constraint-runtime/tsconfig.json +13 -0
  690. package/src/constraints/index.ts +6 -0
  691. package/src/documents/reader.ts +80 -0
  692. package/src/electron-preload.ts +25 -0
  693. package/src/electron.ts +200 -0
  694. package/src/index.ts +1606 -0
  695. package/src/llm/config-store.ts +312 -0
  696. package/src/llm/llm-judgment-client.ts +470 -0
  697. package/src/llm/pi-ai.ts +522 -0
  698. package/src/network/agent-network.ts +800 -0
  699. package/src/network/hybrid-messenger.ts +199 -0
  700. package/src/network/iroh-bootstrap.ts +57 -0
  701. package/src/network/iroh-discovery.ts +207 -0
  702. package/src/network/iroh-integration.ts +158 -0
  703. package/src/network/iroh-transport.ts +594 -0
  704. package/src/network/p2p.ts +963 -0
  705. package/src/network/storage/adapters/json-adapter.ts +439 -0
  706. package/src/network/storage/index.ts +187 -0
  707. package/src/network/storage/types.ts +166 -0
  708. package/src/pi-ecosystem/index.ts +453 -0
  709. package/src/pi-ecosystem-colony/index.ts +482 -0
  710. package/src/pi-ecosystem-goals/index.ts +585 -0
  711. package/src/pi-ecosystem-judgment/decision.ts +431 -0
  712. package/src/pi-ecosystem-judgment/distillation.ts +398 -0
  713. package/src/pi-ecosystem-judgment/human-value-store.ts +580 -0
  714. package/src/pi-ecosystem-judgment/index.ts +678 -0
  715. package/src/pi-ecosystem-judgment/value-injection.ts +744 -0
  716. package/src/pi-ecosystem-mcp/index.ts +427 -0
  717. package/src/pi-ecosystem-subagents/index.ts +408 -0
  718. package/src/social/ant-colony/AdaptiveHeartbeat.ts +131 -0
  719. package/src/social/ant-colony/PheromoneEngine.ts +302 -0
  720. package/src/social/ant-colony/index.ts +18 -0
  721. package/src/social/ant-colony/types.ts +94 -0
  722. package/src/social/channels/ChannelManager.ts +485 -0
  723. package/src/social/channels/DiapChannelBridge.ts +501 -0
  724. package/src/social/channels/InterestMatcher.ts +189 -0
  725. package/src/social/channels/agent-workflow-config.json +214 -0
  726. package/src/social/channels/agent-workflow-config.yaml +334 -0
  727. package/src/social/channels/channel-agent-session.ts +407 -0
  728. package/src/social/channels/channel-heartbeat-agent.ts +622 -0
  729. package/src/social/channels/diap-doc-parser.ts +282 -0
  730. package/src/social/channels/harness-workflow-integrator.ts +594 -0
  731. package/src/social/channels/index.ts +22 -0
  732. package/src/social/channels/types.ts +115 -0
  733. package/src/social/global-shared-context.ts +506 -0
  734. package/src/social/heartbeat.ts +1041 -0
  735. package/src/social/persona/enhanced-persona.ts +359 -0
  736. package/src/test/ai-judgment-test.ts +92 -0
  737. package/src/test/bollharness-integration.test.ts +398 -0
  738. package/src/test/channel-agent-multi-dialogue.ts +265 -0
  739. package/src/test/channel-heartbeat-agent-test.ts +244 -0
  740. package/src/test/constraint-layer.test.ts +191 -0
  741. package/src/test/diap-identity-test.ts +222 -0
  742. package/src/test/diap-quick-test.ts +73 -0
  743. package/src/test/global-shared-context.test.ts +393 -0
  744. package/src/test/harness-judgment-injection.test.ts +353 -0
  745. package/src/test/harness-workflow-integrator-test.ts +285 -0
  746. package/src/test/human-value-store.test.ts +316 -0
  747. package/src/test/hybrid-integration-test.ts +126 -0
  748. package/src/test/hybrid-messenger-verify.ts +68 -0
  749. package/src/test/iroh-bistream-debug.ts +50 -0
  750. package/src/test/iroh-communication.test.ts +81 -0
  751. package/src/test/iroh-debug-test.ts +69 -0
  752. package/src/test/iroh-diap-test.ts +90 -0
  753. package/src/test/iroh-direct-connect.ts +65 -0
  754. package/src/test/iroh-e2e-fixed.ts +106 -0
  755. package/src/test/iroh-e2e-same-process.ts +83 -0
  756. package/src/test/iroh-e2e.ts +83 -0
  757. package/src/test/iroh-final-e2e.ts +84 -0
  758. package/src/test/iroh-relay-test.ts +46 -0
  759. package/src/test/iroh-simple-test.ts +49 -0
  760. package/src/test/iroh-transport-verify.ts +60 -0
  761. package/src/test/iroh-transport.test.ts +47 -0
  762. package/src/test/iroh-two-nodes.ts +87 -0
  763. package/src/test/iroh-verify.ts +55 -0
  764. package/src/test/judgment-decision.test.ts +373 -0
  765. package/src/test/llm-judgment-integration.test.ts +257 -0
  766. package/src/test/p2p-agent-complex-dialogue.ts +490 -0
  767. package/src/test/p2p-agent-dialogue.ts +423 -0
  768. package/src/test/p2p-agent-full-bidirectional.ts +686 -0
  769. package/src/test/p2p-agent-harness-flow.ts +562 -0
  770. package/src/test/p2p-agent-harness-single.ts +175 -0
  771. package/src/test/p2p-ai-dialogue-test.ts +374 -0
  772. package/src/test/p2p-cid-connect-test.ts +245 -0
  773. package/src/test/p2p-connect-receiver.ts +85 -0
  774. package/src/test/p2p-iroh-test.ts +214 -0
  775. package/src/test/p2p-minimal-test.ts +264 -0
  776. package/src/test/p2p-node-1.ts +172 -0
  777. package/src/test/p2p-node-2.ts +172 -0
  778. package/src/test/p2p-server.ts +335 -0
  779. package/src/test/p2p-two-nodes-test.ts +542 -0
  780. package/src/test/pi-sdk.test.ts +47 -0
  781. package/src/test/set-persona.ts +56 -0
  782. package/src/test/simple.test.ts +11 -0
  783. package/src/test/storage-integration.test.ts +191 -0
  784. package/src/test/subagent-manager.test.ts +392 -0
  785. package/src/test/test-gate-flow.test.ts +92 -0
  786. package/src/test/workflow-engine.test.ts +101 -0
  787. package/src/web/api-config.html +265 -0
  788. package/src/web/client.js +1401 -0
  789. package/src/web/components/p2p/P2PModal.tsx +328 -0
  790. package/src/web/components/p2p/index.ts +404 -0
  791. package/src/web/components/p2p/index.tsx +297 -0
  792. package/src/web/components/p2p/p2p-connection.ts +186 -0
  793. package/src/web/components/p2p/p2p-identity.ts +92 -0
  794. package/src/web/components/p2p/p2p-manager.ts +109 -0
  795. package/src/web/components/p2p/p2p-messages.ts +219 -0
  796. package/src/web/components/p2p/p2p-modal.ts +685 -0
  797. package/src/web/components/p2p/p2p-store-memory.ts +162 -0
  798. package/src/web/components/p2p/types.ts +112 -0
  799. package/src/web/design.md +99 -0
  800. package/src/web/index.html +192 -0
  801. package/src/web/server.ts +1878 -0
  802. package/src/web/style.css +3260 -0
  803. package/src/workflows/collaboration.ts +455 -0
  804. package/src/workflows/index.ts +64 -0
  805. package/tsconfig.electron.json +20 -0
  806. package/tsconfig.json +19 -0
  807. package/vitest.config.ts +12 -0
  808. package//346/203/263/346/263/225.md +79 -0
@@ -0,0 +1,91 @@
1
+ # 审查闭环 SOP
2
+
3
+ lead skill 的审查操作手册。审查是每个阶段的硬门禁。
4
+
5
+ ---
6
+
7
+ ## 核心原则
8
+
9
+ 每个阶段结束后必须审查。审查用 TeamCreate(独立上下文 = 不被已有讨论污染的判断)。不是 Agent tool(subagent),是持久化 Team。
10
+
11
+ ## 审查何时触发
12
+
13
+ ```
14
+ ① 讨论沉淀 → ✅ 审查:本质找对了吗?
15
+ ② 决策书 ADR → ✅ 审查:决策完备吗?
16
+ ③ 接口设计 → ✅ 审查:契约清楚吗?消费方覆盖了吗?
17
+ ④ 实现方案 PLAN → ✅ 审查:方案能实现计划吗?
18
+ ④-a 任务拆分 WP → ✅ 审查:WP 完备、解耦、可执行吗?
19
+ ⑤ 代码实现 → ✅ 审查:每个 WP 完成后单独审查
20
+ ⑥ 集成验收 → ✅ 审查:端到端走通吗?
21
+ ```
22
+
23
+ ## 标准审查流程
24
+
25
+ ```
26
+ TeamCreate("review-{plan-id}")
27
+
28
+ 第 1 轮:多视角独立审查(Team 内并行)
29
+ ├── Teammate A:视角 1
30
+ ├── Teammate B:视角 2
31
+ └── Teammate C:视角 3
32
+
33
+ ↓ 收集独立报告 → 汇总 → 修正 → 再审 → 通过
34
+ ```
35
+
36
+ ## 审查维度矩阵
37
+
38
+ | 阶段 | 视角 A | 视角 B | 视角 C |
39
+ |------|--------|--------|--------|
40
+ | ① 讨论 | 商业可行性 | 技术本质 | 用户体验 |
41
+ | ② ADR | 选项完备性 | 架构一致性 | 风险分析 |
42
+ | ③ 接口 | 消费方完备 | 向后兼容 | 可测试性 |
43
+ | ④ PLAN/WP | 代码现状验证 | 任务解耦+依赖 | 测试+验收可执行 |
44
+ | ⑤ 代码 | 功能正确性 | 安全+错误处理 | 性能+生产就绪 |
45
+ | ⑥ 集成 | 端到端链路 | 回归验证 | 部署就绪 |
46
+
47
+ ## PLAN-033 教训:审查团队扩展维度
48
+
49
+ **Gate 4(PLAN 审查)必须额外覆盖**(详见 `plan-lock/ref-three-checks.md`):
50
+
51
+ | 维度 | 检查什么 |
52
+ |------|---------|
53
+ | C. 消费方语义兼容 | 接口变更后所有调用方在新语义下行为正确 |
54
+ | D. 数据流完整性 | 新字段从创建到消费的传递链无断点 |
55
+ | E. 时间边界 | 跨午夜/跨过期/并发竞态 |
56
+ | F. 对抗/红队 | 攻击者能构造什么输入获得不正当利益 |
57
+
58
+ ## 生产问题诊断硬规则(2026-03-18 沉淀)
59
+
60
+ **当审查对象是"生产故障"时,审查的第一步不是看代码,是看生产证据。**
61
+
62
+ | 顺序 | 动作 | 不是 |
63
+ |------|------|------|
64
+ | 1 | 看日志、事件、DB 中的实际错误 | 看代码猜"可能哪里错了" |
65
+ | 2 | 对比成功 case 和失败 case 的时间线 | 从代码结构推断"应该用另一种方式" |
66
+ | 3 | 验证运行环境(认证、权限、沙盒、磁盘) | 假设环境和本地一样 |
67
+ | 4 | 最后看代码,只为理解机制 | 把"代码可以改进"等同于"这里是 bug" |
68
+
69
+ **Gate 0 的额外检查项**(生产故障类 issue):
70
+ - [ ] 是否已查看失败 run 的实际错误消息(不是推测)
71
+ - [ ] 是否已对比同路径下的成功 run
72
+ - [ ] 是否已验证运行环境与本地的差异
73
+
74
+ ## WP 拆分专项审查
75
+
76
+ 当 PLAN 拆分成 WP 后,逐条检查:
77
+
78
+ 1. **PLAN 覆盖率** — 每个 RP 在 WP 中都有归属
79
+ 2. **WP 解耦与依赖** — 依赖正确,并行度最大化
80
+ 3. **代码现状验证** — 文件/函数签名与真实代码一致
81
+ 4. **接缝完整性** — 没有"不属于任何 WP 的中间层"
82
+ 5. **验收可测试性** — 每个 WP 有可自动化的验收标准
83
+ 6. **执行分配** — 每个 WP 由哪个 Skill 负责
84
+
85
+ ## 日志要求
86
+
87
+ 每次审查产生日志:`docs/decisions/tasks/{WP-ID}/LOG.md`。
88
+
89
+ ## Skill 自迭代
90
+
91
+ 审查中发现的可复用教训,沉淀到对应 Skill 的 reference 文件中,不只是 memory。
@@ -0,0 +1,129 @@
1
+ # 开发阶段详细描述
2
+
3
+ lead skill 的 5 个阶段的深度定义。主 SKILL.md 的 Gate 0-8 是强制顺序,这里是每个阶段的详细操作指南。
4
+
5
+ ---
6
+
7
+ ## 阶段 ①:讨论沉淀
8
+
9
+ **目标**:把想法想清楚,找到本质。
10
+
11
+ **必须加载**:`arch` skill(架构师做本质分析,不是 lead 自己想)
12
+
13
+ **做什么**:
14
+ - 从架构原则出发分析(引用 `docs/architecture/DESIGN.md` 的具体 Section)
15
+ - 列出多个方案和 trade-off,不只给一个答案
16
+ - 追问"这个东西的本质是什么?它属于哪一层?"
17
+ - 识别它是**契约变更**还是**实现变更**
18
+ - 记录讨论中达成的共识
19
+
20
+ **消费方发现门禁**(必须在讨论阶段完成,三个维度都要覆盖):
21
+ ```
22
+ 数据消费方(谁在读这个实体的数据):
23
+ □ 这个 Feature 改动涉及哪些组件/模块?
24
+ □ 每个被改组件有哪些消费方?(grep import 来源)
25
+ □ 消费方 > 1 时,所有消费方都在 Feature scope 内吗?
26
+ □ 不在的消费方:纳入 scope,或显式标注"不受影响 + 原因"
27
+
28
+ 行为消费方(谁在调用这个实体的能力):
29
+ □ 这个实体被创建/注册后,系统中谁会调用它的方法/能力?
30
+ □ 每个调用点,实体的状态是否足以支持调用?(如 adapter!=None 才能 chat)
31
+ □ "接口接受" ≠ "语义完整"——API 接受你的输入不代表产物是完整公民
32
+
33
+ 可见性消费方(谁在查找/匹配这个实体):
34
+ □ 这个实体在所有 scope/query 条件下都能被找到吗?
35
+ □ 有没有过滤条件会让它隐形?(如空 scene_ids → 场景查询不可见)
36
+ ```
37
+ **原则**:Feature scope = 改动集 ∪ 改动的所有消费方(数据+行为+可见性三维)。scope 不由"我想做什么"决定,由"谁在用我改的东西"决定。
38
+
39
+ **不做**:不跳到"怎么实现"。这个阶段只讨论"是什么"和"为什么"。
40
+
41
+ ---
42
+
43
+ ## 阶段 ②:决策书 (ADR)
44
+
45
+ **目标**:把共识变成正式决策,留下记录。
46
+
47
+ **门禁**:阶段 ① 的讨论已充分,核心问题已回答。
48
+
49
+ **必须加载**:`arch` skill
50
+
51
+ **做什么**:
52
+ - 写 `docs/decisions/ADR-NNN-xxx.md`
53
+ - 格式:背景 → 选项分析(≥2 个方案 + trade-off)→ 决策 → 核心原则 → 影响范围
54
+
55
+ **不做**:不在 ADR 里写实现细节。ADR 描述"做什么决定",不描述"怎么实现"。
56
+
57
+ ---
58
+
59
+ ## 阶段 ③:接口设计
60
+
61
+ **目标**:定义功能的**本质**——它做什么,不是怎么做。
62
+
63
+ **门禁**:ADR 已获批准。
64
+
65
+ **必须加载**:`arch` skill + 领域相关 Skill
66
+
67
+ **做什么**:
68
+ - 定义输入/输出的语义
69
+ - 定义调用方和实现方之间的契约
70
+ - 定义操作会产生的事件/状态变化
71
+ - 与现有契约的关系
72
+
73
+ **本质描述的标准**:换一种实现方式,接口定义不需要改。
74
+
75
+ ---
76
+
77
+ ## 阶段 ④:实现方案 (PLAN)
78
+
79
+ **目标**:把接口设计映射到代码改动。
80
+
81
+ **门禁**:接口设计已完成,且架构设计审查 blocker 已清零。
82
+
83
+ **必须加载**:`harness-eng` + 领域 Skill + `plan-lock`
84
+
85
+ **做什么**:
86
+ - 写 `docs/decisions/PLAN-NNN-xxx.md`
87
+ - 列出具体要改/新增的文件
88
+ - 每条变更链路追踪到底
89
+ - 架构覆盖矩阵:逐条核对"架构设计 → PLAN 承载"
90
+ - **冻结步骤**:必须经过 `plan-lock` 关掉所有决策口子
91
+
92
+ **变更链路追踪清单**:
93
+ ```
94
+ □ 我改的是契约还是实现?
95
+ □ 如果是契约,消费方有哪些?列出来。
96
+ □ 数据从哪来 → 经过哪些层 → 到哪去?每一层有代码吗?
97
+ □ 有没有降级路径?降级路径也通了吗?
98
+ □ 有没有"不归任何人"的中间层?
99
+ ```
100
+
101
+ **消费方验证清单**:
102
+ ```
103
+ 数据消费方:每个都有对应的变更条目吗?降级路径覆盖了吗?
104
+ 行为消费方:复用已有模式时,原模式的语义意图适用于新场景吗?
105
+ 可见性消费方:新实体在所有 scope 查询下都可见吗?
106
+ ```
107
+
108
+ **硬性规则**:只有标成 `vN-final` 的冻结计划,才允许进入审查或交给 `task-arch`。
109
+
110
+ ---
111
+
112
+ ## 阶段 ⑤:代码实现
113
+
114
+ **目标**:按方案写生产级代码。
115
+
116
+ **强制 Skill 调度**:
117
+
118
+ | 领域 | Skill | 什么时候用 |
119
+ |------|-------|-----------|
120
+ | 全栈实现(默认) | `harness-dev` | 跨前后端改动、调试、重构 |
121
+ | 状态机/编排 | `arch` + `harness-eng` + `harness-dev` | 需要先冻结状态语义,再落执行编排和实现 |
122
+ | LLM/Prompt | `soul-writing` + `harness-dev` | 行为文本设计、tool-use、parser 落地 |
123
+ | HDC/向量 | `arch` + `harness-lab` | 编码策略、共振实验、证据化验证 |
124
+ | 前端 UI | `harness-eng-frontend` | 组件、WS 事件消费 |
125
+ | 前端设计 | `nature-designer` | 视觉设计、交互 |
126
+ | 测试 | `harness-eng-test` | 测试策略 |
127
+ | 架构对齐 | `arch` | 可能违反架构原则时 |
128
+
129
+ **快速通道可以跳阶段,不可以跳 Skill。**
@@ -0,0 +1,169 @@
1
+ ---
2
+ name: skill-discovery
3
+ description: Skill 发现者。读用户项目的工作历史(transcripts、commit log、issue 记录),识别重复出现的工作模式,提议将其封装为专属 skill。让 harness 能"长出"新的能力,而不是只用预装的。
4
+ status: active
5
+ tier: meta
6
+ triggers:
7
+ - 首次安装后的能力审计
8
+ - 定期(月度/季度)skill 审计
9
+ - 用户觉得"我总在重复做同一类事"
10
+ - mine 档安装触发
11
+ outputs:
12
+ - skill 提案文档(markdown)
13
+ - 可选:skill SKILL.md 草稿
14
+ truth_policy:
15
+ - 只读用户显式授权的项目数据
16
+ - transcript 读取遵守 tier_selector 的读取边界
17
+ - 提案是建议,不是自动安装——用户确认后才创建 skill
18
+ ---
19
+
20
+ # Skill 发现者
21
+
22
+ ## 存在定位
23
+
24
+ 我是 harness 生态中的**能力审计师和 skill 接生者**。
25
+
26
+ 大多数 skill 是预装的——arch、plan-lock、guardian-fixer 这些通用治理能力。但每个项目都有自己独特的重复工作模式:某种特定的代码审查视角、某种特定的文档格式、某种特定的部署流程、某种特定的客户沟通方式。
27
+
28
+ 这些模式如果一直以"每次重新解释一遍"的方式存在,就是在浪费 context window 和用户耐心。把它们封装成 skill,就把隐性知识变成了可重用的显性能力。
29
+
30
+ **我不是自动化工厂**——我不会未经用户同意就创建 skill。我是**发现者和提案者**。我找到模式,写成提案,用户决定是否采纳。
31
+
32
+ ## 核心张力
33
+
34
+ ### 敏感度 vs 噪音
35
+
36
+ - 太敏感:每做两次同样的事就提议建 skill → 用户被提案淹没
37
+ - 太迟钝:明显的重复模式视而不见 → 用户永远在重复劳动
38
+
39
+ **校准锚点**:
40
+ - 一个模式在 3+ 次 session 中出现、且每次都消耗 >10 轮对话 → 值得提案
41
+ - 一个模式只出现 1-2 次、或每次 <5 轮 → 还不够,继续观察
42
+
43
+ ### 通用性 vs 专属性
44
+
45
+ - 太通用:"写代码"不是 skill,它是所有 skill 的基础
46
+ - 太专属:"修第 47 行的 bug"不是 skill,它是一次性任务
47
+
48
+ **校准锚点**:
49
+ - 好的 skill 有明确的触发条件、稳定的执行流程、可复用的判断框架
50
+ - 如果描述一个 skill 需要 >3 句话才能说清"什么时候用它",可能粒度不对
51
+
52
+ ### 封装 vs 自由
53
+
54
+ - 过度封装:把灵活的工作流程硬塞进僵硬的模板 → 用户觉得被束缚
55
+ - 不够封装:每次都从零开始 → 用户觉得在重复劳动
56
+
57
+ **校准锚点**:
58
+ - skill 应该封装**判断框架和执行流程**,不封装**具体内容**
59
+ - 用户应该觉得"这个 skill 帮我省了思考",不是"这个 skill 替我做了决定"
60
+
61
+ ## 发现方法
62
+
63
+ ### 来源 1:Transcript 分析(需 mine 档授权)
64
+
65
+ 读用户的 Claude Code transcript .jsonl 文件,提取:
66
+
67
+ 1. **重复意图模式**:用户在不同 session 中发出相似的指令
68
+ - 例:"帮我审查这个 PR 的安全性" 出现 5+ 次 → 可能需要安全审查 skill
69
+ - 例:"按我们的格式写 changelog" 出现 3+ 次 → 可能需要 changelog skill
70
+
71
+ 2. **重复解释模式**:用户反复解释同一个上下文
72
+ - 例:每次做 deployment 都要解释"先 build,再 scp,再 restart systemd" → 部署 skill
73
+ - 例:每次写文档都要解释"我们用的是 ADR 格式" → 文档规范 skill
74
+
75
+ 3. **重复纠正模式**:用户反复纠正 AI 的同一类错误
76
+ - 例:反复说"不要用暗色主题" → 这个约束应该在某个 skill 里
77
+ - 例:反复说"commit 要双语" → 这个约束应该在某个 skill 里
78
+
79
+ ### 来源 2:Commit 历史分析
80
+
81
+ ```bash
82
+ git log --oneline -100 | ... # 提取 commit 类型分布
83
+ ```
84
+
85
+ 如果某类 commit(如 "fix: ...", "docs: ...", "deploy: ...")占比 >30%,说明这类工作是高频的,可能值得 skill 化。
86
+
87
+ ### 来源 3:Issue / 文档模式分析
88
+
89
+ 扫描 `docs/issues/`、`docs/decisions/`、CHANGELOG 等,识别:
90
+ - 重复出现的 issue 类型 → 可能需要预防性 skill
91
+ - 重复出现的决策模式 → 可能需要决策框架 skill
92
+
93
+ ### 来源 4:用户直接告知
94
+
95
+ 用户说"我总在做 X"——这是最直接的信号。
96
+
97
+ ## 提案格式
98
+
99
+ ```markdown
100
+ # Skill 提案:{名称}
101
+
102
+ ## 发现来源
103
+ - {transcript/commit/issue/用户告知}
104
+ - 出现频率:{N 次 / M 个 session}
105
+ - 每次消耗:{约 X 轮对话 / Y 分钟}
106
+
107
+ ## 模式描述
108
+ {这个重复工作是什么?每次的输入和输出是什么?}
109
+
110
+ ## 为什么值得封装
111
+ {如果不封装,代价是什么?如果封装了,收益是什么?}
112
+
113
+ ## 建议的 skill 结构
114
+ - **触发条件**:什么时候应该使用这个 skill?
115
+ - **核心流程**:大致的执行步骤
116
+ - **判断框架**:需要内化的决策标准
117
+ - **输出契约**:每次使用应该产出什么?
118
+
119
+ ## 风险
120
+ - 是否可能过度封装?
121
+ - 是否可能很快过时?
122
+ - 是否与已有 skill 重叠?
123
+
124
+ ## 推荐优先级
125
+ - [ ] 高:每周 3+ 次,每次 >15 分钟 → 立即创建
126
+ - [ ] 中:每周 1-2 次,每次 >10 分钟 → 下次闲下来创建
127
+ - [ ] 低:偶尔出现,但模式清晰 → 记录,观察
128
+ ```
129
+
130
+ ## 从提案到 skill
131
+
132
+ 用户确认提案后:
133
+
134
+ 1. **用 soul-writing 方法论写 SKILL.md**
135
+ - 张力三角:这个 skill 存在于什么张力中?
136
+ - 判断人格:面对灰度区域,这个 skill 用什么启发式判断?
137
+ - 双向校准:什么算做得太多?什么算做得太少?
138
+ - 反面命名:这个 skill 的典型失败模式叫什么?
139
+
140
+ 2. **放到正确位置**
141
+ - `.boll/skills/{name}/SKILL.md`
142
+
143
+ 3. **更新 lead 调度表(如果适用)**
144
+ - 如果新 skill 应该在某个 Gate 被调度,更新 lead/SKILL.md
145
+
146
+ 4. **验证安装**
147
+ - 用一个真实场景触发新 skill,确认它能正确激活并产出预期结果
148
+
149
+ ## 定期审计节奏
150
+
151
+ - **首次安装后**:跑一次完整发现(来源 1-4),产出 3-5 个提案
152
+ - **每月**:快速扫描最近 transcript,看有没有新的重复模式
153
+ - **每季度**:审计已有 skill 的使用频率,低频 skill 考虑归档
154
+
155
+ ## 我不做什么
156
+
157
+ - 不自动创建 skill(只提案,用户确认后才创建)
158
+ - 不扫描未授权的项目(严格遵守 tier_selector 读取边界)
159
+ - 不替代 crystal-learn(crystal-learn 提取失败模式和不变量,我发现可封装的工作模式)
160
+ - 不把一次性任务强行封装成 skill
161
+
162
+ ## 与其他 Skill 的关系
163
+
164
+ | Skill | 关系 |
165
+ |-------|------|
166
+ | `crystal-learn` | 互补——crystal-learn 发现失败模式和不变量,skill-discovery 发现可封装的工作模式 |
167
+ | `lead` | 消费者——新 skill 可能需要加入 Gate 调度表 |
168
+ | `arch` | 咨询——新 skill 的设计是否与项目世界观一致 |
169
+ | `harness-voice` | 咨询——新 skill 涉及对外表达时需要 voice 的语言 DNA |
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: task-arch
3
+ description: 任务架构师。负责把已冻结的 PLAN 拆成可执行、可委派、可集成的工作单元(WP)。在 lead 的 Gate 5 由 lead 调度。
4
+ status: active
5
+ tier: entry
6
+ triggers:
7
+ - 已冻结的 PLAN 需要拆成 WP
8
+ - 需要显式写出依赖和写集
9
+ - 需要并行执行编排
10
+ outputs:
11
+ - WP DAG
12
+ - write_set
13
+ - depends_on
14
+ - acceptance_test
15
+ truth_policy:
16
+ - 只消费已冻结的计划
17
+ - 不重做架构决策
18
+ - 任务定义优先写问题边界和接缝责任,不复制仓库事实
19
+ ---
20
+
21
+ # 任务架构师
22
+
23
+ ## 角色
24
+
25
+ 我负责把一份已经 decision-complete 的计划拆成可执行、可委派、可集成的工作单元。我的价值不在于"拆得细",而在于"拆完之后不会把接缝拆丢"。
26
+
27
+ ## 张力
28
+
29
+ 我工作在两组核心张力中:
30
+
31
+ 1. **粒度 vs 集成成本**
32
+ - 拆得越细,每个 WP 越容易执行
33
+ - 但跨 WP 的接缝越多,集成越脆弱
34
+ - 正确的粒度是"每个 WP 有独立可验证的产物"
35
+
36
+ 2. **并行度 vs 接缝安全**
37
+ - 并行越多,总耗时越短
38
+ - 但并行 Track 之间的中间层是最危险的无主地带
39
+ - 正确的并行是"共享接口有显式 seam owner"
40
+
41
+ ## 拆分原则
42
+
43
+ - 按 `write_set` 拆,不按"感觉上的功能块"拆
44
+ - 按接缝定义 owner,不让中间层落到无人地带
45
+ - 每个 WP 必须有自己的 `acceptance_test`
46
+ - 共享接口优先拆出单独 gate / integration task,而不是默认某一方顺手做
47
+
48
+ ## 禁止事项
49
+
50
+ - 不在这里补架构判断
51
+ - 不在这里发明新的契约
52
+ - 不把"谁来做"写成"大家协同完成"
53
+ - 不把验证责任丢给最终集成阶段
54
+
55
+ ## 来自 crystal-learn 的注入
56
+
57
+ **INV-7 无主接缝**:WP 本身有 owner,但 WP 之间的接缝没有 owner。行动:
58
+ 1. 每条跨 WP 数据流都显式指定生产端 owner、消费端 owner、接缝验证 owner
59
+ 2. 如果不自然归属任何 WP,创建独立 Gate 任务
60
+ 3. **PLAN 冻结前,对文档声明的每个 API 端点做 WP 归属验证**——如果某端点不在任何 WP 的 write set 中,必须显式分配
61
+
62
+ ## Output Contract
63
+
64
+ 每次拆分必须给出:
65
+
66
+ 1. `WP DAG` — WP 编号 + 每个 WP 的一句话目标
67
+ 2. `write_set` — 每个 WP 允许写的路径或模块
68
+ 3. `depends_on` — 哪些前置必须完成
69
+ 4. `acceptance_test` — 每个 WP 结束时必须通过什么验证
70
+ 5. `integration_tasks` — 哪些接缝需要单独集成验证
71
+
72
+ ## 最小模板
73
+
74
+ ```markdown
75
+ ## WP-x [名称]
76
+ - Goal:
77
+ - Write set:
78
+ - Depends on:
79
+ - Parallel with:
80
+ - Seam owner:
81
+ - Acceptance test:
82
+ ```
83
+
84
+ ## 文档规范
85
+
86
+ 每个 WP 的 TASK.md 的行数上限:≤120 行。每个 seam 只写 3 行角色 + PLAN 引用,禁止复写 >5 行契约正文。批量拆 WP 时并发 5-8 个 Write。
87
+
88
+ ## 与其他 Skill 的关系
89
+
90
+ ```text
91
+ plan-lock
92
+ ↓ 产出冻结后的 PLAN(vN-final)
93
+ task-arch(我)
94
+ ↓ 拆成 WP DAG
95
+ lead(Gate 6 审查)
96
+ ↓ 审查 WP 拆分完整性
97
+ harness-dev / harness-eng
98
+ ↓ 按 WP 执行
99
+ ```
100
+
101
+ ### 边界
102
+
103
+ - `plan-lock` 负责锁住计划,我只消费已冻结的
104
+ - 如果计划未冻结(还有 TBD/需确认),我必须退回 `plan-lock`
105
+ - `harness-dev` 按我的拆分执行,不补我遗漏的接缝
106
+ - `lead` 在 Gate 6 审查我的拆分是否完整
@@ -0,0 +1,57 @@
1
+ ---
2
+ name: toolkit
3
+ description: Pull-surface slash command for `.boll/` tooling that is not auto-triggered. Replaces the retired SessionStart push-reminder (session-start-toolkit-reminder.ts, retired in WP-031). Reads `.boll/toolkit-index.yaml` and prints active entries grouped by category; retired entries are shown with their retirement packet reference so capability history is never silently dropped.
4
+ status: active
5
+ tier: usability
6
+ owner: nature
7
+ window_owner: shared
8
+ window_owner_since: 2026-04-28T17:00+08:00
9
+ window_owner_adr: docs/decisions/ADR-H2-identity-isolation.md
10
+ last_audited: 2026-04-19
11
+ ---
12
+
13
+ # /toolkit — harness toolkit index
14
+
15
+ ## What this does
16
+
17
+ Prints the contents of `.boll/toolkit-index.yaml` in a human-readable layout. The index lists
18
+ `.boll/` tooling that users occasionally need but is NOT auto-triggered by any hook — for
19
+ example: trace-analyzer proposals, magic-doc rebuild, doc-freshness scan, metrics inspection.
20
+
21
+ This is a **pull surface**, not a push notification. The predecessor hook
22
+ `session-start-toolkit-reminder.ts` injected the same content every ~3 hours whether the user
23
+ wanted it or not; that push channel was retired in WP-031 and replaced by this on-demand
24
+ readout. Discoverability is preserved (the kernel CLAUDE.md points at `/toolkit`); context
25
+ pollution is eliminated (zero bytes cost until the user invokes).
26
+
27
+ ## Sub-commands
28
+
29
+ | Command | Behavior |
30
+ |---|---|
31
+ | `/toolkit` | List all active entries grouped by category; show retired entries with their retirement packet reference at the bottom. |
32
+ | `/toolkit all` | Same as above but without the retired/active split — single chronological list. |
33
+
34
+ ## Invocation handler
35
+
36
+ The handler is `list.sh`. It reads `.boll/toolkit-index.yaml` via `npx ts-node -e "import yaml; ..."` (yaml parser is available; used elsewhere in the harness), formats entries, and prints to
37
+ stdout. No network, no side effects. Exit 0 on success, 1 on missing index, 2 on yaml parse
38
+ error.
39
+
40
+ ## Why this exists (WP-031 context)
41
+
42
+ Retiring `session-start-toolkit-reminder.ts` without providing a pull channel would leave a
43
+ silent regression for:
44
+
45
+ 1. A user returning after weeks away who has forgotten the 5 entries existed.
46
+ 2. A clean-bootstrap consumer (WP-039) whose first session has no prior reminder history.
47
+ 3. An external consumer importing the harness (WP-040) who never saw the reminder at all.
48
+
49
+ `/toolkit` is the minimal pull-side substitute. The invariant is: every capability listed in
50
+ the retired hook is either (a) surfaced here, or (b) retired with a retirement packet
51
+ referenced in the index entry — no capability becomes undiscoverable.
52
+
53
+ ## Amendment
54
+
55
+ When a new `.boll/` pull-tool ships or an existing one retires, update
56
+ `.boll/toolkit-index.yaml`. Do NOT edit this skill to describe specific entries — the skill
57
+ is a renderer, the yaml is the data.
File without changes
@@ -0,0 +1,112 @@
1
+ schema_version: "1.0"
2
+ purpose: |
3
+ Pull-surface index of .boll/ tooling that is not auto-triggered by hooks. Replaces the
4
+ SessionStart push-reminder (session-start-toolkit-reminder.ts, retired WP-031). A new
5
+ operator — human or external consumer importing the substrate in WP-040 — can discover
6
+ these capabilities via `/toolkit` without needing to grep the repo.
7
+ last_updated: "2026-04-19"
8
+ updated_by_wp: "WP-032"
9
+
10
+ entries:
11
+ # Entry #1 from the retired reminder. trace-analyzer still writes proposals; this is the read side.
12
+ - id: trace-analyzer-proposals
13
+ name: "Review trace-analyzer proposals"
14
+ category: proposals
15
+ status: active
16
+ purpose: |
17
+ SessionEnd trace-analyzer.ts writes findings under .boll/proposals/ but does not act on
18
+ them. High-confidence (>= 0.8) findings warrant opening an issue under docs/issues/.
19
+ invocation: "ls -lt .boll/proposals/ | head -5"
20
+ source_hook: ".boll/settings.json SessionEnd → scripts/hooks/trace-analyzer.ts analyze"
21
+ notes: |
22
+ Silent when empty. If anything listed, read the file, and if confidence >= 0.8 open an
23
+ issue ticket or a retirement packet depending on the finding type.
24
+
25
+ # Entry #2. Script still exists; receiver was only the reminder before.
26
+ - id: magic-doc-rebuild
27
+ name: "Rebuild magic docs (after source changed)"
28
+ category: docs
29
+ status: active
30
+ purpose: |
31
+ Rebuilds auto-generated documentation from source-of-truth inputs. Run when you've
32
+ changed a file that feeds a magic doc (check_doc_freshness will tell you which).
33
+ invocation:
34
+ rebuild: "npx ts-node scripts/checks/regenerate_magic_docs.ts all"
35
+ check_only: "npx ts-node scripts/checks/regenerate_magic_docs.ts all --check"
36
+ source_script: "scripts/checks/regenerate_magic_docs.ts"
37
+
38
+ # Entry #3.
39
+ - id: doc-freshness-check
40
+ name: "Full doc freshness scan"
41
+ category: docs
42
+ status: active
43
+ purpose: |
44
+ Detects drift between source inputs and magic docs across the repo.
45
+ invocation: "npx ts-node scripts/checks/check_doc_freshness.ts"
46
+ source_script: "scripts/checks/check_doc_freshness.ts"
47
+
48
+ # Entry #4. The capability itself is retired on the vNext path.
49
+ - id: mid-task-recitation-tuning
50
+ name: "Tune D9 mid-task recitation frequency"
51
+ category: legacy
52
+ status: retired_on_vnext_path
53
+ retired_by_wp: "WP-030"
54
+ retirement_packet: ".boll/evidence/wp-030/retire-tool-call-counter.json"
55
+ purpose: |
56
+ Historically: `export BOLL_RECITATION_EVERY=N` tuned the interval at which
57
+ tool-call-counter.ts injected constitutional recitations. The reciter was retired in
58
+ WP-030 (replaced by pointer-based precompact.sh, WP-028). On the vNext path this env
59
+ var is a no-op. Legacy .boll/ sessions still honor it until Phase G full cutover.
60
+
61
+ # Entry #5. Mixed status — each sub-file re-evaluated.
62
+ - id: harness-metrics-view
63
+ name: "Inspect cumulative metrics"
64
+ category: metrics
65
+ status: active_with_retirements_in_flight
66
+ purpose: |
67
+ Read-only inspection of metrics that v5 hooks write under .boll/metrics/. Some writers
68
+ have retired; their files stop updating but remain for historical inspection.
69
+ entries:
70
+ - file: ".boll/metrics/tool-call-counter.txt"
71
+ writer: "tool-call-counter.ts"
72
+ writer_status: retired_on_vnext_path
73
+ retired_by_wp: "WP-030"
74
+ invocation: "cat .boll/metrics/tool-call-counter.txt"
75
+ notes: "File frozen on vNext; legacy sessions still append."
76
+
77
+ - file: ".boll/metrics/guard-events.jsonl"
78
+ writer: "guard-feedback.ts"
79
+ writer_status: active
80
+ invocation: "wc -l .boll/metrics/guard-events.jsonl"
81
+
82
+ - file: ".boll/metrics/stop-events.jsonl"
83
+ writer: "stop-evaluator.ts"
84
+ writer_status: active_pending_retirement
85
+ pending_retire_wp: "WP-033"
86
+ invocation: "wc -l .boll/metrics/stop-events.jsonl"
87
+
88
+ - file: ".boll/metrics/tool-failures.jsonl"
89
+ writer: "failure-analyzer.ts"
90
+ writer_status: retired_on_vnext_path
91
+ retired_by_wp: "WP-032"
92
+ retirement_packet: ".boll/evidence/wp-032/retire-failure-analyzer.json"
93
+ invocation: "wc -l .boll/metrics/tool-failures.jsonl"
94
+ notes: "File frozen on vNext; replaced by evidence-emit.ts step-packet blockers. Legacy sessions still append."
95
+
96
+ - file: ".boll/metrics/initializer-events.jsonl"
97
+ writer: "capability-router.ts (or wp-init path)"
98
+ writer_status: active
99
+ invocation: "wc -l .boll/metrics/initializer-events.jsonl"
100
+
101
+ discoverability_contract: |
102
+ A consumer who knows nothing about this substrate should be able to invoke `/toolkit` and
103
+ learn the full surface of .boll/ pull-tooling. Every entry is either (a) active and
104
+ actionable or (b) explicitly retired with a pointer to the retirement packet — there is no
105
+ "dead link" state. When a writer retires, the corresponding entry here flips to a retired
106
+ status with retired_by_wp and retirement_packet filled; do not silently delete entries.
107
+
108
+ amendment_protocol: |
109
+ Add an entry when a new .boll/ pull-tool ships (new script, new metrics file, new proposal
110
+ channel). Flip an entry to retired when its writer retires, keeping the historical record.
111
+ This file is NOT source-of-truth for what's active — the retirement packets in
112
+ .boll/evidence/ are. This file is a navigation index that points at those truths.