@bolloon/bolloon-agent 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +462 -0
- package/dist/agents/constraint-layer.js +211 -0
- package/dist/agents/constraint-layer.js.map +1 -0
- package/dist/agents/pi-sdk.js +1199 -0
- package/dist/agents/pi-sdk.js.map +1 -0
- package/dist/agents/protocol.js +229 -0
- package/dist/agents/subagent-manager.js +361 -0
- package/dist/agents/workflow-engine.js +222 -0
- package/dist/agents/workflow-engine.js.map +1 -0
- package/dist/bollharness-integration/bollharness-integration/context-router-judgment.d.ts +48 -0
- package/dist/bollharness-integration/bollharness-integration/context-router-judgment.js +261 -0
- package/dist/bollharness-integration/bollharness-integration/context-router.d.ts +110 -0
- package/dist/bollharness-integration/bollharness-integration/context-router.js +542 -0
- package/dist/bollharness-integration/bollharness-integration/gate-state-machine.d.ts +87 -0
- package/dist/bollharness-integration/bollharness-integration/gate-state-machine.js +231 -0
- package/dist/bollharness-integration/bollharness-integration/gate-transition-hooks.d.ts +30 -0
- package/dist/bollharness-integration/bollharness-integration/gate-transition-hooks.js +91 -0
- package/dist/bollharness-integration/bollharness-integration/guard-checker.d.ts +105 -0
- package/dist/bollharness-integration/bollharness-integration/guard-checker.js +353 -0
- package/dist/bollharness-integration/bollharness-integration/index.d.ts +66 -0
- package/dist/bollharness-integration/bollharness-integration/index.js +32 -0
- package/dist/bollharness-integration/bollharness-integration/integration.d.ts +219 -0
- package/dist/bollharness-integration/bollharness-integration/integration.js +420 -0
- package/dist/bollharness-integration/bollharness-integration/skill-adapter.d.ts +151 -0
- package/dist/bollharness-integration/bollharness-integration/skill-adapter.js +518 -0
- package/dist/bollharness-integration/context-router-judgment.js +269 -0
- package/dist/bollharness-integration/context-router-judgment.js.map +1 -0
- package/dist/bollharness-integration/context-router.js +584 -0
- package/dist/bollharness-integration/context-router.js.map +1 -0
- package/dist/bollharness-integration/gate-state-machine.js +349 -0
- package/dist/bollharness-integration/gate-state-machine.js.map +1 -0
- package/dist/bollharness-integration/gate-transition-hooks.js +136 -0
- package/dist/bollharness-integration/gate-transition-hooks.js.map +1 -0
- package/dist/bollharness-integration/guard-checker.js +400 -0
- package/dist/bollharness-integration/guard-checker.js.map +1 -0
- package/dist/bollharness-integration/index.js +142 -0
- package/dist/bollharness-integration/index.js.map +1 -0
- package/dist/bollharness-integration/integration.js +427 -0
- package/dist/bollharness-integration/integration.js.map +1 -0
- package/dist/bollharness-integration/llm/pi-ai.d.ts +60 -0
- package/dist/bollharness-integration/llm/pi-ai.js +397 -0
- package/dist/bollharness-integration/pi-ecosystem-colony/index.d.ts +153 -0
- package/dist/bollharness-integration/pi-ecosystem-colony/index.js +365 -0
- package/dist/bollharness-integration/pi-ecosystem-goals/index.d.ts +136 -0
- package/dist/bollharness-integration/pi-ecosystem-goals/index.js +458 -0
- package/dist/bollharness-integration/pi-ecosystem-judgment/decision.d.ts +117 -0
- package/dist/bollharness-integration/pi-ecosystem-judgment/decision.js +300 -0
- package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.d.ts +78 -0
- package/dist/bollharness-integration/pi-ecosystem-judgment/distillation.js +291 -0
- package/dist/bollharness-integration/pi-ecosystem-judgment/index.d.ts +139 -0
- package/dist/bollharness-integration/pi-ecosystem-judgment/index.js +445 -0
- package/dist/bollharness-integration/pi-ecosystem-mcp/index.d.ts +127 -0
- package/dist/bollharness-integration/pi-ecosystem-mcp/index.js +331 -0
- package/dist/bollharness-integration/pi-ecosystem-subagents/index.d.ts +95 -0
- package/dist/bollharness-integration/pi-ecosystem-subagents/index.js +303 -0
- package/dist/bollharness-integration/skill-adapter.js +564 -0
- package/dist/bollharness-integration/skill-adapter.js.map +1 -0
- package/dist/cli/interface.js +181 -0
- package/dist/constraint-runtime/src/_archive_helper.js +9 -0
- package/dist/constraint-runtime/src/agent/coordinator.js +48 -0
- package/dist/constraint-runtime/src/agent/index.js +1 -0
- package/dist/constraint-runtime/src/assistant/index.js +12 -0
- package/dist/constraint-runtime/src/bootstrap/index.js +12 -0
- package/dist/constraint-runtime/src/bootstrap_graph.js +13 -0
- package/dist/constraint-runtime/src/bridge/index.js +12 -0
- package/dist/constraint-runtime/src/buddy/index.js +12 -0
- package/dist/constraint-runtime/src/cli/index.js +12 -0
- package/dist/constraint-runtime/src/command_graph.js +10 -0
- package/dist/constraint-runtime/src/commands.js +50 -0
- package/dist/constraint-runtime/src/components/index.js +12 -0
- package/dist/constraint-runtime/src/constants/index.js +12 -0
- package/dist/constraint-runtime/src/constraint/budget.js +27 -0
- package/dist/constraint-runtime/src/constraint/budget.js.map +1 -0
- package/dist/constraint-runtime/src/constraint/index.js +2 -0
- package/dist/constraint-runtime/src/constraint/permission.js +25 -0
- package/dist/constraint-runtime/src/constraint/permission.js.map +1 -0
- package/dist/constraint-runtime/src/context.js +30 -0
- package/dist/constraint-runtime/src/coordinator/index.js +12 -0
- package/dist/constraint-runtime/src/cost_hook.js +4 -0
- package/dist/constraint-runtime/src/cost_tracker.js +8 -0
- package/dist/constraint-runtime/src/deferred_init.js +10 -0
- package/dist/constraint-runtime/src/direct_modes.js +6 -0
- package/dist/constraint-runtime/src/dynamic-tool-loader.js +85 -0
- package/dist/constraint-runtime/src/entrypoints/index.js +12 -0
- package/dist/constraint-runtime/src/execution_registry.js +44 -0
- package/dist/constraint-runtime/src/history.js +9 -0
- package/dist/constraint-runtime/src/hooks/index.js +12 -0
- package/dist/constraint-runtime/src/index.js +26 -0
- package/dist/constraint-runtime/src/ink.js +4 -0
- package/dist/constraint-runtime/src/keybindings/index.js +12 -0
- package/dist/constraint-runtime/src/memdir/index.js +12 -0
- package/dist/constraint-runtime/src/migrations/index.js +12 -0
- package/dist/constraint-runtime/src/models.js +3 -0
- package/dist/constraint-runtime/src/models.js.map +1 -0
- package/dist/constraint-runtime/src/moreright/index.js +12 -0
- package/dist/constraint-runtime/src/native_ts/index.js +12 -0
- package/dist/constraint-runtime/src/output_styles/index.js +12 -0
- package/dist/constraint-runtime/src/parity_audit.js +12 -0
- package/dist/constraint-runtime/src/plugins/index.js +12 -0
- package/dist/constraint-runtime/src/port_manifest.js +11 -0
- package/dist/constraint-runtime/src/prefetch.js +9 -0
- package/dist/constraint-runtime/src/query.js +1 -0
- package/dist/constraint-runtime/src/remote/index.js +12 -0
- package/dist/constraint-runtime/src/remote_runtime.js +9 -0
- package/dist/constraint-runtime/src/runtime/index.js +1 -0
- package/dist/constraint-runtime/src/runtime/session.js +35 -0
- package/dist/constraint-runtime/src/schemas/index.js +12 -0
- package/dist/constraint-runtime/src/screens/index.js +12 -0
- package/dist/constraint-runtime/src/server/index.js +12 -0
- package/dist/constraint-runtime/src/services/index.js +12 -0
- package/dist/constraint-runtime/src/session_store.js +22 -0
- package/dist/constraint-runtime/src/setup.js +30 -0
- package/dist/constraint-runtime/src/skills/index.js +1 -0
- package/dist/constraint-runtime/src/skills/skill-registry.js +28 -0
- package/dist/constraint-runtime/src/state/index.js +12 -0
- package/dist/constraint-runtime/src/system_init.js +20 -0
- package/dist/constraint-runtime/src/thinking/engine.js +42 -0
- package/dist/constraint-runtime/src/thinking/index.js +1 -0
- package/dist/constraint-runtime/src/tool_pool.js +8 -0
- package/dist/constraint-runtime/src/tools/OpenCLI/execAdapter.js +7 -0
- package/dist/constraint-runtime/src/tools/OpenCLI/listAdapters.js +7 -0
- package/dist/constraint-runtime/src/tools/OpenCLI/runCommand.js +7 -0
- package/dist/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.js +6 -0
- package/dist/constraint-runtime/src/tools/PolymarketSDK/createOrder.js +6 -0
- package/dist/constraint-runtime/src/tools/PolymarketSDK/getMarket.js +5 -0
- package/dist/constraint-runtime/src/tools/PolymarketSDK/getOrders.js +6 -0
- package/dist/constraint-runtime/src/tools/PolymarketSDK/listMarkets.js +4 -0
- package/dist/constraint-runtime/src/tools/SafeSDK/confirmTransaction.js +6 -0
- package/dist/constraint-runtime/src/tools/SafeSDK/createTransaction.js +8 -0
- package/dist/constraint-runtime/src/tools/SafeSDK/deploySafe.js +6 -0
- package/dist/constraint-runtime/src/tools/SafeSDK/executeTransaction.js +6 -0
- package/dist/constraint-runtime/src/tools/SafeSDK/getBalance.js +6 -0
- package/dist/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.js +6 -0
- package/dist/constraint-runtime/src/tools/SafeSDK/proposeTransaction.js +6 -0
- package/dist/constraint-runtime/src/tools/WalletTools/autoPay.js +29 -0
- package/dist/constraint-runtime/src/tools/WalletTools/createWallet.js +10 -0
- package/dist/constraint-runtime/src/tools/WalletTools/getBalance.js +13 -0
- package/dist/constraint-runtime/src/tools/WalletTools/importWallet.js +22 -0
- package/dist/constraint-runtime/src/tools/WalletTools/sendTransaction.js +25 -0
- package/dist/constraint-runtime/src/tools/WalletTools/signMessage.js +10 -0
- package/dist/constraint-runtime/src/tools/WalletTools/transferToken.js +25 -0
- package/dist/constraint-runtime/src/tools.js +70 -0
- package/dist/constraint-runtime/src/transcript.js +19 -0
- package/dist/constraint-runtime/src/types/index.js +12 -0
- package/dist/constraint-runtime/src/upstream_proxy/index.js +12 -0
- package/dist/constraint-runtime/src/utils/index.js +12 -0
- package/dist/constraint-runtime/src/vim/index.js +12 -0
- package/dist/constraint-runtime/src/voice/index.js +12 -0
- package/dist/constraint-runtime/tests/agent.test.js +16 -0
- package/dist/constraint-runtime/tests/constraint.test.js +41 -0
- package/dist/constraint-runtime/tests/skill.test.js +19 -0
- package/dist/constraint-runtime/tests/thinking.test.js +22 -0
- package/dist/constraints/commands.js +100 -0
- package/dist/constraints/index.js +11 -0
- package/dist/constraints/index.js.map +1 -0
- package/dist/constraints/permissions.js +37 -0
- package/dist/constraints/runtime.js +135 -0
- package/dist/constraints/session.js +48 -0
- package/dist/constraints/system-init.js +51 -0
- package/dist/constraints/tools.js +104 -0
- package/dist/documents/reader.js +104 -0
- package/dist/documents/reader.js.map +1 -0
- package/dist/electron-preload.js +15 -0
- package/dist/electron-preload.js.map +1 -0
- package/dist/electron.js +206 -0
- package/dist/electron.js.map +1 -0
- package/dist/index.js +1053 -0
- package/dist/llm/config-store.js +301 -0
- package/dist/llm/config-store.js.map +1 -0
- package/dist/llm/minimax-provider.js +46 -0
- package/dist/llm/minimax.js +45 -0
- package/dist/llm/pi-ai.js +471 -0
- package/dist/llm/pi-ai.js.map +1 -0
- package/dist/network/agent-network.js +692 -0
- package/dist/network/agent-network.js.map +1 -0
- package/dist/network/iroh-integration.js +117 -0
- package/dist/network/iroh-integration.js.map +1 -0
- package/dist/network/iroh-transport.js +506 -0
- package/dist/network/iroh-transport.js.map +1 -0
- package/dist/network/p2p.js +864 -0
- package/dist/network/p2p.js.map +1 -0
- package/dist/network/storage/adapters/json-adapter.js +401 -0
- package/dist/network/storage/adapters/json-adapter.js.map +1 -0
- package/dist/pi-ecosystem-colony/index.js +426 -0
- package/dist/pi-ecosystem-colony/index.js.map +1 -0
- package/dist/pi-ecosystem-goals/index.js +512 -0
- package/dist/pi-ecosystem-goals/index.js.map +1 -0
- package/dist/pi-ecosystem-judgment/decision.js +318 -0
- package/dist/pi-ecosystem-judgment/decision.js.map +1 -0
- package/dist/pi-ecosystem-judgment/distillation.js +304 -0
- package/dist/pi-ecosystem-judgment/distillation.js.map +1 -0
- package/dist/pi-ecosystem-judgment/human-value-store.js +463 -0
- package/dist/pi-ecosystem-judgment/human-value-store.js.map +1 -0
- package/dist/pi-ecosystem-judgment/index.js +581 -0
- package/dist/pi-ecosystem-judgment/index.js.map +1 -0
- package/dist/pi-ecosystem-judgment/value-injection.js +592 -0
- package/dist/pi-ecosystem-judgment/value-injection.js.map +1 -0
- package/dist/pi-ecosystem-mcp/index.js +385 -0
- package/dist/pi-ecosystem-mcp/index.js.map +1 -0
- package/dist/pi-ecosystem-subagents/index.js +352 -0
- package/dist/pi-ecosystem-subagents/index.js.map +1 -0
- package/dist/runtime/context/minimax-prompt.js +178 -0
- package/dist/runtime/context/sys-prompt.js +1 -0
- package/dist/social/ant-colony/AdaptiveHeartbeat.js +106 -0
- package/dist/social/ant-colony/AdaptiveHeartbeat.js.map +1 -0
- package/dist/social/ant-colony/PheromoneEngine.js +265 -0
- package/dist/social/ant-colony/PheromoneEngine.js.map +1 -0
- package/dist/social/ant-colony/types.js +28 -0
- package/dist/social/ant-colony/types.js.map +1 -0
- package/dist/social/channels/ChannelManager.js +444 -0
- package/dist/social/channels/ChannelManager.js.map +1 -0
- package/dist/social/channels/DiapChannelBridge.js +451 -0
- package/dist/social/channels/DiapChannelBridge.js.map +1 -0
- package/dist/social/channels/InterestMatcher.js +135 -0
- package/dist/social/channels/InterestMatcher.js.map +1 -0
- package/dist/social/channels/types.js +21 -0
- package/dist/social/channels/types.js.map +1 -0
- package/dist/social/global-shared-context.js +368 -0
- package/dist/social/global-shared-context.js.map +1 -0
- package/dist/social/heartbeat.js +865 -0
- package/dist/social/heartbeat.js.map +1 -0
- package/dist/test/constraint-layer.test.js +164 -0
- package/dist/test/global-shared-context.test.js +315 -0
- package/dist/test/pi-sdk.test.js +47 -0
- package/dist/test/set-persona.test.js +38 -0
- package/dist/test/subagent-manager.test.js +276 -0
- package/dist/test/workflow-engine.test.js +87 -0
- package/dist/web/api-config.html +265 -0
- package/dist/web/client.js +1401 -0
- package/dist/web/components/p2p/index.js +357 -0
- package/dist/web/components/p2p/p2p-connection.js +161 -0
- package/dist/web/components/p2p/p2p-identity.js +78 -0
- package/dist/web/components/p2p/p2p-manager.js +82 -0
- package/dist/web/components/p2p/p2p-messages.js +186 -0
- package/dist/web/components/p2p/p2p-store-memory.js +129 -0
- package/dist/web/components/p2p/types.js +23 -0
- package/dist/web/index.html +192 -0
- package/dist/web/server.js +1647 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/style.css +3260 -0
- package/dist/workflows/collaboration.js +374 -0
- package/dist/workflows/index.js +54 -0
- package/docs/agent-communication.md +333 -0
- package/docs/plans/2026-05-15-document-agent-design.md +479 -0
- package/docs/plans/2026-05-15-document-agent-implementation-plan.md +792 -0
- package/docs/plans/2026-05-16-chat-ui-design.md +86 -0
- package/docs/plans/2026-05-16-constraint-runtime-design.md +106 -0
- package/docs/plans/2026-05-16-constraint-runtime-implementation.md +441 -0
- package/docs//346/225/260/345/255/246/350/276/205/345/212/251/346/231/272/350/203/275/344/275/223-/346/240/270/345/277/203/346/225/210/346/236/234/345/256/232/344/271/211.md +287 -0
- package/package.json +121 -0
- package/scripts/build-web.ts +61 -0
- package/src/agents/constraint-layer.ts +309 -0
- package/src/agents/pi-sdk.ts +1591 -0
- package/src/agents/protocol.ts +304 -0
- package/src/agents/subagent-manager.ts +553 -0
- package/src/agents/workflow-engine.ts +332 -0
- package/src/bollharness/.boll/CLAUDE.md.template +34 -0
- package/src/bollharness/.boll/MANIFEST.yaml +213 -0
- package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
- package/src/bollharness/.boll/agents/review-base.yaml +108 -0
- package/src/bollharness/.boll/deploy-allowlist.yaml +38 -0
- package/src/bollharness/.boll/inbox/schema/message-v1.json +99 -0
- package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
- package/src/bollharness/.boll/issue-adapter.yaml +31 -0
- package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +85 -0
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +102 -0
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +247 -0
- package/src/bollharness/.boll/rules/backend-routes.md +31 -0
- package/src/bollharness/.boll/rules/closure-semantics.md +30 -0
- package/src/bollharness/.boll/rules/env-vars.md +32 -0
- package/src/bollharness/.boll/rules/hanis-protocol.md +145 -0
- package/src/bollharness/.boll/rules/repo-structure.md +42 -0
- package/src/bollharness/.boll/rules/review-agent-isolation.md +73 -0
- package/src/bollharness/.boll/rules/source-of-truth.md +33 -0
- package/src/bollharness/.boll/settings.json +180 -0
- package/src/bollharness/.boll/settings.json.template +31 -0
- package/src/bollharness/.boll/skills/arch/SKILL.md +372 -0
- package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +168 -0
- package/src/bollharness/.boll/skills/bug-triage/SKILL.md +161 -0
- package/src/bollharness/.boll/skills/context-chains/SKILL.md +250 -0
- package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +48 -0
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +142 -0
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +126 -0
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +148 -0
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +162 -0
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +116 -0
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +136 -0
- package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +93 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +34 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +34 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +35 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +34 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +43 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +34 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +37 -0
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +46 -0
- package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +415 -0
- package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +320 -0
- package/src/bollharness/.boll/skills/harness-dev/SKILL.md +93 -0
- package/src/bollharness/.boll/skills/harness-dev/examples/README.md +227 -0
- package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +165 -0
- package/src/bollharness/.boll/skills/harness-eng/SKILL.md +110 -0
- package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +79 -0
- package/src/bollharness/.boll/skills/harness-lab/SKILL.md +170 -0
- package/src/bollharness/.boll/skills/harness-ops/SKILL.md +57 -0
- package/src/bollharness/.boll/skills/harness-voice/SKILL.md +183 -0
- package/src/bollharness/.boll/skills/judgment/SKILL.md +115 -0
- package/src/bollharness/.boll/skills/lead/SKILL.md +245 -0
- package/src/bollharness/.boll/skills/lead/install-wow-harness.md +77 -0
- package/src/bollharness/.boll/skills/lead/ref-review-sop.md +91 -0
- package/src/bollharness/.boll/skills/lead/ref-stages.md +129 -0
- package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +169 -0
- package/src/bollharness/.boll/skills/task-arch/SKILL.md +106 -0
- package/src/bollharness/.boll/skills/toolkit/SKILL.md +57 -0
- package/src/bollharness/.boll/tasks/.gitkeep +0 -0
- package/src/bollharness/.boll/toolkit-index.yaml +112 -0
- package/src/bollharness/.claude/agents/review-base.yaml +108 -0
- package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +44 -0
- package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +24 -0
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +102 -0
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +247 -0
- package/src/bollharness/.claude/settings.json +157 -0
- package/src/bollharness/.claude/skills/arch/SKILL.md +64 -0
- package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +93 -0
- package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +44 -0
- package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +324 -0
- package/src/bollharness/.claude/skills/harness-dev/SKILL.md +93 -0
- package/src/bollharness/.claude/skills/harness-dev/examples/README.md +17 -0
- package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +165 -0
- package/src/bollharness/.claude/skills/harness-eng/SKILL.md +183 -0
- package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +57 -0
- package/src/bollharness/.claude/skills/harness-ops/SKILL.md +57 -0
- package/src/bollharness/.claude/skills/harness-voice/SKILL.md +84 -0
- package/src/bollharness/.claude/skills/lead/INDEX.md +28 -0
- package/src/bollharness/.claude/skills/lead/SKILL.md +24 -0
- package/src/bollharness/.claude/skills/lead/install-wow-harness.md +77 -0
- package/src/bollharness/.claude/skills/lead/ref-review-sop.md +48 -0
- package/src/bollharness/.claude/skills/lead/ref-stages.md +58 -0
- package/src/bollharness/.claude/skills/plan-lock/SKILL.md +74 -0
- package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +120 -0
- package/src/bollharness/.claude/skills/task-arch/SKILL.md +106 -0
- package/src/bollharness/.claude/skills/toolkit/SKILL.md +57 -0
- package/src/bollharness/.claude/skills/toolkit/list.sh +92 -0
- package/src/bollharness/.githooks/pre-commit +21 -0
- package/src/bollharness/.github/workflows/ci.yml +88 -0
- package/src/bollharness/.sanitize-report.json +13 -0
- package/src/bollharness/CLAUDE.md +73 -0
- package/src/bollharness/LICENSE +21 -0
- package/src/bollharness/README.md +143 -0
- package/src/bollharness/README.zh-CN.md +131 -0
- package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +1076 -0
- package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +2039 -0
- package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +128 -0
- package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +188 -0
- package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +183 -0
- package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +133 -0
- package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +146 -0
- package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +212 -0
- package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +211 -0
- package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +202 -0
- package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +231 -0
- package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +270 -0
- package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +291 -0
- package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +228 -0
- package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +227 -0
- package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +239 -0
- package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +325 -0
- package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +242 -0
- package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +378 -0
- package/src/bollharness/docs/launch-article-en.md +276 -0
- package/src/bollharness/docs/launch-article-zh.md +305 -0
- package/src/bollharness/docs/practice.html +356 -0
- package/src/bollharness/docs/practice.md +82 -0
- package/src/bollharness/docs/research/round-1/README.md +11 -0
- package/src/bollharness/docs/research/round-2/README.md +11 -0
- package/src/bollharness/docs/research/round-3/README.md +11 -0
- package/src/bollharness/docs/research/round-4/README.md +11 -0
- package/src/bollharness/docs/research/round-5/README.md +11 -0
- package/src/bollharness/docs/research/round-6/README.md +11 -0
- package/src/bollharness/package-lock.json +48 -0
- package/src/bollharness/package.json +20 -0
- package/src/bollharness/reference/SOURCE-COMMIT.txt +3 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +268 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +20 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +30 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +13 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +50 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +12 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +184 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +112 -0
- package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +12 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +551 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +26 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +227 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +4 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +142 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +107 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +893 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +89 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +93 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +209 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +165 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +110 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +203 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +27 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +28 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +27 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +79 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +372 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +437 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +27 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +442 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +421 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +326 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +155 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +91 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +129 -0
- 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 +425 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +62 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +78 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +76 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +57 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +153 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +52 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +76 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +50 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +108 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +151 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +56 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +76 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +116 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +200 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +84 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +209 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +181 -0
- package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +754 -0
- package/src/bollharness/reference/boll-reference/scripts/hooks/.sanitize-report.json +12 -0
- package/src/bollharness/reference/boll-reference/scripts/hooks/find-boll-root.sh +27 -0
- package/src/bollharness/reference/boll-reference/scripts/hooks/precompact.sh +57 -0
- package/src/bollharness/reference/boll-reference/scripts/hooks/stop-evaluator.md +57 -0
- package/src/bollharness/schemas/metrics-jsonl-allowlist.json +67 -0
- package/src/bollharness/scripts/checks/next_decision_number.sh +48 -0
- package/src/bollharness/scripts/ci/count-components.sh +65 -0
- package/src/bollharness/scripts/context-fragments/artifact-linkage.md +14 -0
- package/src/bollharness/scripts/context-fragments/auth-consumers.md +17 -0
- package/src/bollharness/scripts/context-fragments/bridge-constitution.md +13 -0
- package/src/bollharness/scripts/context-fragments/catalyst-distributed.md +18 -0
- package/src/bollharness/scripts/context-fragments/closure-checklist.md +13 -0
- package/src/bollharness/scripts/context-fragments/contract-consumers.md +15 -0
- package/src/bollharness/scripts/context-fragments/db-shared-structures.md +15 -0
- package/src/bollharness/scripts/context-fragments/fixed-three-layers.md +19 -0
- package/src/bollharness/scripts/context-fragments/general-dev-principles.md +11 -0
- package/src/bollharness/scripts/context-fragments/issue-first.md +8 -0
- package/src/bollharness/scripts/context-fragments/mcp-parity.md +16 -0
- package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +74 -0
- package/src/bollharness/scripts/context-fragments/protocol-consumers.md +15 -0
- package/src/bollharness/scripts/context-fragments/run-events-consumers.md +15 -0
- package/src/bollharness/scripts/context-fragments/scene-fidelity.md +13 -0
- package/src/bollharness/scripts/context-fragments/truth-source-hierarchy.md +15 -0
- package/src/bollharness/scripts/context-fragments/two-language.md +15 -0
- package/src/bollharness/scripts/context-fragments/version-sources.md +14 -0
- package/src/bollharness/scripts/hooks/find-project-root.sh +47 -0
- package/src/bollharness/scripts/hooks/inbox-poll.sh +78 -0
- package/src/bollharness/scripts/hooks/precompact.sh +56 -0
- package/src/bollharness/scripts/hooks/stop-evaluator.md +83 -0
- package/src/bollharness/scripts/sync-from-upstream.sh +281 -0
- package/src/bollharness/src/index.ts +5 -0
- package/src/bollharness/src/scripts/checks/check_adr_plan_numbering.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_api_types.ts +52 -0
- package/src/bollharness/src/scripts/checks/check_artifact_link.ts +156 -0
- package/src/bollharness/src/scripts/checks/check_bridge_deps.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_bugfix_binding.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_bugfix_binding_ci.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_doc_file_references.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_doc_freshness.ts +141 -0
- package/src/bollharness/src/scripts/checks/check_doc_links.ts +36 -0
- package/src/bollharness/src/scripts/checks/check_file_existence_claims.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_fragment_integrity.ts +40 -0
- package/src/bollharness/src/scripts/checks/check_hook_installed.ts +70 -0
- package/src/bollharness/src/scripts/checks/check_issue_closure.ts +51 -0
- package/src/bollharness/src/scripts/checks/check_mcp_parity.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_security.ts +54 -0
- package/src/bollharness/src/scripts/checks/check_skill_parity.ts +11 -0
- package/src/bollharness/src/scripts/checks/check_versions.ts +11 -0
- package/src/bollharness/src/scripts/checks/finding.ts +35 -0
- package/src/bollharness/src/scripts/checks/next_decision_number.ts +24 -0
- package/src/bollharness/src/scripts/checks/regenerate_magic_docs.ts +11 -0
- package/src/bollharness/src/scripts/ci/detect_rebaseline_triggers.ts +14 -0
- package/src/bollharness/src/scripts/ci/scan_subprocess_cfg.ts +14 -0
- package/src/bollharness/src/scripts/ci/scan_verify_artifacts.ts +14 -0
- package/src/bollharness/src/scripts/ci/scan_yaml_schema.ts +14 -0
- package/src/bollharness/src/scripts/context_router.ts +76 -0
- package/src/bollharness/src/scripts/deploy-guard.ts +182 -0
- package/src/bollharness/src/scripts/guard-feedback.ts +215 -0
- package/src/bollharness/src/scripts/guard_router.ts +194 -0
- package/src/bollharness/src/scripts/hooks/_hook_output.js +3 -0
- package/src/bollharness/src/scripts/hooks/_hook_output.ts +11 -0
- package/src/bollharness/src/scripts/hooks/auto-python3.ts +10 -0
- package/src/bollharness/src/scripts/hooks/deploy-progress-on-session-end.ts +10 -0
- package/src/bollharness/src/scripts/hooks/failure-analyzer.ts +10 -0
- package/src/bollharness/src/scripts/hooks/gate-judgment-inject.ts +111 -0
- package/src/bollharness/src/scripts/hooks/gate-transition-judgment.ts +74 -0
- package/src/bollharness/src/scripts/hooks/inbox-ack.ts +10 -0
- package/src/bollharness/src/scripts/hooks/inbox-inject-on-start.ts +10 -0
- package/src/bollharness/src/scripts/hooks/inbox-validate.ts +10 -0
- package/src/bollharness/src/scripts/hooks/inbox-write-ledger.ts +10 -0
- package/src/bollharness/src/scripts/hooks/initializer-agent.ts +10 -0
- package/src/bollharness/src/scripts/hooks/loop-detection.ts +83 -0
- package/src/bollharness/src/scripts/hooks/owner-guard.ts +10 -0
- package/src/bollharness/src/scripts/hooks/precompact.ts +10 -0
- package/src/bollharness/src/scripts/hooks/review-agent-gatekeeper.ts +10 -0
- package/src/bollharness/src/scripts/hooks/risk-tracker.ts +121 -0
- package/src/bollharness/src/scripts/hooks/sanitize-on-read.ts +10 -0
- package/src/bollharness/src/scripts/hooks/session-reflection.ts +12 -0
- package/src/bollharness/src/scripts/hooks/session-start-magic-docs.ts +12 -0
- package/src/bollharness/src/scripts/hooks/session-start-reset-risk.ts +12 -0
- package/src/bollharness/src/scripts/hooks/session-start-toolkit-reminder.ts +12 -0
- package/src/bollharness/src/scripts/hooks/stop-evaluator.ts +164 -0
- package/src/bollharness/src/scripts/hooks/tool-call-counter.ts +10 -0
- package/src/bollharness/src/scripts/hooks/trace-analyzer.ts +14 -0
- package/src/bollharness/src/scripts/install/install-trust-token.ts +13 -0
- package/src/bollharness/src/scripts/install/multi_project_registry.ts +13 -0
- package/src/bollharness/src/scripts/install/phase2_auto.ts +28 -0
- package/src/bollharness/src/scripts/install/pre_commit_installer.ts +10 -0
- package/src/bollharness/src/scripts/install/tier_selector.ts +10 -0
- package/src/bollharness/src/scripts/install/transcript_miner.ts +13 -0
- package/src/bollharness/src/scripts/lib/claim_patterns.ts +11 -0
- package/src/bollharness/src/scripts/lib/sanitize_patterns.ts +13 -0
- package/src/bollharness/src/scripts/sanitize.ts +9 -0
- package/src/bollharness/templates/persona/default.json +19 -0
- 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/.gitignore.append +16 -0
- package/src/bollharness/templates/scaffold/CLAUDE.md +89 -0
- package/src/bollharness/templates/scaffold/docs/INDEX.md +3 -0
- package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +38 -0
- package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +45 -0
- package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +2 -0
- package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +35 -0
- package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +51 -0
- package/src/bollharness/tsconfig.json +26 -0
- package/src/bollharness-integration/channel-judgment-engine.ts +634 -0
- package/src/bollharness-integration/context-chain-router.ts +474 -0
- package/src/bollharness-integration/context-router-judgment.ts +339 -0
- package/src/bollharness-integration/context-router.ts +583 -0
- package/src/bollharness-integration/gate-state-machine.ts +444 -0
- package/src/bollharness-integration/gate-transition-hooks.ts +137 -0
- package/src/bollharness-integration/guard-checker.ts +451 -0
- package/src/bollharness-integration/index.ts +219 -0
- package/src/bollharness-integration/integration.ts +538 -0
- package/src/bollharness-integration/judgment-prompts.yaml +535 -0
- package/src/bollharness-integration/llm-judgment-engine.ts +712 -0
- package/src/bollharness-integration/skill-adapter.ts +646 -0
- package/src/cli/interface.ts +211 -0
- package/src/constraint-runtime/package-lock.json +48 -0
- package/src/constraint-runtime/package.json +34 -0
- package/src/constraint-runtime/src/_archive_helper.ts +16 -0
- package/src/constraint-runtime/src/agent/coordinator.ts +71 -0
- package/src/constraint-runtime/src/agent/index.ts +1 -0
- package/src/constraint-runtime/src/assistant/index.ts +15 -0
- package/src/constraint-runtime/src/bootstrap/index.ts +15 -0
- package/src/constraint-runtime/src/bootstrap_graph.ts +17 -0
- package/src/constraint-runtime/src/bridge/index.ts +15 -0
- package/src/constraint-runtime/src/buddy/index.ts +15 -0
- package/src/constraint-runtime/src/cli/index.ts +15 -0
- package/src/constraint-runtime/src/command_graph.ts +20 -0
- package/src/constraint-runtime/src/commands.ts +83 -0
- package/src/constraint-runtime/src/components/index.ts +15 -0
- package/src/constraint-runtime/src/constants/index.ts +15 -0
- package/src/constraint-runtime/src/constraint/budget.ts +25 -0
- package/src/constraint-runtime/src/constraint/index.ts +3 -0
- package/src/constraint-runtime/src/constraint/permission.ts +28 -0
- package/src/constraint-runtime/src/context.ts +45 -0
- package/src/constraint-runtime/src/coordinator/index.ts +15 -0
- package/src/constraint-runtime/src/cost_hook.ts +6 -0
- package/src/constraint-runtime/src/cost_tracker.ts +9 -0
- package/src/constraint-runtime/src/deferred_init.ts +18 -0
- package/src/constraint-runtime/src/direct_modes.ts +13 -0
- package/src/constraint-runtime/src/dynamic-tool-loader.ts +115 -0
- package/src/constraint-runtime/src/entrypoints/index.ts +15 -0
- package/src/constraint-runtime/src/execution_registry.ts +41 -0
- package/src/constraint-runtime/src/history.ts +16 -0
- package/src/constraint-runtime/src/hooks/index.ts +15 -0
- package/src/constraint-runtime/src/index.ts +28 -0
- package/src/constraint-runtime/src/ink.ts +4 -0
- package/src/constraint-runtime/src/keybindings/index.ts +15 -0
- package/src/constraint-runtime/src/memdir/index.ts +15 -0
- package/src/constraint-runtime/src/migrations/index.ts +15 -0
- package/src/constraint-runtime/src/models.ts +49 -0
- package/src/constraint-runtime/src/moreright/index.ts +15 -0
- package/src/constraint-runtime/src/native_ts/index.ts +15 -0
- package/src/constraint-runtime/src/output_styles/index.ts +15 -0
- package/src/constraint-runtime/src/parity_audit.ts +23 -0
- package/src/constraint-runtime/src/plugins/index.ts +15 -0
- package/src/constraint-runtime/src/port_manifest.ts +20 -0
- package/src/constraint-runtime/src/prefetch.ts +17 -0
- package/src/constraint-runtime/src/query.ts +7 -0
- package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +63 -0
- package/src/constraint-runtime/src/reference_data/commands_snapshot.json +1037 -0
- package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +10 -0
- package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +12 -0
- package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +14 -0
- package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +8 -0
- package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +8 -0
- package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +32 -0
- package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +13 -0
- package/src/constraint-runtime/src/reference_data/subsystems/cli.json +26 -0
- package/src/constraint-runtime/src/reference_data/subsystems/components.json +32 -0
- package/src/constraint-runtime/src/reference_data/subsystems/constants.json +28 -0
- package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +8 -0
- package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +15 -0
- package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +32 -0
- package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +21 -0
- package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +15 -0
- package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +18 -0
- package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +8 -0
- package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +11 -0
- package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +8 -0
- package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +9 -0
- package/src/constraint-runtime/src/reference_data/subsystems/remote.json +11 -0
- package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +8 -0
- package/src/constraint-runtime/src/reference_data/subsystems/screens.json +10 -0
- package/src/constraint-runtime/src/reference_data/subsystems/server.json +10 -0
- package/src/constraint-runtime/src/reference_data/subsystems/services.json +32 -0
- package/src/constraint-runtime/src/reference_data/subsystems/skills.json +27 -0
- package/src/constraint-runtime/src/reference_data/subsystems/state.json +13 -0
- package/src/constraint-runtime/src/reference_data/subsystems/types.json +18 -0
- package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +9 -0
- package/src/constraint-runtime/src/reference_data/subsystems/utils.json +32 -0
- package/src/constraint-runtime/src/reference_data/subsystems/vim.json +12 -0
- package/src/constraint-runtime/src/reference_data/subsystems/voice.json +8 -0
- package/src/constraint-runtime/src/reference_data/tools_snapshot.json +1042 -0
- package/src/constraint-runtime/src/remote/index.ts +15 -0
- package/src/constraint-runtime/src/remote_runtime.ts +17 -0
- package/src/constraint-runtime/src/runtime/index.ts +1 -0
- package/src/constraint-runtime/src/runtime/session.ts +42 -0
- package/src/constraint-runtime/src/schemas/index.ts +15 -0
- package/src/constraint-runtime/src/screens/index.ts +15 -0
- package/src/constraint-runtime/src/server/index.ts +15 -0
- package/src/constraint-runtime/src/services/index.ts +15 -0
- package/src/constraint-runtime/src/session_store.ts +32 -0
- package/src/constraint-runtime/src/setup.ts +50 -0
- package/src/constraint-runtime/src/skills/index.ts +1 -0
- package/src/constraint-runtime/src/skills/skill-registry.ts +40 -0
- package/src/constraint-runtime/src/state/index.ts +15 -0
- package/src/constraint-runtime/src/system_init.ts +21 -0
- package/src/constraint-runtime/src/thinking/engine.ts +61 -0
- package/src/constraint-runtime/src/thinking/index.ts +1 -0
- package/src/constraint-runtime/src/tool_pool.ts +20 -0
- package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +12 -0
- package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +12 -0
- package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +13 -0
- package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +10 -0
- package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +13 -0
- package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +14 -0
- package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +10 -0
- package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +24 -0
- package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +13 -0
- package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +23 -0
- package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +12 -0
- package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +12 -0
- package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +10 -0
- package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +10 -0
- package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +14 -0
- package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +58 -0
- package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +19 -0
- package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +28 -0
- package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +34 -0
- package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +50 -0
- package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +23 -0
- package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +49 -0
- package/src/constraint-runtime/src/tools.ts +100 -0
- package/src/constraint-runtime/src/transcript.ts +23 -0
- package/src/constraint-runtime/src/types/index.ts +15 -0
- package/src/constraint-runtime/src/upstream_proxy/index.ts +15 -0
- package/src/constraint-runtime/src/utils/index.ts +15 -0
- package/src/constraint-runtime/src/vim/index.ts +15 -0
- package/src/constraint-runtime/src/voice/index.ts +15 -0
- package/src/constraint-runtime/tests/agent.test.ts +20 -0
- package/src/constraint-runtime/tests/constraint.test.ts +47 -0
- package/src/constraint-runtime/tests/skill.test.ts +23 -0
- package/src/constraint-runtime/tests/thinking.test.ts +28 -0
- package/src/constraint-runtime/tsconfig.json +13 -0
- package/src/constraints/index.ts +6 -0
- package/src/documents/reader.ts +80 -0
- package/src/electron-preload.ts +25 -0
- package/src/electron.ts +200 -0
- package/src/index.ts +1606 -0
- package/src/llm/config-store.ts +312 -0
- package/src/llm/llm-judgment-client.ts +470 -0
- package/src/llm/pi-ai.ts +522 -0
- package/src/network/agent-network.ts +800 -0
- package/src/network/hybrid-messenger.ts +199 -0
- package/src/network/iroh-bootstrap.ts +57 -0
- package/src/network/iroh-discovery.ts +207 -0
- package/src/network/iroh-integration.ts +158 -0
- package/src/network/iroh-transport.ts +594 -0
- package/src/network/p2p.ts +963 -0
- package/src/network/storage/adapters/json-adapter.ts +439 -0
- package/src/network/storage/index.ts +187 -0
- package/src/network/storage/types.ts +166 -0
- package/src/pi-ecosystem/index.ts +453 -0
- package/src/pi-ecosystem-colony/index.ts +482 -0
- package/src/pi-ecosystem-goals/index.ts +585 -0
- package/src/pi-ecosystem-judgment/decision.ts +431 -0
- package/src/pi-ecosystem-judgment/distillation.ts +398 -0
- package/src/pi-ecosystem-judgment/human-value-store.ts +580 -0
- package/src/pi-ecosystem-judgment/index.ts +678 -0
- package/src/pi-ecosystem-judgment/value-injection.ts +744 -0
- package/src/pi-ecosystem-mcp/index.ts +427 -0
- package/src/pi-ecosystem-subagents/index.ts +408 -0
- package/src/social/ant-colony/AdaptiveHeartbeat.ts +131 -0
- package/src/social/ant-colony/PheromoneEngine.ts +302 -0
- package/src/social/ant-colony/index.ts +18 -0
- package/src/social/ant-colony/types.ts +94 -0
- package/src/social/channels/ChannelManager.ts +485 -0
- package/src/social/channels/DiapChannelBridge.ts +501 -0
- package/src/social/channels/InterestMatcher.ts +189 -0
- package/src/social/channels/agent-workflow-config.json +214 -0
- package/src/social/channels/agent-workflow-config.yaml +334 -0
- package/src/social/channels/channel-agent-session.ts +407 -0
- package/src/social/channels/channel-heartbeat-agent.ts +622 -0
- package/src/social/channels/diap-doc-parser.ts +282 -0
- package/src/social/channels/harness-workflow-integrator.ts +594 -0
- package/src/social/channels/index.ts +22 -0
- package/src/social/channels/types.ts +115 -0
- package/src/social/global-shared-context.ts +506 -0
- package/src/social/heartbeat.ts +1041 -0
- package/src/social/persona/enhanced-persona.ts +359 -0
- package/src/test/ai-judgment-test.ts +92 -0
- package/src/test/bollharness-integration.test.ts +398 -0
- package/src/test/channel-agent-multi-dialogue.ts +265 -0
- package/src/test/channel-heartbeat-agent-test.ts +244 -0
- package/src/test/constraint-layer.test.ts +191 -0
- package/src/test/diap-identity-test.ts +222 -0
- package/src/test/diap-quick-test.ts +73 -0
- package/src/test/global-shared-context.test.ts +393 -0
- package/src/test/harness-judgment-injection.test.ts +353 -0
- package/src/test/harness-workflow-integrator-test.ts +285 -0
- package/src/test/human-value-store.test.ts +316 -0
- package/src/test/hybrid-integration-test.ts +126 -0
- package/src/test/hybrid-messenger-verify.ts +68 -0
- package/src/test/iroh-bistream-debug.ts +50 -0
- package/src/test/iroh-communication.test.ts +81 -0
- package/src/test/iroh-debug-test.ts +69 -0
- package/src/test/iroh-diap-test.ts +90 -0
- package/src/test/iroh-direct-connect.ts +65 -0
- package/src/test/iroh-e2e-fixed.ts +106 -0
- package/src/test/iroh-e2e-same-process.ts +83 -0
- package/src/test/iroh-e2e.ts +83 -0
- package/src/test/iroh-final-e2e.ts +84 -0
- package/src/test/iroh-relay-test.ts +46 -0
- package/src/test/iroh-simple-test.ts +49 -0
- package/src/test/iroh-transport-verify.ts +60 -0
- package/src/test/iroh-transport.test.ts +47 -0
- package/src/test/iroh-two-nodes.ts +87 -0
- package/src/test/iroh-verify.ts +55 -0
- package/src/test/judgment-decision.test.ts +373 -0
- package/src/test/llm-judgment-integration.test.ts +257 -0
- package/src/test/p2p-agent-complex-dialogue.ts +490 -0
- package/src/test/p2p-agent-dialogue.ts +423 -0
- package/src/test/p2p-agent-full-bidirectional.ts +686 -0
- package/src/test/p2p-agent-harness-flow.ts +562 -0
- package/src/test/p2p-agent-harness-single.ts +175 -0
- package/src/test/p2p-ai-dialogue-test.ts +374 -0
- package/src/test/p2p-cid-connect-test.ts +245 -0
- package/src/test/p2p-connect-receiver.ts +85 -0
- package/src/test/p2p-iroh-test.ts +214 -0
- package/src/test/p2p-minimal-test.ts +264 -0
- package/src/test/p2p-node-1.ts +172 -0
- package/src/test/p2p-node-2.ts +172 -0
- package/src/test/p2p-server.ts +335 -0
- package/src/test/p2p-two-nodes-test.ts +542 -0
- package/src/test/pi-sdk.test.ts +47 -0
- package/src/test/set-persona.ts +56 -0
- package/src/test/simple.test.ts +11 -0
- package/src/test/storage-integration.test.ts +191 -0
- package/src/test/subagent-manager.test.ts +392 -0
- package/src/test/test-gate-flow.test.ts +92 -0
- package/src/test/workflow-engine.test.ts +101 -0
- package/src/web/api-config.html +265 -0
- package/src/web/client.js +1401 -0
- package/src/web/components/p2p/P2PModal.tsx +328 -0
- package/src/web/components/p2p/index.ts +404 -0
- package/src/web/components/p2p/index.tsx +297 -0
- package/src/web/components/p2p/p2p-connection.ts +186 -0
- package/src/web/components/p2p/p2p-identity.ts +92 -0
- package/src/web/components/p2p/p2p-manager.ts +109 -0
- package/src/web/components/p2p/p2p-messages.ts +219 -0
- package/src/web/components/p2p/p2p-modal.ts +685 -0
- package/src/web/components/p2p/p2p-store-memory.ts +162 -0
- package/src/web/components/p2p/types.ts +112 -0
- package/src/web/design.md +99 -0
- package/src/web/index.html +192 -0
- package/src/web/server.ts +1878 -0
- package/src/web/style.css +3260 -0
- package/src/workflows/collaboration.ts +455 -0
- package/src/workflows/index.ts +64 -0
- package/tsconfig.electron.json +20 -0
- package/tsconfig.json +19 -0
- package/vitest.config.ts +12 -0
- package//346/203/263/346/263/225.md +79 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# ADR-H4: Prompt 治理(行为偏好三类清单:黑话 / 推卸 / 过度 review)
|
|
2
|
+
|
|
3
|
+
**状态**:Draft(待 reviewer 复核后转 Accepted;H 系列拓扑 D 第 5 个 ADR)
|
|
4
|
+
**日期**:2026-04-28
|
|
5
|
+
**关联**:ADR-H0 元规约 / ADR-H2 身份隔离 / ADR-H9 inbox 邮箱 / ADR-H3 memory scope / ADR-041 Codex 分流 v1.0 / ADR-038 D11 schema-level 隔离 / `.boll/skills/lead/SKILL.md`
|
|
6
|
+
|
|
7
|
+
## 1. 决策本质
|
|
8
|
+
|
|
9
|
+
把跨 session 反复出现的"行为偏好类违规"(黑话 / 推卸决策 / 过度 review)从**散落在 6 条 memory feedback** 升级为 **lead SKILL.md 内一段 ≤30 行 checklist**,让 lead skill 加载时直接推入 prompt context;触发 70% 遵从率(ADR-038 D11.2 prompt-level 兜底基线,schema 隔离不适用——这是行为偏好,不是工具调用边界)。
|
|
10
|
+
|
|
11
|
+
> **H4 = 把已经存在但散落的教训聚拢成 lead skill 上的清单**,不是发明新规则。
|
|
12
|
+
> ADR-041 v1.0 已签"老板心态 + 红线 + 每周复盘"哲学——本 ADR 是其在"语言/对话表达"侧的具体化。
|
|
13
|
+
|
|
14
|
+
## 2. 不变量(INV-H4)
|
|
15
|
+
|
|
16
|
+
- **INV-H4-1(清单最小厚度)**:`.boll/skills/lead/SKILL.md` 内必须存在一段 `## 行为治理(H4 三类清单)` 或同义标题,含 **≥10 条** checklist 项(每条 1 行:触发场景 → 应有行为 → memory pointer)
|
|
17
|
+
- **INV-H4-2(pointer 强制)**:每条 checklist 必须挂 `feedback_*.md` 真相源 pointer;不允许新建无 pointer 的"凭空规则"(避免 ADR-041 v0.1 → v0.3 inflation 重演)
|
|
18
|
+
- **INV-H4-3(哲学边界硬规)**:H4 **不**写任何 hook、**不**加 metrics、**不**动 `review-contract.yaml`、**不**改 PreToolUse / PostToolUse / SessionStart hook 链路(schema-level 治理是 H2/H7/H6 段范畴;H4 严格留在 prompt-level)
|
|
19
|
+
|
|
20
|
+
## 3. 设计
|
|
21
|
+
|
|
22
|
+
### 3.1 三类清单(H4 最小集合)
|
|
23
|
+
|
|
24
|
+
按现有 6 条 memory feedback 教训映射到 3 个语义类:
|
|
25
|
+
|
|
26
|
+
| 类别 | 触发场景 | 应有行为 | memory pointer |
|
|
27
|
+
|------|---------|---------|---------------|
|
|
28
|
+
| **黑话** | 跟 Nature 对话中即将冒出 idle / commit / SendMessage / pytest / PASS / verify / spawn 等术语 | 改用人话("等一下" / "保存进度" / "跟队友说一声" / "跑测试" / "通过" / "验证" / "派人去做");保留协议术语仅在 ADR/PR 内部 | `feedback_no_jargon_with_nature.md` |
|
|
29
|
+
| **黑话(task-arch)** | 起草 task-arch 文档时倾向把每个 seam 契约逐字复写 | 每 seam 只 3 行角色 + PLAN 引用 | `feedback_task_arch_verbose_rewrite.md` |
|
|
30
|
+
| **推卸(反问)** | 收到不熟悉的需求时第一反应是反问"你确认要 X 吗?" | 拿不准就派 teammate 或先做现状 grep;不要把决策权抛回 Nature | `feedback_stop_asking_confirmation.md` / `feedback_answer_not_ask.md` / `feedback_delegate_to_teammate_on_uncertain.md` |
|
|
31
|
+
| **推卸(待协调员决定)** | 起草 ADR/PLAN 时倾向写"待协调员决定 / TBD / 后续讨论" | 直接给当下最佳判断;H0.4 自指禁止已物理化此规则 | `feedback_stop_asking_confirmation.md`(升级版) |
|
|
32
|
+
| **过度 review(review-driven inflation)** | reviewer 给 P1/P2 时第一反应是大重构 / 加新机制 / 写 hook 拦截 | 先调规则文字(ADR-041 哲学);机制化必须先在每周复盘里证明"调规则解决不了" | `feedback_review_driven_complexity_inflation.md` |
|
|
33
|
+
| **过度 review(同维度反复)** | 同一 PR 第 N 轮 review 时给同一维度建议 | 多轮同维度 = 边际递减;换正交方法论 | `feedback_review_methodology_orthogonal.md` |
|
|
34
|
+
| **过度 review(无证宣告 PASS)** | reviewer 给 PASS 但子项 P0 未闭 | 任何 PASS_WITH_NOTES 含 P0 仍为 BLOCK;修复后必须重评估 | `lead/SKILL.md` 现有段(已存)|
|
|
35
|
+
| **完工虚报** | 实现完成即宣告 done,未跑 E2E / 未截图 | E2E + Playwright + 真实后端是 Gate 7→8 必经 | `feedback_e2e_before_push.md` |
|
|
36
|
+
| **起草未实证(H 系列 dogfood)** | 起草 ADR/PLAN 引用受管资产时未先 wc / grep / ls 实证 | 起草前必做 4 项核:路径存在 + 行数 + frontmatter 字段 + 前置 ADR 已覆盖 | `.boll/log/harness-self-symptoms.md` §4.7 / §4.8 |
|
|
37
|
+
| **结论范围越界** | 单点测试 PASS 即宣告全量 PASS / 平台级声明 | 测试 ≤ docstring ≤ LOG ≤ commit;平台级前核 vendor docs | `feedback_assertion_scope_discipline.md` |
|
|
38
|
+
|
|
39
|
+
合计 **10 条**,正好达成 INV-H4-1 最小厚度。新增条目按 INV-H4-2 必须挂 pointer。
|
|
40
|
+
|
|
41
|
+
### 3.2 lead SKILL.md 集成位置
|
|
42
|
+
|
|
43
|
+
在 lead/SKILL.md 现有"### Gate 7 开发日志硬性要求"段**之后** + "## 联动规则(skill 调度表)"段**之前**插入新段:
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
## 行为治理(H4 三类清单)
|
|
47
|
+
|
|
48
|
+
> 本段由 ADR-H4 物理化 6 条 memory feedback 教训。lead skill 加载时直接推入 prompt context(70% 遵从率基线,schema 隔离不适用)。
|
|
49
|
+
> 任何 checklist 项升级或新增按 INV-H4-2 挂 memory pointer,禁止凭空规则。
|
|
50
|
+
|
|
51
|
+
### 黑话
|
|
52
|
+
- ...
|
|
53
|
+
|
|
54
|
+
### 推卸
|
|
55
|
+
- ...
|
|
56
|
+
|
|
57
|
+
### 过度 review
|
|
58
|
+
- ...
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 3.3 与 ADR-041 v1.0 的关系(重要)
|
|
62
|
+
|
|
63
|
+
ADR-041 v1.0 §3 已签"先调规则不加机制"哲学;本 ADR **完全继承**该哲学:
|
|
64
|
+
|
|
65
|
+
| 维度 | ADR-041 v1.0 | ADR-H4 |
|
|
66
|
+
|------|--------------|--------|
|
|
67
|
+
| 治理对象 | Codex 分流决策("是否派 Codex") | 表达行为("怎么说话") |
|
|
68
|
+
| 物理介质 | CLAUDE.md §零 + ADR-041 §3 红线 | lead/SKILL.md `## 行为治理`段 |
|
|
69
|
+
| 机制化禁令 | hook / router / metrics 全砍 | 同砍(INV-H4-3)|
|
|
70
|
+
| 升级路径 | 每周复盘人脑回顾 | 同(H4 不另立机制) |
|
|
71
|
+
|
|
72
|
+
H4 是 ADR-041 在不同行为侧(决策 vs 表达)的孪生子,**不重复也不冲突**。
|
|
73
|
+
|
|
74
|
+
### 3.4 与 H5 边界(plan §3.3.1)
|
|
75
|
+
|
|
76
|
+
| 维度 | H4 (本 ADR) | H5 (未来) |
|
|
77
|
+
|------|-------------|-----------|
|
|
78
|
+
| 范围 | lead / arch / boll-dev SKILL.md prompt 段 | review-contract.yaml + Gate 清单 + .boll/skills/boll-review/ |
|
|
79
|
+
| 介质 | 纯 markdown 文字 | yaml + 文档 |
|
|
80
|
+
| 触发 | skill 加载时 prompt context | Gate 流转时 contract spawn reviewer |
|
|
81
|
+
| 治理对象 | 表达行为 | 节奏控制(review 轮次 / inflation 规则) |
|
|
82
|
+
|
|
83
|
+
二者**不交叉**:H4 不动 review-contract,H5 不动 SKILL.md prompt 段。如某条规则跨界(既要 prompt 又要 yaml),按 plan §3.3.1 串行:先 H4 prompt,再 H5 yaml backport。
|
|
84
|
+
|
|
85
|
+
### 3.5 受管资产 scope(H0.1 施工隔离)
|
|
86
|
+
|
|
87
|
+
| 路径 | 动作 |
|
|
88
|
+
|------|------|
|
|
89
|
+
| `docs/decisions/ADR-H4-prompt-governance.md` | 新增(本文件) |
|
|
90
|
+
| `docs/decisions/PLAN-H4-prompt-governance.md` | 新增(PLAN 起草) |
|
|
91
|
+
| `.boll/skills/lead/SKILL.md` | 追加 `## 行为治理` 段(≤30 行)|
|
|
92
|
+
| `docs/decisions/tasks/PLAN-H4/demo-rewrite-{ts}.md` | 1 个 demo 改写示范(PLAN-H4 §2 WP-04)|
|
|
93
|
+
| `docs/decisions/tasks/PLAN-H4/reviewer-verdict-*.md` | reviewer 落点 |
|
|
94
|
+
| `.boll/log/harness-self-symptoms.md` | append §4.x(如有自指)|
|
|
95
|
+
|
|
96
|
+
**不动**:ownership.yaml / hook / review-contract.yaml / arch SKILL.md(暂不改 — PLAN-H4 WP-01 盘点确认现状再定)/ boll-dev SKILL.md / 任何业务代码。
|
|
97
|
+
|
|
98
|
+
### 3.6 失败模式(必须 inline,不留撞坑)
|
|
99
|
+
|
|
100
|
+
**FM1**:lead SKILL.md 加上"## 行为治理"段后膨胀超 200 行 → 触发与 INV-H3-1 同类的物理 truncate 风险。
|
|
101
|
+
**对策**:H4 段 ≤30 行硬规(INV-H4-1 上限附加值);超限按 INV-H3-2 双层口径分拆。
|
|
102
|
+
|
|
103
|
+
**FM2**:H4 写入后被 reviewer 当作 inflation 攻击面 → 重演 ADR-041 v0.1→v0.3 失败模式。
|
|
104
|
+
**对策**:每条 checklist 强制挂 memory pointer(INV-H4-2);reviewer 反对必须指认"哪条规则没 pointer",否则属同维度反复 review(H4 §3.1 第 6 条命中)。
|
|
105
|
+
|
|
106
|
+
**FM3**:跨 SKILL.md 复制粘贴(lead → arch → boll-dev)导致同规则三个副本漂移。
|
|
107
|
+
**对策**:H4 仅在 lead/SKILL.md 落地;其他 skill 引用时用 pointer 不复制(lead skill 是 entry tier,所有 session 必加载,不需要在 arch/boll-dev 重复)。
|
|
108
|
+
|
|
109
|
+
## 4. 反对意见与取舍
|
|
110
|
+
|
|
111
|
+
**反对 1**:lead SKILL.md 已经 169 行 + 加 30 行 = 199 行,逼近 200 行 truncate 阈值(INV-H3-1 同类)。
|
|
112
|
+
|
|
113
|
+
**取舍**:lead SKILL.md 不是 user-level memory(在 `.boll/skills/lead/`,不受 200 行 truncate 限制;CC skill 加载是按完整文件读,无 line-cutoff)。reviewer 若担心 prompt context token 占用,按 ADR-041 §3 "先调规则不加机制" — 不引入 hook 切片;如未来某段冗余,按 INV-H4-2 删冗余条目(每条必须挂 pointer = 必然有真相源备份)。
|
|
114
|
+
|
|
115
|
+
**反对 2**:行为偏好治理本质是"语气问题",靠 prompt 70% 遵从率 = 30% session 仍然违规;该升级到 hook 拦截。
|
|
116
|
+
|
|
117
|
+
**取舍**:ADR-038 D11 已明确:"prompt 解决不了语气问题,schema 也解决不了"。70% 是行为偏好上限;剩 30% 靠 Nature 每周复盘人脑回顾(继承 ADR-041 路径)。任何 hook 拦截"黑话"都会撞 false-positive 海啸("commit"二字在工程上下文必然出现,hook 无法区分"对 Nature 说 commit"vs"在 ADR 里写 commit")。
|
|
118
|
+
|
|
119
|
+
**反对 3**:H4 只做 lead SKILL.md = 漏覆盖 arch / boll-dev 等其他 skill 加载时的违规。
|
|
120
|
+
|
|
121
|
+
**取舍**:lead 是 entry tier,CLAUDE.md 隐式默认加载;其他 skill 是按需加载。70% 遵从率基线建立在"必读 skill"的位置;arch/boll-dev session 已经有 lead 加载,规则会跨级生效。如未来发现 arch session 的违规率显著高于 lead session,按 ADR-041 路径:"先调规则文字" — 在 lead `## 行为治理`段加 1 条"在 arch 子任务中同样适用",不复制清单。
|
|
122
|
+
|
|
123
|
+
## 5. ADR-H0 元规约自检
|
|
124
|
+
|
|
125
|
+
- **H0.1 施工隔离**:scope 列表见 §3.5(6 类路径,全在 `docs/decisions/`、`docs/decisions/tasks/`、`.boll/skills/lead/`、`.boll/log/`)
|
|
126
|
+
- **H0.2 节流限速**:本 ADR 目标 ≤ 300 行(终稿见 wc -l);PLAN-H4 ≤ 500 行
|
|
127
|
+
- **H0.3 执检分离**:起草 = 本 session;reviewer 必为非起草 read-only subagent(PLAN-H4 末位 WP)
|
|
128
|
+
- **H0.4 自指禁止**:H4 修"黑话/推卸/过度 review",本 ADR grep `TBD|后续讨论|待协调员决定` 仅元层定义命中(参 ADR-H0 §6 例 4 + §3.1 #4 推卸类条目本身就是定义)
|
|
129
|
+
- **H0.5 跨子计划协调**:lead/SKILL.md 共改冲突已记入 H 系列 plan §3.4 冲突表(H2 × H4 串行;H2 已 merged,H4 后续在新 schema 上加段不冲突)
|
|
130
|
+
- **H0.6 证据机械化**:所有 INV / DoD 给 grep / wc / `find` 命令(详 PLAN-H4 §2 verify 命令段)
|
|
131
|
+
- **H0.meta**:本 ADR 自身不引用 H1/H5/H6/H8 未来产物(grep `\bH[1568]\b` 仅本检查行 + §3.4 H5 边界段命中)
|
|
132
|
+
|
|
133
|
+
## 6. 关系
|
|
134
|
+
|
|
135
|
+
- **ADR-H0 §3 元规约**:本 ADR 完全遵守 H0.1-H0.6 + H0.meta(自检见 §5)
|
|
136
|
+
- **ADR-H3 INV-H3-2 v1.1 双层限速**:lead SKILL.md 不是 MEMORY.md,不受 200 行 truncate 限制;本 ADR §4 反对 1 已答辩
|
|
137
|
+
- **ADR-038 D11.2 prompt-level 兜底基线**:H4 完全在 prompt-level 工作,70% 遵从率是 D11.2 给定上限
|
|
138
|
+
- **ADR-041 v1.0 §3 不做的事**:H4 完全继承 §3 哲学,不写 hook / router / metrics(INV-H4-3)
|
|
139
|
+
- **PLAN-H4-prompt-governance.md**:本 ADR 工程实施真相源
|
|
140
|
+
- **lead/SKILL.md 现有段**:H4 新段插入位置详 §3.2
|
|
141
|
+
|
|
142
|
+
## 7. 落地范围 + DoD
|
|
143
|
+
|
|
144
|
+
- 详细 WP 拆解 + DoD:见 PLAN-H4 §2
|
|
145
|
+
- H 系列 plan §3.3 H4 行:3 天估时;DoD 关键 = checklist ≥ 10 + 自指悖论显式段 + 自身 grep "TBD\|后续讨论" = 0 + 1 个 demo 改写
|
|
146
|
+
- 末位 reviewer 签字:H0.3 执检分离强制
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: ADR-H5
|
|
3
|
+
title: Gate 量纲化(行数硬限 schema 化 + 执检分离 binding 化 + 跳 Gate 决策表)
|
|
4
|
+
status: accepted
|
|
5
|
+
date: 2026-04-28
|
|
6
|
+
parent_charter: ADR-H0-meta-charter.md
|
|
7
|
+
philosophy_inheritance:
|
|
8
|
+
- ADR-041-codex-integration v1.0("调字不加机制")
|
|
9
|
+
- ADR-H4 INV-H4-3 反例表第 2 条(不写 metrics / 不写 dashboard / 不写 hook 治节奏)
|
|
10
|
+
- ADR-038 D11.2(schema-level 100% 遵从 >> prompt-level 70%)
|
|
11
|
+
applies_scope:
|
|
12
|
+
- .boll/plugins/boll-review-toolkit/contracts/review-contract.yaml
|
|
13
|
+
- .boll/plugins/boll-review-toolkit/agents/reviewer.md(仅引用,不改)
|
|
14
|
+
- 本 ADR 自身(自指 dogfood)
|
|
15
|
+
not_in_scope:
|
|
16
|
+
- .boll/skills/lead/SKILL.md(H4 占位;本 H 不动)
|
|
17
|
+
- 任何新 hook(INV-H5-3 红线)
|
|
18
|
+
- .boll/state/ 下新增 metrics 文件(INV-H5-3 红线)
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# ADR-H5:Gate 量纲化
|
|
22
|
+
|
|
23
|
+
## §1 上下文
|
|
24
|
+
|
|
25
|
+
### 1.1 已有的"Gate 真相源"(review-contract.yaml)
|
|
26
|
+
|
|
27
|
+
`.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml` 当前 4 个 active binding:
|
|
28
|
+
|
|
29
|
+
| binding | applies_when | reviewer.type | 阻塞何处 |
|
|
30
|
+
|---------|-------------|---------------|----------|
|
|
31
|
+
| `default-build-review` | mode=build, task_kind=code_change | pane | mode → verify |
|
|
32
|
+
| `merge-ready-review` | mode=verify, transition→release | subagent (`reviewer`) | mode → release |
|
|
33
|
+
| `design-review` | mode=plan, transition→build | human | mode → build |
|
|
34
|
+
| `retirement-review` | operation=retire_asset | pane | retire 动作 |
|
|
35
|
+
|
|
36
|
+
`verify-gate.ts` Stop hook 按 binding 校验 evidence packet → 决定 stop allow/block;`transition.ts` 按 transition_target 校验。**这是已有的 schema-level 真相源**——H5 不重建,H5 是"补字段"。
|
|
37
|
+
|
|
38
|
+
### 1.2 散落的行数限额(4 个 ADR、4 处口径)
|
|
39
|
+
|
|
40
|
+
| 来源 | 限额 | 适用 |
|
|
41
|
+
|------|------|------|
|
|
42
|
+
| ADR-H0 §H0.2 | ADR ≤300 / PLAN ≤500 | 所有 H 子计划文档 |
|
|
43
|
+
| ADR-H1 INV-H1-1 + 受管资产 | lead/SKILL.md "## 触发节奏(H1)" 段 ≤30 行;全文 ≤220 | H1 嵌入段 |
|
|
44
|
+
| ADR-H3 INV-H3-2 v1.1 | MEMORY.md `## ` 父段 ≤80 / `### ` 子段 ≤50 / 主索引 ≤200 | MEMORY.md |
|
|
45
|
+
| ADR-H4 INV-H4-1 | lead/dev/nature-designer skill prompt 段 ≤30 行 | H4 受管 SKILL.md 段 |
|
|
46
|
+
|
|
47
|
+
各 ADR 独立写、独立约束、独立验证(每个 ADR 自己的 §H0 自检表手动 wc -l),**没有 schema-level 收口**。reviewer 必须人脑读每个 ADR 才知道某文件应该限多少行,prompt-level 70% 遵从。
|
|
48
|
+
|
|
49
|
+
### 1.3 已发生的 4 次"非起草人 reviewer signoff"
|
|
50
|
+
|
|
51
|
+
| H | verdict 文件 | 路径形态 |
|
|
52
|
+
|---|-------------|---------|
|
|
53
|
+
| H2 | reviewer-verdict-20260428-1730.md | tasks/PLAN-H2/(根) |
|
|
54
|
+
| H3 | reviewer-verdict-20260428-1741.md | tasks/PLAN-H3/(根) |
|
|
55
|
+
| H4 | reviewer-verdict-20260428-1810.md | tasks/PLAN-H4/(根) |
|
|
56
|
+
| H1 | reviewer-verdict-20260428-183611.md | tasks/PLAN-H1/WP-05/(WP 子目录) |
|
|
57
|
+
|
|
58
|
+
**两个一致 + 两个不一致**:路径形态发散;reviewer subagent 类型一致(都是 `pr-review-toolkit:code-reviewer`),但 spawn 方式无 contract 约束——靠"上次怎么做这次照做"的 prompt-level 模式复用,70% 遵从。
|
|
59
|
+
|
|
60
|
+
### 1.4 触发动机
|
|
61
|
+
|
|
62
|
+
H 系列 PLAN §3.3 给 H5 的 DoD:**Gate 清单 ≥5 + inflation 规则 ≥3 + 跳 Gate 决策表 + 自指自检**。本 ADR 给出 H5 决策本质,不是工程节奏(节奏在 PLAN-H5)。
|
|
63
|
+
|
|
64
|
+
## §2 决策本质(Decision Substance)
|
|
65
|
+
|
|
66
|
+
**一句话**:把 §1.2 的行数限额和 §1.3 的执检分离从"散落 prompt + 人脑遵从"升级到 review-contract.yaml 的 `inflation` 子字段,让 verify-gate.ts 直接读 schema 判定,不再需要 reviewer 人脑遍历 ADR。
|
|
67
|
+
|
|
68
|
+
**只调字(schema 字段),不加机制(不写新 hook、不写 metrics、不建 dashboard)**——继承 ADR-041 v1.0 + ADR-H4 INV-H4-3 反例表第 2/3 条。
|
|
69
|
+
|
|
70
|
+
**与 H4 边界**(H 系列 plan §3.3.1 表):
|
|
71
|
+
- H4 = prompt 治理(lead/SKILL.md 行为偏好段,纯文字,prompt-level 70%)
|
|
72
|
+
- H5 = Gate 量纲化(review-contract.yaml inflation 字段,纯 yaml,schema-level 100%)
|
|
73
|
+
- 不交叉:H5 不动 SKILL.md prompt 段;H4 不动 review-contract.yaml
|
|
74
|
+
|
|
75
|
+
## §3 INV-H5(不变量,3 条)
|
|
76
|
+
|
|
77
|
+
### INV-H5-1:行数硬限 schema 化
|
|
78
|
+
|
|
79
|
+
review-contract.yaml 增加 top-level `line_caps` 字段(注:不是每个 binding 重复写,而是顶层一次性定义、binding 通过 ref 引用),列出 §1.2 4 处散落的限额,**作为 verify-gate.ts 校验 evidence packet 时的可读字段**。每条 cap 字段格式:
|
|
80
|
+
```yaml
|
|
81
|
+
line_caps:
|
|
82
|
+
- id: adr-h-series
|
|
83
|
+
glob: "docs/decisions/ADR-H*.md"
|
|
84
|
+
max_lines: 300
|
|
85
|
+
source_adr: ADR-H0 §H0.2
|
|
86
|
+
...
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**红线**:
|
|
90
|
+
- 修改限额数值不算 H5 工作面(数值由各原始 ADR 决定,H5 仅做收口聚合 + ref 指针)
|
|
91
|
+
- 增加新 cap 项必须在原始 ADR 中先有"≤N 行"明文规定
|
|
92
|
+
|
|
93
|
+
### INV-H5-2:执检分离 binding 化
|
|
94
|
+
|
|
95
|
+
review-contract.yaml 的 `merge-ready-review` binding 增加 `drafter_reviewer_separation` 子字段:
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
drafter_reviewer_separation:
|
|
99
|
+
required: true
|
|
100
|
+
rationale: ADR-H0 §H0.3 执检分离
|
|
101
|
+
evidence_path_pattern: "docs/decisions/tasks/PLAN-{plan}/WP-05/reviewer-verdict-*.md"
|
|
102
|
+
reviewer_subagent_whitelist:
|
|
103
|
+
- pr-review-toolkit:code-reviewer
|
|
104
|
+
- boll-review-toolkit:reviewer
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**统一 verdict 路径形态为 `WP-05/`** —— H1 的形态(已经发生,不改 H1/2/3/4 的历史 verdict 文件位置);新一轮起草必须遵守。
|
|
108
|
+
|
|
109
|
+
**红线**:
|
|
110
|
+
- 不实施"自动 spawn reviewer"逻辑(H5 仅声明 schema,spawn 仍由起草人手动触发——这是 ADR-H4 INV-H4-3 反例表第 4 条 ❌"加 SKILL.md 教 AI 自己识别推卸"的反向预防)
|
|
111
|
+
|
|
112
|
+
### INV-H5-3:零机制实际引入(不只是关键词)
|
|
113
|
+
|
|
114
|
+
**验证 = 实际引入检测**(不是裸 word frequency;反例声明 / 验证命令字符串自身不算违反,避免自指悖论):
|
|
115
|
+
|
|
116
|
+
1. `find docs/decisions/tasks/PLAN-H5 .boll/plugins/boll-review-toolkit -newer docs/decisions/ADR-H0-meta-charter.md -name "*.ts"` = 0(H5 工作面无新增 hook ts 文件)
|
|
117
|
+
2. `git diff --stat HEAD~10..HEAD -- 'src/scripts/hooks/h5*' '.boll/plugins/*/hooks/h5*'` = empty(无 H5 命名的 hook 引入)
|
|
118
|
+
3. review-contract.yaml diff 中无 `cron:` / `schedule:` / `polling_interval:` / `auto_spawn_reviewer:` 等 schema 字段
|
|
119
|
+
4. ADR-H5 + PLAN-H5 § 正文(排除 §3 INV-H5-3 / §7 不做什么 / §9 H0 自检验证命令字符串)不引入机制实施动词("创建"/"启动"/"调度"+ metrics|dashboard|hook 名词搭配)
|
|
120
|
+
|
|
121
|
+
**等价于 INV-H1-3 的 H5 翻版** + **修正 INV-H1-3 朴素 grep 的自指 false positive**:把 ADR-H4 INV-H4-3 反例表升级到 schema-检查级。
|
|
122
|
+
|
|
123
|
+
## §4 跳 Gate 决策表(DoD ≥5 行)
|
|
124
|
+
|
|
125
|
+
| # | 场景 | 是否可跳 | 需要什么签字 | 证据落地 |
|
|
126
|
+
|---|------|----------|-------------|---------|
|
|
127
|
+
| 1 | binding active=false(review-contract.yaml 中显式声明非活跃) | ✅ 跳 | yaml `active: false` 即声明 | yaml diff 即证据 |
|
|
128
|
+
| 2 | retirement-review 类高放射半径动作 | ❌ 不可跳 | human attestation | evidence packet kind=retire |
|
|
129
|
+
| 3 | merge-ready-review 起草人 = reviewer 同体 | ❌ 不可跳 | INV-H5-2 binding 强制 | WP-05/ verdict 文件存在性 |
|
|
130
|
+
| 4 | line_caps 超限 | ⚠ 条件跳 | 起草人显式 disclosure(ADR §H0 自检段写"已知超限 N 行 + 理由")+ Nature 单签 | ADR diff 显式 disclosure 段 |
|
|
131
|
+
| 5 | design-review (plan→build transition) | ❌ 永不可跳(review-contract.yaml `bypass_requires: never`) | — | yaml 即证据 |
|
|
132
|
+
| 6 | hot-fix(生产 P0 issue) | ⚠ 24h 内补 reviewer signoff | Nature 口头授权 + issue 文档 | docs/issues/guard-*.md + 24h 内 reviewer-verdict-*.md |
|
|
133
|
+
|
|
134
|
+
**红线**:跳 Gate ≠ 不留证据。任何跳过路径必须有可机器读的痕迹(yaml 字段 / disclosure 段 / issue 文档)——满足 ADR-H0 §H0.6 证据机械化。
|
|
135
|
+
|
|
136
|
+
## §5 inflation 规则(DoD ≥3 条)
|
|
137
|
+
|
|
138
|
+
### 规则 1:行数硬限优先于"先合并再清理"
|
|
139
|
+
ADR-H0 §H0.2 已有,本 ADR 强化为 review-contract.yaml `inflation.no_grow_now_clean_later` 字段。任何 PR 提交 line_caps 超限 → verify-gate.ts 直接 block,不接受"merge 后下个 PR 拆"理由。
|
|
140
|
+
|
|
141
|
+
### 规则 2:非起草人 reviewer 强制
|
|
142
|
+
INV-H5-2 已声明 schema;本规则补充:reviewer 与起草人必须不同 session(H0.3 执检分离的实操);`pr-review-toolkit:code-reviewer` subagent 自身就是不同 session,物理满足。
|
|
143
|
+
|
|
144
|
+
### 规则 3:自指自检段必填
|
|
145
|
+
任何 ADR-Hx 必须包含 `## §H0 自检` 段,列出 H0.1-H0.6 + H0.meta 7 条逐条勾选状态——本 ADR §10 即为示范。verify-gate.ts 通过 grep `^## .*H0 自检` 校验存在性。
|
|
146
|
+
|
|
147
|
+
## §6 H4 vs H5 边界(再次强调)
|
|
148
|
+
|
|
149
|
+
| 关注点 | H4(已闭合) | H5(本 ADR) |
|
|
150
|
+
|--------|-------------|-------------|
|
|
151
|
+
| 改的文件 | lead/SKILL.md(prompt) | review-contract.yaml(schema) |
|
|
152
|
+
| 治什么 | 行为偏好(黑话/推卸/过度 review) | 节奏/限速/执检分离 |
|
|
153
|
+
| 遵从层级 | prompt-level 70% | schema-level 100% |
|
|
154
|
+
| 哲学 | 调字不加机制 | 调字(yaml 是"字")不加机制 |
|
|
155
|
+
|
|
156
|
+
H5 不撤销 H4,也不重写 H4 的 prompt 段。两者并行生效。
|
|
157
|
+
|
|
158
|
+
## §7 不做什么(边界声明)
|
|
159
|
+
|
|
160
|
+
- ❌ 不写新 hook(INV-H5-3 红线)
|
|
161
|
+
- ❌ 不在 verify-gate.ts 加新逻辑(仅靠 yaml schema 字段读取,原有 contract-driven 框架已够用;如果某字段需要解释,由后续单独 ADR 决定)
|
|
162
|
+
- ❌ 不动 H4 的 SKILL.md prompt 段
|
|
163
|
+
- ❌ 不动 H1 的"## 来自 crystal-learn 的门禁"接收段
|
|
164
|
+
- ❌ 不引入 metrics/dashboard(INV-H5-3)
|
|
165
|
+
- ❌ 不"自动 spawn reviewer"——人手起 subagent 仍是当前模式(70% 遵从足够;schema 级别只规范"必须发生"和"形态",不规范"如何触发")
|
|
166
|
+
|
|
167
|
+
## §8 受管资产(scope 锁死)
|
|
168
|
+
|
|
169
|
+
| # | 路径 | 动作 | 限额 |
|
|
170
|
+
|---|------|------|------|
|
|
171
|
+
| 1 | `.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml` | 增加 `line_caps` 顶层字段 + 在 `merge-ready-review` binding 增加 `drafter_reviewer_separation` 子字段 + `inflation` 顶层字段 | 当前 132 行 → 目标 ≤220 行 |
|
|
172
|
+
| 2 | `docs/decisions/ADR-H5-gate-quantization.md` | 本 ADR | ≤300 行 |
|
|
173
|
+
| 3 | `docs/decisions/PLAN-H5-gate-quantization.md` | 工程计划 | ≤500 行 |
|
|
174
|
+
| 4 | `docs/decisions/tasks/PLAN-H5/WP-04/dogfood-output-*.md` | dogfood 产出 | ≤80 行 |
|
|
175
|
+
| 5 | `docs/decisions/tasks/PLAN-H5/WP-05/reviewer-verdict-*.md` | reviewer signoff | 由 reviewer 决定 |
|
|
176
|
+
|
|
177
|
+
**禁动**:
|
|
178
|
+
- `.boll/skills/lead/SKILL.md`(H4 受管)
|
|
179
|
+
- `~/.boll/skills/boll-crystal-learn/SKILL.md`(H1 受管)
|
|
180
|
+
- `~/.boll/projects/-Users-nature------boll/memory/MEMORY.md`(H3 受管)
|
|
181
|
+
- 任何 hook 文件(INV-H5-3)
|
|
182
|
+
|
|
183
|
+
## §9 H0 自检(H0.1-H0.6 + H0.meta)
|
|
184
|
+
|
|
185
|
+
| 条款 | 内容 | 本 ADR 状态 |
|
|
186
|
+
|------|------|-------------|
|
|
187
|
+
| H0.1 施工隔离 | scope 显式列出 | ✅ §8 受管资产表 + frontmatter applies_scope |
|
|
188
|
+
| H0.2 节流限速 | ADR ≤300 行 | ✅ 终稿 wc -l 验(estimated 200-220) |
|
|
189
|
+
| H0.3 执检分离 | 起草人 ≠ 签字人 | ✅ WP-05 reviewer subagent 独立 |
|
|
190
|
+
| H0.4 自指禁止 | 不重现要修的症状 | ✅ INV-H5-3 + §7 反例表是 ADR-H4 INV-H4-3 第 2/3 条的本 H 翻版,物理避免 |
|
|
191
|
+
| H0.5 跨 H 协调 | 共改文件冲突表 | ✅ §6 H4/H5 边界表;review-contract.yaml 仅本 H 改动 |
|
|
192
|
+
| H0.6 证据机械化 | DoD 证据机器可生成 | ✅ §4 跳 Gate 表 + §5 规则均给 grep/yaml field 校验路径 |
|
|
193
|
+
| H0.meta | 不引未来 H | ✅ grep `H[6-9]` = 0(H9 已存在不算未来;下方 grep 验证) |
|
|
194
|
+
|
|
195
|
+
H0.meta 验证命令(排除 code block,避免命令字符串自指 false positive):
|
|
196
|
+
```bash
|
|
197
|
+
awk '/^```/{f=!f; next} !f' docs/decisions/ADR-H5-gate-quantization.md | grep -cE "\bH[6-8]\b"
|
|
198
|
+
# 应为 0(H6/H7/H8 是未来 H;排除 code block 后命令字符串自身不算引用)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## §10 dogfood 规划
|
|
202
|
+
|
|
203
|
+
H5 自身走一次 Gate 即 PLAN-H5 WP-04:
|
|
204
|
+
- 起草本 ADR-H5 + PLAN-H5 时,本身要满足 INV-H5-1(行数)+ INV-H5-3(无机制关键词)
|
|
205
|
+
- WP-04 dogfood-output-*.md 记录"H5 起草过程触发了哪些 line_caps 边界"
|
|
206
|
+
- WP-05 reviewer signoff 验证"H5 自己是否被 H5 的规则约束住"——典型 ADR-038 D11.2 实例
|
|
207
|
+
|
|
208
|
+
## §11 与现行 vNext 共存
|
|
209
|
+
|
|
210
|
+
- review-contract.yaml 修改前必须 `git diff` 验证:4 active binding 未被破坏
|
|
211
|
+
- 修改后跑 `verify-gate.ts` 一次手动测试(PLAN-H5 WP-03 DoD)
|
|
212
|
+
- 如发现 verify-gate.ts 因新字段崩溃 → 回退 yaml + ADR-H5 重新设计字段位置(H 系列 plan §3.3.4 中等回退)
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr: ADR-H6
|
|
3
|
+
title: 状态文件健康度(state 清单 schema 化 + 健康度指标 + stale 清理 + 抗 compact 接口签字)
|
|
4
|
+
status: accepted
|
|
5
|
+
date: 2026-04-28
|
|
6
|
+
parent_charter: ADR-H0-meta-charter.md
|
|
7
|
+
philosophy_inheritance:
|
|
8
|
+
- ADR-041-codex-integration v1.0("调字不加机制")
|
|
9
|
+
- ADR-H4 INV-H4-3 反例表(不写 metrics / 不写 dashboard / 不写 hook 治节奏)
|
|
10
|
+
- ADR-H5 INV-H5-3(实际引入检测取代裸 grep;awk 排除 code block 自指悖论修正)
|
|
11
|
+
- ADR-038 D11.2(schema-level 100% > prompt-level 70%)
|
|
12
|
+
applies_scope:
|
|
13
|
+
- .boll/plugins/boll-review-toolkit/contracts/review-contract.yaml(增 state_inventory + state_health_indicators 顶层字段)
|
|
14
|
+
- .boll/state/_archived/(新建:归档目录)
|
|
15
|
+
- .boll/state/.DS_Store(删除)
|
|
16
|
+
- .boll/state/completion-proposal-profile-build-cli-archived-20260419-1110.json(移到 _archived/)
|
|
17
|
+
- .boll/state/harness-review-2026-04-14/(移到 _archived/)
|
|
18
|
+
- 本 ADR 自身(自指 dogfood)
|
|
19
|
+
not_in_scope:
|
|
20
|
+
- .boll/state/round{1-5}-verdicts/(审计依据,原地保留不动)
|
|
21
|
+
- .boll/proposals/(self-evolution 足迹,只增不删)
|
|
22
|
+
- .boll/guard/(once-flag/loop-counter 活工具态,#4 认知修正)
|
|
23
|
+
- .boll/inbox/(H9 受管,不动)
|
|
24
|
+
- .boll/evidence/(各 PLAN 受管,不动)
|
|
25
|
+
- 任何新 hook(INV-H6-3 红线)
|
|
26
|
+
- ADR-042 D3/D4 写屏障逻辑(仅引用,不改)
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# ADR-H6:状态文件健康度
|
|
30
|
+
|
|
31
|
+
## §1 上下文
|
|
32
|
+
|
|
33
|
+
### 1.1 .boll/ 现状盘点(实测 2026-04-28T19:12)
|
|
34
|
+
|
|
35
|
+
| 路径 | 当前状态 | 健康度判定 |
|
|
36
|
+
|------|---------|-----------|
|
|
37
|
+
| `.boll/state/mode` | 6 字节 | ✅ 动态运行期 |
|
|
38
|
+
| `.boll/state/run.json` | 3 字节 | ✅ 动态运行期 |
|
|
39
|
+
| `.boll/state/locks.json` | 3 字节 | ✅ 动态运行期 |
|
|
40
|
+
| `.boll/state/completion-proposal.json` | 6048 字节 / Apr 19 | ✅ 当前 run 提案 |
|
|
41
|
+
| `.boll/state/risk-snapshot.json` | 877 字节 / 实测 mtime 当下 | ✅ 由 risk-tracker 实时维护 |
|
|
42
|
+
| `.boll/state/round{1-5}-verdicts/` | 5 个目录 / Apr 16-19 | ✅ 审计归档保留 |
|
|
43
|
+
| `.boll/state/harness-review-2026-04-14/` | 目录 / Apr 14 | ⚠ 14 天前归档,应移 _archived/ |
|
|
44
|
+
| `.boll/state/completion-proposal-profile-build-cli-archived-20260419-1110.json` | 4737 字节 / Apr 19 | ⚠ 文件名已含 archived 但在主目录 |
|
|
45
|
+
| `.boll/state/.DS_Store` | 6148 字节 / Apr 16 | ❌ macOS 噪声 |
|
|
46
|
+
| `.boll/proposals/` | 265 文件 | ✅ self-evolution 痕迹(只增不删) |
|
|
47
|
+
| `.boll/guard/` | 11321 文件 | ✅ once-flag/loop-counter 活工具态(#4 认知修正) |
|
|
48
|
+
| `.boll/log/harness-self-symptoms.md` | 1 文件 | ✅ H 系列自指审计 |
|
|
49
|
+
| `.boll/log/hook/` | 目录 | ✅ hook ledger |
|
|
50
|
+
| `.boll/inbox/**` | H9 受管 | ✅ 不动 |
|
|
51
|
+
| `.boll/evidence/**` | 各 PLAN 受管 | ✅ 不动 |
|
|
52
|
+
|
|
53
|
+
### 1.2 触发动机
|
|
54
|
+
|
|
55
|
+
H 系列 plan §3.3 给 H6 的 DoD:**state 清单 ≥10 + 健康度指标 ≥3 + ADR-042 D9 接口签字 + 3 stale 清理**。本 ADR 给出 H6 决策本质,不是工程节奏(节奏在 PLAN-H6)。
|
|
56
|
+
|
|
57
|
+
### 1.3 与 H5 的协同关系
|
|
58
|
+
|
|
59
|
+
H5 已经在 review-contract.yaml 增加了 `line_caps` + `inflation` + `drafter_reviewer_separation` 三处 schema 字段(commit `872f03ce`)。H6 直接复用同一 yaml 作为 schema 真相源,增加 `state_inventory` + `state_health_indicators` 两处顶层字段——**不再分散到独立 yaml/json**。
|
|
60
|
+
|
|
61
|
+
## §2 决策本质
|
|
62
|
+
|
|
63
|
+
**一句话**:把 §1.1 现状清单和"什么算 state 健康"从"散落在 ADR-038/ADR-042/各 plan §6"升级到 review-contract.yaml 顶层 `state_inventory` + `state_health_indicators` 字段——schema-level 真相源。同步把 3 个明确 stale 文件(.DS_Store + archived JSON + Apr 14 review)物理移走或删除。
|
|
64
|
+
|
|
65
|
+
**只调字(schema 字段 + 文件移动),不加机制**——继承 ADR-041 v1.0 + ADR-H4 INV-H4-3 反例表 + ADR-H5 INV-H5-3 实际引入检测原则。
|
|
66
|
+
|
|
67
|
+
**抗 compact 接口签字**:本 ADR §6 显式签字"抗 compact 真相源 = ADR-042 D3 (Session-Owner ownership.yaml) + D4 (owner-guard.ts) 写屏障";H6 不重做、不另建。AGENTS.md 渐进加载(ADR-042 D9)作为 Codex 抗 compact 路径同样签字接受。
|
|
68
|
+
|
|
69
|
+
## §3 INV-H6(不变量,3 条)
|
|
70
|
+
|
|
71
|
+
### INV-H6-1:state 清单 schema 化
|
|
72
|
+
|
|
73
|
+
review-contract.yaml 增加顶层 `state_inventory` 字段,列出 §1.1 表的全部 ≥10 条 state 资产(按 dynamic / archived / append-only / managed-by-other-H 四类标注)。
|
|
74
|
+
|
|
75
|
+
```yaml
|
|
76
|
+
state_inventory:
|
|
77
|
+
- id: state-mode
|
|
78
|
+
path: ".boll/state/mode"
|
|
79
|
+
kind: dynamic
|
|
80
|
+
owner: boll-mode-toolkit
|
|
81
|
+
...
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**红线**:增加新 state 资产必须在原始 ADR(ADR-038 / ADR-042 / ADR-Hx)中先有声明;H6 不发明新 state。
|
|
85
|
+
|
|
86
|
+
### INV-H6-2:state 健康度指标 schema 化
|
|
87
|
+
|
|
88
|
+
review-contract.yaml 增加顶层 `state_health_indicators` 字段,定义 ≥3 条机器可读指标:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
state_health_indicators:
|
|
92
|
+
- id: schema-validity
|
|
93
|
+
desc: "5 个 dynamic JSON 文件 (mode/run.json/locks.json/completion-proposal.json/risk-snapshot.json) JSON parse 通过 + 必填字段非空"
|
|
94
|
+
check: "npx ts-node -e 'import json; for p in [...]: json.load(open(p))'"
|
|
95
|
+
- id: top-level-no-noise
|
|
96
|
+
desc: ".boll/state/ 顶层无 .DS_Store / 未归档 archived 文件 / 临时文件"
|
|
97
|
+
check: "ls .boll/state/*.DS_Store .boll/state/*archived*.json 2>/dev/null | wc -l == 0(顶层)"
|
|
98
|
+
- id: inbox-unread-volume
|
|
99
|
+
desc: ".boll/inbox/main/unread/ ≤50 文件(H9 ADR 红线复用)"
|
|
100
|
+
check: "ls .boll/inbox/main/unread/ | wc -l ≤ 50"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**红线**:指标必须 schema-level 可验证(机器可读 check 命令);不引入"AI 自我评估"或"主观 health score"。
|
|
104
|
+
|
|
105
|
+
### INV-H6-3:零机制实际引入(继承 INV-H5-3 修正版)
|
|
106
|
+
|
|
107
|
+
验证 = 实际引入检测(不是裸 word frequency;反例段豁免,避免 INV-H1-3 自指悖论):
|
|
108
|
+
|
|
109
|
+
1. `find .boll/state/_archived .boll/plugins/boll-review-toolkit -newer docs/decisions/ADR-H0-meta-charter.md -name "*.ts"` = 0
|
|
110
|
+
2. `git diff HEAD~5..HEAD --stat -- 'src/scripts/hooks/h6*' '.boll/plugins/*/hooks/h6*'` = empty
|
|
111
|
+
3. review-contract.yaml diff 中无 `cron:` / `schedule:` / `polling_interval:` / `auto_*:` 等触发字段
|
|
112
|
+
4. ADR-H6 + PLAN-H6 § 正文(排除 §3 INV-H6-3 / §7 不做什么 / §9 H0 自检)不引入机制实施动词搭配,搭配定义见以下 fence:
|
|
113
|
+
|
|
114
|
+
```text
|
|
115
|
+
verbs = (创建|启动|调度)
|
|
116
|
+
mechanism_nouns = (metrics|dashboard|hook)
|
|
117
|
+
violation = verbs.*mechanism_nouns
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## §4 stale 清理决策表(DoD 3 stale)
|
|
121
|
+
|
|
122
|
+
| # | 路径 | 大小 / mtime | 决策 | 理由 |
|
|
123
|
+
|---|------|-------------|------|------|
|
|
124
|
+
| 1 | `.boll/state/.DS_Store` | 6148 / Apr 16 | **物理删除** + 加 `.gitignore` | macOS 噪声,无信息价值;防止再生 |
|
|
125
|
+
| 2 | `.boll/state/completion-proposal-profile-build-cli-archived-20260419-1110.json` | 4737 / Apr 19 | **移到 `.boll/state/_archived/`** | 文件名已含 archived 标识,应物理位置匹配 |
|
|
126
|
+
| 3 | `.boll/state/harness-review-2026-04-14/` | 目录 / Apr 14 | **移到 `.boll/state/_archived/`** | 14 天前归档;移走后 `.boll/state/` 顶层只剩 dynamic + round{1-5}-verdicts/(仍是审计依据,保留) |
|
|
127
|
+
|
|
128
|
+
**禁动**:
|
|
129
|
+
- `.boll/state/round{1-5}-verdicts/` —— 审计依据,原地保留
|
|
130
|
+
- `.boll/proposals/` —— self-evolution 足迹,只增不删
|
|
131
|
+
- `.boll/guard/` —— 11321 文件按 #4 认知修正是活工具态(once-flag/loop-counter)
|
|
132
|
+
|
|
133
|
+
## §5 跳 Gate 决策表(继承 ADR-H5 §4,不重写)
|
|
134
|
+
|
|
135
|
+
H6 涉及的 Gate 由 ADR-H5 §4 跳 Gate 决策表统一治理。本 ADR 不重复定义跳 Gate 表;引用:
|
|
136
|
+
- merge-ready-review binding(含 INV-H5-2 drafter_reviewer_separation)
|
|
137
|
+
- line_caps 中本 ADR + PLAN-H6 受 adr-h-series ≤300 / plan-h-series ≤500 限制
|
|
138
|
+
|
|
139
|
+
## §6 抗 compact 接口签字(plan §3.3 H6 DoD:ADR-042 D9 接口签字)
|
|
140
|
+
|
|
141
|
+
H6 显式签字接受以下抗 compact 真相源,不重做、不另建:
|
|
142
|
+
|
|
143
|
+
| 抗 compact 路径 | 真相源 | 签字状态 |
|
|
144
|
+
|----------------|--------|---------|
|
|
145
|
+
| AI 自识 "我是谁、own 什么" | ADR-042 D3 Session-Owner 真相源 + ownership.yaml + AI 自识协议 | ✅ H6 签字接受 |
|
|
146
|
+
| 写权限物理隔离 | ADR-042 D4 owner-guard.ts PreToolUse 写屏障 hook | ✅ H6 签字接受(hook 已存在,H6 不动其代码) |
|
|
147
|
+
| Codex 渐进加载 | ADR-042 D9 AGENTS.md 渐进加载体系 | ✅ H6 签字接受 |
|
|
148
|
+
| H 系列窗口邮箱 cross-session 通信 | ADR-H9 inbox 路径约定 + SessionStart 注入 | ✅ H6 签字接受(H9 受管,不动) |
|
|
149
|
+
| state 文件 fresh-load | review-contract.yaml `state_inventory` + 各 owner skill SessionStart 重读 | ✅ H6 提供 schema 真相源 |
|
|
150
|
+
|
|
151
|
+
**红线**:H6 不重新设计抗 compact 协议;H6 仅做"清单 + 健康度 + 签字接受"。
|
|
152
|
+
|
|
153
|
+
## §7 不做什么(边界声明)
|
|
154
|
+
|
|
155
|
+
- ❌ 不写新 hook(INV-H6-3 红线)
|
|
156
|
+
- ❌ 不在 verify-gate.ts 加新逻辑(schema 字段先存在,消费链路留 H 系列收尾后单独 ADR)
|
|
157
|
+
- ❌ 不动 .boll/proposals/(self-evolution 足迹)
|
|
158
|
+
- ❌ 不动 .boll/guard/(活工具态)
|
|
159
|
+
- ❌ 不动 .boll/inbox/(H9 受管)
|
|
160
|
+
- ❌ 不动 .boll/evidence/(各 PLAN 受管)
|
|
161
|
+
- ❌ 不重做 ADR-042 D3/D4/D9 抗 compact 协议
|
|
162
|
+
- ❌ 不引入 metrics/dashboard/AI 自评估 health score(INV-H6-3)
|
|
163
|
+
- ❌ 不动 .boll/state/round{1-5}-verdicts/(审计依据)
|
|
164
|
+
|
|
165
|
+
## §8 受管资产(scope 锁死)
|
|
166
|
+
|
|
167
|
+
| # | 路径 | 动作 | 限额 |
|
|
168
|
+
|---|------|------|------|
|
|
169
|
+
| 1 | `.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml` | 增 `state_inventory` + `state_health_indicators` 顶层字段 | ≤300 行(H5 后 171 → 目标 ≤270) |
|
|
170
|
+
| 2 | `docs/decisions/ADR-H6-state-file-health.md` | 本 ADR | ≤300 行 |
|
|
171
|
+
| 3 | `docs/decisions/PLAN-H6-state-file-health.md` | 工程计划 | ≤500 行 |
|
|
172
|
+
| 4 | `docs/decisions/tasks/PLAN-H6/WP-04/dogfood-output-*.md` | dogfood 产出 | ≤80 行 |
|
|
173
|
+
| 5 | `docs/decisions/tasks/PLAN-H6/WP-05/reviewer-verdict-*.md` | reviewer signoff | reviewer 决定 |
|
|
174
|
+
| 6 | `.boll/state/_archived/` | 新建目录 | — |
|
|
175
|
+
| 7 | `.gitignore` | 加 `.boll/state/.DS_Store` 规则 | — |
|
|
176
|
+
| 8 | `.boll/state/.DS_Store` | 删除 | — |
|
|
177
|
+
| 9 | `.boll/state/completion-proposal-profile-build-cli-archived-20260419-1110.json` | git mv → `_archived/` | — |
|
|
178
|
+
| 10 | `.boll/state/harness-review-2026-04-14/` | git mv → `_archived/` | — |
|
|
179
|
+
|
|
180
|
+
## §9 H0 自检
|
|
181
|
+
|
|
182
|
+
| 条款 | 内容 | 状态 |
|
|
183
|
+
|------|------|------|
|
|
184
|
+
| H0.1 施工隔离 | scope 显式列出 | ✅ §8 + frontmatter applies_scope/not_in_scope |
|
|
185
|
+
| H0.2 节流限速 | ADR ≤300 行 | 待终稿 wc -l 验证(estimated 230-260) |
|
|
186
|
+
| H0.3 执检分离 | 起草人 ≠ 签字人 | ✅ WP-05 reviewer subagent 独立 |
|
|
187
|
+
| H0.4 自指禁止 | 不重现要修的症状 | ✅ INV-H6-3 继承 H5 修正版;不重现"自指 false positive" |
|
|
188
|
+
| H0.5 跨 H 协调 | 共改文件冲突表 | ✅ §7 不做什么 + §3 跨 H 协调(H6 仅改 review-contract.yaml + state/,不撞其他 H) |
|
|
189
|
+
| H0.6 证据机械化 | DoD 证据机器可生成 | ✅ §3 INV + §4 stale 表 + §6 抗 compact 表均给 grep/find/yaml field 校验 |
|
|
190
|
+
| H0.meta | 不引未来 H | ✅(H8 已存在不算未来;下方 grep 验证) |
|
|
191
|
+
|
|
192
|
+
H0.meta 验证命令(继承 H5 awk 排除 code block 模板):
|
|
193
|
+
```bash
|
|
194
|
+
awk '/^```/{f=!f; next} !f' docs/decisions/ADR-H6-state-file-health.md | grep -cE "\bH(7|10|11|12)\b"
|
|
195
|
+
# 应为 0(H7 退役不算未来;H10+ 是未来 H)
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## §10 dogfood 规划
|
|
199
|
+
|
|
200
|
+
PLAN-H6 WP-04 用 H6 起草过程自身做输入:
|
|
201
|
+
- ADR-H6 + PLAN-H6 + review-contract.yaml diff 满足 INV-H6-3 4 项检测
|
|
202
|
+
- 3 stale 清理动作的 git mv / git rm 物理结果可机器验证
|
|
203
|
+
- WP-04 输出文件 ≤80 行,自身受 INV-H6-1 line-cap 约束
|
|
204
|
+
|
|
205
|
+
## §11 与现行 vNext 共存
|
|
206
|
+
|
|
207
|
+
按 H 系列 plan §3.3.3:
|
|
208
|
+
- review-contract.yaml 修改后跑 yaml.safe_load 验证(PLAN-H6 WP-03 DoD)
|
|
209
|
+
- 4 active binding + H5 三字段(line_caps / inflation / drafter_reviewer_separation)不动
|
|
210
|
+
- `.boll/state/_archived/` 新建对 verify-gate.ts / transition.ts / capability-router.ts 透明(不会影响 mode/run.json/locks.json 读取路径)
|
|
211
|
+
- 3 stale 文件移动用 `git mv`(保留历史)+ git rm(仅 .DS_Store)
|