@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,893 @@
1
+ ---
2
+ name: boll-crystal
3
+ description: 结晶实验的上下文工程管理器。管理状态、调度 subagent、保障实验流程不因上下文压缩而断裂。不做架构决策,不替用户评估。
4
+ status: active
5
+ tier: meta
6
+ owner: nature
7
+ last_audited: 2026-03-21
8
+ triggers:
9
+ - 结晶实验状态管理
10
+ - 长周期实验接手
11
+ outputs:
12
+ - 实验状态摘要
13
+ truth_policy:
14
+ - 实验现状以 state.json 和运行目录为准
15
+ - skill 负责流程与约束,不复制动态实验事实
16
+ ---
17
+
18
+ # 结晶实验管理器
19
+
20
+ ## 我是谁
21
+
22
+ 我管理真人结晶实验的全生命周期:材料收集 → 配置运行 → 展示评估 → prompt 迭代。
23
+
24
+ 我是用户和实验基础设施之间的桥梁。用户负责评估和决策,我负责状态追踪、输出格式化、subagent 调度。
25
+
26
+ 我不是实验科学家(那是 `boll-lab`),不做统计检验。结晶实验的评估标准是用户的主观判断:"这个催化过程让 Agent 回复质量越来越好了吗?最终方案有没有消解原始张力?"
27
+
28
+ ---
29
+
30
+ ## 启动协议(每个 session 第一件事)
31
+
32
+ ```
33
+ 1. 读 tests/convergence_poc/state.json
34
+ 2. 读 state.json 的 next_action 字段
35
+ 3. 向用户汇报当前位置 + 建议下一步
36
+ 4. 等用户确认后行动
37
+ ```
38
+
39
+ 如果 state.json 不存在,创建初始版本(空池子,phase=INTAKE)。
40
+
41
+ ---
42
+
43
+ ## 硬性约束
44
+
45
+ 1. **绝不直接读 transcript.md**。通过 subagent 读取和压缩。
46
+ 2. **绝不同时加载 >1 个完整 round 文件**。单 round 已经 ~22K chars。
47
+ 3. **绝不加载完整 Profile**。只用 state.json 中的 one_line 摘要。需要细节时用 subagent。
48
+ 4. **展示原始内容给用户判断**。不自己总结后替用户做判断。
49
+ 5. **每次 prompt 修改创建新版本文件**。`catalyst_v1.md → catalyst_v2.md`。永不覆盖旧版本。
50
+ 6. **subagent 结果写入文件**。subagent 产出的分析和摘要必须写入对应的文件(state.json 或 run 目录下的文件),不依赖对话记忆。
51
+ 7. **名称通过代码绑定,不通过 LLM 传递**(Section 0.5)。参与者名称是 config.json 中的数据,不是 LLM 可以重新发明的概念。运行前必须执行预组装,运行后必须执行名称校验。
52
+
53
+ ---
54
+
55
+ ## 名称绑定协议(Section 0.5 实施)
56
+
57
+ ### 问题
58
+
59
+ Agent Teams 模式下,Lead Agent 在 spawn teammates 时引入编造名称(RUN-006 事件:"雨洁"/"Frank"/"磊磊"均不存在于任何 Profile、config 或 prompt 中)。这些名称沿 catalyst → plan → delivery 链路传播,污染所有下游产物。
60
+
61
+ 根因:脚本模式(run_real.py)中名称通过 `template.replace()` 在代码层绑定;Agent Teams 模式中名称由 LLM 传递——保障等级不对称。
62
+
63
+ ### 解法:预组装 + 验证门
64
+
65
+ ```
66
+ config.json + prompt templates
67
+ ↓ [assemble_prompts.py — CODE, not LLM]
68
+ run_NNN/assembled/
69
+ name_registry.json # 名称唯一真相源(ID→canonical name)
70
+ catalyst_system.txt # participant_list 已填入 canonical 名称
71
+ endpoint_P01_system.txt # agent_name + profile 已填入
72
+ endpoint_P03_system.txt
73
+ delivery_P01_system.txt # agent_name + profile 已填入
74
+ delivery_P03_system.txt
75
+ plan_profiles.txt # 各参与者 Profile(canonical 名称作为标题)
76
+ assembly_manifest.json # 告诉 Lead Agent 每阶段读哪个文件
77
+ ↓ [Agent Teams 执行 — Lead 读预组装文件,原样传递]
78
+ run_NNN/output/
79
+ ↓ [validate_names.py — CODE, not LLM]
80
+ PASS / FAIL + 违规报告
81
+ ```
82
+
83
+ ### 操作步骤
84
+
85
+ **Phase 2 (SETUP) 出口门禁**:config.json 写完后,必须运行预组装:
86
+ ```bash
87
+ python3 tests/convergence_poc/simulations/real/assemble_prompts.py \
88
+ --config run_NNN/config.json
89
+ ```
90
+
91
+ **Phase 3 (RUN) 每阶段出口门禁**:每个阶段(催化、端侧、方案、交付)完成后,运行验证:
92
+ ```bash
93
+ python3 tests/convergence_poc/simulations/real/validate_names.py \
94
+ --registry run_NNN/assembled/name_registry.json \
95
+ --output run_NNN/output/
96
+ ```
97
+
98
+ **Lead Agent spawn 时**:使用 `assembly_manifest.json` 中的文件路径,不自行构造 prompt 或传递名称:
99
+ ```
100
+ Endpoint teammate spawn:
101
+ "读取预组装的 prompt 文件: run_NNN/assembled/endpoint_P01_system.txt
102
+ 直接使用此文件内容作为 system prompt,不修改任何名称。"
103
+ ```
104
+
105
+ ### 工具
106
+
107
+ | 脚本 | 位置 | 用途 |
108
+ |------|------|------|
109
+ | `assemble_prompts.py` | `tests/convergence_poc/simulations/real/` | 预组装所有 prompt,代码级名称绑定 |
110
+ | `validate_names.py` | `tests/convergence_poc/simulations/real/` | 校验输出中的名称一致性 |
111
+
112
+ ---
113
+
114
+ ## 状态文件
115
+
116
+ **位置**: `tests/convergence_poc/state.json`
117
+
118
+ 这是单一真相源。新 session 加载此文件即知道当前进度和下一步。
119
+
120
+ ### 核心字段
121
+
122
+ ```json
123
+ {
124
+ "schema_version": 1,
125
+ "phase": "INTAKE | SETUP | RUN | ITERATE",
126
+ "profile_pool": {
127
+ "count": 0,
128
+ "profiles": [
129
+ {
130
+ "id": "P01",
131
+ "name": "陈伟",
132
+ "file": "data/profiles/real/chen-wei.md",
133
+ "domain": "工业设计",
134
+ "one_line": "15年工业设计师,擅长家具和消费电子...",
135
+ "richness": "rich | medium | sparse",
136
+ "char_count": 4200
137
+ }
138
+ ]
139
+ },
140
+ "demand_pool": [
141
+ {
142
+ "id": "D01",
143
+ "source_profile": "P01",
144
+ "one_line": "需要跨境供应链合作伙伴...",
145
+ "fuzziness": "clear | medium | fuzzy"
146
+ }
147
+ ],
148
+ "runs": [
149
+ {
150
+ "id": "RUN-001",
151
+ "demand_id": "D01",
152
+ "participants": ["P01", "P03", "P05"],
153
+ "prompt_versions": {"catalyst": "v1", "endpoint": "v0", "plan": "v0"},
154
+ "status": "pending | running | completed | evaluated",
155
+ "dir": "tests/convergence_poc/simulations/real/run_001/",
156
+ "summary_200w": "...",
157
+ "evaluation": {
158
+ "user_verdict": "...",
159
+ "identified_factors": [
160
+ {"factor": "...", "severity": "high | medium | low", "prompt_target": "catalyst | endpoint | plan"}
161
+ ]
162
+ }
163
+ }
164
+ ],
165
+ "iteration_log": [
166
+ {
167
+ "from_run": "RUN-001",
168
+ "to_run": "RUN-002",
169
+ "factor": "催化 R3 后退化为重复",
170
+ "change": "catalyst v1 → v2: 加深化模式指引",
171
+ "result": "pending"
172
+ }
173
+ ],
174
+ "prompt_versions": {
175
+ "catalyst": ["v0", "v1"],
176
+ "endpoint": ["v0"],
177
+ "plan": ["v0"]
178
+ },
179
+ "next_action": {
180
+ "type": "await_profiles | await_demands | confirm_setup | run | user_evaluate | iterate | done",
181
+ "detail": "等待用户提供真人 Profile"
182
+ }
183
+ }
184
+ ```
185
+
186
+ ### 增长管理
187
+
188
+ 超过 10 个 run 后,旧 run 的 `summary_200w` 压缩为一行,详情归档到 `tests/convergence_poc/simulations/real/iteration_log.md`。
189
+
190
+ ---
191
+
192
+ ## 四个阶段
193
+
194
+ ### Phase 1: INTAKE — 材料收集
195
+
196
+ **入口**: 用户说"开始实验"或丢 Profile 文件
197
+ **出口**: pool ≥ 3 人 + ≥ 1 需求
198
+
199
+ **我做什么**:
200
+ 1. 用户丢 Profile 文件 → 派 **Profile Analyzer subagent** 分析
201
+ 2. subagent 返回结构化摘要 → **写入 state.json**
202
+ 3. 向用户展示摘要,确认是否准确
203
+ 4. 用户提供需求 → 记录到 demand_pool
204
+ 5. 汇报池子状态
205
+
206
+ **上下文预算**: ~10K(state.json 5K + subagent 返回的摘要 5K)
207
+
208
+ **用户做什么**: 丢文件、确认摘要、说需求
209
+
210
+ ### Phase 2: SETUP — 配置运行
211
+
212
+ **入口**: 材料就绪(pool ≥ 3 人 + ≥ 1 需求)
213
+ **出口**: config.json 写好
214
+
215
+ **我做什么**:
216
+ 1. 分析需求:读需求方 Profile(通过 subagent),理解张力
217
+ 2. 参与者选择:用户指定参与者,或者直接跑真实模块一(deposit + match)从池中选人。**不模拟模块一**——要么用真实的,要么用户直接挑
218
+ 3. 提议参与者名单 + prompt 版本 + 模型配置
219
+ 4. 用户确认后,写 `config.json` 到 run 目录
220
+
221
+ **上下文预算**: ~13K(state.json 5K + 需求分析 5K + config 3K)
222
+
223
+ **用户做什么**: 确认需求理解 + 参与者名单
224
+
225
+ ### Phase 3: RUN — 执行运行
226
+
227
+ **入口**: config.json 就绪
228
+ **出口**: 各轮输出文件 + plan 生成完毕,summary 写入 state.json
229
+
230
+ #### 执行方式:Agent Teams(Claude Code 原生蜂群)
231
+
232
+ > **前置条件**:在 settings.json 中启用实验特性:
233
+ > ```json
234
+ > { "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }
235
+ > ```
236
+
237
+ Agent Teams 是 Claude Code 的原生多 agent 协调机制。每个 teammate 是独立的 Claude Code 实例,拥有自己的 context window,通过共享任务列表和 mailbox 直接通信。Lead session(主 context)创建 team、spawn teammates、协调工作。
238
+
239
+ **vs Task subagent(RUN-003 及之前使用的方式)**:
240
+
241
+ | | Task subagent | Agent Teams |
242
+ |--|--|--|
243
+ | 实例 | 主 context 内 spawn 的子进程 | 独立 Claude Code 实例 |
244
+ | 通信 | 只向主 agent 汇报结果 | Teammate 之间直接发消息 |
245
+ | 协调 | 主 agent 手动编排每步 | 共享任务列表,Teammate 自行领取 |
246
+ | Context | 完成即销毁 | 持续运行,空闲时通知 lead |
247
+ | 适用场景 | 只需结果的聚焦任务 | 需要讨论和协作的复杂工作 |
248
+
249
+ **为什么结晶实验适合 Agent Teams**:
250
+ - Endpoint agents 并行独立运行,天然处理大 Profile(700K 不是问题)
251
+ - Catalyst 可以通过 mailbox **直接向 endpoint 追问**(而非等下一轮文件中转)
252
+ - 共享任务列表自动管理轮次依赖(Round 2 endpoint 任务被 Round 1 catalyst 完成所阻塞)
253
+ - Lead 根据 catalyst 收敛判断自主决定是否继续——不需要主 context 逐轮编排
254
+ - prompt 修改即时生效,不改代码
255
+ - **这就是生产架构的原型**——agent 读 Profile、产出投影,通过消息协调
256
+
257
+ #### 蜂群结构
258
+
259
+ ```
260
+ Lead session = 结晶管理器(本 skill 的主 context)
261
+ ↓ 创建 team,描述任务和角色
262
+
263
+ Phase 0: Formulation
264
+ Lead spawn "Formulator" teammate
265
+ → 读 Profile + RawIntent → 产出 {T,I,B,E} → 写入 formulated_demand.md
266
+ → 完成后通知 lead → lead 展示给用户确认
267
+
268
+ Phase 1~N: 每轮(共享任务列表驱动)
269
+
270
+ Lead 创建本轮任务(带依赖):
271
+ ┌─ Task: "P03 Round N 投影" [pending]
272
+ ├─ Task: "P04 Round N 投影" [pending]
273
+ ├─ Task: "P07 Round N 投影" [pending]
274
+ └─ Task: "Round N 催化" [pending, blocked by 上面三个]
275
+
276
+ Endpoint teammates 自行领取各自的投影任务(并行):
277
+ ┌─ Teammate [P03] → 读 Profile + clarification-session + 上轮催化 → 写 round_N_P03.md → 标记完成
278
+ ├─ Teammate [P04] → 同上 → 写 round_N_P04.md → 标记完成
279
+ └─ Teammate [P07] → 同上 → 写 round_N_P07.md → 标记完成
280
+
281
+ 三个投影任务完成 → 催化任务自动解除阻塞:
282
+ Teammate [Catalyst] → 读本轮所有 endpoint 输出 + 历史催化 → 写 round_N_catalyst.md
283
+ → 催化输出包含收敛判断 → 通知 lead
284
+
285
+ Lead 读收敛判断:继续 → 创建下一轮任务;收敛 → 进入 Phase Final
286
+
287
+ Phase Final: Plan Generator
288
+ Lead spawn 或复用 teammate → 读所有轮次输出 + clarification-session → 写 plan.md
289
+ ```
290
+
291
+ #### 关键设计
292
+
293
+ - **文件是持久层**:每个 endpoint 写独立文件(`round_N_P03.md`),催化写 `round_N_catalyst.md`。Agent Teams 的 mailbox 用于实时协调,文件用于跨 session 持久化和用户评估
294
+ - **任务依赖自动管理**:催化任务依赖所有 endpoint 任务完成,无需手动等待
295
+ - **Catalyst 可追问**:如果催化 agent 发现某个 endpoint 投影有明显遗漏,可通过 mailbox 直接要求补充(而非等下一轮)——这是 Task subagent 做不到的
296
+ - **Lead 决策自主**:lead 根据催化的收敛信号自动判断是否继续。用户可随时通过 Shift+Down 切换到任意 teammate 直接交互
297
+
298
+ #### 单步测试模式
299
+
300
+ 可以只跑 Phase 0(测 clarification-session)或只跑一轮(测 endpoint + catalyst),不必跑完整流程。prompt 迭代阶段主要用这种方式。
301
+
302
+ #### 显示模式
303
+
304
+ - **in-process**(默认):所有 teammate 在同一终端,Shift+Down 切换。Ctrl+T 查看任务列表
305
+ - **split panes**:每个 teammate 独立面板(需要 tmux 或 iTerm2)。结晶实验推荐此模式——可以实时观察每个 endpoint 的投影过程
306
+
307
+ ```json settings.json
308
+ { "teammateMode": "tmux" }
309
+ ```
310
+
311
+ #### 已知限制(实验特性)
312
+
313
+ - **Session 恢复不保留 teammates**:`/resume` 后 lead 需要重新 spawn teammates
314
+ - **一个 session 一个 team**:跑完一个 run 需要 clean up 后才能开下一个
315
+ - **不支持嵌套 team**:teammate 不能 spawn 自己的 team
316
+ - **权限继承**:所有 teammate 继承 lead 的权限设置
317
+
318
+ #### 备选:Task subagent 模式
319
+
320
+ 如果 Agent Teams 不可用(未启用实验特性、session 恢复后 teammates 丢失等),回退到 Task subagent 模式:
321
+
322
+ ```
323
+ 一条消息并行 launch 所有 endpoint agent(Task tool, subagent_type=general-purpose)
324
+ → 全部完成后 launch 催化 agent
325
+ → 主 context 读催化输出判断收敛
326
+ → 继续下一轮或进入 plan
327
+ ```
328
+
329
+ 这是 RUN-001~003 验证过的方式,功能完整但缺少 teammate 间直接通信能力。
330
+
331
+ **上下文预算**: ~5K(主 context 只持有 state.json + 任务状态。所有内容在文件中)
332
+
333
+ **用户做什么**: 确认 clarification-session → 按"开始" → 每轮可通过 Shift+Down 介入任意 teammate
334
+
335
+ ### Phase 5: DELIVER — 交付
336
+
337
+ **入口**: Plan 生成完毕
338
+ **出口**: 每个参与者的 Delivery 文件生成 + 名称验证通过
339
+
340
+ **我做什么**:
341
+ 1. 为每个参与者 spawn **Delivery Teammate**(并行)
342
+ 2. 每个 Delivery Teammate 读取:
343
+ - 预组装的 delivery prompt(`assembled/delivery_{PID}_system.txt`,agent_name + profile 已绑定)
344
+ - formulated_demand.md(tension_context)
345
+ - plan.md(完整方案)
346
+ 3. 产出个性化交付件,写入 `run_NNN/output/delivery_{PID}.md`
347
+ 4. 所有 delivery 完成后,运行 `validate_names.py` 校验全部输出
348
+ 5. 验证通过 → 更新 state.json,进入 Phase 4(ITERATE)
349
+
350
+ **上下文预算**: ~3K(只管理文件路径和状态,所有内容在 teammate 内处理)
351
+
352
+ **用户做什么**: 无需操作(管道模式下自动执行)
353
+
354
+ ---
355
+
356
+ ### Phase 4: ITERATE — 评估与迭代
357
+
358
+ **入口**: run 完成(含 Delivery)
359
+ **出口**: 用户说"够好了"或进入下一个 run
360
+
361
+ **我做什么**:
362
+ 1. 展示 run summary(从 state.json 读,~200 字)
363
+ 2. 用户要看某轮细节 → 派 **Round Formatter subagent** → 展示格式化片段
364
+ 3. 用户要看最终方案 → 直接读 `plan.md`(~10K,可以放进上下文)
365
+ 4. 引导用户完成评估:
366
+ - 逐轮判断(按需,不强制每轮)
367
+ - 终态判断(方案消解张力了吗?)
368
+ - 识别最关键的因素
369
+ 5. 记录评估结果 → **写入 state.json**
370
+ 6. 用户确认 prompt 修改方向 → 读当前 prompt → 修改 → **写新版本文件**
371
+ 7. 记录迭代 → **写入 state.json 的 iteration_log**
372
+ 8. 回到 Phase 2(新 run)
373
+
374
+ **上下文预算**: ~22K(state.json 5K + plan.md 10K + round 摘要 5K + prompt 讨论 2K)
375
+
376
+ **用户做什么**: 逐轮评估 + 终态判断 + 确认 prompt 修改方向
377
+
378
+ ---
379
+
380
+ ## Agent 合约
381
+
382
+ ### Teammate 角色定义(Agent Teams 模式)
383
+
384
+ Agent Teams 模式下,lead(结晶管理器)spawn 以下 teammates。每个 teammate 是独立 Claude Code 实例,拥有完整 context window,通过 mailbox 和共享任务列表协调。
385
+
386
+ #### Formulator Teammate
387
+
388
+ **角色**: 需求编码器
389
+ **Spawn 时机**: Phase 0,单 teammate
390
+ **Prompt 来源**: `tests/convergence_poc/prompts/clarification-session_v1.md`(自包含,包含概念定义+思维链)
391
+
392
+ **Spawn prompt 模板**:
393
+ ```
394
+ 你是 Formulator。你的任务是将原始需求编码为四参数张力结构。
395
+
396
+ 读取 prompt 文件: {clarification-session_prompt_path}
397
+ 读取 Profile: {profile_path}
398
+ 原始需求: {raw_intent}
399
+
400
+ 严格按照 prompt 中的步骤执行,输出写入: {output_path}
401
+ 完成后通知 lead。
402
+ ```
403
+
404
+ **输入**: Profile 文件路径 + RawIntent
405
+ **输出**: 四参数编码 {T,I,B,E} + 数据审计表,写入 `run_NNN/output/formulated_demand.md`
406
+ **自主性**: 自己读 Profile 文件(不管多大),自己执行编码。
407
+
408
+ #### Endpoint Teammate × N
409
+
410
+ **角色**: 参与者投影代理(每个参与者一个 teammate)
411
+ **Spawn 时机**: Phase 1 开始时一次性 spawn 所有参与者 teammates(整个实验生命周期复用)
412
+ **Prompt 来源**: `tests/convergence_poc/prompts/endpoint_v1.md`
413
+
414
+ **Spawn prompt 模板**(使用预组装文件):
415
+ ```
416
+ 你是 {participant_name} 的投影代理。你代表这个人,基于 TA 的 Profile 产出投影。
417
+
418
+ 【重要】你的 system prompt 已预组装在此文件中,名称和 Profile 已绑定:
419
+ {assembled_dir}/endpoint_{participant_id}_system.txt
420
+
421
+ 直接使用此文件内容。不要修改任何人名。不要给参与者起昵称。
422
+
423
+ Formulated demand: {formulated_demand_path}
424
+
425
+ 每轮你会收到一个任务("Round N 投影")。执行时:
426
+ 1. 读上轮催化输出(首轮无)
427
+ 2. 按预组装的 endpoint prompt 产出三重投影(能力/方向/边界)
428
+ 3. 写入 {output_dir}/round_N_{participant_id}.md
429
+ 4. 标记任务完成
430
+
431
+ 如果催化 agent 通过 mailbox 追问你,直接回复。
432
+ ```
433
+
434
+ **输入**: Profile + clarification-session + 上轮催化(通过任务描述指定路径)
435
+ **输出**: 三重投影,写入 `run_NNN/output/round_N_{participant_id}.md`
436
+ **并行**: 同一轮内所有 endpoint teammates 同时领取各自任务,互不依赖
437
+ **生命周期**: 跨轮复用——不是每轮 spawn 新 teammate,而是通过新任务驱动已有 teammate 继续工作
438
+ **直接通信**: 催化 teammate 可通过 mailbox 向 endpoint teammate 追问
439
+
440
+ #### Catalyst Teammate
441
+
442
+ **角色**: 催化观察者
443
+ **Spawn 时机**: Phase 1 开始时 spawn,整个实验生命周期复用
444
+ **Prompt 来源**: `tests/convergence_poc/prompts/catalyst_v2.md`
445
+
446
+ **Spawn prompt 模板**(使用预组装文件):
447
+ ```
448
+ 你是 Catalyst。你的任务是观察所有参与者的投影,识别跨语义关系,判断收敛。
449
+
450
+ 【重要】你的 system prompt 已预组装(参与者列表已绑定正确名称):
451
+ {assembled_dir}/catalyst_system.txt
452
+
453
+ 直接使用此文件内容。不要给参与者起昵称或使用非 name_registry 中的名称。
454
+ 参考名称注册表: {assembled_dir}/name_registry.json
455
+
456
+ Formulated demand: {formulated_demand_path}
457
+
458
+ 每轮你会收到一个任务("Round N 催化",blocked by 所有 endpoint 任务)。执行时:
459
+ 1. 读本轮所有 endpoint 输出
460
+ 2. 读上轮催化输出(首轮无)
461
+ 3. 按 catalyst prompt 产出催化分析
462
+ 4. 写入 {output_dir}/round_N_catalyst.md
463
+ 5. 如果发现某个 endpoint 投影有明显遗漏,可通过 mailbox 直接追问该 teammate
464
+ 6. 标记任务完成并通知 lead 收敛判断结果
465
+ ```
466
+
467
+ **输入**: 本轮所有 endpoint 输出 + clarification-session + 历史催化
468
+ **输出**: 催化分析(跨语义翻译 + 关系识别 + 收敛判断),写入 `run_NNN/output/round_N_catalyst.md`
469
+ **收敛信号**: 催化输出末尾标注 `[CONVERGED]` 或 `[CONTINUE]`,lead 据此决定下一步
470
+
471
+ #### Plan Generator Teammate
472
+
473
+ **角色**: 方案生成器
474
+ **Spawn 时机**: 催化判断收敛后,单独 spawn 或复用空闲 teammate
475
+ **Prompt 来源**: `tests/convergence_poc/prompts/plan_generator_v0.md`
476
+
477
+ **输入**: formulated_demand.md + relationship_map.md + 所有轮次输出
478
+ **输出**: 协作方案,写入 `run_NNN/output/plan.md`
479
+
480
+ #### Delivery Teammate × N
481
+
482
+ **角色**: 交付代理(每个参与者一个 teammate)
483
+ **Spawn 时机**: Plan 生成后,一次性 spawn 所有参与者的 delivery teammates(并行)
484
+ **Prompt 来源**: 预组装文件 `run_NNN/assembled/delivery_{PID}_system.txt`
485
+
486
+ **Spawn prompt 模板**:
487
+ ```
488
+ 你是 {participant_name} 的交付代理。你的任务是将协作方案从主人的视角呈现出来。
489
+
490
+ 【重要】你的 system prompt 已预组装,名称和 Profile 已绑定:
491
+ {assembled_dir}/delivery_{participant_id}_system.txt
492
+
493
+ 直接使用此文件内容作为基础。不要修改任何人名。
494
+
495
+ 你需要补充两个动态内容:
496
+ 1. 张力上下文:读取 {formulated_demand_path}
497
+ 2. 协作方案:读取 {plan_path}
498
+
499
+ 将预组装 prompt 中的 {{tension_context}} 替换为张力上下文内容,
500
+ 将 {{plan}} 替换为方案内容,然后按 prompt 要求产出交付件。
501
+
502
+ 输出写入: {output_dir}/delivery_{participant_id}.md
503
+ 完成后通知 lead。
504
+ ```
505
+
506
+ **输入**: 预组装 delivery prompt + formulated_demand.md + plan.md
507
+ **输出**: 个性化交付件,写入 `run_NNN/output/delivery_{PID}.md`
508
+ **并行**: 所有 delivery teammates 同时执行,互不依赖
509
+
510
+ ### Task subagent 合约(备选模式)
511
+
512
+ 当 Agent Teams 不可用时,所有 teammate 角色退化为 Task subagent(`Task` tool, subagent_type=`general-purpose`)。区别:
513
+ - 没有 mailbox,催化无法追问 endpoint
514
+ - 没有共享任务列表,主 context 手动编排每步
515
+ - 每轮 endpoint agents 在一条消息中并行 launch,催化在所有 endpoint 完成后 launch
516
+ - 这是 RUN-001~003 验证过的方式,功能完整
517
+
518
+ ---
519
+
520
+ ### 辅助 Agent(INTAKE / ITERATE 使用)
521
+
522
+ ### Profile Analyzer
523
+
524
+ **调用时机**: INTAKE 阶段,用户提供新 Profile
525
+ **实现**: `Task` tool, subagent_type=`general-purpose`
526
+
527
+ **Prompt 模板**:
528
+ ```
529
+ 读取以下 Profile 文件并提取结构化信息。
530
+
531
+ 文件路径: {file_path}
532
+
533
+ 请输出以下格式(严格遵守,不要叙述):
534
+
535
+ - **Name**: [人物姓名]
536
+ - **Domain**: [1-3 个词概括领域]
537
+ - **Capabilities**: [最多 3 条核心能力,每条一句话]
538
+ - **Tensions**: [最多 3 条需求/痛点/未解决问题,每条一句话]
539
+ - **One-line**: [一句话概括此人,30 字以内]
540
+ - **Richness**: [rich/medium/sparse — 信息量评估]
541
+ - **Char count**: [文件字符数]
542
+
543
+ 不要评价 Profile 质量。不要给建议。只做信息提取。
544
+
545
+ 输出完成后,将结果写入 {output_path}。
546
+ ```
547
+
548
+ **主 context 成本**: ~500 chars(只收到结构化摘要)
549
+
550
+ ### Round Formatter
551
+
552
+ **调用时机**: ITERATE 阶段,用户要看某轮细节
553
+ **实现**: `Task` tool, subagent_type=`general-purpose`
554
+
555
+ **Prompt 模板**:
556
+ ```
557
+ 读取以下 round 文件并格式化展示。
558
+
559
+ 文件路径: {round_file_path}
560
+ 上下文: 这是 {run_id} 的第 {round_number} 轮,催化 prompt {catalyst_version},{participant_count} 个参与者。
561
+ 展示范围: {scope} (全部 / 仅催化 / 仅某人)
562
+
563
+ 请输出以下格式:
564
+
565
+ ## 第 {round_number} 轮
566
+
567
+ ### 端侧回复
568
+ - [Name]: [1-2 句话:TA 这轮说了什么重要的]
569
+ - ...
570
+
571
+ ### 催化表现
572
+ - 翻译数: [N] 条
573
+ - 新翻译: [逐条列出,每条一句话]
574
+ - 信息差: [列出新识别的]
575
+ - 约束违反: [如有]
576
+ - 与上轮相比: [进步/退步/持平,一句话说明]
577
+
578
+ ### 本轮亮点
579
+ [1-2 句话:这轮最值得注意的事]
580
+
581
+ 同时将格式化结果写入 {output_path}。
582
+ ```
583
+
584
+ **主 context 成本**: ~1-2K chars
585
+
586
+ ### Run Summarizer
587
+
588
+ **调用时机**: RUN 完成后,生成 state.json 中的 summary_200w
589
+ **实现**: `Task` tool, subagent_type=`general-purpose`
590
+
591
+ **Prompt 模板**:
592
+ ```
593
+ 读取以下实验运行的完整输出,生成 200 字以内的结构化摘要。
594
+
595
+ 文件:
596
+ - transcript: {transcript_path}
597
+ - plan: {plan_path}
598
+ - metadata: {metadata_path}
599
+
600
+ 上下文: {run_id}, 需求: {demand_one_line}, 参与者: {participant_names}
601
+
602
+ 请输出以下格式:
603
+
604
+ ## {run_id} 摘要
605
+
606
+ **轨迹**: [1-2 句话描述对话如何演变]
607
+ **关键发现**: [最多 5 条,每条一句话]
608
+ **方案质量**: [1 句话]
609
+ **收敛**: [第 N 轮收敛 / 未收敛]
610
+ **最大亮点**: [1 句话]
611
+ **最大问题**: [1 句话]
612
+
613
+ 同时将摘要写入 {output_path}。
614
+
615
+ 注意:这个摘要会存入 state.json,是后续 session 了解此 run 的唯一入口。确保信息密度足够高。
616
+ ```
617
+
618
+ **主 context 成本**: ~1K chars(摘要写入 state.json 后,主 agent 只读 state.json)
619
+
620
+ ---
621
+
622
+ ## 文件组织
623
+
624
+ ```
625
+ data/profiles/real/ # Profile 池(持久,跨 run 共享)
626
+ {person_name}.md # 每人一个文件,任意格式
627
+
628
+ tests/convergence_poc/
629
+ state.json # 实验状态(单一真相源)
630
+ prompts/
631
+ catalyst_v0.md ... catalyst_vN.md # 催化 prompt 版本链(永不覆盖)
632
+ endpoint_v0.md ... endpoint_vN.md
633
+ plan_generator_v0.md ...
634
+ simulations/real/
635
+ run_real.py # 备选:种子控制的批量运行脚本
636
+ run_001/
637
+ config.json # 冻结配置
638
+ output/
639
+ round_1.md ... round_N.md
640
+ transcript.md
641
+ plan.md
642
+ metadata.json
643
+ evaluation.md # 用户评估(人类可读副本)
644
+ summary.md # Run Summarizer 输出副本
645
+ run_002/ ...
646
+ iteration_log.md # 跨 run 迭代记录(人类可读版)
647
+ ```
648
+
649
+ ---
650
+
651
+ ## Pipeline Mode — 全流程自动执行
652
+
653
+ Pipeline Mode 是管道化的自动执行流程:用户提供 config.json,lead 从头到尾自动跑完全部阶段,无人工确认点,每步产出持久化到文件。
654
+
655
+ ### 启动
656
+
657
+ 用户说:"跑管道 RUN-NNN" 或 "pipeline run_NNN/config.json"
658
+
659
+ Lead 读取 config.json → 按下列阶段顺序执行。
660
+
661
+ ### 管道阶段
662
+
663
+ ```
664
+ Stage 0: FORMULATE
665
+ ├─ 入口: config.json + source_profile + raw_intent
666
+ ├─ 动作: Spawn Formulator teammate → 读 Profile + intent → 产出 T/I/B/E
667
+ ├─ 产出: run_NNN/output/formulated_demand.md
668
+ ├─ 门禁: 文件存在 + T/I/B/E 四参数结构完整
669
+ └─ 跳过条件: config.pipeline.skip_clarification-session=true 且 formulated_demand_file 已指定
670
+
671
+ Stage 1: ASSEMBLE
672
+ ├─ 入口: config.json + formulated_demand.md
673
+ ├─ 动作: python3 assemble_prompts.py --config run_NNN/config.json
674
+ ├─ 产出: run_NNN/assembled/ (name_registry.json + 所有预组装 prompt)
675
+ ├─ 门禁: assembly_manifest.json 存在 + 0 错误
676
+ └─ 依赖: Stage 0 完成(formulated_demand.md 可用)
677
+
678
+ Stage 2: CRYSTALLIZE
679
+ ├─ 入口: assembled/ 目录 + formulated_demand.md
680
+ ├─ 动作: Spawn N endpoint teammates + 1 catalyst teammate
681
+ │ 每轮: endpoints 并行投影 → catalyst 催化 → 收敛判断
682
+ ├─ 产出: round_N_*.md + round_N_catalyst.md + relationship_map.md + transcript.md
683
+ ├─ 门禁: [CONVERGED] 信号 或 达到 max_rounds
684
+ └─ 依赖: Stage 1 完成(预组装 prompt 可用)
685
+
686
+ Stage 3: PLAN
687
+ ├─ 入口: transcript.md + formulated_demand.md + profiles
688
+ ├─ 动作: Spawn Plan Generator teammate
689
+ ├─ 产出: run_NNN/output/plan.md
690
+ ├─ 门禁: plan.md 存在 + 非空
691
+ └─ 依赖: Stage 2 完成
692
+
693
+ Stage 4: DELIVER
694
+ ├─ 入口: plan.md + assembled delivery prompts
695
+ ├─ 动作: Spawn N delivery teammates(并行)
696
+ ├─ 产出: delivery_P01.md, delivery_P03.md, ...(每人一个)
697
+ ├─ 门禁: 所有参与者的 delivery 文件都存在
698
+ └─ 依赖: Stage 3 完成
699
+
700
+ Stage 5: VALIDATE
701
+ ├─ 入口: 全部输出文件 + name_registry.json
702
+ ├─ 动作: python3 validate_names.py --registry ... --output ...
703
+ ├─ 产出: validation_report.json
704
+ ├─ 门禁: 0 errors(warnings 可接受)
705
+ └─ 依赖: Stage 4 完成
706
+
707
+ Stage 6: FINALIZE
708
+ ├─ 动作: 更新 state.json(run 记录 + status=completed)
709
+ │ 生成 metadata.json
710
+ ├─ 产出: state.json 更新 + metadata.json
711
+ └─ 依赖: Stage 5 通过
712
+ ```
713
+
714
+ ### 管道 Teammate 生命周期
715
+
716
+ ```
717
+ 管道启动
718
+
719
+ [Formulator] — spawn → 完成 → shutdown
720
+
721
+ [assemble_prompts.py] — bash 执行
722
+
723
+ [Endpoint×N + Catalyst] — spawn → 多轮循环 → 收敛 → shutdown
724
+
725
+ [Plan Generator] — spawn → 完成 → shutdown
726
+
727
+ [Delivery×N] — spawn → 并行完成 → shutdown
728
+
729
+ [validate_names.py] — bash 执行
730
+
731
+ state.json 更新 → 向用户汇报结果
732
+ ```
733
+
734
+ **关键设计**:每个阶段的 teammates 在完成后 shutdown,不跨阶段复用。原因:
735
+ - 节省 context 费用(空闲 teammate 仍消耗 token)
736
+ - 避免上下文污染(endpoint 的 context 不应影响 delivery)
737
+ - 简化状态管理(每阶段干净启动)
738
+
739
+ ### 门禁失败处理
740
+
741
+ 如果任何门禁失败(如 validate_names 发现 errors):
742
+ 1. 不继续后续阶段
743
+ 2. 保存当前所有产出(不删除)
744
+ 3. 更新 state.json 的 next_action 为失败信息
745
+ 4. 向用户汇报失败原因和建议
746
+
747
+ ### 并行实例
748
+
749
+ 8 个实例并行 = 8 个独立 Claude Code session,各自执行一个管道实例。
750
+
751
+ 每个实例独立:
752
+ - 独立的 run_NNN/ 目录(无共享状态)
753
+ - 独立的 Agent Teams team(无跨 session 通信)
754
+ - 共享的 state.json 需要实例间互斥(先读后写 → 用 run_id 区分)
755
+
756
+ **操作方式**:用户开 8 个终端,每个终端启动 Claude Code,加载 boll-crystal skill,输入 "跑管道 RUN-NNN"。
757
+
758
+ ### 管道配置模板
759
+
760
+ 位于 `tests/convergence_poc/simulations/real/pipeline_config_template.json`。
761
+
762
+ 与现有 config.json 的区别:
763
+ - 新增 `prompt_versions.delivery` — delivery prompt 版本
764
+ - 新增 `prompt_files.delivery` — delivery prompt 路径
765
+ - 新增 `pipeline` section — 管道控制参数
766
+ - 新增 `params.max_tokens_delivery` — delivery token 限制
767
+
768
+ ### 管道产出目录结构
769
+
770
+ ```
771
+ run_NNN/
772
+ config.json # 冻结配置
773
+ assembled/ # Stage 1 产出(预组装 prompt)
774
+ name_registry.json
775
+ catalyst_system.txt
776
+ endpoint_P01_system.txt
777
+ delivery_P01_system.txt
778
+ plan_profiles.txt
779
+ assembly_manifest.json
780
+ output/
781
+ formulated_demand.md # Stage 0
782
+ round_1_P01.md ... round_N_PXX.md # Stage 2 endpoint
783
+ round_1_catalyst.md ... # Stage 2 catalyst
784
+ relationship_map.md # Stage 2 post-convergence
785
+ transcript.md # Stage 2 aggregate
786
+ plan.md # Stage 3
787
+ delivery_P01.md ... # Stage 4
788
+ delivery_P03.md
789
+ validation_report.json # Stage 5
790
+ metadata.json # Stage 6
791
+ ```
792
+
793
+ ---
794
+
795
+ ## 变量测试计划
796
+
797
+ ### Phase A: Prompt 迭代(同场景,只改 prompt)
798
+
799
+ | 优先级 | 变量 | 假说 | 最小数据 |
800
+ |--------|------|------|---------|
801
+ | 1 | 催化后期退化 | R3+ 加"深化模式"→ 改善 | 2 runs |
802
+ | 2 | 翻译数量锚定 | 去掉"至少1条"→ 质量 > 数量 | 1 run + 对比 |
803
+ | 3 | 端侧被动 | R2+ 加轮次感知 → 端侧更主动 | 1 run |
804
+ | 4 | 方案假共识 | 方案只纳入多方确认内容 | 1 run |
805
+
806
+ ### Phase B: 泛化验证(不同场景,稳定 prompt)
807
+
808
+ | 变量 | 目的 | 最小数据 |
809
+ |------|------|---------|
810
+ | 不同需求 | 确认不过拟合 | 2-3 个需求 |
811
+ | 不同人数 | 3 vs 5 人 | 2 runs |
812
+
813
+ ### 预算
814
+
815
+ Agent Teams 模式下每个 teammate 是独立 Claude Code 实例,token 消耗随 teammate 数量线性增长。一个 4 轮 run(3 endpoint + 1 catalyst + clarification-session + plan)约消耗 6 个 teammate 的 token。
816
+
817
+ **成本控制**:
818
+ - 后期轮次(R3+)如果信息明显递减,可将 endpoint teammates 切换为 Haiku 模型
819
+ - 单步测试模式(只跑 Phase 0 或一轮)用于 prompt 迭代,避免跑完整流程
820
+ - Task subagent 备选模式的 token 消耗更低(subagent context 完成即销毁)
821
+
822
+ ---
823
+
824
+ ## 分工
825
+
826
+ **用户做的**(尽量少):
827
+ - 丢 Profile 文件(任意格式)
828
+ - 说需求(一句话)
829
+ - 确认需求理解(1 个 checkpoint)
830
+ - 逐轮评估(每轮一两句话)
831
+ - 终态评估(方案有没有消解张力)
832
+ - 确认 prompt 修改方向(1 个 checkpoint)
833
+
834
+ **我做的**(尽量多):
835
+ - Profile 分析和编目(subagent)
836
+ - 需求 clarification-session
837
+ - 参与者选择建议(或跑真实模块一)
838
+ - Agent Teams 蜂群启动和编排(spawn teammates + 共享任务列表管理)
839
+ - 输出格式化和按需展示(subagent)
840
+ - 因素提取和 prompt 修改草案
841
+ - 状态追踪和文档管理
842
+
843
+ **Profile 贡献者做的**(尽量少):
844
+ - 提供 Profile(一次性)
845
+ - 如果 Profile < 500 字,建议补充(但不强制)
846
+ - 不需要验证任何分析结果
847
+
848
+ ---
849
+
850
+ ## 我不做什么
851
+
852
+ - 不替用户评估实验效果(展示原始内容,用户自己判断)
853
+ - 不做架构决策(发现设计层问题 → 回到 DESIGN_LOG_006 讨论)
854
+ - 不做统计检验(结晶实验用定性评估,不是 p-value)
855
+ - 不直接读 transcript.md(通过 subagent)
856
+ - 不混淆 Profile 和场景(一个人可以有多个需求)
857
+
858
+ ---
859
+
860
+ ## 与其他 Skill 的关系
861
+
862
+ | Skill | 关系 |
863
+ |-------|------|
864
+ | `boll-lab` | Lab 定义实验方法论,我负责结晶实验的具体操作 |
865
+ | `soul-writing` | 深度 prompt / 行为文本工程时加载 |
866
+ | `arch` | 评估发现设计层问题时升级 |
867
+ | `lead` | 遵循 5 阶段治理。Skill + state 变更走快速通道 |
868
+
869
+ ---
870
+
871
+ ## 参考文件
872
+
873
+ ### 核心状态
874
+ - `tests/convergence_poc/state.json` — 实验状态(单一真相源)
875
+
876
+ ### Prompt 版本
877
+ - `tests/convergence_poc/prompts/clarification-session_v1.1.md` — 当前 clarification-session prompt
878
+ - `tests/convergence_poc/prompts/catalyst_v2.1.md` — 当前催化 prompt
879
+ - `tests/convergence_poc/prompts/endpoint_v2.md` — 当前端侧 prompt
880
+ - `tests/convergence_poc/prompts/plan_generator_v0.md` — 当前方案生成 prompt
881
+ - `tests/convergence_poc/prompts/delivery_v1.md` — 当前交付 prompt(v1 基线)
882
+
883
+ ### 管道工具
884
+ - `tests/convergence_poc/simulations/real/assemble_prompts.py` — Prompt 预组装器(代码级名称绑定)
885
+ - `tests/convergence_poc/simulations/real/validate_names.py` — 名称一致性校验门
886
+ - `tests/convergence_poc/simulations/real/pipeline_config_template.json` — 管道配置模板
887
+ - `tests/convergence_poc/simulations/real/run_real.py` — 种子控制批量运行脚本(API 模式备选)
888
+ - `tests/convergence_poc/simulations/real/test_delivery.py` — Delivery 单独测试脚本
889
+
890
+ ### 设计文档
891
+ - `docs/design-logs/DESIGN_LOG_006_CRYSTALLIZATION_PROTOCOL.md` — 结晶协议设计
892
+ - `docs/design-logs/DESIGN_LOG_007_ENDPOINT_INFORMATION_STRUCTURE.md` — 端侧信息结构设计
893
+ - `docs/research/014-real-human-experiment-guide.md` — 真人实验指导