@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.
- package/bin/bolloon-cli.cjs +157 -0
- package/bin/bolloon-daemon.sh +207 -0
- package/bin/bolloon.cmd +11 -0
- package/dist/agents/constraint-layer.js +10 -15
- package/dist/agents/pi-sdk.js +433 -106
- package/dist/agents/protocol.js +82 -1
- package/dist/agents/subagent-manager.js +2 -2
- package/dist/agents/workflow-engine.js +15 -20
- package/dist/agents/workflow-pivot-loop.js +541 -0
- package/dist/bollharness/src/index.js +5 -0
- package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_api_types.js +45 -0
- package/dist/bollharness/src/scripts/checks/check_artifact_link.js +146 -0
- package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +135 -0
- package/dist/bollharness/src/scripts/checks/check_doc_links.js +31 -0
- package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +34 -0
- package/dist/bollharness/src/scripts/checks/check_hook_installed.js +63 -0
- package/dist/bollharness/src/scripts/checks/check_issue_closure.js +41 -0
- package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_security.js +48 -0
- package/dist/bollharness/src/scripts/checks/check_skill_parity.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_versions.js +6 -0
- package/dist/bollharness/src/scripts/checks/finding.js +13 -0
- package/dist/bollharness/src/scripts/checks/next_decision_number.js +20 -0
- package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +6 -0
- package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +8 -0
- package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +8 -0
- package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +8 -0
- package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +8 -0
- package/dist/bollharness/src/scripts/context_router.js +67 -0
- package/dist/bollharness/src/scripts/deploy-guard.js +157 -0
- package/dist/bollharness/src/scripts/guard-feedback.js +192 -0
- package/dist/bollharness/src/scripts/guard_router.js +158 -0
- package/dist/bollharness/src/scripts/hooks/_hook_output.js +6 -0
- package/dist/bollharness/src/scripts/hooks/auto-python3.js +6 -0
- package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +6 -0
- package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +6 -0
- package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +92 -0
- package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +63 -0
- package/dist/bollharness/src/scripts/hooks/inbox-ack.js +6 -0
- package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +6 -0
- package/dist/bollharness/src/scripts/hooks/inbox-validate.js +6 -0
- package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +6 -0
- package/dist/bollharness/src/scripts/hooks/initializer-agent.js +6 -0
- package/dist/bollharness/src/scripts/hooks/loop-detection.js +73 -0
- package/dist/bollharness/src/scripts/hooks/owner-guard.js +6 -0
- package/dist/bollharness/src/scripts/hooks/precompact.js +6 -0
- package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +6 -0
- package/dist/bollharness/src/scripts/hooks/risk-tracker.js +108 -0
- package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +6 -0
- package/dist/bollharness/src/scripts/hooks/session-reflection.js +7 -0
- package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +7 -0
- package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +7 -0
- package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +7 -0
- package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +157 -0
- package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +6 -0
- package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +10 -0
- package/dist/bollharness/src/scripts/install/install-trust-token.js +7 -0
- package/dist/bollharness/src/scripts/install/multi_project_registry.js +9 -0
- package/dist/bollharness/src/scripts/install/phase2_auto.js +21 -0
- package/dist/bollharness/src/scripts/install/pre_commit_installer.js +6 -0
- package/dist/bollharness/src/scripts/install/tier_selector.js +7 -0
- package/dist/bollharness/src/scripts/install/transcript_miner.js +7 -0
- package/dist/bollharness/src/scripts/lib/claim_patterns.js +10 -0
- package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +12 -0
- package/dist/bollharness/src/scripts/sanitize.js +6 -0
- package/dist/bollharness-integration/channel-judgment-engine.js +530 -0
- package/dist/bollharness-integration/context-chain-router.js +383 -0
- package/dist/bollharness-integration/context-router-judgment.js +13 -21
- package/dist/bollharness-integration/context-router.js +22 -64
- package/dist/bollharness-integration/gate-state-machine.js +14 -19
- package/dist/bollharness-integration/gate-transition-hooks.js +16 -61
- package/dist/bollharness-integration/guard-checker.js +21 -68
- package/dist/bollharness-integration/index.js +14 -124
- package/dist/bollharness-integration/integration.js +13 -20
- package/dist/bollharness-integration/llm-judgment-engine.js +569 -0
- package/dist/bollharness-integration/skill-adapter.js +18 -64
- package/dist/cli-entry.js +261 -0
- package/dist/constraint-runtime/src/commands.js +17 -7
- package/dist/constraint-runtime/src/constraint/budget.js +1 -6
- package/dist/constraint-runtime/src/constraint/permission.js +1 -6
- package/dist/constraint-runtime/src/models.js +1 -3
- package/dist/constraint-runtime/src/tools.js +17 -7
- package/dist/constraints/index.js +1 -7
- package/dist/documents/reader.js +8 -49
- package/dist/heartbeat/DaemonManager.js +242 -0
- package/dist/heartbeat/HealthMonitor.js +285 -0
- package/dist/heartbeat/StartupVerifier.js +205 -0
- package/dist/heartbeat/Watchdog.js +168 -0
- package/dist/heartbeat/index.js +84 -0
- package/dist/heartbeat/types.js +5 -0
- package/dist/index.js +381 -28
- package/dist/llm/config-store.js +31 -57
- package/dist/llm/llm-judgment-client.js +389 -0
- package/dist/llm/pi-ai.js +9 -52
- package/dist/network/agent-network.js +46 -90
- package/dist/network/hybrid-messenger.js +125 -0
- package/dist/network/iroh-bootstrap.js +38 -0
- package/dist/network/iroh-discovery.js +145 -0
- package/dist/network/iroh-integration.js +9 -16
- package/dist/network/iroh-transport.js +10 -48
- package/dist/network/p2p.js +23 -62
- package/dist/network/storage/adapters/json-adapter.js +4 -42
- package/dist/network/storage/index.js +147 -0
- package/dist/network/storage/types.js +14 -0
- package/dist/pi-ecosystem/index.js +233 -0
- package/dist/pi-ecosystem-colony/index.js +29 -90
- package/dist/pi-ecosystem-goals/index.js +20 -74
- package/dist/pi-ecosystem-judgment/decision.js +29 -47
- package/dist/pi-ecosystem-judgment/distillation.js +16 -29
- package/dist/pi-ecosystem-judgment/human-value-store.js +13 -60
- package/dist/pi-ecosystem-judgment/index.js +21 -74
- package/dist/pi-ecosystem-judgment/value-injection.js +26 -72
- package/dist/pi-ecosystem-mcp/index.js +24 -78
- package/dist/pi-ecosystem-subagents/index.js +20 -69
- package/dist/social/ant-colony/AdaptiveHeartbeat.js +3 -8
- package/dist/social/ant-colony/PheromoneEngine.js +11 -49
- package/dist/social/ant-colony/index.js +6 -0
- package/dist/social/ant-colony/types.js +4 -8
- package/dist/social/channels/ChannelManager.js +8 -46
- package/dist/social/channels/DiapChannelBridge.js +9 -47
- package/dist/social/channels/InterestMatcher.js +2 -7
- package/dist/social/channels/channel-agent-session.js +309 -0
- package/dist/social/channels/channel-heartbeat-agent.js +494 -0
- package/dist/social/channels/diap-doc-parser.js +204 -0
- package/dist/social/channels/harness-workflow-integrator.js +446 -0
- package/dist/social/channels/index.js +9 -0
- package/dist/social/channels/types.js +3 -7
- package/dist/social/global-shared-context.js +6 -47
- package/dist/social/heartbeat.js +29 -72
- package/dist/social/persona/enhanced-persona.js +299 -0
- package/dist/web/client.js +302 -136
- package/dist/web/components/p2p/index.js +159 -9
- package/dist/web/components/p2p/p2p-connection.js +136 -0
- package/dist/web/components/p2p/p2p-manager.js +24 -0
- package/dist/web/components/p2p/p2p-store-memory.js +1 -1
- package/dist/web/components/p2p/types.js +7 -0
- package/dist/web/index.html +5 -0
- package/dist/web/style.css +118 -0
- package/package.json +12 -6
- package/scripts/build-cli.js +206 -0
- package/scripts/postinstall.js +153 -0
- package/src/agents/pi-sdk.ts +347 -28
- package/src/agents/protocol.ts +95 -1
- package/src/agents/workflow-pivot-loop.ts +674 -0
- package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +34 -0
- package/src/cli-entry.ts +304 -0
- package/src/heartbeat/DaemonManager.ts +283 -0
- package/src/heartbeat/HealthMonitor.ts +316 -0
- package/src/heartbeat/StartupVerifier.ts +223 -0
- package/src/heartbeat/Watchdog.ts +198 -0
- package/src/heartbeat/index.ts +108 -0
- package/src/heartbeat/types.ts +82 -0
- package/src/llm/config-store.ts +23 -5
- package/src/network/iroh-transport.ts +3 -3
- package/src/web/client.js +302 -136
- package/src/web/components/p2p/P2PModal.tsx +91 -3
- package/src/web/components/p2p/index.ts +171 -9
- package/src/web/components/p2p/p2p-connection.ts +153 -1
- package/src/web/components/p2p/p2p-manager.ts +39 -1
- package/src/web/components/p2p/p2p-store-memory.ts +1 -1
- package/src/web/components/p2p/p2p-tools.ts +315 -0
- package/src/web/components/p2p/types.ts +58 -0
- package/src/web/index.html +5 -0
- package/src/web/server.ts +353 -36
- package/src/web/style.css +118 -0
- package/tsconfig.cli.json +16 -0
- package/tsconfig.electron.json +1 -1
- package/tsconfig.json +1 -2
- package/dist/constraint-runtime/tests/agent.test.js +0 -16
- package/dist/constraint-runtime/tests/constraint.test.js +0 -41
- package/dist/constraint-runtime/tests/skill.test.js +0 -19
- package/dist/constraint-runtime/tests/thinking.test.js +0 -22
- package/dist/electron-preload.js +0 -15
- package/dist/electron-preload.js.map +0 -1
- package/dist/electron.js +0 -206
- package/dist/electron.js.map +0 -1
- package/dist/test/constraint-layer.test.js +0 -164
- package/dist/test/global-shared-context.test.js +0 -315
- package/dist/test/pi-sdk.test.js +0 -47
- package/dist/test/set-persona.test.js +0 -38
- package/dist/test/subagent-manager.test.js +0 -276
- package/dist/test/workflow-engine.test.js +0 -87
- package/dist/web/server.js +0 -1647
- package/dist/web/server.js.map +0 -1
- package/dist/workflows/collaboration.js +0 -374
- package/dist/workflows/index.js +0 -54
- package/docs/agent-communication.md +0 -333
- package/docs/plans/2026-05-15-document-agent-design.md +0 -479
- package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
- package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
- package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
- package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
- 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
- package/src/bollharness/.boll/CLAUDE.md.template +0 -34
- package/src/bollharness/.boll/MANIFEST.yaml +0 -213
- package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
- package/src/bollharness/.boll/agents/review-base.yaml +0 -108
- package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
- package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
- package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
- package/src/bollharness/.boll/issue-adapter.yaml +0 -31
- package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
- package/src/bollharness/.boll/rules/backend-routes.md +0 -31
- package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
- package/src/bollharness/.boll/rules/env-vars.md +0 -32
- package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
- package/src/bollharness/.boll/rules/repo-structure.md +0 -42
- package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
- package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
- package/src/bollharness/.boll/settings.json +0 -180
- package/src/bollharness/.boll/settings.json.template +0 -31
- package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
- package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
- package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
- package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
- package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
- package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
- package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
- package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
- package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
- package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
- package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
- package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
- package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
- package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
- package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
- package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
- package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
- package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
- package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
- package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
- package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
- package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
- package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
- package/src/bollharness/.boll/tasks/.gitkeep +0 -0
- package/src/bollharness/.boll/toolkit-index.yaml +0 -112
- package/src/bollharness/.claude/agents/review-base.yaml +0 -108
- package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
- package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
- package/src/bollharness/.claude/settings.json +0 -157
- package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
- package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
- package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
- package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
- package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
- package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
- package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
- package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
- package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
- package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
- package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
- package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
- package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
- package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
- package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
- package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
- package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
- package/src/bollharness/.githooks/pre-commit +0 -21
- package/src/bollharness/.github/workflows/ci.yml +0 -88
- package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
- package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
- package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
- package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
- package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
- package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
- package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
- package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
- package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
- package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
- package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
- package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
- package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
- package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
- package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
- package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
- package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
- package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
- package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
- package/src/bollharness/docs/launch-article-en.md +0 -276
- package/src/bollharness/docs/launch-article-zh.md +0 -305
- package/src/bollharness/docs/practice.html +0 -356
- package/src/bollharness/docs/practice.md +0 -82
- package/src/bollharness/docs/research/round-1/README.md +0 -11
- package/src/bollharness/docs/research/round-2/README.md +0 -11
- package/src/bollharness/docs/research/round-3/README.md +0 -11
- package/src/bollharness/docs/research/round-4/README.md +0 -11
- package/src/bollharness/docs/research/round-5/README.md +0 -11
- package/src/bollharness/docs/research/round-6/README.md +0 -11
- package/src/bollharness/package-lock.json +0 -48
- package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
- package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
- package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
- package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
- package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
- package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
- package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
- package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
- package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
- package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
- package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
- package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
- package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
- package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
- package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
- package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
- package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
- package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
- package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
- package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
- package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
- package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
- package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
- package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
- package/src/bollharness/tsconfig.json +0 -26
- package/src/constraint-runtime/package-lock.json +0 -48
- package/src/constraint-runtime/package.json +0 -34
- package/src/constraint-runtime/src/_archive_helper.ts +0 -16
- package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
- package/src/constraint-runtime/src/agent/index.ts +0 -1
- package/src/constraint-runtime/src/assistant/index.ts +0 -15
- package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
- package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
- package/src/constraint-runtime/src/bridge/index.ts +0 -15
- package/src/constraint-runtime/src/buddy/index.ts +0 -15
- package/src/constraint-runtime/src/cli/index.ts +0 -15
- package/src/constraint-runtime/src/command_graph.ts +0 -20
- package/src/constraint-runtime/src/commands.ts +0 -83
- package/src/constraint-runtime/src/components/index.ts +0 -15
- package/src/constraint-runtime/src/constants/index.ts +0 -15
- package/src/constraint-runtime/src/constraint/budget.ts +0 -25
- package/src/constraint-runtime/src/constraint/index.ts +0 -3
- package/src/constraint-runtime/src/constraint/permission.ts +0 -28
- package/src/constraint-runtime/src/context.ts +0 -45
- package/src/constraint-runtime/src/coordinator/index.ts +0 -15
- package/src/constraint-runtime/src/cost_hook.ts +0 -6
- package/src/constraint-runtime/src/cost_tracker.ts +0 -9
- package/src/constraint-runtime/src/deferred_init.ts +0 -18
- package/src/constraint-runtime/src/direct_modes.ts +0 -13
- package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
- package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
- package/src/constraint-runtime/src/execution_registry.ts +0 -41
- package/src/constraint-runtime/src/history.ts +0 -16
- package/src/constraint-runtime/src/hooks/index.ts +0 -15
- package/src/constraint-runtime/src/index.ts +0 -28
- package/src/constraint-runtime/src/ink.ts +0 -4
- package/src/constraint-runtime/src/keybindings/index.ts +0 -15
- package/src/constraint-runtime/src/memdir/index.ts +0 -15
- package/src/constraint-runtime/src/migrations/index.ts +0 -15
- package/src/constraint-runtime/src/models.ts +0 -49
- package/src/constraint-runtime/src/moreright/index.ts +0 -15
- package/src/constraint-runtime/src/native_ts/index.ts +0 -15
- package/src/constraint-runtime/src/output_styles/index.ts +0 -15
- package/src/constraint-runtime/src/parity_audit.ts +0 -23
- package/src/constraint-runtime/src/plugins/index.ts +0 -15
- package/src/constraint-runtime/src/port_manifest.ts +0 -20
- package/src/constraint-runtime/src/prefetch.ts +0 -17
- package/src/constraint-runtime/src/query.ts +0 -7
- package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
- package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
- package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
- package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
- package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
- package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
- package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
- package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
- package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
- package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
- package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
- package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
- package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
- package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
- package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
- package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
- package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
- package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
- package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
- package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
- package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
- package/src/constraint-runtime/src/remote/index.ts +0 -15
- package/src/constraint-runtime/src/remote_runtime.ts +0 -17
- package/src/constraint-runtime/src/runtime/index.ts +0 -1
- package/src/constraint-runtime/src/runtime/session.ts +0 -42
- package/src/constraint-runtime/src/schemas/index.ts +0 -15
- package/src/constraint-runtime/src/screens/index.ts +0 -15
- package/src/constraint-runtime/src/server/index.ts +0 -15
- package/src/constraint-runtime/src/services/index.ts +0 -15
- package/src/constraint-runtime/src/session_store.ts +0 -32
- package/src/constraint-runtime/src/setup.ts +0 -50
- package/src/constraint-runtime/src/skills/index.ts +0 -1
- package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
- package/src/constraint-runtime/src/state/index.ts +0 -15
- package/src/constraint-runtime/src/system_init.ts +0 -21
- package/src/constraint-runtime/src/thinking/engine.ts +0 -61
- package/src/constraint-runtime/src/thinking/index.ts +0 -1
- package/src/constraint-runtime/src/tool_pool.ts +0 -20
- package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
- package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
- package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
- package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
- package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
- package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
- package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
- package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
- package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
- package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
- package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
- package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
- package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
- package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
- package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
- package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
- package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
- package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
- package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
- package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
- package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
- package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
- package/src/constraint-runtime/src/tools.ts +0 -100
- package/src/constraint-runtime/src/transcript.ts +0 -23
- package/src/constraint-runtime/src/types/index.ts +0 -15
- package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
- package/src/constraint-runtime/src/utils/index.ts +0 -15
- package/src/constraint-runtime/src/vim/index.ts +0 -15
- package/src/constraint-runtime/src/voice/index.ts +0 -15
- package/src/constraint-runtime/tests/agent.test.ts +0 -20
- package/src/constraint-runtime/tests/constraint.test.ts +0 -47
- package/src/constraint-runtime/tests/skill.test.ts +0 -23
- package/src/constraint-runtime/tests/thinking.test.ts +0 -28
- package/src/constraint-runtime/tsconfig.json +0 -13
- package/src/pi-ecosystem/index.ts +0 -453
- package/src/pi-ecosystem-colony/index.ts +0 -482
- package/src/pi-ecosystem-goals/index.ts +0 -585
- package/src/pi-ecosystem-judgment/decision.ts +0 -431
- package/src/pi-ecosystem-judgment/distillation.ts +0 -398
- package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
- package/src/pi-ecosystem-judgment/index.ts +0 -678
- package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
- package/src/pi-ecosystem-mcp/index.ts +0 -427
- package/src/pi-ecosystem-subagents/index.ts +0 -408
- package/src/test/ai-judgment-test.ts +0 -92
- package/src/test/bollharness-integration.test.ts +0 -398
- package/src/test/channel-agent-multi-dialogue.ts +0 -265
- package/src/test/channel-heartbeat-agent-test.ts +0 -244
- package/src/test/constraint-layer.test.ts +0 -191
- package/src/test/diap-identity-test.ts +0 -222
- package/src/test/diap-quick-test.ts +0 -73
- package/src/test/global-shared-context.test.ts +0 -393
- package/src/test/harness-judgment-injection.test.ts +0 -353
- package/src/test/harness-workflow-integrator-test.ts +0 -285
- package/src/test/human-value-store.test.ts +0 -316
- package/src/test/hybrid-integration-test.ts +0 -126
- package/src/test/hybrid-messenger-verify.ts +0 -68
- package/src/test/iroh-bistream-debug.ts +0 -50
- package/src/test/iroh-communication.test.ts +0 -81
- package/src/test/iroh-debug-test.ts +0 -69
- package/src/test/iroh-diap-test.ts +0 -90
- package/src/test/iroh-direct-connect.ts +0 -65
- package/src/test/iroh-e2e-fixed.ts +0 -106
- package/src/test/iroh-e2e-same-process.ts +0 -83
- package/src/test/iroh-e2e.ts +0 -83
- package/src/test/iroh-final-e2e.ts +0 -84
- package/src/test/iroh-relay-test.ts +0 -46
- package/src/test/iroh-simple-test.ts +0 -49
- package/src/test/iroh-transport-verify.ts +0 -60
- package/src/test/iroh-transport.test.ts +0 -47
- package/src/test/iroh-two-nodes.ts +0 -87
- package/src/test/iroh-verify.ts +0 -55
- package/src/test/judgment-decision.test.ts +0 -373
- package/src/test/llm-judgment-integration.test.ts +0 -257
- package/src/test/p2p-agent-complex-dialogue.ts +0 -490
- package/src/test/p2p-agent-dialogue.ts +0 -423
- package/src/test/p2p-agent-full-bidirectional.ts +0 -686
- package/src/test/p2p-agent-harness-flow.ts +0 -562
- package/src/test/p2p-agent-harness-single.ts +0 -175
- package/src/test/p2p-ai-dialogue-test.ts +0 -374
- package/src/test/p2p-cid-connect-test.ts +0 -245
- package/src/test/p2p-connect-receiver.ts +0 -85
- package/src/test/p2p-iroh-test.ts +0 -214
- package/src/test/p2p-minimal-test.ts +0 -264
- package/src/test/p2p-node-1.ts +0 -172
- package/src/test/p2p-node-2.ts +0 -172
- package/src/test/p2p-server.ts +0 -335
- package/src/test/p2p-two-nodes-test.ts +0 -542
- package/src/test/pi-sdk.test.ts +0 -47
- package/src/test/set-persona.ts +0 -56
- package/src/test/simple.test.ts +0 -11
- package/src/test/storage-integration.test.ts +0 -191
- package/src/test/subagent-manager.test.ts +0 -392
- package/src/test/test-gate-flow.test.ts +0 -92
- package/src/test/workflow-engine.test.ts +0 -101
- package/src/workflows/collaboration.ts +0 -455
- package/src/workflows/index.ts +0 -64
- package/vitest.config.ts +0 -12
- package//346/203/263/346/263/225.md +0 -79
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
# ADR-H8: 已知 issue + 文档合规
|
|
2
|
-
|
|
3
|
-
**状态**:v1.0 起草中(2026-04-28)
|
|
4
|
-
**Owner**:H 系列 / hanis-main
|
|
5
|
-
**前置**:ADR-H0 (元规约) + ADR-H5 (Gate 量纲化) + ADR-H6 (state file health) 已签署
|
|
6
|
-
**后续**:作为拓扑 D 最后一站,本 ADR 关闭后 H 系列收尾
|
|
7
|
-
|
|
8
|
-
## §H0 自检
|
|
9
|
-
|
|
10
|
-
按 ADR-H0 §H0.6 执检分离要求:
|
|
11
|
-
|
|
12
|
-
- 起草人:当前 session(H6 reviewer 签字后立即起草)
|
|
13
|
-
- ≤300 行:本 ADR 实测 < 300(见 §11 verification)
|
|
14
|
-
- 不引用未来 H 产物:本文档仅引用已签署 H 序列(H0/H1/H2/H3/H4/H5/H6/H9);已退役 H 在 §1.1 表中以 footnote 形式说明,不作为依赖
|
|
15
|
-
- 不写"待协调员决定" / "TBD" / "后续讨论"
|
|
16
|
-
|
|
17
|
-
## §1 背景与触发
|
|
18
|
-
|
|
19
|
-
### 1.1 H 系列拓扑 D 进度
|
|
20
|
-
|
|
21
|
-
| H | 主题 | ADR | PLAN | reviewer | 状态 |
|
|
22
|
-
|---|------|-----|------|----------|------|
|
|
23
|
-
| H0 | 元规约 | ✓ | — | Nature 单签 | 已签 |
|
|
24
|
-
| H9 | 邮箱机制 | ✓ | ✓ | reviewer | 已签 |
|
|
25
|
-
| H2 | 身份隔离 | ✓ | ✓ | reviewer | 已签 |
|
|
26
|
-
| H3 | memory scope | ✓ | ✓ | reviewer | 已签 |
|
|
27
|
-
| H4 | prompt 治理 | ✓ | ✓ | reviewer | 已签 |
|
|
28
|
-
| H1 | 学习层复活 | ✓ | ✓ | reviewer | 已签 |
|
|
29
|
-
| H5 | Gate 量纲化 | ✓ | ✓ | reviewer | 已签 |
|
|
30
|
-
| H6 | state 健康度 | ✓ | ✓ | reviewer | 本 ADR 起草前刚签 |
|
|
31
|
-
| **H8** | **本 ADR** | **起草中** | 起草中 | 待 | 进行中 |
|
|
32
|
-
|
|
33
|
-
原拓扑 v0.3 中的"hook IO 收口"H 已按 v0.5 决议退役不再独立交付,相关 IO 治理已收归 ADR-058 §D1(hook output schema)。
|
|
34
|
-
|
|
35
|
-
### 1.2 H8 触发动机
|
|
36
|
-
|
|
37
|
-
H 系列实施期间,以下三类问题在主仓堆积:
|
|
38
|
-
|
|
39
|
-
1. **ADR 索引完全没建立**:74 个 ADR 文件,但无 `docs/decisions/ADR-INDEX.md`。新人 / future AI 找 ADR 必须 ls + grep,没有按主题/状态的导航
|
|
40
|
-
2. **CHANGELOG 长间隙**:0.4.4 (2026-04-08) → 0.4.5 (2026-04-28) 之间 20 天 / 672 commit / 15+ 个 PLAN,但 0.4.5 changelog 只覆盖 PLAN-101 / PLAN-104。中间漏掉的 PLAN-H1~H6/H9/PLAN-103 K6/PLAN-096 admin/PLAN-093 MCP 等多条上线记录
|
|
41
|
-
3. **open issue 量爆炸**:383 issue 文件中 93 条 status=open,4 月新建的 235 条。其中相当一部分实际已经 fixed 或 superseded,只是没 flip 状态
|
|
42
|
-
|
|
43
|
-
### 1.3 与 H 系列其他 H 的边界
|
|
44
|
-
|
|
45
|
-
- 本 H 不重新设计 issue 工作流(ADR-030 已定)
|
|
46
|
-
- 本 H 不重新设计 ADR 编号规则(ADR-038 D8 已定)
|
|
47
|
-
- 本 H 不接管 changelog 真相源职责(CHANGELOG.md + mcp-server/CHANGELOG.md 已定)
|
|
48
|
-
- 本 H **只做盘点 / 索引 / 补全 / 闭环**——不创造新治理机制
|
|
49
|
-
|
|
50
|
-
按 ADR-041 v1.0 哲学:"调字不加机制",H8 是治理空白的填充,不是新治理框架。
|
|
51
|
-
|
|
52
|
-
## §2 决策本质
|
|
53
|
-
|
|
54
|
-
### 2.1 H8 = 文档合规闸 + 已知 issue 关闭闸
|
|
55
|
-
|
|
56
|
-
H8 在 H 系列收尾位置,对 H 系列累积的"账面浮动"做一次性结算:
|
|
57
|
-
|
|
58
|
-
- **账面浮动**:ADR/PLAN/issue/CHANGELOG 的状态与代码实际状态不同步(feedback_verification_honesty.md 的 N+1 次实例)
|
|
59
|
-
- **结算手段**:盘点 + 索引 + 补全 + 关闭,全部 in-tree 文档动作;不动 hook、不动 yaml 治理字段、不动 SKILL.md prompt
|
|
60
|
-
|
|
61
|
-
### 2.2 ADR-038 D11.2 适用性
|
|
62
|
-
|
|
63
|
-
H8 交付物**不属于 schema-level**(不进 review-contract.yaml)也**不属于 prompt-level**(不进 SKILL.md)。它属于 **artifact-level**(直接交付文档制品)。这是 H 系列里第一个 artifact-level H:
|
|
64
|
-
|
|
65
|
-
| H | level | 主交付 |
|
|
66
|
-
|---|-------|--------|
|
|
67
|
-
| H4 prompt 治理 | prompt-level (SKILL.md) | 黑话/推卸 prompt 段 |
|
|
68
|
-
| H5/H6 schema 化 | schema-level (review-contract.yaml) | line_caps / inflation / state_inventory / state_health_indicators |
|
|
69
|
-
| H1 学习层 | mechanism-level (skill 触发节奏) | crystal-learn 触发 |
|
|
70
|
-
| H2 身份隔离 | schema-level (frontmatter + ownership.yaml) | owner 字段 + worktree 隔离 |
|
|
71
|
-
| H3 memory scope | artifact-level (memory dir 重组) | MEMORY.md 段化 + topic file |
|
|
72
|
-
| **H8** | **artifact-level (in-tree docs)** | **ADR-INDEX + CHANGELOG 补 + issue 闭** |
|
|
73
|
-
|
|
74
|
-
H8 与 H3 是 H 系列两个 artifact-level H;其余都是 schema/prompt/mechanism level。
|
|
75
|
-
|
|
76
|
-
## §3 INV(不变量)
|
|
77
|
-
|
|
78
|
-
### INV-H8-1 ADR 索引完整性
|
|
79
|
-
|
|
80
|
-
`docs/decisions/ADR-INDEX.md` 必须存在;每个 `docs/decisions/ADR-*.md` 文件必须在索引中有 1 行。
|
|
81
|
-
|
|
82
|
-
**红线**:新增 ADR 必须同时更新索引,没有"先合并 ADR 再补索引"的豁免。
|
|
83
|
-
|
|
84
|
-
**检测**:
|
|
85
|
-
```bash
|
|
86
|
-
diff <(ls docs/decisions/ADR-*.md | sed 's|docs/decisions/||;s|\.md$||' | grep -v '^ADR-INDEX$' | sort) \
|
|
87
|
-
<(awk -F'[][]' '/^- \[ADR-/{print $2}' docs/decisions/ADR-INDEX.md | sort)
|
|
88
|
-
# 期望: 输出空(双向集合相等;ADR-INDEX 自身因匹配 ADR-*.md glob 但不应在自己的索引列表里,需排除以免自指)
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### INV-H8-2 CHANGELOG 间隙上限
|
|
92
|
-
|
|
93
|
-
CHANGELOG.md 相邻两版本号之间的实际历史时间间隙 ≤ 14 天,或必须包含同时间段的"intermediate" 占位记录解释为何无版本号。
|
|
94
|
-
|
|
95
|
-
**红线**:禁止跳过 ≥ 3 个 minor patch 数字(如 0.4.4 → 0.4.7 中跳过 0.4.5/0.4.6 不被允许)。
|
|
96
|
-
|
|
97
|
-
**检测**(人工 + 半自动):
|
|
98
|
-
```bash
|
|
99
|
-
grep -E "^## \[" CHANGELOG.md | head -20
|
|
100
|
-
# 人工读:每两条之间日期差 ≤ 14 天
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### INV-H8-3 open issue 数量上限
|
|
104
|
-
|
|
105
|
-
`docs/issues/*.md` 中 `status: open` 的文件 ≤ 80 条;超过 80 必须触发批量 triage / close。
|
|
106
|
-
|
|
107
|
-
**红线**:H8 关闭时 open issue 总数 ≤ 80(当前实测 93,需关闭 ≥ 13 条)。
|
|
108
|
-
|
|
109
|
-
**检测**:
|
|
110
|
-
```bash
|
|
111
|
-
grep -lE "^status: open" docs/issues/*.md 2>/dev/null | wc -l
|
|
112
|
-
# 期望: ≤ 80
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## §4 H8 受管资产
|
|
116
|
-
|
|
117
|
-
| 资产 | 路径 | 本 H 动作 |
|
|
118
|
-
|------|------|-----------|
|
|
119
|
-
| ADR 索引 | `docs/decisions/ADR-INDEX.md` | 新建(不存在) |
|
|
120
|
-
| CHANGELOG | `CHANGELOG.md` | 补 0.4.4 → 0.4.5 间隙的 intermediate notes |
|
|
121
|
-
| H 系列上线条目 | CHANGELOG.md 0.4.5 段 | 增加 H 系列 backfill 段落 |
|
|
122
|
-
| open issue | `docs/issues/*.md` | 批量审查 + flip ≥ 13 条到 fixed/superseded |
|
|
123
|
-
| 合规清单 | `docs/decisions/tasks/PLAN-H8/WP-03/compliance-checklist.md` | 新建,列 5+ 条 H8 闭关后必须满足的合规规则 |
|
|
124
|
-
|
|
125
|
-
## §5 ADR-042 D3/D4/D9 复用(不重新发明)
|
|
126
|
-
|
|
127
|
-
按 ADR-H6 §6 抗 compact 接口签字模式,H8 也复用 ADR-042 同一组接口:
|
|
128
|
-
|
|
129
|
-
- **D3 Session-Owner**:H8 实施期间 session owner = h8-window,跨 compact 仍能复读
|
|
130
|
-
- **D4 owner-guard**:批量 issue flip 不会被 owner-guard 误拦(owner 一致)
|
|
131
|
-
- **D9 AGENTS.md 梯度加载**:lead skill H8 段按 stage 懒加载,不全量灌
|
|
132
|
-
|
|
133
|
-
签字 = 不为 D3/D4/D9 重新发明替代品。
|
|
134
|
-
|
|
135
|
-
## §6 与 H5/H6 schema 关系
|
|
136
|
-
|
|
137
|
-
H8 不动 review-contract.yaml(artifact-level,非 schema-level),但 H8 完工后 review-contract.yaml 可加 line_caps 项保护 ADR-INDEX.md(如 ≤500 行)。本 ADR 留作 H 系列收尾建议,不在 H8 内强制。
|
|
138
|
-
|
|
139
|
-
## §7 不做什么(防膨胀红线)
|
|
140
|
-
|
|
141
|
-
H8 **绝对不做**以下 4 类(防 ADR-041 v0.1→v0.3 膨胀重演):
|
|
142
|
-
|
|
143
|
-
1. ❌ 自动化 ADR 索引生成 hook(artifact-level 治理,pre-commit 跑 grep 即可手工维护)
|
|
144
|
-
2. ❌ CHANGELOG bot / changelog auto-generation 工具(人工写为佳,AI 协助但不接管)
|
|
145
|
-
3. ❌ issue 状态自动机(ADR-030 已定,不重新设计)
|
|
146
|
-
4. ❌ 合规度 metrics dashboard(按 ADR-041 v1.0 红线 + 每周人脑回顾)
|
|
147
|
-
|
|
148
|
-
## §8 H8 阶段拆解(详见 PLAN-H8)
|
|
149
|
-
|
|
150
|
-
| 阶段 | 主题 | DoD 关键 |
|
|
151
|
-
|------|------|----------|
|
|
152
|
-
| H8-WP-01 | 盘点 | issue 总数 / open 数 / 主题分布 / ADR 数 / CHANGELOG 缺口列出 |
|
|
153
|
-
| H8-WP-02 | 起草 ADR-H8 + PLAN-H8 | 本 ADR ≤300 + PLAN-H8 ≤500 + INV ≥3 |
|
|
154
|
-
| H8-WP-03 | 实施 | ADR-INDEX 新建 + CHANGELOG 补 ≥3 条 + 关闭 ≥13 issue + 合规清单 ≥5 |
|
|
155
|
-
| H8-WP-04 | dogfood | self-check + INV-H8-1/2/3 当场实测 |
|
|
156
|
-
| H8-WP-05 | reviewer signoff | 独立 subagent 14 维度审 PASS |
|
|
157
|
-
|
|
158
|
-
## §9 H 系列收尾(H8 闭合后)
|
|
159
|
-
|
|
160
|
-
H8 闭合后,H 系列拓扑 D 全部完成。建议收尾动作(**非 H8 scope,留给 hanis-main 维护者**):
|
|
161
|
-
|
|
162
|
-
1. 在 `.boll/log/hanis-self-symptoms.md` 做一次完整复盘(H 系列实施期间累积的自指症状)
|
|
163
|
-
2. 把 H 系列累积的 P3 informational 一并整理(INV-H1-3 / INV-H5-3 / INV-H6-3 修正建议)
|
|
164
|
-
3. 整体 hanis-main → main merge 之前的 vNext smoke 重跑
|
|
165
|
-
|
|
166
|
-
## §10 风险
|
|
167
|
-
|
|
168
|
-
| 风险 | 影响 | 缓解 |
|
|
169
|
-
|------|------|------|
|
|
170
|
-
| 批量 issue flip 误关 | 错把仍 open 的 issue 标 fixed | 每条 flip 必须附 1 行 justification + 引用 commit/PR |
|
|
171
|
-
| ADR-INDEX.md 漂移 | 新 ADR 加进来时索引漏掉 | INV-H8-1 检测命令进 review-contract.yaml line_caps(H 系列收尾任务) |
|
|
172
|
-
| CHANGELOG backfill 内容错误 | 把没 ship 的 PLAN 标 ship | 每条 backfill 引用至少 1 个 ship commit hash |
|
|
173
|
-
|
|
174
|
-
## §11 verification
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
# 行数限
|
|
178
|
-
wc -l docs/decisions/ADR-H8-issue-and-doc-compliance.md
|
|
179
|
-
# 期望: ≤300
|
|
180
|
-
|
|
181
|
-
# H 引用范围(不引未来 H)
|
|
182
|
-
awk '/^```/{f=!f; next} !f' docs/decisions/ADR-H8-issue-and-doc-compliance.md | grep -cE "H(7|10|11|12)"
|
|
183
|
-
# 期望: 0(H7 已退役,10-12 不存在)
|
|
184
|
-
|
|
185
|
-
# INV 数量
|
|
186
|
-
grep -c "^### INV-H8-" docs/decisions/ADR-H8-issue-and-doc-compliance.md
|
|
187
|
-
# 期望: ≥3
|
|
188
|
-
|
|
189
|
-
# 自检段落
|
|
190
|
-
grep -c "^## §H0 自检" docs/decisions/ADR-H8-issue-and-doc-compliance.md
|
|
191
|
-
# 期望: 1
|
|
192
|
-
|
|
193
|
-
# 不做什么段
|
|
194
|
-
grep -c "^## §7 不做什么" docs/decisions/ADR-H8-issue-and-doc-compliance.md
|
|
195
|
-
# 期望: 1
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
## §12 交付时间
|
|
199
|
-
|
|
200
|
-
- 起草:2026-04-28 20:10+08:00(本文件)
|
|
201
|
-
- 实施目标:2026-04-28 当晚(夜间 standing delegation 全自动模式)
|
|
202
|
-
- 交付预算:1 个 session 内完成 5 WP + reviewer signoff
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
# ADR-H9: harness 多窗口邮箱机制(取代人脑协调员)
|
|
2
|
-
|
|
3
|
-
**状态**: Accepted(PLAN-H9 + 5 hook 落地 + Nature 真实演练 PASS [附录 A.2] + 非起草 reviewer 复核 task #17 完成,2026-04-28)
|
|
4
|
-
**日期**: 2026-04-28
|
|
5
|
-
**起草者**: Nature(AI 助手协助)
|
|
6
|
-
**签字者**: 待非起草 reviewer 复核
|
|
7
|
-
**上下文**: `docs/decisions/ADR-H0-meta-charter.md` / harness 拓扑 D 修订版(H0 → H9 → H2 → H3 → H4 → H1 → {H5/H6/H8 并行},原 H7 已撤销见 `.boll/log/harness-self-symptoms.md` §4.3)
|
|
8
|
-
|
|
9
|
-
> 编号说明:走 harness 系列独立编号空间(ADR-Hx),不占主仓 ADR-XXX。
|
|
10
|
-
>
|
|
11
|
-
> 取代关系:本 ADR 把"主窗口人脑协调员"物理化为"文件队列 + hook 自动注入 + ScheduleWakeup 自循环"。Nature 启动主窗口后只说"开始 harness 系列",主窗口靠 SessionStart 注入读邮箱、靠 ScheduleWakeup 持续轮询,不再手动 ping / 复制粘贴。
|
|
12
|
-
|
|
13
|
-
## 1. 决策
|
|
14
|
-
|
|
15
|
-
harness 多窗口协作通信走文件邮箱(inbox),路径 `.boll/inbox/`,schema 锁定为 **message-v1**(yaml frontmatter + markdown body)。5 个 hook 承担 **ledger / validate / inject / poll / ack** 五职。主窗口扮演"脚本协调员",不接受人手 ping。
|
|
16
|
-
|
|
17
|
-
## 2. 为什么需要邮箱
|
|
18
|
-
|
|
19
|
-
harness 起草过程中 Nature 反复扮演"信使"——子窗口完工或卡壳时手动复制粘贴回主窗口。这本身就是 harness 要修的"协调断裂"——人脑队列容量有限、易丢、跨 session 不可见。
|
|
20
|
-
|
|
21
|
-
继续用人手 ping 推进会撞 3 类问题:
|
|
22
|
-
- 子窗口失败 / 卡壳 → 等 Nature 看到 → 手动协调 → 时延 / 丢消息
|
|
23
|
-
- 主窗口长时间不在线时子窗口"边缘化",等不到反馈又不能自决
|
|
24
|
-
- 同一进度容易重复进 proposals + 主窗口对话双写
|
|
25
|
-
|
|
26
|
-
文件邮箱把通信物理化:所有窗口间交互留痕、可机器扫、可重放、可校验 schema。
|
|
27
|
-
|
|
28
|
-
## 3. inbox 路径约定(schema 锁死)
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
.boll/inbox/
|
|
32
|
-
├── main/
|
|
33
|
-
│ ├── unread/ # 主窗口 SessionStart 全量注入源
|
|
34
|
-
│ ├── in-flight/ # 处理中(崩溃恢复用,见 §6.2)
|
|
35
|
-
│ └── processed/ # 主窗口已处理
|
|
36
|
-
├── window-h0/ # 子窗口出件箱 + acks/
|
|
37
|
-
│ └── acks/
|
|
38
|
-
├── window-h1/ window-h2/ window-h3/ window-h4/
|
|
39
|
-
├── window-h5/ window-h6/ window-h8/ window-h9/
|
|
40
|
-
# 注:window-h7 缺位 = 拓扑 D H7 撤销(参 .boll/log/harness-self-symptoms.md §4.3 调研缺失/重复立项);非编号空洞,是有意省略
|
|
41
|
-
├── quarantine/ # schema 不合规移入(见 §6.4)
|
|
42
|
-
└── schema/
|
|
43
|
-
└── message-v1.json # JSON Schema 真相源(机器可校验)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
**硬规则**:
|
|
47
|
-
- 任何窗口写邮箱必须命中 `.boll/inbox/<owner>/(unread|acks)/<msg-id>.md` 路径模板,否则 §6.4 quarantine
|
|
48
|
-
- 路径树在本 ADR 落地后 **frozen**;新增子目录或重命名走 ADR-H9.x 显式修订
|
|
49
|
-
- Window 命名空间 = harness 拓扑 H 编号;非 harness 子计划不得占用 `.boll/inbox/`
|
|
50
|
-
|
|
51
|
-
## 4. message-v1 schema(yaml frontmatter)
|
|
52
|
-
|
|
53
|
-
```yaml
|
|
54
|
-
---
|
|
55
|
-
sender: window-h0 # 发送窗口(必填);子→主走 window-Hx;主→子 ack 时填 main,路径仍写到 window-Hx/acks/<msg-id>.md
|
|
56
|
-
sender_pid: 12345 # 发送窗口 CC pid(防伪 / race 排查)
|
|
57
|
-
ts: 2026-04-28T14:30:00+08:00 # ISO-8601 + 时区
|
|
58
|
-
msg_id: h0-20260428-143000-abc # 幂等 ID(重发 ack 用)
|
|
59
|
-
kind: progress|block|done|question|ack
|
|
60
|
-
priority: P0|P1|P2
|
|
61
|
-
related_h: H0|H1|H2|H3|H4|H5|H6|H8|H9
|
|
62
|
-
related_wp: WP-Hx-NN # 可选
|
|
63
|
-
ack_required: true # 主窗口是否需回执;默认 false(progress/done);priority=P0 强制 true(schema 校验拒收 P0 + ack_required=false 组合);kind=ack 永远 false(ack 不再 ack)
|
|
64
|
-
ack_for: <msg_id> # kind=ack 时必填,引用被 ack 的消息 ID
|
|
65
|
-
---
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**sender 取值约定**:
|
|
69
|
-
- `window-h0`..`window-h9`:子窗口(出件箱在 `.boll/inbox/window-Hx/`)
|
|
70
|
-
- `main`:主窗口出向 ack(写入 `.boll/inbox/window-Hx/acks/`,**不**写入 `.boll/inbox/main/`,避免主窗口 SessionStart 注入自己的 ack 消息构成回环)
|
|
71
|
-
|
|
72
|
-
**markdown body 风格**:沿用 `.boll/proposals/*-trace-analysis.md` 章节式 markdown(标题 + 列表 + 代码块),便于人眼扫读和未来与 proposal schema 收敛。
|
|
73
|
-
|
|
74
|
-
**与 `.boll/proposals/` 的复用决策**(本 ADR §4 设计内 sealed,待 reviewer 复核后随本 ADR 转 Accepted 一并落定):
|
|
75
|
-
|
|
76
|
-
| 维度 | proposal-v1 | message-v1 |
|
|
77
|
-
|------|-------------|------------|
|
|
78
|
-
| 性质 | self-trace(AI 自留足迹) | peer-message(窗口间显式喊队友) |
|
|
79
|
-
| 触发 | trace-analyzer.ts 自动生成 | 窗口主动写入 |
|
|
80
|
-
| 必填字段 | findings + confidence | sender_pid / ts / msg_id / kind / priority |
|
|
81
|
-
| schema | markdown 章节,无 frontmatter | yaml frontmatter + markdown body |
|
|
82
|
-
| 收件 | 人工审查 → D6.1 self-evolution | hook 注入 → 主窗口处理 |
|
|
83
|
-
|
|
84
|
-
**双写规则**:同一动作**只走一个**。如必须双写,message frontmatter 增 `proposal_ref: <path>` 引用 proposal 路径,**不复制 proposal 内容到 message body**。
|
|
85
|
-
|
|
86
|
-
## 5. 5 个 hook 边界 + helper 映射
|
|
87
|
-
|
|
88
|
-
| Hook 文件 | 注册事件 | matcher | 职责 | helper 调用 | 落点 |
|
|
89
|
-
|----------|----------|---------|------|-------------|------|
|
|
90
|
-
| `inbox-write-ledger.ts` | PostToolUse | Edit\|Write | 检测 .boll/inbox/** 写入 → 追加 ledger(不阻断) | `post_tool_use_inject(ctx)` | `.boll/log/hook/inbox-write.jsonl` |
|
|
91
|
-
| `inbox-validate.ts` | PostToolUse | Edit\|Write | 校验 message-v1 schema,不合规 mv quarantine/ | `post_tool_use_inject(ctx)` | `.boll/log/hook/inbox-quarantine.jsonl` |
|
|
92
|
-
| `inbox-inject-on-start.ts` | SessionStart | * | 主窗口启动读 main/unread/ → 注入 systemMessage | `session_start_inject(ctx)` | session 启动 inline |
|
|
93
|
-
| `inbox-poll.sh` | ScheduleWakeup 自循环 | — | 主窗口每 1200s 扫 unread/ 触发新一轮处理 | 调 ScheduleWakeup MCP,不出 stdout JSON | 主窗口 cron-like |
|
|
94
|
-
| `inbox-ack.ts` | 主窗口手动调用 | — | 处理完 mv unread/→processed/ + 写 ack 回子窗口 | 直接文件 IO,不出 stdout JSON | `.boll/inbox/window-Hx/acks/` |
|
|
95
|
-
|
|
96
|
-
**红线**:
|
|
97
|
-
- 3 个 stdout-bearing hook(write-ledger / validate / inject-on-start)必须 `from _hook_output import <helper>`(ADR-058 §D1);不许手搓 `print(json.dumps(...))`
|
|
98
|
-
- 2 个非-stdout hook(poll.sh / ack.ts)跑 lint-hook-output.ts 应不命中即可
|
|
99
|
-
- 5 hook 任何 IO 失败都不阻断主流程(PostToolUse inject 不能 BLOCK 用户工作)
|
|
100
|
-
|
|
101
|
-
## 6. 5 失败模式 inline 处置(plan §3.3.2 sealed)
|
|
102
|
-
|
|
103
|
-
### 6.1 主窗口长时间不在线
|
|
104
|
-
- **现象**:子窗口邮件堆积 unread/,没人读
|
|
105
|
-
- **处置**:inbox-write-ledger.ts 检测 `len(main/unread/) ≥ 50` 时写 `.boll/log/hook/inbox-overflow.jsonl`;子窗口 priority=P0 时跳过等待,直接调 ScheduleWakeup 强制唤醒主窗口(300s 内重唤只生效一次)
|
|
106
|
-
|
|
107
|
-
### 6.2 消息重复处理
|
|
108
|
-
- **现象**:unread/ → processed/ mv 中间崩溃
|
|
109
|
-
- **处置**:处理前先写 `.boll/inbox/main/in-flight/<msg-id>.lock`;inbox-inject-on-start.ts 启动时清 in-flight/,把对应消息 mv 回 unread/;ack 用幂等 msg_id(重发 ack 不重复处理)
|
|
110
|
-
|
|
111
|
-
### 6.3 ScheduleWakeup 边界
|
|
112
|
-
- **现象**:CC 限制 60s-3600s,不能更短;主窗口轮询慢于实时
|
|
113
|
-
- **处置**:默认 1200s(20min,prompt cache 友好);priority=P0 消息触发子窗口立即调 ScheduleWakeup 强制 wake 主窗口;P0 wake 在 300s 内重复触发只生效一次(防雪崩)
|
|
114
|
-
|
|
115
|
-
### 6.4 schema 漂移
|
|
116
|
-
- **现象**:子窗口写出非 message-v1 消息
|
|
117
|
-
- **处置**:inbox-validate.ts PostToolUse 时拒收,mv `.boll/inbox/quarantine/`;ledger 写一行 quarantine 事件;新增 schema 字段必须 v1→v2 显式 migration(本 ADR §4 frozen,新版本走 ADR-H9.x 修订)
|
|
118
|
-
|
|
119
|
-
### 6.5 inbox 与 proposals 双写
|
|
120
|
-
- **现象**:同一进度同时进 proposals 和 inbox
|
|
121
|
-
- **处置**:本 ADR §4 设计内 sealed(待整体转 Accepted 落定)— proposal 是 self-trace,message 是 peer-message,同一动作只走一个;如必须双写 message `proposal_ref:` 引用,不复制内容
|
|
122
|
-
|
|
123
|
-
## 7. 主窗口"脚本协调员"姿态
|
|
124
|
-
|
|
125
|
-
- 主窗口**不是**人脑协调员,是脚本协调员
|
|
126
|
-
- Nature 启动主窗口时只说"开始 harness 系列",主窗口靠 SessionStart 注入读邮箱、靠 ScheduleWakeup 持续轮询
|
|
127
|
-
- 主窗口与子窗口的**所有通信走 inbox**——不许 SendMessage / TeamCreate / 复制粘贴
|
|
128
|
-
- 子窗口 kind=block 时主窗口决定是否升级 Nature(升级 = 主窗口对 Nature 输出文本说明 block 内容)
|
|
129
|
-
- Nature 看到主窗口对 block 的处置后回复主窗口 = 主窗口写 ack 给原子窗口
|
|
130
|
-
|
|
131
|
-
## 8. 自检(H0.1-H0.6 + H0.meta)
|
|
132
|
-
|
|
133
|
-
- **H0.1 施工隔离**:本 ADR scope = `docs/decisions/ADR-H9-mailbox.md`;新建 `.boll/inbox/**` 路径树 + 5 hook 由 PLAN-H9 各 WP 独立 commit,每个 commit body 显式列出 scope 路径
|
|
134
|
-
- **H0.2 节流限速**:本 ADR 目标 ≤ 300 行
|
|
135
|
-
- **H0.3 执检分离**:起草者 Nature(AI 助手协助),签字者待非起草 reviewer 复核;**不享** H0 §3.4 单签例外(例外仅限 ADR-H0 自身)
|
|
136
|
-
- **H0.4 自指禁止**:H9 修"协调断裂",自身不许提议新 branch 隔离(已遵守,沿用 ADR-H0 main 直接 commit);不许"待协调员决定"(已遵守,§7 显式说明协调员是脚本而非人脑)
|
|
137
|
-
- **H0.5 跨子计划协调**:本 ADR 不动 ownership.yaml / MEMORY.md / SKILL.md / review-contract.yaml / commit body 模板;冲突表为空
|
|
138
|
-
- **H0.6 证据机械化**:本 ADR 锁 schema + hook 边界;DoD 证据命令在 PLAN-H9 各 WP 落地
|
|
139
|
-
- **H0.meta**:本 ADR 引用 H0(已落地的兄弟子计划,可引用);其他兄弟用"后续 H 子计划"或具体路径表述
|
|
140
|
-
|
|
141
|
-
**症状词字面命中检查**:本 ADR §2 / §6 / §7 出现"协调断裂""人脑协调员""待协调员决定(反例)"均以**陈述实例 / 元层反例**形式出现,自身行为命中 = 0;元层定义不计入(参 ADR-H0 §6 例 4 判定标准)。
|
|
142
|
-
|
|
143
|
-
## 9. 生效与变更
|
|
144
|
-
|
|
145
|
-
- **生效**:本 ADR + PLAN-H9 + 5 hook 实施 + Nature 演练 1 次 + 非起草 reviewer 签字后转 Accepted
|
|
146
|
-
- **变更**:§3 inbox 路径 / §4 message-v1 schema / §5 hook 边界 frozen;修订必须新 ADR-H9.x + Nature 单签 + migration 路径
|
|
147
|
-
- **不向后兼容**:v1 message 不允许丢字段;v1→v2 必须有迁移脚本 + quarantine 缓冲期 ≥7d
|
|
148
|
-
|
|
149
|
-
## 10. 与现有规则关系
|
|
150
|
-
|
|
151
|
-
- **ADR-H0-meta-charter.md**:H9 完全遵守 H0 6+1 规约;不享 §3.4 单签例外
|
|
152
|
-
- **ADR-058 §D1 hook IO schema**:3 stdout-bearing hook 全部走 `_hook_output` helper
|
|
153
|
-
- **ADR-038 D10 / .boll/proposals/**:proposal-v1 与 message-v1 schema 分开,§4 已签字
|
|
154
|
-
- **MEMORY feedback_local_worktrees_only.md**:harness 系列例外(main 直接 commit)已在 ADR-H0 §8 说明,H9 沿用
|
|
155
|
-
- **CLAUDE.md §四 4.3 / `.boll/rules/review-agent-isolation.md`**:H9 reviewer 用 `boll-review-toolkit:reviewer`(frontmatter schema-level 物理隔离)
|
|
156
|
-
|
|
157
|
-
## 11. 配套文件
|
|
158
|
-
|
|
159
|
-
- `docs/decisions/PLAN-H9-mailbox.md`:WP 拆解 + DoD 验证清单(task #15 已完成)
|
|
160
|
-
- `.boll/inbox/schema/message-v1.json`:JSON Schema 真相源(PLAN-H9 WP-01 落地)
|
|
161
|
-
- `src/scripts/hooks/inbox-{write-ledger,validate,inject-on-start,poll,ack}.{ts,sh}`:5 hook 实施(PLAN-H9 WP-02 ~ WP-06)
|
|
162
|
-
- `.boll/log/hook/inbox-{write,quarantine,overflow}.jsonl`:3 类落盘 ledger(PLAN-H9 各 WP DoD 证据)
|
|
163
|
-
|
|
164
|
-
## 附录 A:演练证据(WP-08 落地后填)
|
|
165
|
-
|
|
166
|
-
> 本附录是 ADR-H9 转 Accepted 的最后凭证占位。真实演练(Nature 启动两个 CC session)
|
|
167
|
-
> 录像 / 截图 / timing 数据在演练完成后由 Nature 或主窗口 agent 填入。
|
|
168
|
-
>
|
|
169
|
-
> **AI dress rehearsal vs Nature 真实演练 边界声明**:本附录区分两类证据。
|
|
170
|
-
> - AI dress rehearsal:单 shell session 顺序模拟所有 hook,验证逻辑链路
|
|
171
|
-
> - Nature 真实演练:两个真实 CC session 启动 + Write tool 触发真实 PostToolUse +
|
|
172
|
-
> SessionStart 注入 systemPromptAdditions + 真实 ScheduleWakeup 调度
|
|
173
|
-
> 前者是 logic 验证,后者是 integration 验证;后者的录像 / 截图是 ADR-H9 转 Accepted
|
|
174
|
-
> 的硬条件,**前者不能替代**(H0.6 证据机械化要求人脑可复盘)。
|
|
175
|
-
|
|
176
|
-
### A.1 AI dress rehearsal(2026-04-28,commit 8b442216 完成 WP-07 后实测)
|
|
177
|
-
|
|
178
|
-
**setup**:单 shell session 顺序模拟"子窗口写消息 → PostToolUse 链 → SessionStart inject → 主窗口 ack"
|
|
179
|
-
全流程 hook 调用,不启动 CC session(不触发真实 hook 调度)。
|
|
180
|
-
|
|
181
|
-
**端到端 timing**:
|
|
182
|
-
|
|
183
|
-
| 阶段 | 耗时 | 备注 |
|
|
184
|
-
|------|------|------|
|
|
185
|
-
| T0→T1 子写消息 | 0s | heredoc 写入 unread/ |
|
|
186
|
-
| T1→T2 PostToolUse 链 | 1s | inbox-write-ledger.ts + inbox-validate.ts 串行 |
|
|
187
|
-
| T2→T3 SessionStart inject | 0s | inbox-inject-on-start.ts 输出 schema-correct additionalContext |
|
|
188
|
-
| T3→T4 主→ack | 0s | inbox-ack.ts mv + 写 ack 文件 |
|
|
189
|
-
| **T0→T4 端到端** | **1s** | **≪ 60s P0 路径预算 ≪ 1200s 默认轮询预算** |
|
|
190
|
-
|
|
191
|
-
**机器证据 delta(PLAN-H9 §4.8 reviewer P1-2)**:ledger ts_unix vs ack file mtime delta = **0s**(同秒完成)
|
|
192
|
-
|
|
193
|
-
**结论**:所有 5 hook 实现层逻辑正确。链路无缺口、无 schema drift、无 hook 间状态不一致。
|
|
194
|
-
但本 rehearsal 不能证明 **CC 真实 SessionStart additionalContext 是否真的注入到主窗口
|
|
195
|
-
systemPromptAdditions**,也不证明 **真实 ScheduleWakeup 调度时主窗口 SessionStart hook
|
|
196
|
-
是否真触发**——这两点必须 Nature 真实演练验证。
|
|
197
|
-
|
|
198
|
-
### A.2 Nature 真实演练(2026-04-28 PASS)
|
|
199
|
-
|
|
200
|
-
**setup**:
|
|
201
|
-
- session A:主仓 root(`/Users/nature/个人项目/boll`),CC v2.1.121 Opus 4.7,settings.json 16 hooks 全注册
|
|
202
|
-
- session B:同目录第二终端,CC v2.1.121 Opus 4.7(同 working tree,避免 worktree 各自 `.boll/` 互不可见的拓扑陷阱)
|
|
203
|
-
- 共享物理 inbox:`.boll/inbox/`
|
|
204
|
-
|
|
205
|
-
**演练时间线**:
|
|
206
|
-
|
|
207
|
-
| T | 动作 | 机器证据 |
|
|
208
|
-
|---|------|----------|
|
|
209
|
-
| T0 16:33:05 | session B Write `.boll/inbox/main/unread/h9-20260428-163305-rehearsal.md` | msg_id=h9-20260428-163305-rehearsal |
|
|
210
|
-
| T1 16:33:22 | PostToolUse hook chain(write-ledger + validate)触发 | `.boll/log/hook/inbox-write.jsonl` 末行含 rel_path / sender=window-h9 / msg_id / kind=progress / priority=P1 / related_h=H9 全 6 字段 |
|
|
211
|
-
| T2 ~16:36 | session A `/exit` + 重启 `claude` → SessionStart hook 链触发 | session A 进程重启 |
|
|
212
|
-
| T3 重启同一秒 | `inbox-inject-on-start.ts` emit `hookSpecificOutput.additionalContext` | session A 接到 `<system-reminder>SessionStart hook additional context: [H9 inbox] 1 unread message(s) ... [P1] progress from window-h9 (h9-20260428-163305-rehearsal) — H9 @ 2026-04-28T08:33:06+08:00 ... body: WP-08 真实演练测试消息(Session B → Main)...</system-reminder>` |
|
|
213
|
-
| T4 16:37:01 | session A 调 `npx ts-node src/scripts/hooks/inbox-ack.ts --msg-id h9-20260428-163305-rehearsal --sender window-h9` | unread/<msg> mv processed/<msg> + `window-h9/acks/main-20260428-163701-6f40f7.md` 生成 |
|
|
214
|
-
|
|
215
|
-
**端到端时延**:T4 - T0 ≈ 4 min(含 Nature 切换终端 + 手动 `/exit` 重启 CC 的人工操作时间),远 ≪ 1200s 默认轮询预算。
|
|
216
|
-
|
|
217
|
-
**关键 UX spec 澄清**(不在原 PLAN 设想内,本 ADR 转 Accepted 同时新增):
|
|
218
|
-
|
|
219
|
-
CC SessionStart `hookSpecificOutput.additionalContext`(ADR-058 §D1 helper `session_start_inject` 唯一合法 stdout JSON 出口)注入到的是 **AI 视角的系统消息层**——CC runtime 把 additionalContext 包成 `<system-reminder>` tag 进 AI 的 prompt context;**不是**用户可见的 banner / 启动屏。
|
|
220
|
-
|
|
221
|
-
修订原 PLAN §4.4 / 附录草稿设想:
|
|
222
|
-
- ❌ 原:"Nature 截屏 banner 看到 📬 收件箱" → 设想错误(banner 永远不会显示)
|
|
223
|
-
- ✓ 改:"AI 在新 session 第一个 turn 逐字转述 inject 原文" → T3 行引文即此证据
|
|
224
|
-
|
|
225
|
-
**演练覆盖路径**:
|
|
226
|
-
- ✓ **Path A(手动 restart)**:session 重启 → SessionStart hook 链触发 → additionalContext 注入 AI prompt context → AI 看到 unread 列表(本演练验证)
|
|
227
|
-
- ⚠ **Path B(ScheduleWakeup 自循环 poll)**:本演练**未覆盖**——ScheduleWakeup 唤醒同一 session,**不重新触发 SessionStart hook**;AI 在 wakeup 后应主动调 Bash 跑 `src/scripts/hooks/inbox-poll.sh` 看 unread 计数 + 读文件自检。Path B 留待 H 系列首次跨窗口实战验证(不阻断本 ADR 转 Accepted,因 Path A 已足以证明邮箱机制端到端可用)
|
|
228
|
-
|
|
229
|
-
**结论**:PASS。5 个 hook + inbox 路径树 + message-v1 schema + ack 闭环全部端到端打通;CC integration 黑盒在 Path A 路径上已被 system-reminder 实证。
|
|
230
|
-
|
|
231
|
-
**ADR-H9 status 转 Accepted 触发条件**:✓ 全部满足(A.2 PASS + reviewer task #17 完成)→ 本附录入库 commit 同步翻 status:Proposed → Accepted(line 3 已落)。
|