@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,270 +0,0 @@
1
- ---
2
- plan: PLAN-H1
3
- adr: ADR-H1
4
- title: crystal-learn 学习层复活——4 WP 工程拆解
5
- status: in_progress
6
- version: 1.0
7
- date: 2026-04-28
8
- owner: nature
9
- window_owner: shared
10
- window_owner_since: 2026-04-28T18:30+08:00
11
- parent_plan: 39-h-h-h-h-hanis-refactored-toucan
12
- estimated_effort: 2 天
13
- ---
14
-
15
- # PLAN-H1:crystal-learn 学习层复活——4 WP 工程拆解
16
-
17
- ## §1 受管资产 + 现状基线
18
-
19
- ### 1.1 完整受管资产清单(H0.1 施工隔离)
20
-
21
- | # | 路径 | 现状 | H1 改动 | DoD 行数 |
22
- |---|------|------|---------|----------|
23
- | 1 | `~/.claude/skills/boll-crystal-learn/SKILL.md` | 89 行 active 契约成熟 | **不动**(scope 外) | — |
24
- | 2 | `.claude/skills/lead/SKILL.md` | 192 行(H4 后),line 142 "## 来自 crystal-learn 的门禁"段已布线 | line 192 后追加 "## 触发节奏(H1)" 子段 | ≤25 行(INV-H1-1 + FM2 buffer) |
25
- | 3 | `docs/decisions/ADR-H1-crystal-learn-revival.md` | (本起草同 commit 创建) | 188/300 行 | ≤300 |
26
- | 4 | `docs/decisions/PLAN-H1-crystal-learn-revival.md` | 本文件 | 起草中 | ≤500 |
27
- | 5 | `docs/decisions/tasks/PLAN-H1/WP-04/dogfood-output-20260428-{ts}.md` | 待 WP-04 创建 | 创建 | ≤80 |
28
- | 6 | `docs/decisions/tasks/PLAN-H1/WP-05/reviewer-verdict-20260428-{ts}.md` | 待 WP-05 创建 | 创建 | ≤200 |
29
- | 7 | `.boll/log/harness-self-symptoms.md` | 145 行(含 §4.1-§4.9) | 若 H1 实施期触发自指 → append 新 §4.x | append-only |
30
-
31
- ### 1.2 现状基线(实证已做,避 §4.7/§4.8 同根复发)
32
-
33
- | 实证项 | 命令 | 结果 | 时间 |
34
- |--------|------|------|------|
35
- | crystal-learn skill 存在 | `wc -l ~/.claude/skills/boll-crystal-learn/SKILL.md` | 89 | 2026-04-28 18:25 |
36
- | crystal-learn 历史 | `git log --oneline --grep="crystal-learn" -10` | c80f2b48 → 8925d8f1 → 479a6b70 → 4-5 月静默 | 2026-04-28 18:20 |
37
- | lead 接收侧 | `grep -n "## 来自 crystal-learn 的门禁" lead/SKILL.md` | line 142 命中 1 | 2026-04-28 18:20 |
38
- | lead 当前长度 | `wc -l lead/SKILL.md` | 192(H4 后) | 2026-04-28 18:35 |
39
- | self-symptoms 库存 | `awk '/^### 4\./{count++}END{print count}' harness-self-symptoms.md` | 9(§4.1-§4.9) | 2026-04-28 18:25 |
40
- | §4.9 是新型号(dogfood 输入) | `grep -n "cross-plan-class race" harness-self-symptoms.md` | 1 处(§4.9 标题) | 2026-04-28 18:25 |
41
- | git 状态 | `git status -b` + `test -f .git/MERGE_HEAD` | main,无 merge state(避 §4.9 同模式复发) | 2026-04-28 18:35 |
42
-
43
- ## §2 4 WP 工程拆解
44
-
45
- ### WP-01:现状盘点(已在起草前完成)
46
-
47
- **结果**:完成。1.2 表中 7 项实证全部记录。
48
-
49
- > **ADR-H1 起草前必做的"4 项核"**(feedback ADR/PLAN 引用受管资产前必先 wc/grep/ls):
50
- > 1. 路径核:crystal-learn skill 文件存在 ✓
51
- > 2. 行数核:89 行 + lead 192 行 + symptoms 145 行 ✓
52
- > 3. 字段核:crystal-learn frontmatter status=active / triggers / outputs / target injection map ✓
53
- > 4. 前置 ADR 核:ADR-041 v1.0 + ADR-H4 + ADR-038 D11.2 + ADR-H0 6+1 全已读 ✓
54
-
55
- ### WP-02:起草 ADR-H1 + PLAN-H1(已完成 ADR,PLAN 起草中)
56
-
57
- **结果**:
58
- - ADR-H1 = 188/300 行,§1-§11 完整,零"待协调员决定 / TBD / 后续讨论"
59
- - PLAN-H1 = 本文件起草中,目标 ≤500 行
60
-
61
- ### WP-03:嵌入 lead/SKILL.md "## 触发节奏(H1)" 子段
62
-
63
- **输入**:ADR-H1 §4 触发节奏表(5 条)+ §5 落地路径模板。
64
-
65
- **动作**:在 lead/SKILL.md line ≥182("## 联动规则"段之前;"## 行为治理(H4 三类清单)"段之后)插入新子段 "## 触发节奏(H1)"。
66
-
67
- **子段结构(≤25 行硬限)**:
68
- 1. 引言(1 行):指针到 ADR-H1
69
- 2. 5 条触发条件(5 行短句,每条 1 行)
70
- 3. 落地路径模板缩略(3 行)
71
- 4. 红线(3 行短句:不写 cron / 不写 hook / 不新建 active SKILL.md)
72
- 5. 升级条件(2 行)
73
-
74
- **Edit pattern**(同 H4 嵌入手法):
75
- ```python
76
- old_string = "## 联动规则(skill 调度表)"
77
- new_string = "## 触发节奏(H1)\n\n... 25 行内容 ...\n\n## 联动规则(skill 调度表)"
78
- ```
79
-
80
- **DoD**:
81
- - `wc -l .claude/skills/lead/SKILL.md` ≤ 220(192 + ≤25 + buffer)
82
- - `grep -c "## 触发节奏(H1)"` = 1
83
- - `grep -iE "cron|hook|schedule|metrics" <new-segment>` = 0(INV-H1-3 段内)
84
-
85
- ### WP-04:dogfood 一次成功触发
86
-
87
- **输入选择**:harness-self-symptoms.md §4.9(cross-plan-class race,新型号)。
88
- - 触发条件命中 = ADR-H1 §4 表第 1 条(主仓发现新型 symptom)
89
- - 历史相关 symptom:§4.4(同 session 内 H × H race)= 同根但不同子类
90
- - 新案例数:1(§4.9 自身)
91
-
92
- **期望产出**(写到 `docs/decisions/tasks/PLAN-H1/WP-04/dogfood-output-20260428-{ts}.md`):
93
-
94
- ```yaml
95
- # crystal-learn output (per skill output contract)
96
- invariant_delta:
97
- candidate:
98
- - id: INV-cross-plan-class-race # 候选,仅 1 案例
99
- description: "施工前必须 git status 核 merge state;H 子计划与业务 PLAN 跨 class race 不被 H0.5 协调表覆盖"
100
- evidence: "§4.9 / 1 案例 / 系统性形状(merge state collision 是 git 操作语义级冲突)"
101
- new_instance: []
102
- confirmed: [] # 无新升级
103
- target_injection_map:
104
- - target: docs/decisions/ADR-H0-meta-charter.md # 修订建议第 10 条候选
105
- directive: "H0.5 协调表扩展为'跨 plan-class' 协调(H × 业务 PLAN race 也登记);或加 H0.7 子规则'施工前 git status 核 merge state'"
106
- rationale: "§4.9 新型号 symptom 暴露 H0.5 表只覆盖 H 子 PLAN 之间是规则盲区;不立即修订 ADR-H0(H 系列收尾时整体复盘),先入修订建议表"
107
- - target: .claude/skills/lead/SKILL.md "## 来自 crystal-learn 的门禁" 段
108
- directive: "起草 ADR/PLAN 进入 commit 阶段前 → `git status` 核 merge state;处于 merge state 时 git restore --staged 不擅自 conclude 别 session merge"
109
- rationale: "lead 是入口 skill;prompt-level 70% adherence 足够(INV-H1-3 红线,不机制化);与现有 INV-4 真相源分裂 + INV-6 验证衰减 对齐"
110
- status: candidate-not-yet-confirmed # crystal-learn 升级规则要求 ≥2 案例才升级 confirmed
111
- next_check: "下次出现 cross-plan-class race(任何 H × 业务 PLAN 或业务 PLAN × 业务 PLAN)即升级 confirmed + 注入 lead/SKILL.md"
112
- ```
113
-
114
- **DoD**:
115
- - 文件 `dogfood-output-20260428-{ts}.md` 存在 + 非空 + ≤80 行
116
- - `grep -c "invariant_delta\|target_injection_map"` ≥ 2
117
- - `grep "candidate-not-yet-confirmed\|confirmed"` 命中(status 字段非空)
118
- - 不实际修改 ADR-H0(仅产出注入建议;ADR-H0 实际修订留 H 系列收尾)
119
- - 不实际写入 lead/SKILL.md(INV-H1-2 落地路径段已在 WP-03 写好;候选不该立刻进入执行层)
120
-
121
- ### WP-05:reviewer signoff
122
-
123
- **spawn**:read-only subagent(按 .claude/rules/review-agent-isolation.md),prompt-level 兜底加 read-only directive。
124
-
125
- **14 维度验证矩阵**(reviewer 必须逐项 grep/wc 实证):
126
-
127
- | # | 维度 | 验证命令 | 期望 |
128
- |---|------|---------|------|
129
- | 1 | ADR-H1 ≤300 行 | `wc -l ADR-H1` | ≤300 |
130
- | 2 | PLAN-H1 ≤500 行 | `wc -l PLAN-H1` | ≤500 |
131
- | 3 | lead 注入段 ≤25 行 | `awk '/## 触发节奏(H1)/,/## 联动规则/' lead/SKILL.md \| wc -l` | ≤27(含起止 2 行)|
132
- | 4 | INV-H1-1(≤5 触发条件) | `awk '/## 触发节奏(H1)/,/## 联动规则/' lead/SKILL.md \| grep -c "^[0-9]\.\| - "` | ≤5 |
133
- | 5 | INV-H1-2(落地路径在现有接收段) | `grep -B5 "## 触发节奏(H1)" lead/SKILL.md \| grep "## 来自 crystal-learn 的门禁"` | 命中 1 |
134
- | 6 | INV-H1-3(注入段零机制化) | `awk '/## 触发节奏(H1)/,/## 联动规则/' lead/SKILL.md \| grep -iE "cron\|hook\|schedule\|metrics\|setInterval\|crontab"` | 0(注入段内)|
135
- | 7 | dogfood 落地物存在 | `ls docs/decisions/tasks/PLAN-H1/WP-04/dogfood-output-*.md` | 1 文件 |
136
- | 8 | dogfood 内容非空 | `wc -l <dogfood-file>` | 30-80 |
137
- | 9 | dogfood 含 invariant_delta + injection map | `grep -c "invariant_delta\|target_injection_map" <dogfood-file>` | ≥ 2 |
138
- | 10 | H0.4 自指(无"待 / TBD / 后续讨论"实质命中) | `grep -nE "待协调员决定\|TBD\|后续讨论" ADR-H1 PLAN-H1` | 仅元层引用 |
139
- | 11 | H0.meta(不引用未来产物) | `grep -nE "\bH[2-8]\b" ADR-H1` | 仅 §8 H4 边界 + §10 自检 |
140
- | 12 | H0.6 证据机械化(每 INV/DoD 给命令) | 人审 §3 表 | 每行有 grep/wc/awk |
141
- | 13 | crystal-learn skill 文件未被改动 | `git diff --stat HEAD~3..HEAD ~/.claude/skills/boll-crystal-learn/SKILL.md` | 空 / 0 lines changed |
142
- | 14 | 4 项 grep 实证(前置 ADR / hook / cron / pointer) | reviewer copy verify bundle § 7 | 全 PASS |
143
-
144
- **verdict 模板**(同 H4 reviewer-verdict-*.md):
145
- - 14 维度逐项 PASS / BLOCK / PASS_WITH_NOTES
146
- - P0/P1 notes 必须 BLOCK(H4 §过度 review 第 3 条)
147
- - P2/P3 advisory 不 BLOCK,记入 followup
148
- - 文件路径 `docs/decisions/tasks/PLAN-H1/WP-05/reviewer-verdict-20260428-{ts}.md`
149
-
150
- ## §3 验证矩阵(机械化)
151
-
152
- > 14 维度全部机械化。每行 reviewer 只需 copy-paste 命令验证,不接受"reviewer 认为已完成"(H0.6)。
153
-
154
- 参考 §2 WP-05 表。
155
-
156
- ## §4 跨 H 协调登记
157
-
158
- | 共改资产 | 与谁冲突 | 仲裁 | 检测 |
159
- |---------|---------|------|------|
160
- | `lead/SKILL.md` | H4(行为治理段 line 158-180) | 串行:H4 已 merged,H1 紧接其后追加 | `git log lead/SKILL.md` 验时间序 |
161
- | `.boll/log/harness-self-symptoms.md` | H 系列全部子计划 | append-only,时间戳前后即可 | `git log harness-self-symptoms.md` |
162
- | `~/.claude/skills/boll-crystal-learn/SKILL.md` | 无(H1 scope 外) | 不动 | `git diff --stat` 空 |
163
- | ADR-H0 修订建议 | H 系列全部子计划已积 8/9/10 条 | H1 仅追加候选第 10 条 candidate(不 confirm);待 H 系列收尾整体批量合并 | dogfood 输出 status=candidate |
164
-
165
- ## §5 H0 元规约 6+1 自检(PLAN 自身)
166
-
167
- - **H0.1 施工隔离**:PLAN scope 严格在 §1.1 表 7 项;本 PLAN 起草不动其它资产
168
- - **H0.2 节流**:PLAN 当前预算 ≤500 行(实际 wc 待 commit 时核)
169
- - **H0.3 执检分离**:起草人 ≠ reviewer;WP-05 spawn read-only subagent
170
- - **H0.4 自指禁止**:grep "待协调员决定 / TBD / 后续讨论" 全文仅 §2 WP-05 表第 10 维度元层引用 + §6 dogfood verify bundle 元层引用 + §10 自检命中
171
- - **H0.5 跨 H 协调**:见 §4 表
172
- - **H0.6 证据机械化**:§2 WP-05 表 14 行每行 grep/wc/awk 命令
173
- - **H0.meta**:grep `\bH[2-8]\b` 仅 §4 协调表行 + §1 H4 line 158-180 引用 + §5 自检命中
174
-
175
- ## §6 dogfood 验证(DoD 内嵌)
176
-
177
- H1 的"DoD = 至少 1 次成功触发并产出落地物"通过 WP-04 内嵌实现:
178
-
179
- - 触发条件命中(§4 表第 1 条 + 第 5 条 复合命中:新型 symptom + ADR-H0 修订建议累积 ≥3)
180
- - 输入 = §4.9 + 处置段第 10 条
181
- - 输出 = `dogfood-output-*.md`(≤80 行)
182
- - 输出含 crystal-learn output contract 必填字段(invariant_delta / target_injection_map)
183
- - 输出 status = candidate(严格按 crystal-learn 升级规则 ≥2 案例才 confirmed)
184
- - 不实际修改 ADR-H0(候选不立即升级;不立即 commit 注入到 lead/SKILL.md)
185
-
186
- dogfood 落地物本身就是"复活成功"的证据:能产出 well-formed crystal-learn output → 触发协议可消费。
187
-
188
- ## §7 reviewer copy-paste verify bundle
189
-
190
- **前置实证**:
191
- ```bash
192
- cd /Users/nature/个人项目/boll
193
- wc -l docs/decisions/ADR-H1-crystal-learn-revival.md # 期望 ≤300
194
- wc -l docs/decisions/PLAN-H1-crystal-learn-revival.md # 期望 ≤500
195
- wc -l .claude/skills/lead/SKILL.md # 期望 ≤220
196
- ```
197
-
198
- **INV-H1 三条**:
199
- ```bash
200
- # INV-H1-1: 触发条件 ≤5 条
201
- awk '/## 触发节奏(H1)/,/## 联动规则/' .claude/skills/lead/SKILL.md \
202
- | grep -cE "^[0-9]+\.|^- " # 期望 ≤5
203
-
204
- # INV-H1-2: 落地路径必须引用现有接收段(不要求物理紧邻;接收段在 line 142,触发节奏段在 line 181)
205
- grep -c "## 来自 crystal-learn 的门禁" .claude/skills/lead/SKILL.md # 期望 ≥1(接收段存在)
206
- awk '/## 触发节奏(H1)/,/## 联动规则/' .claude/skills/lead/SKILL.md \
207
- | grep -c "来自 crystal-learn 的门禁" # 期望 ≥1(触发节奏段引用接收段)
208
-
209
- # INV-H1-3: 注入段零机制化关键词
210
- awk '/## 触发节奏(H1)/,/## 联动规则/' .claude/skills/lead/SKILL.md \
211
- | grep -iE "cron|hook|schedule|metrics|setInterval|crontab" # 期望 0 行
212
- ```
213
-
214
- **dogfood 落地物**:
215
- ```bash
216
- ls docs/decisions/tasks/PLAN-H1/WP-04/dogfood-output-*.md # 期望 1 文件
217
- wc -l docs/decisions/tasks/PLAN-H1/WP-04/dogfood-output-*.md # 期望 30-80
218
- grep -cE "invariant_delta|target_injection_map" \
219
- docs/decisions/tasks/PLAN-H1/WP-04/dogfood-output-*.md # 期望 ≥2
220
- grep -E "candidate-not-yet-confirmed|^status:" \
221
- docs/decisions/tasks/PLAN-H1/WP-04/dogfood-output-*.md # 期望 1 行
222
- ```
223
-
224
- **自指检测**:
225
- ```bash
226
- # H0.4 实质命中(非元层引用)
227
- grep -nE "待协调员决定|TBD|后续讨论" \
228
- docs/decisions/ADR-H1-crystal-learn-revival.md \
229
- docs/decisions/PLAN-H1-crystal-learn-revival.md # 全部应为元层引用
230
-
231
- # H0.meta 不引用未来 H[2-8]
232
- grep -nE "\bH[2-8]\b" docs/decisions/ADR-H1-crystal-learn-revival.md
233
- # 期望仅 §8 H4 边界 + §10 自检 + 协调表
234
- ```
235
-
236
- **crystal-learn skill 文件未动**:
237
- ```bash
238
- git diff --stat HEAD~5..HEAD ~/.claude/skills/boll-crystal-learn/SKILL.md
239
- # 期望空(H1 scope 外不动)
240
- ```
241
-
242
- ## §8 commit 计划(race-safe pattern,§4.9 教训)
243
-
244
- ```bash
245
- # 1. commit 前再核 merge state(§4.9 防御)
246
- test -f .git/MERGE_HEAD && echo "MERGE in progress, abort" && exit 1
247
-
248
- # 2. 先 add ADR + PLAN,pathspec 隔离
249
- git add docs/decisions/ADR-H1-crystal-learn-revival.md \
250
- docs/decisions/PLAN-H1-crystal-learn-revival.md
251
-
252
- # 3. commit only with strict pathspec (§4.4 race-safe)
253
- git commit --only \
254
- docs/decisions/ADR-H1-crystal-learn-revival.md \
255
- docs/decisions/PLAN-H1-crystal-learn-revival.md \
256
- -m "PLAN-H1 起草: ADR-H1 v1.0 (188/300) + PLAN-H1 v1.0 (~430/500)"
257
-
258
- # 4. post-verify
259
- git show --stat HEAD # 验文件清单严格 = 2 文件
260
- ```
261
-
262
- WP-03 / WP-04 / WP-05 各自独立 commit,相同 race-safe pattern。
263
-
264
- ## §9 进度追踪
265
-
266
- - [x] WP-01 现状盘点(7 项实证)
267
- - [x] WP-02 起草 ADR-H1 + PLAN-H1(本文件)
268
- - [ ] WP-03 嵌入 lead/SKILL.md "## 触发节奏(H1)" 子段
269
- - [ ] WP-04 dogfood 一次(§4.9 输入 → INV delta + injection map)
270
- - [ ] WP-05 reviewer signoff(read-only subagent + 14 维度)
@@ -1,291 +0,0 @@
1
- ---
2
- plan_id: PLAN-H2
3
- title: harness 身份物理隔离工程实施
4
- status: Proposed
5
- adr: docs/decisions/ADR-H2-identity-isolation.md
6
- started: 2026-04-28
7
- last_updated: 2026-04-28
8
- owner: Nature(AI 助手协助)
9
- prereq:
10
- - docs/decisions/ADR-H0-meta-charter.md
11
- - docs/decisions/ADR-H2-identity-isolation.md
12
- - docs/decisions/ADR-042-parallel-dev-state-management.md
13
- - docs/decisions/ADR-H9-mailbox.md
14
- budget:
15
- total_lines: 500
16
- adr_lines: 300
17
- d10_patch_lines: 100
18
- ---
19
-
20
- # PLAN-H2: harness 身份物理隔离工程实施
21
-
22
- > 本 PLAN 与 ADR-H2 配套,按 H 系列 plan §3.0 三层文档边界:本文件只写 WP 拆解 + DoD 验证清单,不写决策本质(决策本质见 ADR-H2 §1-§5)。
23
-
24
- ---
25
-
26
- ## 1. 工程范围
27
-
28
- ADR-H2 §6 实施清单的工程展开:5 个 WP,串行(WP-01 → WP-05)。本 PLAN 不引入并行 WP(H2 总估时 3 天,单 session 串行更稳)。
29
-
30
- **入口资产清单**(来自 ADR-H2 §3.2 受管资产 + Gate 0 实地盘点):
31
-
32
- | 资产类 | 文件路径 | H2 MVP 是否纳入 | 选取理由 |
33
- |--------|----------|----------------|----------|
34
- | skill | `.claude/skills/lead/SKILL.md` | ✓ | 所有 multi-window session 起步必加载,H 系列起草核心入口 |
35
- | skill | `.claude/skills/arch/SKILL.md` | ✓ | 架构讨论 skill,多 window 共读共写(v1.1:原 nature-designer 无 SKILL.md,仅 `output/` 子目录,候选改 arch) |
36
- | skill | `.claude/skills/toolkit/SKILL.md` | ✓ | pull surface,所有 window 按需调;vNext substrate 入口 |
37
- | hook | `scripts/hooks/inbox-write-ledger.py` | ✓ | H9 邮箱 PostToolUse writer,multi-window 触发的 ledger 路径 |
38
- | hook | `scripts/hooks/inbox-inject-on-start.py` | ✓ | H9 邮箱 SessionStart inject,multi-window 启动时刻共触 |
39
- | hook | `scripts/hooks/owner-guard.py` | ✓ | ADR-042 D4 实施(身份隔离逻辑本身),元层自指最强示范 |
40
-
41
- 非 MVP 资产(其余 28 skill + 7 hook + 全部 agent)按 H2 后增量补,本 H2 不强制。
42
-
43
- ---
44
-
45
- ## 2. WP 拆解
46
-
47
- ### WP-01:owner frontmatter schema 文档定义
48
-
49
- **目标**:把 ADR-H2 §3.1 schema 表格落到一个机器可解析的 frontmatter spec 文件,供后续 lint 工具(H6 段)读取。
50
-
51
- **交付物**:
52
- - 新增 `docs/handoffs/owner-frontmatter-schema.md`(schema 定义 + 字段语义 + 示例)
53
- - 引用:ADR-H2 §3.1 + INV-H2-1/2/3
54
-
55
- **DoD**:
56
- - [ ] schema 文件存在 + 含 3 个字段 (`owner` / `owner_since` / `owner_adr`) 表格
57
- - [ ] 含至少 1 个 minimal 示例 + 1 个 shared 示例 + 1 个 unowned 示例
58
- - [ ] 引用 ADR-H2 §3.1 + ADR-042 §5
59
- - [ ] 行数 ≤ 80(防止 schema 文档自身膨胀)
60
-
61
- **估时**:30 min
62
-
63
- **verify 命令**:
64
- ```bash
65
- test -f docs/handoffs/owner-frontmatter-schema.md && wc -l docs/handoffs/owner-frontmatter-schema.md
66
- grep -c "^| \`owner" docs/handoffs/owner-frontmatter-schema.md # 期望 ≥3 字段行
67
- ```
68
-
69
- ---
70
-
71
- ### WP-02:ownership.yaml 日志剥离 → ownership.changelog.md
72
-
73
- **目标**:把 ownership.yaml 里 ~130 行协调员日志注释剥离到独立 append-only changelog,yaml 主体只剩纯 schema。
74
-
75
- **交付物**:
76
- - 新增 `docs/handoffs/ownership.changelog.md`(按时间戳倒序)
77
- - 修改 `docs/handoffs/ownership.yaml`:
78
- - 删除所有 `# YYYY-MM-DDTHH:MM 协调员` 注释段(约 line 6-136)
79
- - 顶部加 1 行 pointer:`# 协调员动作历史见 docs/handoffs/ownership.changelog.md`
80
- - 保留 `version` / `schema` / `adr` / `last_updated` / `last_updated_by_session` 5 行 frontmatter
81
- - 保留所有 `windows:` / `planned_windows:` / `conflict_history:` / `compact_recovery_protocol:` schema 段一字不动
82
-
83
- **操作流程**:
84
- 1. `git show HEAD:docs/handoffs/ownership.yaml` 备份当前完整版本到临时文件
85
- 2. `awk '/^# 2026-/,/^[a-z]/' temp.yaml` 提取所有日志注释段
86
- 3. 反序写入 `docs/handoffs/ownership.changelog.md`(最新在顶)
87
- 4. 用 `sed`/手工 Edit 从 yaml 中删除日志段
88
- 5. 顶部加 pointer 行
89
- 6. 跑 yaml lint:`python3 -c "import yaml; yaml.safe_load(open('docs/handoffs/ownership.yaml'))"`
90
-
91
- **DoD**:
92
- - [ ] `ownership.changelog.md` 存在 + 含至少 3 段历史日志(迁移完整性证据)
93
- - [ ] `ownership.yaml` 行数 ≤ 860(当前 979;剥离 ~125 行日志后 schema 主体 ~855 是 18 windows 实例的不可压结构基线)
94
- - [ ] yaml 仍可被 `yaml.safe_load` 成功解析(schema 完整性)
95
- - [ ] yaml 顶部含 changelog pointer 行
96
- - [ ] 所有 windows 实例条目无丢失(diff 前后 `windows:` 段对比)
97
-
98
- **估时**:1 h
99
-
100
- **verify 命令**:
101
- ```bash
102
- test -f docs/handoffs/ownership.changelog.md
103
- wc -l docs/handoffs/ownership.yaml # 期望 ≤ 800
104
- python3 -c "import yaml; d=yaml.safe_load(open('docs/handoffs/ownership.yaml')); print(len(d.get('windows',[])))"
105
- grep -c "^# 协调员动作历史见" docs/handoffs/ownership.yaml # 期望 1
106
- ```
107
-
108
- ---
109
-
110
- ### WP-03:≥3 skill + ≥3 hook 落 `window_owner` 字段
111
-
112
- **目标**:按 §1 入口资产清单,给 6 个 MVP 资产文件 frontmatter 加 `window_owner` 字段(v1.1 修订;原措辞 `owner` 与历史人名语义冲突,详见 ADR-H2 §3.1 修订记录)。
113
-
114
- **交付物**:6 个文件 frontmatter 编辑
115
-
116
- **`window_owner` 值映射**(按现有 ownership.yaml 实际登记 / 协调员判定):
117
-
118
- | 文件 | `window_owner` 值 | `window_owner_since` | 备注 |
119
- |------|----------|-------------|------|
120
- | `.claude/skills/lead/SKILL.md` | `shared` | 2026-04-28T17:00+08:00 | lead skill 多 window 共加载,shared 语义最准;保留现有 `owner: nature` 不动 |
121
- | `.claude/skills/arch/SKILL.md` | `shared` | 2026-04-28T17:00+08:00 | 架构讨论多 window 共读共写;保留现有 `owner: nature` 不动 |
122
- | `.claude/skills/toolkit/SKILL.md` | `shared` | 2026-04-28T17:00+08:00 | pull surface 全 window 按需;保留现有 `owner: nature` 不动 |
123
- | `scripts/hooks/inbox-write-ledger.py` | `window-0-coordinator` | 2026-04-28T17:00+08:00 | H9 邮箱 hook 由协调员维护;其他 window 不写 |
124
- | `scripts/hooks/inbox-inject-on-start.py` | `window-0-coordinator` | 2026-04-28T17:00+08:00 | 同上 |
125
- | `scripts/hooks/owner-guard.py` | `window-0-coordinator` | 2026-04-28T17:00+08:00 | ADR-042 D4 实施 hook,由协调员维护;元层自指 |
126
-
127
- **SKILL.md frontmatter 加字段**:在 `name`/`description`/`tools`/`owner`(如有,不动)同级追加 `window_owner` / `window_owner_since`。
128
-
129
- **hook .py 加字段**:Python 文件 frontmatter 走"模块 docstring 顶部 YAML block"约定(同 ADR-058 helper 已用模式):
130
- ```python
131
- """
132
- ---
133
- name: inbox-write-ledger
134
- window_owner: window-0-coordinator
135
- window_owner_since: 2026-04-28T17:00+08:00
136
- window_owner_adr: docs/decisions/ADR-H2-identity-isolation.md
137
- ---
138
-
139
- inbox-write-ledger.py — PostToolUse Write hook ...
140
- """
141
- ```
142
-
143
- **DoD**:
144
- - [ ] 6 个文件全部含 `window_owner` 字段(`grep -c "^window_owner:" <files>` 总数 = 6)
145
- - [ ] 6 个文件全部含 `window_owner_since` 字段
146
- - [ ] hook .py 文件加完字段后仍 `python3 -c "import ast; ast.parse(open('<file>').read())"` PASS(语法不破)
147
- - [ ] SKILL.md 加完字段后 `python3 -c "import yaml; ..."` 解析 frontmatter 仍 PASS
148
- - [ ] `lead` skill 加载时不报错(不能因新字段把 lead 加载链炸断)
149
- - [ ] 现有 `owner: nature` 字段(如有)保留未动(diff 验证)
150
-
151
- **估时**:1 h
152
-
153
- **verify 命令**:
154
- ```bash
155
- for f in .claude/skills/lead/SKILL.md .claude/skills/arch/SKILL.md .claude/skills/toolkit/SKILL.md scripts/hooks/inbox-write-ledger.py scripts/hooks/inbox-inject-on-start.py scripts/hooks/owner-guard.py; do
156
- test -f "$f" && grep -q "^window_owner:" "$f" && echo "PASS $f" || echo "FAIL $f"
157
- done
158
- # 期望 6/6 PASS
159
- python3 -c "import ast; ast.parse(open('scripts/hooks/owner-guard.py').read())" # 不能破语法
160
- ```
161
-
162
- ---
163
-
164
- ### WP-04:ADR-042 §3 D10 补丁
165
-
166
- **目标**:在 ADR-042 §3 末尾(line 143 D9 段之后、line 151 §4 之前)插入 D10 段,引用 INV-H2-1/2/3 并交代与 D1-D9 关系。
167
-
168
- **交付物**:`docs/decisions/ADR-042-parallel-dev-state-management.md` 新增 D10 段(≤100 行 H0.2 budget)
169
-
170
- **D10 段骨架**(≤100 行):
171
- 1. 标题 `### D10. 资产 frontmatter owner 字段(schema-level 副真相源)`(1 行)
172
- 2. 1 段引用 ADR-H2 §1 决策本质(3 行)
173
- 3. INV-H2-1/2/3 列出(10 行)
174
- 4. 与 D3 关系(主副真相源 + 互校规则)(10 行)
175
- 5. 与 D2 关系(commit 姿势 + frontmatter 双闸)(5 行)
176
- 6. 与 D5 关系(planned_windows 也按受管资产标 owner)(5 行)
177
- 7. 例外申请条款(参考 review-agent-isolation.md §"例外申请"格式)(10 行)
178
- 8. 受管资产清单 pointer 到 ADR-H2 §3.2(5 行)
179
- 9. 落地范围 pointer 到 PLAN-H2(5 行)
180
-
181
- **DoD**:
182
- - [ ] ADR-042 §3 末尾新增 D10 段
183
- - [ ] D10 段行数 ≤ 100(H 系列 plan §3.3 H2 行硬规)
184
- - [ ] D1-D9 一字不改(diff verify only line 143-150 之后插入,line 1-142 不变)
185
- - [ ] D10 段含 INV-H2-1 / INV-H2-2 / INV-H2-3 至少 3 处引用
186
- - [ ] D10 段含 ADR-H2 路径 + PLAN-H2 路径 pointer
187
- - [ ] ADR-042 总行数 ≤ 363(当前 263 + D10 100 上限)
188
-
189
- **估时**:30 min
190
-
191
- **verify 命令**:
192
- ```bash
193
- grep -n "^### D10" docs/decisions/ADR-042-parallel-dev-state-management.md | head -1
194
- # 期望 line 在 §4 反对意见之前
195
- awk '/^### D10/,/^## 4\./' docs/decisions/ADR-042-parallel-dev-state-management.md | wc -l
196
- # 期望 ≤ 100
197
- git diff docs/decisions/ADR-042-parallel-dev-state-management.md | grep "^-" | grep -v "^---" | wc -l
198
- # 期望 = 0(D1-D9 一字不改,纯插入)
199
- ```
200
-
201
- ---
202
-
203
- ### WP-05:非起草 reviewer 复核(H0.3 执检分离)
204
-
205
- **目标**:spawn 一个非起草 reviewer subagent(read-only frontmatter 物理隔离),复核 ADR-H2 + PLAN-H2 + WP-01..04 实施物。
206
-
207
- **reviewer brief**(必含):
208
- - 复核 ADR-H2 §1 INV-H2-1/2/3 一致性
209
- - 复核 ADR-042 D10 与 D1-D9 不冲突
210
- - 复核 6 个 MVP 资产 frontmatter `owner` 字段语法 + 值合理性
211
- - 复核 ownership.yaml 日志剥离完整性(diff 前后 windows 数量不丢)
212
- - 复核 H0 元规约自检(H0.1 scope / H0.2 行数 / H0.3 执检分离 / H0.4 自指 / H0.5 跨 H 协调 / H0.6 证据机械化)
213
- - 复核结论形式:PASS / PASS_WITH_NOTES / BLOCK,每条 finding 标 P0/P1/P2
214
-
215
- **reviewer agent picks**:`boll-review-toolkit:reviewer`(plugin 内 frontmatter 物理隔离 reviewer,schema-level 100% 遵从)
216
-
217
- **DoD**:
218
- - [ ] reviewer 复核完成 + 输出落 `docs/decisions/tasks/PLAN-H2/reviewer-verdict-<ts>.md`(或 inbox 邮箱)
219
- - [ ] 总裁决 = PASS 或 PASS_WITH_NOTES(P0 = 0)
220
- - [ ] 若 PASS_WITH_NOTES:所有 P1 由协调员 inline 修;P2 登记 followup(不阻断)
221
- - [ ] H0.3 执检分离证据:reviewer agent 不是 ADR-H2/PLAN-H2 起草者(验证 reviewer agent 是 plugin 内 read-only subagent,非协调员本体)
222
-
223
- **估时**:1 h
224
-
225
- **verify 命令**:
226
- ```bash
227
- ls docs/decisions/tasks/PLAN-H2/reviewer-verdict-*.md 2>/dev/null | head -1
228
- # 期望存在
229
- ```
230
-
231
- ---
232
-
233
- ## 3. WP 执行顺序与依赖
234
-
235
- ```
236
- WP-01 schema 文档 → WP-02 yaml 剥离 → WP-03 6 资产 owner → WP-04 D10 补丁 → WP-05 reviewer
237
- (前置: ADR-H2) (无前置) (依赖 WP-01 schema) (依赖 WP-03 实证) (依赖 WP-01..04)
238
- ```
239
-
240
- **串行 + 单 session**。预计总耗时 ~4 h(含 reviewer 异步等待)。如某 WP 超期 50% 触发"hanis 自指症状"记录(H 系列 plan §3.5 节奏控制)。
241
-
242
- ---
243
-
244
- ## 4. 不在本 PLAN 范围(明确划界,防膨胀)
245
-
246
- - ❌ owner frontmatter lint 自动校验工具(→ H6 状态健康度段)
247
- - ❌ PreToolUse hook 拦截"无 owner 资产被写"(→ H6)
248
- - ❌ 28 个非 MVP skill / 7 个非 MVP hook 标 owner(→ H 系列后续段按需增量)
249
- - ❌ agent.md 标 owner(H2 不强制 ≥3 个 agent,按需)
250
- - ❌ owner 字段历史回溯重写(owner_since 只对 H2 之后字段写)
251
- - ❌ owner 值 enum 约束(free-form,靠 reviewer Gate 抓)
252
-
253
- ---
254
-
255
- ## 5. 失败回滚(参 H 系列 plan §3.3.4)
256
-
257
- | 档位 | 触发 | 处置 |
258
- |------|------|------|
259
- | 轻 broken | WP-03 某资产加 owner 字段后 lead skill 加载报错 | inline 修;不 revert;记 `.boll/log/harness-self-symptoms.md` |
260
- | 中 broken | WP-02 ownership.yaml 剥离后 vNext smoke 失败 / 协调员查 yaml 报错 | hotfix 内修复 1h 内;超时升级 |
261
- | 重 broken | WP-04 ADR-042 D10 补丁与 D3/D5 实质冲突 | `git revert <H2-commit>`;下游 H3 worktree 重 rebase;Nature 单签 |
262
- | 最坏 | 连续 2 个 WP 重 broken | H2 暂停 1 周;Nature 评估拆 H 或调拓扑 |
263
-
264
- ---
265
-
266
- ## 6. 自指自检(H0.4 必填)
267
-
268
- - 本 PLAN 修问题症状关键词("间接寻址"/"单点真相源膨胀")→ 本 PLAN 自身**不**用间接寻址(所有受管资产清单在本文件 §1 直接列出,不让读者再去查 ownership.yaml)
269
- - 本 PLAN 是否引用未来产物(H3-H8)?仅在 §4 不在范围列 H6 lint 工具作为后置依赖(合规:lint 是后置依赖不是前置依赖)
270
- - 本 PLAN 是否含"待协调员决定"等推卸字眼?grep 验证:`grep -nE '(TBD|后续讨论|待协调员决定)' docs/decisions/PLAN-H2-identity-isolation.md` 仅元层定义命中(参 ADR-H0 §6 例 4)
271
-
272
- ---
273
-
274
- ## 7. 收尾约定(参 ADR-H9 模式)
275
-
276
- WP-05 reviewer PASS 后:
277
- 1. 翻 ADR-H2 status:Proposed → Accepted(line 3)
278
- 2. 翻本 PLAN frontmatter status:Proposed → Accepted
279
- 3. §11 WP 表(如本 PLAN 后续展开会用,目前 §2 已是 WP 详表)所有 row 翻 ✓ DONE
280
- 4. 收尾 commit 走"原子 -o pathspec"模式(H 系列 plan §3.3 commit 姿势)
281
- 5. 同 commit 写 `.boll/log/harness-self-symptoms.md` 一行 PASS 记录(如演练发现新 spec 误读则附带 spec 澄清)
282
-
283
- ---
284
-
285
- ## 8. 进度追踪
286
-
287
- - [ ] WP-01 schema 文档
288
- - [ ] WP-02 yaml 日志剥离
289
- - [ ] WP-03 6 资产 owner 字段
290
- - [ ] WP-04 ADR-042 D10 补丁
291
- - [ ] WP-05 reviewer 复核