@bolloon/bolloon-agent 0.1.0 → 0.1.2

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 (581) hide show
  1. package/bin/bolloon-cli.cjs +157 -0
  2. package/bin/bolloon-daemon.sh +207 -0
  3. package/bin/bolloon.cmd +11 -0
  4. package/dist/agents/constraint-layer.js +10 -15
  5. package/dist/agents/pi-sdk.js +433 -106
  6. package/dist/agents/protocol.js +82 -1
  7. package/dist/agents/subagent-manager.js +2 -2
  8. package/dist/agents/workflow-engine.js +15 -20
  9. package/dist/agents/workflow-pivot-loop.js +541 -0
  10. package/dist/bollharness/src/index.js +5 -0
  11. package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +6 -0
  12. package/dist/bollharness/src/scripts/checks/check_api_types.js +45 -0
  13. package/dist/bollharness/src/scripts/checks/check_artifact_link.js +146 -0
  14. package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +6 -0
  15. package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +6 -0
  16. package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +6 -0
  17. package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +6 -0
  18. package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +135 -0
  19. package/dist/bollharness/src/scripts/checks/check_doc_links.js +31 -0
  20. package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +6 -0
  21. package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +34 -0
  22. package/dist/bollharness/src/scripts/checks/check_hook_installed.js +63 -0
  23. package/dist/bollharness/src/scripts/checks/check_issue_closure.js +41 -0
  24. package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +6 -0
  25. package/dist/bollharness/src/scripts/checks/check_security.js +48 -0
  26. package/dist/bollharness/src/scripts/checks/check_skill_parity.js +6 -0
  27. package/dist/bollharness/src/scripts/checks/check_versions.js +6 -0
  28. package/dist/bollharness/src/scripts/checks/finding.js +13 -0
  29. package/dist/bollharness/src/scripts/checks/next_decision_number.js +20 -0
  30. package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +6 -0
  31. package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +8 -0
  32. package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +8 -0
  33. package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +8 -0
  34. package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +8 -0
  35. package/dist/bollharness/src/scripts/context_router.js +67 -0
  36. package/dist/bollharness/src/scripts/deploy-guard.js +157 -0
  37. package/dist/bollharness/src/scripts/guard-feedback.js +192 -0
  38. package/dist/bollharness/src/scripts/guard_router.js +158 -0
  39. package/dist/bollharness/src/scripts/hooks/_hook_output.js +6 -0
  40. package/dist/bollharness/src/scripts/hooks/auto-python3.js +6 -0
  41. package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +6 -0
  42. package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +6 -0
  43. package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +92 -0
  44. package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +63 -0
  45. package/dist/bollharness/src/scripts/hooks/inbox-ack.js +6 -0
  46. package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +6 -0
  47. package/dist/bollharness/src/scripts/hooks/inbox-validate.js +6 -0
  48. package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +6 -0
  49. package/dist/bollharness/src/scripts/hooks/initializer-agent.js +6 -0
  50. package/dist/bollharness/src/scripts/hooks/loop-detection.js +73 -0
  51. package/dist/bollharness/src/scripts/hooks/owner-guard.js +6 -0
  52. package/dist/bollharness/src/scripts/hooks/precompact.js +6 -0
  53. package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +6 -0
  54. package/dist/bollharness/src/scripts/hooks/risk-tracker.js +108 -0
  55. package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +6 -0
  56. package/dist/bollharness/src/scripts/hooks/session-reflection.js +7 -0
  57. package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +7 -0
  58. package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +7 -0
  59. package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +7 -0
  60. package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +157 -0
  61. package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +6 -0
  62. package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +10 -0
  63. package/dist/bollharness/src/scripts/install/install-trust-token.js +7 -0
  64. package/dist/bollharness/src/scripts/install/multi_project_registry.js +9 -0
  65. package/dist/bollharness/src/scripts/install/phase2_auto.js +21 -0
  66. package/dist/bollharness/src/scripts/install/pre_commit_installer.js +6 -0
  67. package/dist/bollharness/src/scripts/install/tier_selector.js +7 -0
  68. package/dist/bollharness/src/scripts/install/transcript_miner.js +7 -0
  69. package/dist/bollharness/src/scripts/lib/claim_patterns.js +10 -0
  70. package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +12 -0
  71. package/dist/bollharness/src/scripts/sanitize.js +6 -0
  72. package/dist/bollharness-integration/channel-judgment-engine.js +530 -0
  73. package/dist/bollharness-integration/context-chain-router.js +383 -0
  74. package/dist/bollharness-integration/context-router-judgment.js +13 -21
  75. package/dist/bollharness-integration/context-router.js +22 -64
  76. package/dist/bollharness-integration/gate-state-machine.js +14 -19
  77. package/dist/bollharness-integration/gate-transition-hooks.js +16 -61
  78. package/dist/bollharness-integration/guard-checker.js +21 -68
  79. package/dist/bollharness-integration/index.js +14 -124
  80. package/dist/bollharness-integration/integration.js +13 -20
  81. package/dist/bollharness-integration/llm-judgment-engine.js +569 -0
  82. package/dist/bollharness-integration/skill-adapter.js +18 -64
  83. package/dist/cli-entry.js +261 -0
  84. package/dist/constraint-runtime/src/commands.js +17 -7
  85. package/dist/constraint-runtime/src/constraint/budget.js +1 -6
  86. package/dist/constraint-runtime/src/constraint/permission.js +1 -6
  87. package/dist/constraint-runtime/src/models.js +1 -3
  88. package/dist/constraint-runtime/src/tools.js +17 -7
  89. package/dist/constraints/index.js +1 -7
  90. package/dist/documents/reader.js +8 -49
  91. package/dist/heartbeat/DaemonManager.js +242 -0
  92. package/dist/heartbeat/HealthMonitor.js +285 -0
  93. package/dist/heartbeat/StartupVerifier.js +205 -0
  94. package/dist/heartbeat/Watchdog.js +168 -0
  95. package/dist/heartbeat/index.js +84 -0
  96. package/dist/heartbeat/types.js +5 -0
  97. package/dist/index.js +381 -28
  98. package/dist/llm/config-store.js +31 -57
  99. package/dist/llm/llm-judgment-client.js +389 -0
  100. package/dist/llm/pi-ai.js +9 -52
  101. package/dist/network/agent-network.js +46 -90
  102. package/dist/network/hybrid-messenger.js +125 -0
  103. package/dist/network/iroh-bootstrap.js +38 -0
  104. package/dist/network/iroh-discovery.js +145 -0
  105. package/dist/network/iroh-integration.js +9 -16
  106. package/dist/network/iroh-transport.js +10 -48
  107. package/dist/network/p2p.js +23 -62
  108. package/dist/network/storage/adapters/json-adapter.js +4 -42
  109. package/dist/network/storage/index.js +147 -0
  110. package/dist/network/storage/types.js +14 -0
  111. package/dist/pi-ecosystem/index.js +233 -0
  112. package/dist/pi-ecosystem-colony/index.js +29 -90
  113. package/dist/pi-ecosystem-goals/index.js +20 -74
  114. package/dist/pi-ecosystem-judgment/decision.js +29 -47
  115. package/dist/pi-ecosystem-judgment/distillation.js +16 -29
  116. package/dist/pi-ecosystem-judgment/human-value-store.js +13 -60
  117. package/dist/pi-ecosystem-judgment/index.js +21 -74
  118. package/dist/pi-ecosystem-judgment/value-injection.js +26 -72
  119. package/dist/pi-ecosystem-mcp/index.js +24 -78
  120. package/dist/pi-ecosystem-subagents/index.js +20 -69
  121. package/dist/social/ant-colony/AdaptiveHeartbeat.js +3 -8
  122. package/dist/social/ant-colony/PheromoneEngine.js +11 -49
  123. package/dist/social/ant-colony/index.js +6 -0
  124. package/dist/social/ant-colony/types.js +4 -8
  125. package/dist/social/channels/ChannelManager.js +8 -46
  126. package/dist/social/channels/DiapChannelBridge.js +9 -47
  127. package/dist/social/channels/InterestMatcher.js +2 -7
  128. package/dist/social/channels/channel-agent-session.js +309 -0
  129. package/dist/social/channels/channel-heartbeat-agent.js +494 -0
  130. package/dist/social/channels/diap-doc-parser.js +204 -0
  131. package/dist/social/channels/harness-workflow-integrator.js +446 -0
  132. package/dist/social/channels/index.js +9 -0
  133. package/dist/social/channels/types.js +3 -7
  134. package/dist/social/global-shared-context.js +6 -47
  135. package/dist/social/heartbeat.js +29 -72
  136. package/dist/social/persona/enhanced-persona.js +299 -0
  137. package/dist/web/client.js +302 -136
  138. package/dist/web/components/p2p/index.js +159 -9
  139. package/dist/web/components/p2p/p2p-connection.js +136 -0
  140. package/dist/web/components/p2p/p2p-manager.js +24 -0
  141. package/dist/web/components/p2p/p2p-store-memory.js +1 -1
  142. package/dist/web/components/p2p/types.js +7 -0
  143. package/dist/web/index.html +5 -0
  144. package/dist/web/style.css +118 -0
  145. package/package.json +12 -6
  146. package/scripts/build-cli.js +206 -0
  147. package/scripts/postinstall.js +153 -0
  148. package/src/agents/pi-sdk.ts +347 -28
  149. package/src/agents/protocol.ts +95 -1
  150. package/src/agents/workflow-pivot-loop.ts +674 -0
  151. package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +34 -0
  152. package/src/cli-entry.ts +304 -0
  153. package/src/heartbeat/DaemonManager.ts +283 -0
  154. package/src/heartbeat/HealthMonitor.ts +316 -0
  155. package/src/heartbeat/StartupVerifier.ts +223 -0
  156. package/src/heartbeat/Watchdog.ts +198 -0
  157. package/src/heartbeat/index.ts +108 -0
  158. package/src/heartbeat/types.ts +82 -0
  159. package/src/llm/config-store.ts +23 -5
  160. package/src/network/iroh-transport.ts +3 -3
  161. package/src/web/client.js +302 -136
  162. package/src/web/components/p2p/P2PModal.tsx +91 -3
  163. package/src/web/components/p2p/index.ts +171 -9
  164. package/src/web/components/p2p/p2p-connection.ts +153 -1
  165. package/src/web/components/p2p/p2p-manager.ts +39 -1
  166. package/src/web/components/p2p/p2p-store-memory.ts +1 -1
  167. package/src/web/components/p2p/p2p-tools.ts +315 -0
  168. package/src/web/components/p2p/types.ts +58 -0
  169. package/src/web/index.html +5 -0
  170. package/src/web/server.ts +353 -36
  171. package/src/web/style.css +118 -0
  172. package/tsconfig.cli.json +16 -0
  173. package/tsconfig.electron.json +1 -1
  174. package/tsconfig.json +1 -2
  175. package/dist/constraint-runtime/tests/agent.test.js +0 -16
  176. package/dist/constraint-runtime/tests/constraint.test.js +0 -41
  177. package/dist/constraint-runtime/tests/skill.test.js +0 -19
  178. package/dist/constraint-runtime/tests/thinking.test.js +0 -22
  179. package/dist/electron-preload.js +0 -15
  180. package/dist/electron-preload.js.map +0 -1
  181. package/dist/electron.js +0 -206
  182. package/dist/electron.js.map +0 -1
  183. package/dist/test/constraint-layer.test.js +0 -164
  184. package/dist/test/global-shared-context.test.js +0 -315
  185. package/dist/test/pi-sdk.test.js +0 -47
  186. package/dist/test/set-persona.test.js +0 -38
  187. package/dist/test/subagent-manager.test.js +0 -276
  188. package/dist/test/workflow-engine.test.js +0 -87
  189. package/dist/web/server.js +0 -1647
  190. package/dist/web/server.js.map +0 -1
  191. package/dist/workflows/collaboration.js +0 -374
  192. package/dist/workflows/index.js +0 -54
  193. package/docs/agent-communication.md +0 -333
  194. package/docs/plans/2026-05-15-document-agent-design.md +0 -479
  195. package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
  196. package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
  197. package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
  198. package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
  199. 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 +0 -287
  200. package/src/bollharness/.boll/CLAUDE.md.template +0 -34
  201. package/src/bollharness/.boll/MANIFEST.yaml +0 -213
  202. package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
  203. package/src/bollharness/.boll/agents/review-base.yaml +0 -108
  204. package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
  205. package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
  206. package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
  207. package/src/bollharness/.boll/issue-adapter.yaml +0 -31
  208. package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
  209. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  210. package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  211. package/src/bollharness/.boll/rules/backend-routes.md +0 -31
  212. package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
  213. package/src/bollharness/.boll/rules/env-vars.md +0 -32
  214. package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
  215. package/src/bollharness/.boll/rules/repo-structure.md +0 -42
  216. package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
  217. package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
  218. package/src/bollharness/.boll/settings.json +0 -180
  219. package/src/bollharness/.boll/settings.json.template +0 -31
  220. package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
  221. package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
  222. package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
  223. package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
  224. package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
  225. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
  226. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
  227. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
  228. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
  229. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
  230. package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
  231. package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
  232. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
  233. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
  234. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
  235. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
  236. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
  237. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
  238. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
  239. package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
  240. package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
  241. package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
  242. package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
  243. package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
  244. package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
  245. package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
  246. package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
  247. package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
  248. package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
  249. package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
  250. package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
  251. package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
  252. package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
  253. package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
  254. package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
  255. package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
  256. package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
  257. package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
  258. package/src/bollharness/.boll/tasks/.gitkeep +0 -0
  259. package/src/bollharness/.boll/toolkit-index.yaml +0 -112
  260. package/src/bollharness/.claude/agents/review-base.yaml +0 -108
  261. package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
  262. package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
  263. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
  264. package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
  265. package/src/bollharness/.claude/settings.json +0 -157
  266. package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
  267. package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
  268. package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
  269. package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
  270. package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
  271. package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
  272. package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
  273. package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
  274. package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
  275. package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
  276. package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
  277. package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
  278. package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
  279. package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
  280. package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
  281. package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
  282. package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
  283. package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
  284. package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
  285. package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
  286. package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
  287. package/src/bollharness/.githooks/pre-commit +0 -21
  288. package/src/bollharness/.github/workflows/ci.yml +0 -88
  289. package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
  290. package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
  291. package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
  292. package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
  293. package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
  294. package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
  295. package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
  296. package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
  297. package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
  298. package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
  299. package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
  300. package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
  301. package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
  302. package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
  303. package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
  304. package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
  305. package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
  306. package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
  307. package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
  308. package/src/bollharness/docs/launch-article-en.md +0 -276
  309. package/src/bollharness/docs/launch-article-zh.md +0 -305
  310. package/src/bollharness/docs/practice.html +0 -356
  311. package/src/bollharness/docs/practice.md +0 -82
  312. package/src/bollharness/docs/research/round-1/README.md +0 -11
  313. package/src/bollharness/docs/research/round-2/README.md +0 -11
  314. package/src/bollharness/docs/research/round-3/README.md +0 -11
  315. package/src/bollharness/docs/research/round-4/README.md +0 -11
  316. package/src/bollharness/docs/research/round-5/README.md +0 -11
  317. package/src/bollharness/docs/research/round-6/README.md +0 -11
  318. package/src/bollharness/package-lock.json +0 -48
  319. package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
  320. package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
  321. package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
  322. package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
  323. package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
  324. package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
  325. package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
  326. package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
  327. package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
  328. package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
  329. package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
  330. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
  331. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
  332. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
  333. package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
  334. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
  335. package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
  336. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
  337. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
  338. package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
  339. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
  340. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
  341. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
  342. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
  343. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
  344. package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
  345. package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
  346. package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
  347. package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
  348. package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
  349. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
  350. package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
  351. package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
  352. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
  353. package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
  354. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
  355. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
  356. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
  357. package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
  358. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
  359. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
  360. package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
  361. package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
  362. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
  363. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
  364. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
  365. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
  366. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
  367. package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
  368. package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
  369. package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
  370. package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
  371. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
  372. package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
  373. package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
  374. package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
  375. package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
  376. package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
  377. package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
  378. package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
  379. package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
  380. package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
  381. package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
  382. package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
  383. package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
  384. package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
  385. package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
  386. package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
  387. package/src/bollharness/tsconfig.json +0 -26
  388. package/src/constraint-runtime/package-lock.json +0 -48
  389. package/src/constraint-runtime/package.json +0 -34
  390. package/src/constraint-runtime/src/_archive_helper.ts +0 -16
  391. package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
  392. package/src/constraint-runtime/src/agent/index.ts +0 -1
  393. package/src/constraint-runtime/src/assistant/index.ts +0 -15
  394. package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
  395. package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
  396. package/src/constraint-runtime/src/bridge/index.ts +0 -15
  397. package/src/constraint-runtime/src/buddy/index.ts +0 -15
  398. package/src/constraint-runtime/src/cli/index.ts +0 -15
  399. package/src/constraint-runtime/src/command_graph.ts +0 -20
  400. package/src/constraint-runtime/src/commands.ts +0 -83
  401. package/src/constraint-runtime/src/components/index.ts +0 -15
  402. package/src/constraint-runtime/src/constants/index.ts +0 -15
  403. package/src/constraint-runtime/src/constraint/budget.ts +0 -25
  404. package/src/constraint-runtime/src/constraint/index.ts +0 -3
  405. package/src/constraint-runtime/src/constraint/permission.ts +0 -28
  406. package/src/constraint-runtime/src/context.ts +0 -45
  407. package/src/constraint-runtime/src/coordinator/index.ts +0 -15
  408. package/src/constraint-runtime/src/cost_hook.ts +0 -6
  409. package/src/constraint-runtime/src/cost_tracker.ts +0 -9
  410. package/src/constraint-runtime/src/deferred_init.ts +0 -18
  411. package/src/constraint-runtime/src/direct_modes.ts +0 -13
  412. package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
  413. package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
  414. package/src/constraint-runtime/src/execution_registry.ts +0 -41
  415. package/src/constraint-runtime/src/history.ts +0 -16
  416. package/src/constraint-runtime/src/hooks/index.ts +0 -15
  417. package/src/constraint-runtime/src/index.ts +0 -28
  418. package/src/constraint-runtime/src/ink.ts +0 -4
  419. package/src/constraint-runtime/src/keybindings/index.ts +0 -15
  420. package/src/constraint-runtime/src/memdir/index.ts +0 -15
  421. package/src/constraint-runtime/src/migrations/index.ts +0 -15
  422. package/src/constraint-runtime/src/models.ts +0 -49
  423. package/src/constraint-runtime/src/moreright/index.ts +0 -15
  424. package/src/constraint-runtime/src/native_ts/index.ts +0 -15
  425. package/src/constraint-runtime/src/output_styles/index.ts +0 -15
  426. package/src/constraint-runtime/src/parity_audit.ts +0 -23
  427. package/src/constraint-runtime/src/plugins/index.ts +0 -15
  428. package/src/constraint-runtime/src/port_manifest.ts +0 -20
  429. package/src/constraint-runtime/src/prefetch.ts +0 -17
  430. package/src/constraint-runtime/src/query.ts +0 -7
  431. package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
  432. package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
  433. package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
  434. package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
  435. package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
  436. package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
  437. package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
  438. package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
  439. package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
  440. package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
  441. package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
  442. package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
  443. package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
  444. package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
  445. package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
  446. package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
  447. package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
  448. package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
  449. package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
  450. package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
  451. package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
  452. package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
  453. package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
  454. package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
  455. package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
  456. package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
  457. package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
  458. package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
  459. package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
  460. package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
  461. package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
  462. package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
  463. package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
  464. package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
  465. package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
  466. package/src/constraint-runtime/src/remote/index.ts +0 -15
  467. package/src/constraint-runtime/src/remote_runtime.ts +0 -17
  468. package/src/constraint-runtime/src/runtime/index.ts +0 -1
  469. package/src/constraint-runtime/src/runtime/session.ts +0 -42
  470. package/src/constraint-runtime/src/schemas/index.ts +0 -15
  471. package/src/constraint-runtime/src/screens/index.ts +0 -15
  472. package/src/constraint-runtime/src/server/index.ts +0 -15
  473. package/src/constraint-runtime/src/services/index.ts +0 -15
  474. package/src/constraint-runtime/src/session_store.ts +0 -32
  475. package/src/constraint-runtime/src/setup.ts +0 -50
  476. package/src/constraint-runtime/src/skills/index.ts +0 -1
  477. package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
  478. package/src/constraint-runtime/src/state/index.ts +0 -15
  479. package/src/constraint-runtime/src/system_init.ts +0 -21
  480. package/src/constraint-runtime/src/thinking/engine.ts +0 -61
  481. package/src/constraint-runtime/src/thinking/index.ts +0 -1
  482. package/src/constraint-runtime/src/tool_pool.ts +0 -20
  483. package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
  484. package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
  485. package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
  486. package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
  487. package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
  488. package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
  489. package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
  490. package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
  491. package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
  492. package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
  493. package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
  494. package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
  495. package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
  496. package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
  497. package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
  498. package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
  499. package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
  500. package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
  501. package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
  502. package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
  503. package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
  504. package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
  505. package/src/constraint-runtime/src/tools.ts +0 -100
  506. package/src/constraint-runtime/src/transcript.ts +0 -23
  507. package/src/constraint-runtime/src/types/index.ts +0 -15
  508. package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
  509. package/src/constraint-runtime/src/utils/index.ts +0 -15
  510. package/src/constraint-runtime/src/vim/index.ts +0 -15
  511. package/src/constraint-runtime/src/voice/index.ts +0 -15
  512. package/src/constraint-runtime/tests/agent.test.ts +0 -20
  513. package/src/constraint-runtime/tests/constraint.test.ts +0 -47
  514. package/src/constraint-runtime/tests/skill.test.ts +0 -23
  515. package/src/constraint-runtime/tests/thinking.test.ts +0 -28
  516. package/src/constraint-runtime/tsconfig.json +0 -13
  517. package/src/pi-ecosystem/index.ts +0 -453
  518. package/src/pi-ecosystem-colony/index.ts +0 -482
  519. package/src/pi-ecosystem-goals/index.ts +0 -585
  520. package/src/pi-ecosystem-judgment/decision.ts +0 -431
  521. package/src/pi-ecosystem-judgment/distillation.ts +0 -398
  522. package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
  523. package/src/pi-ecosystem-judgment/index.ts +0 -678
  524. package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
  525. package/src/pi-ecosystem-mcp/index.ts +0 -427
  526. package/src/pi-ecosystem-subagents/index.ts +0 -408
  527. package/src/test/ai-judgment-test.ts +0 -92
  528. package/src/test/bollharness-integration.test.ts +0 -398
  529. package/src/test/channel-agent-multi-dialogue.ts +0 -265
  530. package/src/test/channel-heartbeat-agent-test.ts +0 -244
  531. package/src/test/constraint-layer.test.ts +0 -191
  532. package/src/test/diap-identity-test.ts +0 -222
  533. package/src/test/diap-quick-test.ts +0 -73
  534. package/src/test/global-shared-context.test.ts +0 -393
  535. package/src/test/harness-judgment-injection.test.ts +0 -353
  536. package/src/test/harness-workflow-integrator-test.ts +0 -285
  537. package/src/test/human-value-store.test.ts +0 -316
  538. package/src/test/hybrid-integration-test.ts +0 -126
  539. package/src/test/hybrid-messenger-verify.ts +0 -68
  540. package/src/test/iroh-bistream-debug.ts +0 -50
  541. package/src/test/iroh-communication.test.ts +0 -81
  542. package/src/test/iroh-debug-test.ts +0 -69
  543. package/src/test/iroh-diap-test.ts +0 -90
  544. package/src/test/iroh-direct-connect.ts +0 -65
  545. package/src/test/iroh-e2e-fixed.ts +0 -106
  546. package/src/test/iroh-e2e-same-process.ts +0 -83
  547. package/src/test/iroh-e2e.ts +0 -83
  548. package/src/test/iroh-final-e2e.ts +0 -84
  549. package/src/test/iroh-relay-test.ts +0 -46
  550. package/src/test/iroh-simple-test.ts +0 -49
  551. package/src/test/iroh-transport-verify.ts +0 -60
  552. package/src/test/iroh-transport.test.ts +0 -47
  553. package/src/test/iroh-two-nodes.ts +0 -87
  554. package/src/test/iroh-verify.ts +0 -55
  555. package/src/test/judgment-decision.test.ts +0 -373
  556. package/src/test/llm-judgment-integration.test.ts +0 -257
  557. package/src/test/p2p-agent-complex-dialogue.ts +0 -490
  558. package/src/test/p2p-agent-dialogue.ts +0 -423
  559. package/src/test/p2p-agent-full-bidirectional.ts +0 -686
  560. package/src/test/p2p-agent-harness-flow.ts +0 -562
  561. package/src/test/p2p-agent-harness-single.ts +0 -175
  562. package/src/test/p2p-ai-dialogue-test.ts +0 -374
  563. package/src/test/p2p-cid-connect-test.ts +0 -245
  564. package/src/test/p2p-connect-receiver.ts +0 -85
  565. package/src/test/p2p-iroh-test.ts +0 -214
  566. package/src/test/p2p-minimal-test.ts +0 -264
  567. package/src/test/p2p-node-1.ts +0 -172
  568. package/src/test/p2p-node-2.ts +0 -172
  569. package/src/test/p2p-server.ts +0 -335
  570. package/src/test/p2p-two-nodes-test.ts +0 -542
  571. package/src/test/pi-sdk.test.ts +0 -47
  572. package/src/test/set-persona.ts +0 -56
  573. package/src/test/simple.test.ts +0 -11
  574. package/src/test/storage-integration.test.ts +0 -191
  575. package/src/test/subagent-manager.test.ts +0 -392
  576. package/src/test/test-gate-flow.test.ts +0 -92
  577. package/src/test/workflow-engine.test.ts +0 -101
  578. package/src/workflows/collaboration.ts +0 -455
  579. package/src/workflows/index.ts +0 -64
  580. package/vitest.config.ts +0 -12
  581. package//346/203/263/346/263/225.md +0 -79
@@ -1,99 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://bollharness.local/.boll/inbox/schema/message-v1.json",
4
- "title": "bollharness inbox message v1",
5
- "description": "ADR-H9 §4 sealed message-v1 schema. 任何 .boll/inbox/**/*.md 写入由 inbox-validate.ts 用本 schema 校验 yaml frontmatter;不合规 mv 到 .boll/inbox/quarantine/。Schema frozen,新增字段走 ADR-H9.x v1→v2 migration(§9 不向后兼容)。",
6
- "type": "object",
7
- "additionalProperties": false,
8
- "required": ["sender", "sender_pid", "ts", "msg_id", "kind", "priority", "related_h"],
9
- "properties": {
10
- "sender": {
11
- "description": "发送窗口;子→主走 window-Hx;主→子 ack 时填 main,路径仍写到 window-Hx/acks/",
12
- "type": "string",
13
- "enum": ["main", "window-h0", "window-h1", "window-h2", "window-h3", "window-h4", "window-h5", "window-h6", "window-h8", "window-h9"]
14
- },
15
- "sender_pid": {
16
- "description": "发送窗口 CC pid(防伪 / race 排查)",
17
- "type": "integer",
18
- "minimum": 1
19
- },
20
- "ts": {
21
- "description": "ISO-8601 + 时区,例 2026-04-28T14:30:00+08:00",
22
- "type": "string",
23
- "format": "date-time"
24
- },
25
- "ts_unix": {
26
- "description": "可选 unix 时间戳(秒);inject-on-start / poll / mtime delta 计算便利字段(PLAN-H9 §4.8 WP-08 DoD 机器证据)",
27
- "type": "number",
28
- "minimum": 0
29
- },
30
- "msg_id": {
31
- "description": "幂等 ID,格式 <sender-prefix>-YYYYMMDD-HHMMSS-<rand 3-12 字符>;sender-prefix = main 或 h0..h9",
32
- "type": "string",
33
- "pattern": "^(main|h[0-9])-[0-9]{8}-[0-9]{6}-[a-z0-9]{3,12}$"
34
- },
35
- "kind": {
36
- "description": "progress=进度 / block=阻塞需主窗口介入 / done=完工 / question=待解答 / ack=回执",
37
- "type": "string",
38
- "enum": ["progress", "block", "done", "question", "ack"]
39
- },
40
- "priority": {
41
- "description": "P0=立刻 wake 主窗口 / P1=正常队列 / P2=可延后",
42
- "type": "string",
43
- "enum": ["P0", "P1", "P2"]
44
- },
45
- "related_h": {
46
- "description": "harness 拓扑 H 编号;H7 已撤销不允许(参 ADR-H9 §3 注释 + symptoms.md §4.3)",
47
- "type": "string",
48
- "enum": ["H0", "H1", "H2", "H3", "H4", "H5", "H6", "H8", "H9"]
49
- },
50
- "related_wp": {
51
- "description": "可选;格式 WP-Hx-NN 例 WP-H9-01",
52
- "type": "string",
53
- "pattern": "^WP-H[0-9]-[0-9]{2}$"
54
- },
55
- "ack_required": {
56
- "description": "是否要求主窗口回执;默认 false。priority=P0 强制 true(schema if/then 拒收 P0+false 组合);kind=ack 永远 false",
57
- "type": "boolean",
58
- "default": false
59
- },
60
- "ack_for": {
61
- "description": "kind=ack 时必填,引用被 ack 的消息 msg_id",
62
- "type": "string",
63
- "pattern": "^(main|h[0-9])-[0-9]{8}-[0-9]{6}-[a-z0-9]{3,12}$"
64
- },
65
- "proposal_ref": {
66
- "description": "可选;引用 .boll/proposals/* 路径(ADR-H9 §4 双写规则:message body 不复制 proposal 内容,只引用路径)",
67
- "type": "string",
68
- "pattern": "^\\.boll/proposals/[A-Za-z0-9._/-]+\\.md$"
69
- }
70
- },
71
- "allOf": [
72
- {
73
- "description": "kind=ack 强制 ack_for 必填且 ack_required=false(ack 不再 ack,防递归回环)",
74
- "if": {
75
- "properties": {"kind": {"const": "ack"}},
76
- "required": ["kind"]
77
- },
78
- "then": {
79
- "required": ["ack_for"],
80
- "properties": {
81
- "ack_required": {"const": false}
82
- }
83
- }
84
- },
85
- {
86
- "description": "priority=P0 强制 ack_required=true(防 P0 静默丢失)",
87
- "if": {
88
- "properties": {"priority": {"const": "P0"}},
89
- "required": ["priority"]
90
- },
91
- "then": {
92
- "required": ["ack_required"],
93
- "properties": {
94
- "ack_required": {"const": true}
95
- }
96
- }
97
- }
98
- ]
99
- }
File without changes
@@ -1,31 +0,0 @@
1
- # issue-adapter.yaml — project-level config for scripts/guard-feedback.ts
2
- #
3
- # Default state: disabled. Turn on by setting enabled: true and declaring
4
- # at least one route or guard. Leaving this file as-is = pure noop (the
5
- # hook reads, sees enabled: false, exits 0 silently).
6
- #
7
- # See scripts/guard-feedback.ts module docstring for full schema.
8
-
9
- enabled: false
10
-
11
- # When enabled, point fragments_dir to where your context fragments live.
12
- # Each fragment is a markdown file that gets injected into Claude's context
13
- # when the matching file is edited.
14
- fragments_dir: scripts/fragments
15
-
16
- # routes: file-glob → fragment-name pairs
17
- # Example:
18
- # routes:
19
- # - pattern: "backend/**/*.ts"
20
- # fragment: "backend-conventions.md"
21
- routes: []
22
-
23
- # guards: file-glob → script pairs. Scripts exit non-zero on failure.
24
- # Example:
25
- # guards:
26
- # - path_pattern: "backend/**"
27
- # script: scripts/checks/check_api_types.ts
28
- guards: []
29
-
30
- # Where to append JSONL metric events. Can be relative to project root or absolute.
31
- metrics_file: .boll/state/metrics/guard-events.jsonl
@@ -1,85 +0,0 @@
1
- # boll vNext Mode Contract
2
-
3
- > Companion to `../03-design.md` §7. Addresses Phase 1 §6.3 (mode collapse — brainstorm / build / verify / release not first-class). Grounded in Phase 2 §1.1 (CC Plan Mode), §3.2 (Cursor checkpoints), §3.7 synthesis ("mode is runtime state, not prose").
4
-
5
- The mode is **the** runtime state variable. It lives at `.boll/state/mode` as a single word. Every hook, every capability check, and every review binding reads that file to decide what is allowed.
6
-
7
- ## Four modes
8
-
9
- | Mode | Purpose | Tool profile | Allowed transitions |
10
- |---|---|---|---|
11
- | `plan` | brainstorm, explore, write a plan, ask clarifying questions | read-only: Read, Glob, Grep, Bash(git log:\*), WebFetch, WebSearch, AskUserQuestion | → build |
12
- | `build` | make code changes against an approved plan | Read + Write + Edit + Bash(scoped) | → verify, ← plan |
13
- | `verify` | run tests, inspect diffs, accumulate evidence, no new edits | Read + Bash(test:\*) + Bash(git diff:\*) | → release, ← build |
14
- | `release` | commit / push / deploy / retire assets | Write + Bash(git commit:\*) + Bash(git push:\*) + Bash(deploy:\*) | → plan (new run) |
15
-
16
- Mode is set by: (1) explicit user command (`/mode build`), (2) plan-approval gate (plan → build), (3) verify-gate pass (verify → release), or (4) auto-reset to `plan` after release. **No prompt text ever sets mode.**
17
-
18
- ## Default value when absent
19
-
20
- If `.boll/state/mode` does not exist when the router reads it, the router treats the mode as `legacy` (pass-through) and lazily creates the file with content `legacy`. The default is enforced at read time; no runtime state file is ever committed.
21
-
22
- ## Per-mode capability profile
23
-
24
- Each mode maps to a tool allowlist and a review binding. `capability-router.ts` (see `../hooks/capability-router.ts`) reads `.boll/state/mode` on every `PreToolUse` and denies tool calls that do not fit the current mode's profile.
25
-
26
- ### `plan`
27
-
28
- - **Permits:** Read, Glob, Grep, WebFetch, WebSearch, AskUserQuestion, Bash(git log:\*), Bash(git status), Bash(git diff:\*)
29
- - **Denies:** Edit, Write, Bash(git commit:\*), Bash(git push:\*), Bash(rm:\*), Bash(deploy:\*), Edit-like MCP tools, SendMessage to execution agents
30
- - **Emits:** on transition out of plan, one evidence packet (`kind: gate`) with the plan file's sha256 and the human approver's id
31
- - **Typical duration:** minutes to hours
32
- - **Compact behavior:** tiny kernel reload; plan file itself is the resume pointer
33
-
34
- ### `build`
35
-
36
- - **Permits:** plan's permissions + Edit, Write, Bash(npx jest:\*), Bash(npm test:\*), Bash(cargo check:\*), subagent spawn (executor)
37
- - **Denies:** Bash(git push:\*), Bash(git commit:\*) (commits happen at release), Bash(deploy:\*), Bash(rm:\*) unless path in `/tmp/`, SendMessage outside run
38
- - **Emits:** per-edit step evidence (`kind: step`); at transition to verify, one gate packet
39
- - **Typical duration:** hours
40
- - **Compact behavior:** kernel + pointer to current run.json; evidence files are the durable state
41
-
42
- ### `verify`
43
-
44
- - **Permits:** Read, Glob, Grep, Bash(git diff:\*), Bash(test:\*), reviewer subagent spawn
45
- - **Denies:** Edit, Write, Bash(git commit:\*), Bash(git push:\*), Bash(deploy:\*)
46
- - **Emits:** one `merge_ready` packet at transition to release
47
- - **Typical duration:** minutes
48
- - **Compact behavior:** verify should not outlast a single compact window; if it does, the verify run aborts and re-starts from the last gate packet
49
-
50
- ### `release`
51
-
52
- - **Permits:** Bash(git commit:\*), Bash(git push:\*), Bash(deploy:\*), asset retirement via `/retire` command
53
- - **Denies:** Edit (code changes) — if a change is needed, mode must return to `build`
54
- - **Emits:** release-level evidence packet with commit sha and (if applicable) deploy id
55
- - **Typical duration:** minutes
56
- - **Compact behavior:** out of scope; release does not survive compact — it either completes or aborts
57
-
58
- ## Transition gates
59
-
60
- | From | To | Gate |
61
- |---|---|---|
62
- | plan | build | human approval of plan file (design-review binding in `review-contract.yaml`) |
63
- | build | verify | gate packet exists and passes `verify-gate.ts` schema check |
64
- | verify | release | `merge_ready` packet exists, CI green, all UNKNOWNs resolved or explicitly deferred |
65
- | release | plan | automatic on release success; new run.json is created |
66
- | any | plan | allowed (abort current run — produces an abort packet with reason) |
67
-
68
- ## What mode is **not**
69
-
70
- - Mode is not a prompt string. CLAUDE.md-vnext does not describe modes — it points the model at `.boll/state/mode` and the router hook does the rest.
71
- - Mode is not a skill. `lead` skill's 0–8 gate state machine (Phase 1 §3.4) is an example of mode-as-prose; it is **retired** (see `../03-design.md` §12 matrix).
72
- - Mode is not per-subagent. Subagents inherit the parent run's mode; a subagent cannot self-elevate.
73
- - Mode is not per-team. Parallel runs each have their own `.boll/state/<run-id>/mode` file.
74
-
75
- ## Multi-task parallelism under the mode model
76
-
77
- The brief requires parallel-multitask support. The mode contract supports parallelism with one rule:
78
-
79
- > **Parallel runs share nothing except the repo.** Each parallel run gets a unique run_id, its own `.boll/state/<run-id>/mode`, its own evidence tree, and its own subagent context. Mode is per-run, not global.
80
-
81
- Two builds can run simultaneously on disjoint file paths. If they intersect, the second run's `PreToolUse` on a conflicting path is denied by `capability-router.ts` reading a file-lock table at `.boll/state/locks.json`. No prompt-level "don't step on each other" rule.
82
-
83
- ## What the human sees
84
-
85
- The mode name is rendered in the session status line by a SessionStart hook. Nothing else needs to remind the model — the router and the verify-gate do.
@@ -1,102 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://bollharness.local/schemas/evidence-packet-v1.json",
4
- "title": "boll vNext Evidence Packet",
5
- "description": "Canonical shape of a completion / verification evidence packet. Every evidence file under .boll/evidence/<run-id>/ MUST validate against this schema. Referenced by ../hooks/verify-gate.ts. Addresses Phase 1 §2.7 / §3.1 / open-question A.7 (no explicit completion-evidence artifact existed). Grounded in Phase 2 §4.4 (PRM) and §3.8 (closure = commit + packet).",
6
- "type": "object",
7
- "required": ["packet_id", "run_id", "step_id", "mode", "kind", "created_at", "author", "claims", "evidence", "digest"],
8
- "additionalProperties": false,
9
- "properties": {
10
- "packet_id": {
11
- "type": "string",
12
- "pattern": "^[0-9a-f]{64}$",
13
- "description": "sha256 of the canonical-JSON serialization of this packet with digest omitted."
14
- },
15
- "run_id": {
16
- "type": "string",
17
- "pattern": "^[0-9a-zA-Z_-]{8,64}$"
18
- },
19
- "step_id": {
20
- "type": "string",
21
- "description": "Stable per-step identifier: step number or sub-task id. For run-level packets (MERGE_READY), use 'FINAL'."
22
- },
23
- "mode": {
24
- "type": "string",
25
- "enum": ["plan", "build", "verify", "release"]
26
- },
27
- "kind": {
28
- "type": "string",
29
- "enum": ["step", "gate", "merge_ready", "retire"],
30
- "description": "step = per-edit evidence; gate = mode-transition gate; merge_ready = run-level completion; retire = asset retirement packet."
31
- },
32
- "created_at": {
33
- "type": "string",
34
- "format": "date-time"
35
- },
36
- "author": {
37
- "type": "object",
38
- "required": ["kind", "id"],
39
- "properties": {
40
- "kind": {"enum": ["model", "hook", "human"]},
41
- "id": {"type": "string", "description": "model name, hook script path, or human user id"}
42
- }
43
- },
44
- "claims": {
45
- "type": "array",
46
- "minItems": 1,
47
- "description": "What the author says was accomplished. Plain strings.",
48
- "items": {"type": "string", "minLength": 4, "maxLength": 240}
49
- },
50
- "evidence": {
51
- "type": "array",
52
- "minItems": 1,
53
- "description": "Concrete substantiation per claim. Every claim must have ≥1 matching evidence entry.",
54
- "items": {
55
- "type": "object",
56
- "required": ["claim_index", "type", "ref"],
57
- "additionalProperties": false,
58
- "properties": {
59
- "claim_index": {"type": "integer", "minimum": 0},
60
- "type": {
61
- "type": "string",
62
- "enum": ["commit_sha", "test_result", "file_hash", "command_output", "external_link", "human_attestation"]
63
- },
64
- "ref": {"type": "string", "description": "commit sha / test name / file path / url / attestation id"},
65
- "summary": {"type": "string", "maxLength": 240},
66
- "pass": {"type": "boolean", "description": "only for test_result / command_output"}
67
- }
68
- }
69
- },
70
- "blockers": {
71
- "type": "array",
72
- "description": "Known issues that should block closure at the current mode. Empty = no blockers declared.",
73
- "items": {
74
- "type": "object",
75
- "required": ["severity", "note"],
76
- "properties": {
77
- "severity": {"enum": ["info", "warn", "block"]},
78
- "note": {"type": "string", "minLength": 4, "maxLength": 480},
79
- "owner": {"type": "string"}
80
- }
81
- }
82
- },
83
- "unknowns": {
84
- "type": "array",
85
- "description": "Explicit UNKNOWNs the author cannot resolve. Surfacing them here is required — silent omission is a verify-gate fail (Phase 1 §6.1 affordance failure).",
86
- "items": {"type": "string", "minLength": 4, "maxLength": 480}
87
- },
88
- "predecessors": {
89
- "type": "array",
90
- "description": "packet_ids this packet builds on (forms the run's evidence DAG).",
91
- "items": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
92
- },
93
- "digest": {
94
- "type": "object",
95
- "required": ["algorithm", "value"],
96
- "properties": {
97
- "algorithm": {"const": "sha256"},
98
- "value": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
99
- }
100
- }
101
- }
102
- }
@@ -1,247 +0,0 @@
1
- # boll vNext Review Contract
2
- # Companion to ../03-design.md §8. Addresses Phase 1 §6.2 (capability-delivery contradiction),
3
- # §3.3 (review-agent-gatekeeper matcher-miss), §3.1 (review-agent-isolation.md).
4
- # Grounded in Phase 2 §3.8 (closure = commit + packet), §2.1 (Codex review-pane pattern).
5
- #
6
- # A review-contract binding declares WHAT a review does. Each review mode is one of:
7
- # pane — reviewer is a diff pane + evidence packet produced by a tool (no agent spawn)
8
- # subagent — reviewer is a read-only subagent with strict tool whitelist
9
- # human — human is the reviewer; harness packages the evidence
10
- #
11
- # The single source of truth. No review happens outside a binding that parses as this schema.
12
- #
13
- # Evidence packet schema reference: `./evidence-packet-schema.json` (plugin-relative;
14
- # co-located in this plugin's contracts/ directory per WP-037 packaging).
15
- # Every `outputs.evidence_packet` below must conform to that schema; verify-gate.ts
16
- # (WP-024) validates producer- and consumer-side agreement.
17
- #
18
- # Per-binding `active` field: true = binding is live; false = binding is present
19
- # but inert (parses, references the schema, but triggers no gate yet). WP-022
20
- # activates only `design-review` and `retirement-review` (the two human-gated
21
- # bindings); `default-build-review` and `merge-ready-review` ship as inactive
22
- # placeholders, activated later by WP-026 and WP-027 respectively.
23
-
24
- schema_version: 1
25
- evidence_packet_schema_ref: ./evidence-packet-schema.json
26
-
27
- # ── ADR-H5 §3 INV-H5-1: line_caps schema 化 ──
28
- # 把散落在 ADR-H0/H1/H3/H4 共 4 处的行数硬限收口为顶层字段。各 cap 数值由
29
- # source_adr 决定(H5 仅做收口聚合 + ref 指针,不重新定义数值)。
30
- # 红线(INV-H5-1):增加新 cap 项必须在原始 ADR 中先有"≤N 行"明文规定。
31
- line_caps:
32
- - id: adr-h-series
33
- glob: "docs/decisions/ADR-H*.md"
34
- max_lines: 300
35
- source_adr: "ADR-H0 §H0.2"
36
- - id: plan-h-series
37
- glob: "docs/decisions/PLAN-H*.md"
38
- max_lines: 500
39
- source_adr: "ADR-H0 §H0.2"
40
- - id: lead-skill-h-segment
41
- glob: ".boll/skills/lead/SKILL.md"
42
- max_lines: 220
43
- source_adr: "ADR-H1 受管资产 + ADR-H4 INV-H4-1"
44
- - id: memory-master-index
45
- glob: "~/.boll/projects/-Users-nature------boll/memory/MEMORY.md"
46
- max_lines: 200
47
- source_adr: "ADR-H3 INV-H3-2 v1.1"
48
-
49
- # ── ADR-H5 §5 inflation 规则(3 条)──
50
- # 把 ADR-H0 §H0.2 行数限额 + H0.3 执检分离 + H0.4 自指禁止
51
- # 升级到 schema-level 字段(CC 直接读,不再 prompt-level 70%)。
52
- inflation:
53
- no_grow_now_clean_later: true # 规则 1: 不接受"merge 后下个 PR 拆"理由
54
- drafter_reviewer_must_differ_session: true # 规则 2: 起草人 ≠ reviewer 同 session
55
- h0_self_check_segment_required: true # 规则 3: 任何 ADR-Hx 必含 §H0 自检段
56
-
57
- # ── ADR-H6 §3 INV-H6-1: state 清单 schema 化 ──
58
- # 把 .boll/state + .boll/proposals + .boll/guard + .boll/log + .boll/inbox + .boll/evidence
59
- # 等 state 资产收口为顶层清单。kind: dynamic / archived / append-only / managed-by-other-h
60
- # 红线(INV-H6-1):新增 state 资产路径必须先在原始 ADR 中宣告归属 owner。
61
- state_inventory:
62
- - id: state-mode
63
- path: ".boll/state/mode"
64
- kind: dynamic
65
- owner: boll-mode-toolkit
66
- - id: state-run
67
- path: ".boll/state/run.json"
68
- kind: dynamic
69
- owner: boll-mode-toolkit
70
- - id: state-locks
71
- path: ".boll/state/locks.json"
72
- kind: dynamic
73
- owner: boll-mode-toolkit
74
- - id: state-completion-proposal
75
- path: ".boll/state/completion-proposal.json"
76
- kind: dynamic
77
- owner: boll-review-toolkit
78
- - id: state-risk-snapshot
79
- path: ".boll/state/risk-snapshot.json"
80
- kind: dynamic
81
- owner: risk-tracker
82
- - id: state-round-verdicts
83
- path: ".boll/state/round{1-5}-verdicts/"
84
- kind: archived
85
- owner: harness-review-history
86
- - id: state-archived-dir
87
- path: ".boll/state/_archived/"
88
- kind: archived
89
- owner: ADR-H6
90
- - id: proposals-self-evolution
91
- path: ".boll/proposals/"
92
- kind: append-only
93
- owner: vNext-self-evolution
94
- note: "265 文件; 只增不删"
95
- - id: guard-loop-counter
96
- path: ".boll/guard/"
97
- kind: append-only
98
- owner: harness-guard
99
- note: "11321 文件; 活工具态非污染(H 系列调研 #4 认知修正)"
100
- - id: log-self-symptoms
101
- path: ".boll/log/harness-self-symptoms.md"
102
- kind: append-only
103
- owner: H 系列
104
- - id: log-hook-ledger
105
- path: ".boll/log/hook/"
106
- kind: append-only
107
- owner: 各 hook
108
- - id: inbox-mailbox
109
- path: ".boll/inbox/"
110
- kind: managed-by-other-h
111
- owner: ADR-H9
112
- note: "main/quarantine/schema/window-h{0-6,8,9}"
113
- - id: evidence-packets
114
- path: ".boll/evidence/"
115
- kind: managed-by-other-h
116
- owner: 各 PLAN
117
-
118
- # ── ADR-H6 §3 INV-H6-2: state 健康度指标 schema 化 ──
119
- # 红线(INV-H6-2):每条指标必须给出可执行 check 命令;不接受"靠人脑感知"。
120
- state_health_indicators:
121
- - id: schema-validity
122
- desc: "dynamic JSON 文件 JSON parse 通过 + 必填字段非空"
123
- check: "npx ts-node -e 'import * as json from \"json\"; [json.parse(require(\"fs\").readFileSync(p,\"utf8\")) for p in [\".boll/state/run.json\", \".boll/state/locks.json\", \".boll/state/completion-proposal.json\", \".boll/state/risk-snapshot.json\"]]'"
124
- - id: top-level-no-noise
125
- desc: ".boll/state/ 顶层无 .DS_Store / 未归档 archived 文件 / 临时文件"
126
- check: "ls .boll/state/.DS_Store .boll/state/*archived*.json 2>/dev/null | wc -l"
127
- expect: 0
128
- - id: inbox-unread-volume
129
- desc: ".boll/inbox/main/unread/ ≤50 文件(H9 ADR 红线复用)"
130
- check: "ls .boll/inbox/main/unread/ 2>/dev/null | wc -l"
131
- expect_max: 50
132
-
133
- bindings:
134
-
135
- - id: default-build-review
136
- active: true # WP-026 activation — default build closures require pane packet
137
- applies_when:
138
- mode: build
139
- task_kind: code_change
140
- reviewer:
141
- type: pane
142
- produces: evidence-packet:kind=gate
143
- inputs:
144
- - diff: git_diff_against_main
145
- - tests: required_tests_for_changed_files
146
- - packet: previous_step_evidence
147
- outputs:
148
- - evidence_packet:
149
- mode: build
150
- kind: gate
151
- claims:
152
- - "diff is small enough to review (< 400 lines changed or ≥ 1 reviewer attestation)"
153
- - "all changed files have at least one test that exercises the change OR a blocker entry"
154
- - blockers_surface: top_level
155
- gating:
156
- blocks_mode_transition_to: verify
157
- bypass_requires: human_attestation
158
-
159
- - id: merge-ready-review
160
- active: true # WP-027 activation — merge-ready gating + reviewer subagent installed
161
- applies_when:
162
- mode: verify
163
- transition_target: release
164
- reviewer:
165
- type: subagent
166
- subagent_ref: reviewer # see ../prompts/agent-reviewer.md
167
- tools_whitelist: # CC frontmatter `tools:` list; enforced at capability layer
168
- - Read
169
- - Glob
170
- - Grep
171
- - Bash(git log:*)
172
- - Bash(git diff:*)
173
- - Bash(npx jest --collect-only:*)
174
- forbidden_tools: [Edit, Write, Bash(rm:*), Bash(git push:*), SendMessage]
175
- # Phase 1 open-question C.2: if delivery requires SendMessage, the runtime
176
- # MUST re-spawn via a separate delivery tool; reviewer itself stays pure.
177
- # ── ADR-H5 §3 INV-H5-2: 执检分离 binding 化 ──
178
- # 把 ADR-H0 §H0.3 从 ad-hoc prompt 升级到 schema 字段。reviewer subagent 必须
179
- # 来自白名单;verdict 文件路径必须匹配 evidence_path_pattern。
180
- drafter_reviewer_separation:
181
- required: true
182
- rationale: "ADR-H0 §H0.3 执检分离 + ADR-038 D11.2"
183
- evidence_path_pattern: "docs/decisions/tasks/PLAN-{plan}/WP-05/reviewer-verdict-*.md"
184
- reviewer_subagent_whitelist:
185
- - "pr-review-toolkit:code-reviewer"
186
- - "boll-review-toolkit:reviewer"
187
- inputs:
188
- - all_step_packets: true
189
- - all_gate_packets: true
190
- - aggregate_diff: true
191
- outputs:
192
- - evidence_packet:
193
- mode: verify
194
- kind: merge_ready
195
- must_include_unknowns: true # Phase 1 §6.1 anti-affordance: hiding unknowns fails gate
196
- gating:
197
- blocks_mode_transition_to: release
198
- requires_all:
199
- - every_unknown_in_earlier_packets_resolved_or_explicitly_deferred
200
- - no_blocker_of_severity_block
201
- - aggregate_diff_ci_green
202
- bypass_requires: human_attestation_with_reason_string
203
-
204
- - id: design-review
205
- active: true # WP-022 activation — human-gated, low-traffic
206
- applies_when:
207
- mode: plan
208
- transition_target: build
209
- reviewer:
210
- type: human
211
- inputs:
212
- - plan_file_ref: true
213
- - reasoning_trace: optional
214
- outputs:
215
- - evidence_packet:
216
- mode: plan
217
- kind: gate
218
- gating:
219
- blocks_mode_transition_to: build
220
- bypass_requires: never # plan → build is always human-gated
221
-
222
- - id: retirement-review
223
- active: true # WP-022 activation — human-gated, rare, high-blast-radius
224
- applies_when:
225
- operation: retire_asset
226
- reviewer:
227
- type: pane
228
- produces: evidence-packet:kind=retire
229
- inputs:
230
- - asset_path: required
231
- - usage_stats: last_90_days
232
- - replaced_by: required_or_explicit_null
233
- outputs:
234
- - evidence_packet:
235
- mode: release
236
- kind: retire
237
- claims:
238
- - "asset was used fewer than N times in last 90 days OR replaced_by is non-null"
239
- - "retire target is .boll/retired/<date>/ (not deleted)"
240
- gating:
241
- requires: human_attestation
242
-
243
- # Explicit non-bindings — work that is NOT a review:
244
- non_reviews:
245
- - user_asks_claude_a_question # Phase 1 §6.3 mode collapse — chat ≠ review
246
- - brainstorm # plan mode does not auto-trigger review
247
- - read_only_exploration # no review until a change is proposed
@@ -1,31 +0,0 @@
1
- ---
2
- paths:
3
- - "backend/**"
4
- - "server/**"
5
- - "api/**"
6
- ---
7
-
8
- # {{PROJECT_NAME}} Backend Routes (Template)
9
-
10
- > 这是一个 domain-specific 的路由索引 rule 模板。bollharness fork 时保留骨架,业务内容由 {{PROJECT_NAME}} 安装后填充。
11
-
12
- ## 如何使用
13
-
14
- 1. 安装 bollharness 后, 把 `{{PROJECT_NAME}}` 替换成你的项目名
15
- 2. 把下表的示例行替换为你项目的真实路由
16
- 3. `.boll/rules/backend-routes.md` 的作用是让 agent 在读 `backend/**` 文件时自动加载此索引, 避免 agent 凭记忆猜路由
17
-
18
- ## 路由索引
19
-
20
- | 方法 | 路径 | 模块 | 说明 |
21
- |------|------|------|------|
22
- | GET | `/api/{{DOMAIN}}/health` | {{DOMAIN}}/health.ts | 健康检查 |
23
- | POST | `/api/{{DOMAIN}}/{{RESOURCE}}` | {{DOMAIN}}/routes.ts | 创建资源示例 |
24
-
25
- ## 真相源声明
26
-
27
- 本文件**不是**路由的真相源。真相源永远是实际的 FastAPI / Flask / Express router 代码。这份 rule 只是让 agent 有个检索起点。如果 rule 和代码冲突, 以代码为准, 并提醒修本文件。
28
-
29
- ## 生成建议
30
-
31
- 如果项目规模较大, 推荐用脚本自动生成这份 rule(例如 `npx ts-node scripts/gen_routes_rule.ts > .boll/rules/backend-routes.md`)而不是人工维护。
@@ -1,30 +0,0 @@
1
- ---
2
- paths:
3
- - "docs/issues/**"
4
- - "docs/decisions/ADR-030*"
5
- - "src/scripts/hooks/**"
6
- ---
7
-
8
- # Closure Semantics
9
-
10
- ## Fixed 三层定义
11
-
12
- Issue 标记 "Fixed" 不等于"症状消失"。三个层级:
13
-
14
- | 层级 | 含义 | 标准 | 标记 |
15
- |------|------|------|------|
16
- | Level 1 | 症状消失 | 生产不报错了,但没有分析复发路径 | Runtime Fixed |
17
- | Level 2 | 复发路径关闭 | 修了根因,分析了复发路径,写了 prevention_status | **Fixed** |
18
- | Level 3 | 机制消灭 | Fixed + 有机械化 guard 自动检测防止复发 | Fixed + Guarded |
19
-
20
- ## Issue Doc YAML Frontmatter 规范
21
-
22
- 所有 `docs/issues/` 下的 issue 文档必须包含以下 frontmatter 字段:
23
-
24
- ```yaml
25
- status: fixed|open|wont_fix # 当前状态
26
- prevention_status: open|closed # 复发预防是否闭环
27
- mechanism_layer: guard|test|type|convention # 防护机制层级
28
- ```
29
-
30
- 详见: `docs/decisions/ADR-030-guard-signal-and-governance-reload.md`
@@ -1,32 +0,0 @@
1
- ---
2
- paths:
3
- - "config.ts"
4
- - "settings.ts"
5
- - ".env*"
6
- - "scripts/deploy*"
7
- ---
8
-
9
- # {{PROJECT_NAME}} 环境变量清单 (Template)
10
-
11
- > 这是一个环境变量索引 rule 模板。bollharness fork 时保留骨架,{{PROJECT_NAME}} 自己填充具体变量。
12
-
13
- ## 如何使用
14
-
15
- 1. 把 `{{PROJECT_NAME}}` 替换成你的项目名
16
- 2. 下表每一项必须如实填写**用途 + 必需性 + 默认值**
17
- 3. **禁止**在这份文件里写任何真实 secret 值——这份文件会被提交到 repo
18
-
19
- ## 变量表
20
-
21
- | 变量 | 必需 | 默认 | 用途 |
22
- |------|------|------|------|
23
- | `{{PROJECT_NAME_UPPER}}_ENV` | 是 | `development` | 运行环境 (`development` / `staging` / `production`) |
24
- | `{{PROJECT_NAME_UPPER}}_PORT` | 否 | `8080` | HTTP 监听端口 |
25
- | `{{PROJECT_NAME_UPPER}}_DB_URL` | 是 | — | 数据库连接串 |
26
- | `{{PROJECT_NAME_UPPER}}_LOG_LEVEL` | 否 | `INFO` | 日志级别 |
27
-
28
- ## Secret 管理
29
-
30
- - 真实 secret 值只能存在于 `.env.local` / CI secret store / 部署 secret manager
31
- - `.env.local` 必须在 `.gitignore` 中
32
- - bollharness `src/scripts/sanitize.ts` 会拦截常见 secret 模式 (`sk-ant-`、`sk-or-`、`.env*` KV 等)