@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,24 +0,0 @@
1
- ---
2
- name: lead
3
- description: 开发流程统领 Skill。
4
- status: active
5
- tier: entry
6
- owner: {{PROJECT_OWNER}}
7
- last_audited: 2026-04-09
8
- ---
9
-
10
- # lead
11
-
12
- 开发流程统领。
13
-
14
- ## 文件索引
15
-
16
- - SKILL.md — 主文件
17
- - INDEX.md — 本索引
18
- - ref-review-sop.md — 审查 SOP
19
- - ref-stages.md — 五阶段定义
20
- - install-wow-harness.md — 安装指引
21
-
22
- ## 状态
23
-
24
- active
@@ -1,77 +0,0 @@
1
- # /lead install bollharness
2
-
3
- ## 一句话
4
-
5
- 在用户的项目里安装 bollharness 开发护栏。一条命令,三种深度,开箱即用。
6
-
7
- ## 使用方式
8
-
9
- ```bash
10
- # 最常见:当前项目,默认 adapt 档
11
- npx ts-node scripts/install/phase2_auto.ts --auto
12
-
13
- # 指定档位
14
- npx ts-node scripts/install/phase2_auto.ts --auto --tier=drop-in
15
- npx ts-node scripts/install/phase2_auto.ts --auto --tier=adapt
16
- npx ts-node scripts/install/phase2_auto.ts --auto --tier=mine --projects=/path/a,/path/b
17
-
18
- # 多项目
19
- npx ts-node scripts/install/phase2_auto.ts --auto --projects=/path/a,/path/b --scope=explicit
20
-
21
- # 验证幂等性
22
- npx ts-node scripts/install/phase2_auto.ts --auto --dry-run
23
- ```
24
-
25
- ## 三档安装光谱(ADR-043 §3.4.4)
26
-
27
- | 档位 | 适合谁 | 读什么 | 做什么 |
28
- |------|--------|--------|--------|
29
- | **drop-in** | "我只要护栏,别碰我代码" | 只读 bundle 自身 | 复制 L0-L5 组件 + 16 条 hook matcher |
30
- | **adapt** ⭐ 默认 | "看懂我项目就行" | README.md + docs/**/*.md (50KB) | drop-in + 按 stack 启/禁 rules |
31
- | **mine** | "完全长进来" | adapt + 点名项目的 transcripts | adapt + crystal-learn 种子提案 |
32
-
33
- **adapt 是默认档。** 绝大多数用户不需要碰这个参数。
34
-
35
- ## 显式点名(ADR-043 §3.4.5)
36
-
37
- 安装器会问你装到哪里:
38
-
39
- 1. 当前目录
40
- 2. 用户级全局(~/.boll/ plugin)
41
- 3. 显式点名几个项目
42
-
43
- **mine + 全局 = 禁止**(隐私灾难,fail-closed)。mine 档必须显式点名。
44
-
45
- ## Gate 8 反思 loop(ADR-043 §3.4.6)
46
-
47
- adapt 和 mine 档安装后,当你完成一个大 plan(lead state machine Gate 8 PASS),harness 会自动在后台启动一个 crystal-learn reflection agent。
48
-
49
- 这不是你需要记得做的事——它绑在 Gate 8 事件上,plan 完成就反思,不完成就不反思。
50
-
51
- 反思产物在 `.boll/proposals/` 目录,下次开 session 时自然能看到。
52
-
53
- ## 安全模型
54
-
55
- - **HMAC trust token**:安装过程用 `BOLLHARNESS_INSTALL_HMAC_KEY` 环境变量签名,30min 滑动窗口 + 6h 绝对上限
56
- - **fail-closed**:key 缺失 / 过短 / 过期 = 自动中止,不降级
57
- - **settings.json 原子追加**:用 json 库,不用 sed(INV-4 防护)
58
- - **幂等**:第二次运行检测到已安装 → 跳过,不重复写
59
-
60
- ## 安装后验证
61
-
62
- ```bash
63
- # 确认 hook 数量
64
- npx ts-node -e "import fs from 'fs'; const s=JSON.parse(fs.readFileSync('.boll/settings.json','utf8')); console.log(Object.values(s.hooks||{}).flat().reduce((a,e)=>a+(e.hooks||[]).length,0))"
65
- # 预期输出: 16
66
-
67
- # 确认 sanitize-on-read 工作
68
- echo '{\"tool_name\":\"Read\",\"tool_input\":{\"file_path\":\"test.txt\"}}' | npx ts-node scripts/hooks/sanitize-on-read.ts
69
- # 预期: {"decision": "approve"}
70
- ```
71
-
72
- ## 这个 skill 不做什么
73
-
74
- - 不碰 lead 的 8-gate 状态机核心逻辑
75
- - 不自动扫描 ~/.boll/projects/ 推断项目(发现 = 未授权)
76
- - 不装 OS-level daemon(没有 launchd/systemd/cron)
77
- - 不在 drop-in 档读任何用户文件
@@ -1,48 +0,0 @@
1
- # lead SKILL.md
2
-
3
- ## 审查闭环 SOP
4
-
5
- ### TeamCreate 使用规范
6
-
7
- **什么时候用 TeamCreate**:
8
- - Gate 2 架构审查
9
- - Gate 4 PLAN 审查 + plan-lock
10
- - Gate 6 task 审查
11
- - Gate 8 最终审查
12
-
13
- **什么时候用 Agent tool**:
14
- - 禁止用 Agent tool 做审查
15
- - Agent tool 是共享上下文,判断不独立
16
-
17
- ### 三视角矩阵
18
-
19
- | 视角 | 关注点 |
20
- |------|--------|
21
- | 商业可行性 | 价值、风险、成本 |
22
- | 技术本质 | 可行性、复杂性、依赖 |
23
- | 用户体验 | 可用性、接受度 |
24
-
25
- ### 裁决格式
26
-
27
- ```
28
- ## Verdict: PASS / FAIL
29
-
30
- ## Scores
31
- - Completeness: X/5
32
- - Honesty: X/5
33
- - Quality: X/5
34
- - Consistency: X/5
35
-
36
- ## Findings
37
- 1. [具体发现]
38
- 2. [具体发现]
39
-
40
- ## Recommendation
41
- [如果 FAIL,具体要修什么]
42
- ```
43
-
44
- ### 生产问题诊断硬规则
45
-
46
- 1. **先看日志/事件/DB**,不先看代码猜测
47
- 2. **先隔离问题范围**,不直接全局搜索
48
- 3. **先验证假设**,不基于假设行动
@@ -1,58 +0,0 @@
1
- # lead SKILL.md
2
-
3
- ## 五阶段定义
4
-
5
- ### 阶段①:问题锁定
6
-
7
- Gate 0 的入口条件:用户提出需求。
8
-
9
- 产出:问题陈述 + Change Classification。
10
-
11
- Change Classification 决定最低门禁:
12
- - policy:边界、身份、权限、场景承诺
13
- - contract:API、schema、事件、配置
14
- - implementation:单模块内部
15
-
16
- ### 阶段②:架构设计
17
-
18
- Gate 1 的入口条件:Gate 0 产物存在。
19
-
20
- 产出:ADR 草稿 + 消费方清单。
21
-
22
- 消费方发现三维度:
23
- - 数据消费方:谁读这个数据
24
- - 行为消费方:谁调用这个接口
25
- - 可见性消费方:谁看到这个输出
26
-
27
- ### 阶段③:方案冻结
28
-
29
- Gate 3 → Gate 4 的入口条件:Gate 2 PASS。
30
-
31
- 产出:PLAN 文档 + 架构覆盖矩阵。
32
-
33
- 冻结条件:
34
- - 所有决策口子已关
35
- - 接口已对齐
36
- - 测试层级已定
37
-
38
- ### 阶段④:任务拆分
39
-
40
- Gate 5 的入口条件:Gate 4 PASS + plan-lock。
41
-
42
- 产出:WP DAG + TASK.md。
43
-
44
- 拆分原则:
45
- - 按 write_set 拆
46
- - 按接缝定 owner
47
- - 每 WP 有独立验收标准
48
-
49
- ### 阶段⑤:执行与验证
50
-
51
- Gate 7 的入口条件:Gate 6 PASS。
52
-
53
- 产出:代码 + LOG.md + TEST.md。
54
-
55
- 执行约束:
56
- - 先开 LOG.md
57
- - 每 WP 有运行时证据
58
- - 验证诚实报告
@@ -1,74 +0,0 @@
1
- ---
2
- name: plan-lock
3
- description: 计划锁定器。把修复计划、实现方案和 WP 规格锻造成 decision-complete 的可执行上游文档:真相先验、决策关死、接口对齐、测试层级一致、时序稳定。在 lead 的 Gate 3 与 Gate 4 之间,以及 task-arch 拆 WP 之前必须使用。
4
- status: active
5
- tier: entry
6
- triggers:
7
- - Gate 4
8
- - PLAN 审查
9
- - WP 前置锁定
10
- outputs:
11
- - decision-complete 冻结结论
12
- - 未锁口子
13
- truth_policy:
14
- - 只基于真实代码和真实计划锁口
15
- - 不复制高变化仓库事实
16
- - 执行者清晰优先于作者省事
17
- ---
18
-
19
- # 计划锁定器
20
-
21
- ## 存在定位
22
-
23
- 我是开发流程里的**计划锁定器**。
24
-
25
- 我不是来写"方向正确的计划"的。我存在,是为了把一份计划锁成**执行者无需再判断**的上游规格。
26
-
27
- ## 张力地图
28
-
29
- ### 核心张力
30
-
31
- 我始终工作在这 4 组拉扯里:
32
-
33
- 1. **速度 vs 锁定**
34
- - 写得快很容易
35
- - 写到执行者不用猜很难
36
- 2. **开放性 vs 收敛性**
37
- - 讨论阶段允许保留可能性
38
- - 执行阶段必须关掉可能性
39
- 3. **局部修复 vs 系统一致**
40
- - 眼前问题想快修
41
- - 但计划一旦错层,后面全线返工
42
- 4. **简洁 vs 完整**
43
- - 文档不能变成规则堆
44
- - 但也不能把关键判断留白
45
-
46
- ### 优先级序
47
-
48
- 当这些张力不可兼得时,按这个顺序裁决:
49
-
50
- 1. **真相优先于流畅**
51
- 2. **锁定优先于灵活**
52
- 3. **层级一致优先于表面覆盖**
53
- 4. **执行者清晰优先于作者省事**
54
- 5. **简洁建立在闭合之上,不建立在省略之上**
55
-
56
- ## Output Contract
57
-
58
- 每次使用我,默认给:
59
-
60
- 1. `decision-complete 冻结结论`
61
- 2. `未锁口子`
62
- 3. `层级错位或时序漂移风险`
63
-
64
- ## 核心功能
65
-
66
- > 在代码开始之前,把讨论中的模糊性、假设和未完成决策全部拦截掉,不让它们流进执行阶段。
67
-
68
- ## 不做什么
69
-
70
- - 不决定这件事值不值得做,那是 `lead / arch`
71
- - 不做架构本质分析,那是 `arch`
72
- - 不拆任务 DAG,那是 `task-arch`
73
- - 不写代码,那是 `harness-dev`
74
- - 不替正式审查员完成独立审查
@@ -1,120 +0,0 @@
1
- ---
2
- name: skill-discovery
3
- description: Skill 发现者。读用户项目的工作历史(transcripts、commit log、issue 记录),识别重复出现的工作模式,提议将其封装为专属 skill,让 harness 能"长出"新的能力,而不是只用预装的。
4
- status: active
5
- tier: meta
6
- triggers:
7
- - 首次安装后的能力审计
8
- - 定期(月度/季度)skill 审计
9
- - 用户觉得"我总在重复做同一类事"
10
- - mine 档安装触发
11
- outputs:
12
- - skill 提案文档(markdown)
13
- - 可选:skill SKILL.md 草稿
14
- truth_policy:
15
- - 只读用户显式授权的项目数据
16
- - transcript 读取遵守 tier_selector 的读取边界
17
- - 提案是建议,不是自动安装——用户确认后才创建 skill
18
- ---
19
-
20
- # Skill 发现者
21
-
22
- ## 存在定位
23
-
24
- 我是 harness 生态中的**能力审计师和 skill 接生者**。
25
-
26
- ## 核心张力
27
-
28
- ### 敏感度 vs 噪音
29
-
30
- - 太敏感:每做两次同样的事就提议建 skill → 用户被提案淹没
31
- - 太迟钝:明显的重复模式视而不见 → 用户永远在重复劳动
32
-
33
- **校准锚点**:
34
- - 一个模式在 3+ 次 session 中出现、且每次都消耗 >10 轮对话 → 值得提案
35
- - 一个模式只出现 1-2 次、或每次 <5 轮 → 还不够,继续观察
36
-
37
- ### 通用性 vs 专属性
38
-
39
- - 太通用:"写代码"不是 skill,它是所有 skill 的基础
40
- - 太专属:"修第 47 行的 bug"不是 skill,它是一次性任务
41
-
42
- **校准锚点**:
43
- - 好的 skill 有明确的触发条件、稳定的执行流程、可复用的判断框架
44
- - 如果描述一个 skill 需要 >3 句话才能说清"什么时候用它",可能粒度不对
45
-
46
- ## 发现方法
47
-
48
- ### 来源 1:Transcript 分析(需 mine 档授权)
49
-
50
- 读用户的 Claude Code transcript .jsonl 文件,提取:
51
-
52
- 1. **重复意图模式**:用户在不同 session 中发出相似的指令
53
- 2. **重复解释模式**:用户反复解释同一个上下文
54
- 3. **重复纠正模式**:用户反复纠正 AI 的同一类错误
55
-
56
- ### 来源 2:Commit 历史分析
57
-
58
- ```bash
59
- git log --oneline -100 | ... # 提取 commit 类型分布
60
- ```
61
-
62
- ### 来源 3:Issue / 文档模式分析
63
-
64
- 扫描 `docs/issues/`、`docs/decisions/`、CHANGELOG 等,识别:
65
- - 重复出现的 issue 类型 → 可能需要预防性 skill
66
- - 重复出现的决策模式 → 可能需要决策框架 skill
67
-
68
- ### 来源 4:用户直接告知
69
-
70
- 用户说"我总在做 X"——这是最直接的信号。
71
-
72
- ## 提案格式
73
-
74
- ```markdown
75
- # Skill 提案:{名称}
76
-
77
- ## 发现来源
78
- - {transcript/commit/issue/用户告知}
79
- - 出现频率:{N 次 / M 个 session}
80
- - 每次消耗:{约 X 轮对话 / Y 分钟}
81
-
82
- ## 模式描述
83
- {这个重复工作是什么?每次的输入和输出是什么?}
84
-
85
- ## 为什么值得封装
86
- {如果不封装,代价是什么?如果封装了,收益是什么?}
87
-
88
- ## 建议的 skill 结构
89
- - **触发条件**:什么时候应该使用这个 skill?
90
- - **核心流程**:大致的执行步骤
91
- - **判断框架**:需要内化的决策标准
92
- - **输出契约**:每次使用应该产出什么?
93
-
94
- ## 风险
95
- - 是否可能过度封装?
96
- - 是否可能很快过时?
97
- - 是否与已有 skill 重叠?
98
-
99
- ## 推荐优先级
100
- - [ ] 高:每周 3+ 次,每次 >15 分钟 → 立即创建
101
- - [ ] 中:每周 1-2 次,每次 >10 分钟 → 下次闲下来创建
102
- - [ ] 低:偶尔出现,但模式清晰 → 记录,观察
103
- ```
104
-
105
- ## 从提案到 skill
106
-
107
- 用户确认提案后:
108
-
109
- 1. **用 soul-writing 方法论写 SKILL.md**
110
- 2. **放到正确位置**
111
- - `.boll/skills/{name}/SKILL.md`
112
- 3. **更新 lead 调度表(如果适用)**
113
- 4. **验证安装**
114
-
115
- ## 我不做什么
116
-
117
- - 不自动创建 skill(只提案,用户确认后才创建)
118
- - 不扫描未授权的项目
119
- - 不替代 crystal-learn(crystal-learn 提取失败模式和不变量,skill-discovery 发现可封装的工作模式)
120
- - 不把一次性任务强行封装成 skill
@@ -1,106 +0,0 @@
1
- ---
2
- name: task-arch
3
- description: 任务架构师。负责把已冻结的 PLAN 拆成可执行、可委派、可集成的工作单元(WP)。在 lead 的 Gate 5 由 lead 调度。
4
- status: active
5
- tier: entry
6
- triggers:
7
- - 已冻结的 PLAN 需要拆成 WP
8
- - 需要显式写出依赖和写集
9
- - 需要并行执行编排
10
- outputs:
11
- - WP DAG
12
- - write_set
13
- - depends_on
14
- - acceptance_test
15
- truth_policy:
16
- - 只消费已冻结的计划
17
- - 不重做架构决策
18
- - 任务定义优先写问题边界和接缝责任,不复制仓库事实
19
- ---
20
-
21
- # 任务架构师
22
-
23
- ## 角色
24
-
25
- 我负责把一份已经 decision-complete 的计划拆成可执行、可委派、可集成的工作单元。我的价值不在于"拆得细",而在于"拆完之后不会把接缝拆丢"。
26
-
27
- ## 张力
28
-
29
- 我工作在两组核心张力中:
30
-
31
- 1. **粒度 vs 集成成本**
32
- - 拆得越细,每个 WP 越容易执行
33
- - 但跨 WP 的接缝越多,集成越脆弱
34
- - 正确的粒度是"每个 WP 有独立可验证的产物"
35
-
36
- 2. **并行度 vs 接缝安全**
37
- - 并行越多,总耗时越短
38
- - 但并行 Track 之间的中间层是最危险的无主地带
39
- - 正确的并行是"共享接口有显式 seam owner"
40
-
41
- ## 拆分原则
42
-
43
- - 按 `write_set` 拆,不按"感觉上的功能块"拆
44
- - 按接缝定义 owner,不让中间层落到无人地带
45
- - 每个 WP 必须有自己的 `acceptance_test`
46
- - 共享接口优先拆出单独 gate / integration task,而不是默认某一方顺手做
47
-
48
- ## 禁止事项
49
-
50
- - 不在这里补架构判断
51
- - 不在这里发明新的契约
52
- - 不把"谁来做"写成"大家协同完成"
53
- - 不把验证责任丢给最终集成阶段
54
-
55
- ## 来自 crystal-learn 的注入
56
-
57
- **INV-7 无主接缝**:WP 本身有 owner,但 WP 之间的接缝没有 owner。行动:
58
- 1. 每条跨 WP 数据流都显式指定生产端 owner、消费端 owner、接缝验证 owner
59
- 2. 如果不自然归属任何 WP,创建独立 Gate 任务
60
- 3. **PLAN 冻结前,对文档声明的每个 API 端点做 WP 归属验证**——如果某端点不在任何 WP 的 write set 中,必须显式分配
61
-
62
- ## Output Contract
63
-
64
- 每次拆分必须给出:
65
-
66
- 1. `WP DAG` — WP 编号 + 每个 WP 的一句话目标
67
- 2. `write_set` — 每个 WP 允许写的路径或模块
68
- 3. `depends_on` — 哪些前置必须完成
69
- 4. `acceptance_test` — 每个 WP 结束时必须通过什么验证
70
- 5. `integration_tasks` — 哪些接缝需要单独集成验证
71
-
72
- ## 最小模板
73
-
74
- ```markdown
75
- ## WP-x [名称]
76
- - Goal:
77
- - Write set:
78
- - Depends on:
79
- - Parallel with:
80
- - Seam owner:
81
- - Acceptance test:
82
- ```
83
-
84
- ## 文档规范
85
-
86
- 每个 WP 的 TASK.md 的行数上限:≤120 行。每个 seam 只写 3 行角色 + PLAN 引用,禁止复写 >5 行契约正文。批量拆 WP 时并发 5-8 个 Write。
87
-
88
- ## 与其他 Skill 的关系
89
-
90
- ```
91
- plan-lock
92
- ↓ 产出冻结后的 PLAN(vN-final)
93
- task-arch(我)
94
- ↓ 拆成 WP DAG
95
- lead(Gate 6 审查)
96
- ↓ 审查 WP 拆分完整性
97
- harness-dev / harness-eng
98
- ↓ 按 WP 执行
99
- ```
100
-
101
- ### 边界
102
-
103
- - `plan-lock` 负责锁住计划,我只消费已冻结的
104
- - 如果计划未冻结(还有 TBD/需确认),我必须退回 `plan-lock`
105
- - `harness-dev` 按我的拆分执行,不补我遗漏的接缝
106
- - `lead` 在 Gate 6 审查我的拆分是否完整
@@ -1,57 +0,0 @@
1
- ---
2
- name: toolkit
3
- description: Pull-surface slash command for `.boll/` tooling that is not auto-triggered. Replaces the retired SessionStart push-reminder (session-start-toolkit-reminder.ts, retired in WP-031). Reads `.boll/toolkit-index.yaml` and prints active entries grouped by category; retired entries are shown with their retirement packet reference so capability history is never silently dropped.
4
- status: active
5
- tier: usability
6
- owner: nature
7
- window_owner: shared
8
- window_owner_since: 2026-04-28T17:00+08:00
9
- window_owner_adr: docs/decisions/ADR-H2-identity-isolation.md
10
- last_audited: 2026-04-19
11
- ---
12
-
13
- # /toolkit — harness toolkit index
14
-
15
- ## What this does
16
-
17
- Prints the contents of `.boll/toolkit-index.yaml` in a human-readable layout. The index lists
18
- `.boll/` tooling that users occasionally need but is NOT auto-triggered by any hook —
19
- for example: trace-analyzer proposals, magic-doc rebuild, doc-freshness scan, metrics inspection.
20
-
21
- This is a **pull surface**, not a push notification. The predecessor hook
22
- `session-start-toolkit-reminder.ts` injected the same content every ~3 hours whether the user
23
- wanted it or not; that push channel was retired in WP-031 and replaced by this on-demand
24
- readout. Discoverability is preserved (the kernel CLAUDE.md points at `/toolkit`); context
25
- pollution is eliminated (zero bytes cost until the user invokes).
26
-
27
- ## Sub-commands
28
-
29
- | Command | Behavior |
30
- |---|---|
31
- | `/toolkit` | List all active entries grouped by category; show retired entries with their retirement packet reference at the bottom. |
32
- | `/toolkit all` | Same as above but without the retired/active split — single chronological list. |
33
-
34
- ## Invocation handler
35
-
36
- The handler is `list.sh`. It reads `.boll/toolkit-index.yaml` via `npx ts-node -e "import yaml; ..."` (js-yaml is available; used elsewhere in the harness), formats entries, and prints to
37
- stdout. No network, no side effects. Exit 0 on success, 1 on missing index, 2 on yaml parse
38
- error.
39
-
40
- ## Why this exists (WP-031 context)
41
-
42
- Retiring `session-start-toolkit-reminder.ts` without providing a pull channel would leave a
43
- silent regression for:
44
-
45
- 1. A user returning after weeks away who has forgotten the 5 entries existed.
46
- 2. A clean-bootstrap consumer (WP-039) whose first session has no prior reminder history.
47
- 3. An external consumer importing the harness (WP-040) who never saw the reminder at all.
48
-
49
- `/toolkit` is the minimal pull-side substitute. The invariant is: every capability listed in
50
- the retired hook is either (a) surfaced here, or (b) retired with a retirement packet
51
- referenced in the index entry — no capability becomes undiscoverable.
52
-
53
- ## Amendment
54
-
55
- When a new `.boll/` pull-tool ships or an existing one retires, update
56
- `.boll/toolkit-index.yaml`. Do NOT edit this skill to describe specific entries — the skill
57
- is a renderer, the yaml is the data.
@@ -1,92 +0,0 @@
1
- #!/bin/bash
2
- # /toolkit handler — print .boll/toolkit-index.yaml in human-readable form.
3
- # Exit 0 = OK; 1 = missing index; 2 = parse error.
4
-
5
- set -eu
6
-
7
- ROOT="$(cd "$(/Users/nature/个人项目/boll/scripts/hooks/find-boll-root.sh)" && pwd)"
8
- INDEX="$ROOT/.boll/toolkit-index.yaml"
9
-
10
- if [ ! -f "$INDEX" ]; then
11
- echo "toolkit: index not found at $INDEX" >&2
12
- echo "toolkit: if this is a fresh repo, copy 99-appendix-prototypes/config/toolkit-index.yaml to .boll/" >&2
13
- exit 1
14
- fi
15
-
16
- MODE="${1:-grouped}"
17
-
18
- npx ts-node - "$INDEX" "$MODE" <<'TS'
19
- import * as fs from 'fs';
20
- import * as yaml from 'js-yaml';
21
-
22
- const [indexPath, mode] = process.argv.slice(2);
23
- try {
24
- const data = yaml.load(fs.readFileSync(indexPath, 'utf8')) as any;
25
- const entries = data.get("entries", []);
26
- const active = entries.filter((e: any) => (e.get("status", "active") || "").toString().startsWith("active"));
27
- const retired = entries.filter((e: any) => !(e.get("status", "active") || "").toString().startsWith("active"));
28
-
29
- console.log("# /toolkit — .boll/ pull-surface tooling\n");
30
- console.log((data.get("purpose") || "").trim() + "\n");
31
-
32
- const render = (e: any) => {
33
- const name = e.get("name") || e.get("id") || "?";
34
- const cat = e.get("category") || "-";
35
- const status = e.get("status") || "active";
36
- const purpose = (e.get("purpose") || "").trim();
37
- const inv = e.get("invocation");
38
- console.log(`## ${name}`);
39
- console.log(`- id: \`${e.get('id')}\` | category: \`${cat}\` | status: \`${status}\``);
40
- if (purpose) console.log(`- purpose: ${purpose}`);
41
- if (typeof inv === "string") {
42
- console.log(`- run: \`${inv}\``);
43
- } else if (typeof inv === "object") {
44
- for (const [k, v] of Object.entries(inv)) {
45
- console.log(`- run (${k}): \`${v}\``);
46
- }
47
- }
48
- if (e.get("entries")) {
49
- console.log("- sub-entries:");
50
- for (const sub of e.get("entries")) {
51
- const writer = sub.get("writer") || "?";
52
- const wstatus = sub.get("writer_status") || "?";
53
- const pend = sub.get("pending_retire_wp");
54
- const retby = sub.get("retired_by_wp");
55
- let label = wstatus;
56
- if (pend) label += ` (pending retire in ${pend})`;
57
- if (retby) label += ` (retired by ${retby})`;
58
- console.log(` - \`${sub.get('file')}\` — writer \`${writer}\`, ${label} — \`${sub.get('invocation')}\``);
59
- }
60
- }
61
- const retby = e.get("retired_by_wp");
62
- const pkt = e.get("retirement_packet");
63
- if (retby || pkt) {
64
- const bits = [];
65
- if (retby) bits.push(`retired by ${retby}`);
66
- if (pkt) bits.push(`packet: \`${pkt}\``);
67
- console.log(`- retirement: {' | '.join(bits)}`);
68
- }
69
- console.log();
70
- };
71
-
72
- if (mode === "all") {
73
- for (const e of entries) render(e);
74
- } else {
75
- if (active.length) {
76
- console.log("---\n## Active entries\n");
77
- for (const e of active) render(e);
78
- }
79
- if (retired.length) {
80
- console.log("---\n## Retired (kept for historical discoverability)\n");
81
- for (const e of retired) render(e);
82
- }
83
- }
84
-
85
- console.log("---");
86
- console.log(`Index: \`.boll/toolkit-index.yaml\` (last_updated: ${data.get('last_updated','?')}, by WP ${data.get('updated_by_wp','?')})`);
87
- console.log("Amendment protocol: update the yaml when a .boll/ pull-tool is added or retires; do not edit this skill for entry-specific text.");
88
- } catch (e) {
89
- console.error(`toolkit: yaml parse error: ${e}`);
90
- process.exit(2);
91
- }
92
- TS
@@ -1,21 +0,0 @@
1
- #!/bin/sh
2
- # pre-commit hook — bollharness
3
- #
4
- # 一次性启用(clone 后跑一次):
5
- # git config core.hooksPath .githooks
6
- #
7
- # 来源: 同步自 boll 主仓 commit dff58afb (ADR/PLAN 编号唯一性)
8
- # 设计: ADR-038 D11 schema-level 100% > prompt-level 70%
9
- # 红线: ADR-041 v1.0 调字不加机制(grep 级 chokepoint 不算)
10
-
11
- set -e
12
-
13
- # H 系列编号唯一性预防:阻断同号 + 不同主题的 ADR/PLAN 命名冲突
14
- NUMBERING_CHECK="$(git rev-parse --show-toplevel 2>/dev/null)/scripts/checks/check_adr_plan_numbering.ts"
15
- if [ -f "$NUMBERING_CHECK" ]; then
16
- if ! npx ts-node "$NUMBERING_CHECK"; then
17
- exit 1
18
- fi
19
- fi
20
-
21
- exit 0