@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,38 @@
|
|
|
1
|
+
# deploy-allowlist.yaml — project-level config for scripts/deploy-guard.ts
|
|
2
|
+
#
|
|
3
|
+
# Default state: empty protected_hosts list = no enforcement. The hook
|
|
4
|
+
# reads, sees an empty list, exits 0 on every command.
|
|
5
|
+
#
|
|
6
|
+
# TO ACTIVATE: add your production host(s) below with approved_commands
|
|
7
|
+
# regex patterns. Once a host is declared, any Bash command that touches
|
|
8
|
+
# it and does NOT match an approved pattern will be BLOCKED (exit 2).
|
|
9
|
+
#
|
|
10
|
+
# This is the opposite polarity from issue-adapter.yaml: deploy-guard is
|
|
11
|
+
# high-stakes (accidental push to prod is costly) so it's fail-closed
|
|
12
|
+
# AFTER declaration; but declaration itself is opt-in (nobody wants a
|
|
13
|
+
# fresh harness install to suddenly refuse every ssh command).
|
|
14
|
+
#
|
|
15
|
+
# See scripts/deploy-guard.ts module docstring for full schema.
|
|
16
|
+
|
|
17
|
+
protected_hosts: []
|
|
18
|
+
|
|
19
|
+
# Example (uncomment and adapt):
|
|
20
|
+
#
|
|
21
|
+
# protected_hosts:
|
|
22
|
+
# - host: 203.0.113.42
|
|
23
|
+
# label: "production backend"
|
|
24
|
+
# reason: |
|
|
25
|
+
# Direct mutation breaks systemd-managed deploys.
|
|
26
|
+
# Only approved path is: bash scripts/deploy.sh
|
|
27
|
+
# approved_commands:
|
|
28
|
+
# - pattern: '^bash\s+scripts/deploy\.sh(\s+--(dry-run|yes))*\s*$'
|
|
29
|
+
# - pattern: '^ssh\s+[^|;&]*journalctl[^|;&]*$' # read-only diagnostics
|
|
30
|
+
# - pattern: '^ssh\s+[^|;&]*systemctl\s+status.*$'
|
|
31
|
+
#
|
|
32
|
+
# - host: 198.51.100.7
|
|
33
|
+
# label: "bridge VPS"
|
|
34
|
+
# reason: |
|
|
35
|
+
# Direct scp/rsync leaves orphan worktrees. Only approved path is
|
|
36
|
+
# git pull via ssh (see related issue in docs/issues/).
|
|
37
|
+
# approved_commands:
|
|
38
|
+
# - pattern: '^ssh\s+[^|;&]*git\s+(pull|fetch|status)[^|;&]*$'
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://bollharness.local/.boll/inbox/schema/message-v1.json",
|
|
4
|
+
"title": "bollharness inbox message v1",
|
|
5
|
+
"description": "ADR-H9 §4 sealed message-v1 schema. 任何 .boll/inbox/**/*.md 写入由 inbox-validate.ts 用本 schema 校验 yaml frontmatter;不合规 mv 到 .boll/inbox/quarantine/。Schema frozen,新增字段走 ADR-H9.x v1→v2 migration(§9 不向后兼容)。",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["sender", "sender_pid", "ts", "msg_id", "kind", "priority", "related_h"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"sender": {
|
|
11
|
+
"description": "发送窗口;子→主走 window-Hx;主→子 ack 时填 main,路径仍写到 window-Hx/acks/",
|
|
12
|
+
"type": "string",
|
|
13
|
+
"enum": ["main", "window-h0", "window-h1", "window-h2", "window-h3", "window-h4", "window-h5", "window-h6", "window-h8", "window-h9"]
|
|
14
|
+
},
|
|
15
|
+
"sender_pid": {
|
|
16
|
+
"description": "发送窗口 CC pid(防伪 / race 排查)",
|
|
17
|
+
"type": "integer",
|
|
18
|
+
"minimum": 1
|
|
19
|
+
},
|
|
20
|
+
"ts": {
|
|
21
|
+
"description": "ISO-8601 + 时区,例 2026-04-28T14:30:00+08:00",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"format": "date-time"
|
|
24
|
+
},
|
|
25
|
+
"ts_unix": {
|
|
26
|
+
"description": "可选 unix 时间戳(秒);inject-on-start / poll / mtime delta 计算便利字段(PLAN-H9 §4.8 WP-08 DoD 机器证据)",
|
|
27
|
+
"type": "number",
|
|
28
|
+
"minimum": 0
|
|
29
|
+
},
|
|
30
|
+
"msg_id": {
|
|
31
|
+
"description": "幂等 ID,格式 <sender-prefix>-YYYYMMDD-HHMMSS-<rand 3-12 字符>;sender-prefix = main 或 h0..h9",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"pattern": "^(main|h[0-9])-[0-9]{8}-[0-9]{6}-[a-z0-9]{3,12}$"
|
|
34
|
+
},
|
|
35
|
+
"kind": {
|
|
36
|
+
"description": "progress=进度 / block=阻塞需主窗口介入 / done=完工 / question=待解答 / ack=回执",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": ["progress", "block", "done", "question", "ack"]
|
|
39
|
+
},
|
|
40
|
+
"priority": {
|
|
41
|
+
"description": "P0=立刻 wake 主窗口 / P1=正常队列 / P2=可延后",
|
|
42
|
+
"type": "string",
|
|
43
|
+
"enum": ["P0", "P1", "P2"]
|
|
44
|
+
},
|
|
45
|
+
"related_h": {
|
|
46
|
+
"description": "harness 拓扑 H 编号;H7 已撤销不允许(参 ADR-H9 §3 注释 + symptoms.md §4.3)",
|
|
47
|
+
"type": "string",
|
|
48
|
+
"enum": ["H0", "H1", "H2", "H3", "H4", "H5", "H6", "H8", "H9"]
|
|
49
|
+
},
|
|
50
|
+
"related_wp": {
|
|
51
|
+
"description": "可选;格式 WP-Hx-NN 例 WP-H9-01",
|
|
52
|
+
"type": "string",
|
|
53
|
+
"pattern": "^WP-H[0-9]-[0-9]{2}$"
|
|
54
|
+
},
|
|
55
|
+
"ack_required": {
|
|
56
|
+
"description": "是否要求主窗口回执;默认 false。priority=P0 强制 true(schema if/then 拒收 P0+false 组合);kind=ack 永远 false",
|
|
57
|
+
"type": "boolean",
|
|
58
|
+
"default": false
|
|
59
|
+
},
|
|
60
|
+
"ack_for": {
|
|
61
|
+
"description": "kind=ack 时必填,引用被 ack 的消息 msg_id",
|
|
62
|
+
"type": "string",
|
|
63
|
+
"pattern": "^(main|h[0-9])-[0-9]{8}-[0-9]{6}-[a-z0-9]{3,12}$"
|
|
64
|
+
},
|
|
65
|
+
"proposal_ref": {
|
|
66
|
+
"description": "可选;引用 .boll/proposals/* 路径(ADR-H9 §4 双写规则:message body 不复制 proposal 内容,只引用路径)",
|
|
67
|
+
"type": "string",
|
|
68
|
+
"pattern": "^\\.boll/proposals/[A-Za-z0-9._/-]+\\.md$"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"allOf": [
|
|
72
|
+
{
|
|
73
|
+
"description": "kind=ack 强制 ack_for 必填且 ack_required=false(ack 不再 ack,防递归回环)",
|
|
74
|
+
"if": {
|
|
75
|
+
"properties": {"kind": {"const": "ack"}},
|
|
76
|
+
"required": ["kind"]
|
|
77
|
+
},
|
|
78
|
+
"then": {
|
|
79
|
+
"required": ["ack_for"],
|
|
80
|
+
"properties": {
|
|
81
|
+
"ack_required": {"const": false}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"description": "priority=P0 强制 ack_required=true(防 P0 静默丢失)",
|
|
87
|
+
"if": {
|
|
88
|
+
"properties": {"priority": {"const": "P0"}},
|
|
89
|
+
"required": ["priority"]
|
|
90
|
+
},
|
|
91
|
+
"then": {
|
|
92
|
+
"required": ["ack_required"],
|
|
93
|
+
"properties": {
|
|
94
|
+
"ack_required": {"const": true}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# issue-adapter.yaml — project-level config for scripts/guard-feedback.ts
|
|
2
|
+
#
|
|
3
|
+
# Default state: disabled. Turn on by setting enabled: true and declaring
|
|
4
|
+
# at least one route or guard. Leaving this file as-is = pure noop (the
|
|
5
|
+
# hook reads, sees enabled: false, exits 0 silently).
|
|
6
|
+
#
|
|
7
|
+
# See scripts/guard-feedback.ts module docstring for full schema.
|
|
8
|
+
|
|
9
|
+
enabled: false
|
|
10
|
+
|
|
11
|
+
# When enabled, point fragments_dir to where your context fragments live.
|
|
12
|
+
# Each fragment is a markdown file that gets injected into Claude's context
|
|
13
|
+
# when the matching file is edited.
|
|
14
|
+
fragments_dir: scripts/fragments
|
|
15
|
+
|
|
16
|
+
# routes: file-glob → fragment-name pairs
|
|
17
|
+
# Example:
|
|
18
|
+
# routes:
|
|
19
|
+
# - pattern: "backend/**/*.ts"
|
|
20
|
+
# fragment: "backend-conventions.md"
|
|
21
|
+
routes: []
|
|
22
|
+
|
|
23
|
+
# guards: file-glob → script pairs. Scripts exit non-zero on failure.
|
|
24
|
+
# Example:
|
|
25
|
+
# guards:
|
|
26
|
+
# - path_pattern: "backend/**"
|
|
27
|
+
# script: scripts/checks/check_api_types.ts
|
|
28
|
+
guards: []
|
|
29
|
+
|
|
30
|
+
# Where to append JSONL metric events. Can be relative to project root or absolute.
|
|
31
|
+
metrics_file: .boll/state/metrics/guard-events.jsonl
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# boll vNext Mode Contract
|
|
2
|
+
|
|
3
|
+
> Companion to `../03-design.md` §7. Addresses Phase 1 §6.3 (mode collapse — brainstorm / build / verify / release not first-class). Grounded in Phase 2 §1.1 (CC Plan Mode), §3.2 (Cursor checkpoints), §3.7 synthesis ("mode is runtime state, not prose").
|
|
4
|
+
|
|
5
|
+
The mode is **the** runtime state variable. It lives at `.boll/state/mode` as a single word. Every hook, every capability check, and every review binding reads that file to decide what is allowed.
|
|
6
|
+
|
|
7
|
+
## Four modes
|
|
8
|
+
|
|
9
|
+
| Mode | Purpose | Tool profile | Allowed transitions |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| `plan` | brainstorm, explore, write a plan, ask clarifying questions | read-only: Read, Glob, Grep, Bash(git log:\*), WebFetch, WebSearch, AskUserQuestion | → build |
|
|
12
|
+
| `build` | make code changes against an approved plan | Read + Write + Edit + Bash(scoped) | → verify, ← plan |
|
|
13
|
+
| `verify` | run tests, inspect diffs, accumulate evidence, no new edits | Read + Bash(test:\*) + Bash(git diff:\*) | → release, ← build |
|
|
14
|
+
| `release` | commit / push / deploy / retire assets | Write + Bash(git commit:\*) + Bash(git push:\*) + Bash(deploy:\*) | → plan (new run) |
|
|
15
|
+
|
|
16
|
+
Mode is set by: (1) explicit user command (`/mode build`), (2) plan-approval gate (plan → build), (3) verify-gate pass (verify → release), or (4) auto-reset to `plan` after release. **No prompt text ever sets mode.**
|
|
17
|
+
|
|
18
|
+
## Default value when absent
|
|
19
|
+
|
|
20
|
+
If `.boll/state/mode` does not exist when the router reads it, the router treats the mode as `legacy` (pass-through) and lazily creates the file with content `legacy`. The default is enforced at read time; no runtime state file is ever committed.
|
|
21
|
+
|
|
22
|
+
## Per-mode capability profile
|
|
23
|
+
|
|
24
|
+
Each mode maps to a tool allowlist and a review binding. `capability-router.ts` (see `../hooks/capability-router.ts`) reads `.boll/state/mode` on every `PreToolUse` and denies tool calls that do not fit the current mode's profile.
|
|
25
|
+
|
|
26
|
+
### `plan`
|
|
27
|
+
|
|
28
|
+
- **Permits:** Read, Glob, Grep, WebFetch, WebSearch, AskUserQuestion, Bash(git log:\*), Bash(git status), Bash(git diff:\*)
|
|
29
|
+
- **Denies:** Edit, Write, Bash(git commit:\*), Bash(git push:\*), Bash(rm:\*), Bash(deploy:\*), Edit-like MCP tools, SendMessage to execution agents
|
|
30
|
+
- **Emits:** on transition out of plan, one evidence packet (`kind: gate`) with the plan file's sha256 and the human approver's id
|
|
31
|
+
- **Typical duration:** minutes to hours
|
|
32
|
+
- **Compact behavior:** tiny kernel reload; plan file itself is the resume pointer
|
|
33
|
+
|
|
34
|
+
### `build`
|
|
35
|
+
|
|
36
|
+
- **Permits:** plan's permissions + Edit, Write, Bash(npx jest:\*), Bash(npm test:\*), Bash(cargo check:\*), subagent spawn (executor)
|
|
37
|
+
- **Denies:** Bash(git push:\*), Bash(git commit:\*) (commits happen at release), Bash(deploy:\*), Bash(rm:\*) unless path in `/tmp/`, SendMessage outside run
|
|
38
|
+
- **Emits:** per-edit step evidence (`kind: step`); at transition to verify, one gate packet
|
|
39
|
+
- **Typical duration:** hours
|
|
40
|
+
- **Compact behavior:** kernel + pointer to current run.json; evidence files are the durable state
|
|
41
|
+
|
|
42
|
+
### `verify`
|
|
43
|
+
|
|
44
|
+
- **Permits:** Read, Glob, Grep, Bash(git diff:\*), Bash(test:\*), reviewer subagent spawn
|
|
45
|
+
- **Denies:** Edit, Write, Bash(git commit:\*), Bash(git push:\*), Bash(deploy:\*)
|
|
46
|
+
- **Emits:** one `merge_ready` packet at transition to release
|
|
47
|
+
- **Typical duration:** minutes
|
|
48
|
+
- **Compact behavior:** verify should not outlast a single compact window; if it does, the verify run aborts and re-starts from the last gate packet
|
|
49
|
+
|
|
50
|
+
### `release`
|
|
51
|
+
|
|
52
|
+
- **Permits:** Bash(git commit:\*), Bash(git push:\*), Bash(deploy:\*), asset retirement via `/retire` command
|
|
53
|
+
- **Denies:** Edit (code changes) — if a change is needed, mode must return to `build`
|
|
54
|
+
- **Emits:** release-level evidence packet with commit sha and (if applicable) deploy id
|
|
55
|
+
- **Typical duration:** minutes
|
|
56
|
+
- **Compact behavior:** out of scope; release does not survive compact — it either completes or aborts
|
|
57
|
+
|
|
58
|
+
## Transition gates
|
|
59
|
+
|
|
60
|
+
| From | To | Gate |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| plan | build | human approval of plan file (design-review binding in `review-contract.yaml`) |
|
|
63
|
+
| build | verify | gate packet exists and passes `verify-gate.ts` schema check |
|
|
64
|
+
| verify | release | `merge_ready` packet exists, CI green, all UNKNOWNs resolved or explicitly deferred |
|
|
65
|
+
| release | plan | automatic on release success; new run.json is created |
|
|
66
|
+
| any | plan | allowed (abort current run — produces an abort packet with reason) |
|
|
67
|
+
|
|
68
|
+
## What mode is **not**
|
|
69
|
+
|
|
70
|
+
- Mode is not a prompt string. CLAUDE.md-vnext does not describe modes — it points the model at `.boll/state/mode` and the router hook does the rest.
|
|
71
|
+
- Mode is not a skill. `lead` skill's 0–8 gate state machine (Phase 1 §3.4) is an example of mode-as-prose; it is **retired** (see `../03-design.md` §12 matrix).
|
|
72
|
+
- Mode is not per-subagent. Subagents inherit the parent run's mode; a subagent cannot self-elevate.
|
|
73
|
+
- Mode is not per-team. Parallel runs each have their own `.boll/state/<run-id>/mode` file.
|
|
74
|
+
|
|
75
|
+
## Multi-task parallelism under the mode model
|
|
76
|
+
|
|
77
|
+
The brief requires parallel-multitask support. The mode contract supports parallelism with one rule:
|
|
78
|
+
|
|
79
|
+
> **Parallel runs share nothing except the repo.** Each parallel run gets a unique run_id, its own `.boll/state/<run-id>/mode`, its own evidence tree, and its own subagent context. Mode is per-run, not global.
|
|
80
|
+
|
|
81
|
+
Two builds can run simultaneously on disjoint file paths. If they intersect, the second run's `PreToolUse` on a conflicting path is denied by `capability-router.ts` reading a file-lock table at `.boll/state/locks.json`. No prompt-level "don't step on each other" rule.
|
|
82
|
+
|
|
83
|
+
## What the human sees
|
|
84
|
+
|
|
85
|
+
The mode name is rendered in the session status line by a SessionStart hook. Nothing else needs to remind the model — the router and the verify-gate do.
|
package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://bollharness.local/schemas/evidence-packet-v1.json",
|
|
4
|
+
"title": "boll vNext Evidence Packet",
|
|
5
|
+
"description": "Canonical shape of a completion / verification evidence packet. Every evidence file under .boll/evidence/<run-id>/ MUST validate against this schema. Referenced by ../hooks/verify-gate.ts. Addresses Phase 1 §2.7 / §3.1 / open-question A.7 (no explicit completion-evidence artifact existed). Grounded in Phase 2 §4.4 (PRM) and §3.8 (closure = commit + packet).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["packet_id", "run_id", "step_id", "mode", "kind", "created_at", "author", "claims", "evidence", "digest"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"packet_id": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"pattern": "^[0-9a-f]{64}$",
|
|
13
|
+
"description": "sha256 of the canonical-JSON serialization of this packet with digest omitted."
|
|
14
|
+
},
|
|
15
|
+
"run_id": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^[0-9a-zA-Z_-]{8,64}$"
|
|
18
|
+
},
|
|
19
|
+
"step_id": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Stable per-step identifier: step number or sub-task id. For run-level packets (MERGE_READY), use 'FINAL'."
|
|
22
|
+
},
|
|
23
|
+
"mode": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"enum": ["plan", "build", "verify", "release"]
|
|
26
|
+
},
|
|
27
|
+
"kind": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"enum": ["step", "gate", "merge_ready", "retire"],
|
|
30
|
+
"description": "step = per-edit evidence; gate = mode-transition gate; merge_ready = run-level completion; retire = asset retirement packet."
|
|
31
|
+
},
|
|
32
|
+
"created_at": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"format": "date-time"
|
|
35
|
+
},
|
|
36
|
+
"author": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"required": ["kind", "id"],
|
|
39
|
+
"properties": {
|
|
40
|
+
"kind": {"enum": ["model", "hook", "human"]},
|
|
41
|
+
"id": {"type": "string", "description": "model name, hook script path, or human user id"}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"claims": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"minItems": 1,
|
|
47
|
+
"description": "What the author says was accomplished. Plain strings.",
|
|
48
|
+
"items": {"type": "string", "minLength": 4, "maxLength": 240}
|
|
49
|
+
},
|
|
50
|
+
"evidence": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"minItems": 1,
|
|
53
|
+
"description": "Concrete substantiation per claim. Every claim must have ≥1 matching evidence entry.",
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"required": ["claim_index", "type", "ref"],
|
|
57
|
+
"additionalProperties": false,
|
|
58
|
+
"properties": {
|
|
59
|
+
"claim_index": {"type": "integer", "minimum": 0},
|
|
60
|
+
"type": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"enum": ["commit_sha", "test_result", "file_hash", "command_output", "external_link", "human_attestation"]
|
|
63
|
+
},
|
|
64
|
+
"ref": {"type": "string", "description": "commit sha / test name / file path / url / attestation id"},
|
|
65
|
+
"summary": {"type": "string", "maxLength": 240},
|
|
66
|
+
"pass": {"type": "boolean", "description": "only for test_result / command_output"}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"blockers": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"description": "Known issues that should block closure at the current mode. Empty = no blockers declared.",
|
|
73
|
+
"items": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"required": ["severity", "note"],
|
|
76
|
+
"properties": {
|
|
77
|
+
"severity": {"enum": ["info", "warn", "block"]},
|
|
78
|
+
"note": {"type": "string", "minLength": 4, "maxLength": 480},
|
|
79
|
+
"owner": {"type": "string"}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"unknowns": {
|
|
84
|
+
"type": "array",
|
|
85
|
+
"description": "Explicit UNKNOWNs the author cannot resolve. Surfacing them here is required — silent omission is a verify-gate fail (Phase 1 §6.1 affordance failure).",
|
|
86
|
+
"items": {"type": "string", "minLength": 4, "maxLength": 480}
|
|
87
|
+
},
|
|
88
|
+
"predecessors": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"description": "packet_ids this packet builds on (forms the run's evidence DAG).",
|
|
91
|
+
"items": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
|
|
92
|
+
},
|
|
93
|
+
"digest": {
|
|
94
|
+
"type": "object",
|
|
95
|
+
"required": ["algorithm", "value"],
|
|
96
|
+
"properties": {
|
|
97
|
+
"algorithm": {"const": "sha256"},
|
|
98
|
+
"value": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# boll vNext Review Contract
|
|
2
|
+
# Companion to ../03-design.md §8. Addresses Phase 1 §6.2 (capability-delivery contradiction),
|
|
3
|
+
# §3.3 (review-agent-gatekeeper matcher-miss), §3.1 (review-agent-isolation.md).
|
|
4
|
+
# Grounded in Phase 2 §3.8 (closure = commit + packet), §2.1 (Codex review-pane pattern).
|
|
5
|
+
#
|
|
6
|
+
# A review-contract binding declares WHAT a review does. Each review mode is one of:
|
|
7
|
+
# pane — reviewer is a diff pane + evidence packet produced by a tool (no agent spawn)
|
|
8
|
+
# subagent — reviewer is a read-only subagent with strict tool whitelist
|
|
9
|
+
# human — human is the reviewer; harness packages the evidence
|
|
10
|
+
#
|
|
11
|
+
# The single source of truth. No review happens outside a binding that parses as this schema.
|
|
12
|
+
#
|
|
13
|
+
# Evidence packet schema reference: `./evidence-packet-schema.json` (plugin-relative;
|
|
14
|
+
# co-located in this plugin's contracts/ directory per WP-037 packaging).
|
|
15
|
+
# Every `outputs.evidence_packet` below must conform to that schema; verify-gate.ts
|
|
16
|
+
# (WP-024) validates producer- and consumer-side agreement.
|
|
17
|
+
#
|
|
18
|
+
# Per-binding `active` field: true = binding is live; false = binding is present
|
|
19
|
+
# but inert (parses, references the schema, but triggers no gate yet). WP-022
|
|
20
|
+
# activates only `design-review` and `retirement-review` (the two human-gated
|
|
21
|
+
# bindings); `default-build-review` and `merge-ready-review` ship as inactive
|
|
22
|
+
# placeholders, activated later by WP-026 and WP-027 respectively.
|
|
23
|
+
|
|
24
|
+
schema_version: 1
|
|
25
|
+
evidence_packet_schema_ref: ./evidence-packet-schema.json
|
|
26
|
+
|
|
27
|
+
# ── ADR-H5 §3 INV-H5-1: line_caps schema 化 ──
|
|
28
|
+
# 把散落在 ADR-H0/H1/H3/H4 共 4 处的行数硬限收口为顶层字段。各 cap 数值由
|
|
29
|
+
# source_adr 决定(H5 仅做收口聚合 + ref 指针,不重新定义数值)。
|
|
30
|
+
# 红线(INV-H5-1):增加新 cap 项必须在原始 ADR 中先有"≤N 行"明文规定。
|
|
31
|
+
line_caps:
|
|
32
|
+
- id: adr-h-series
|
|
33
|
+
glob: "docs/decisions/ADR-H*.md"
|
|
34
|
+
max_lines: 300
|
|
35
|
+
source_adr: "ADR-H0 §H0.2"
|
|
36
|
+
- id: plan-h-series
|
|
37
|
+
glob: "docs/decisions/PLAN-H*.md"
|
|
38
|
+
max_lines: 500
|
|
39
|
+
source_adr: "ADR-H0 §H0.2"
|
|
40
|
+
- id: lead-skill-h-segment
|
|
41
|
+
glob: ".boll/skills/lead/SKILL.md"
|
|
42
|
+
max_lines: 220
|
|
43
|
+
source_adr: "ADR-H1 受管资产 + ADR-H4 INV-H4-1"
|
|
44
|
+
- id: memory-master-index
|
|
45
|
+
glob: "~/.boll/projects/-Users-nature------boll/memory/MEMORY.md"
|
|
46
|
+
max_lines: 200
|
|
47
|
+
source_adr: "ADR-H3 INV-H3-2 v1.1"
|
|
48
|
+
|
|
49
|
+
# ── ADR-H5 §5 inflation 规则(3 条)──
|
|
50
|
+
# 把 ADR-H0 §H0.2 行数限额 + H0.3 执检分离 + H0.4 自指禁止
|
|
51
|
+
# 升级到 schema-level 字段(CC 直接读,不再 prompt-level 70%)。
|
|
52
|
+
inflation:
|
|
53
|
+
no_grow_now_clean_later: true # 规则 1: 不接受"merge 后下个 PR 拆"理由
|
|
54
|
+
drafter_reviewer_must_differ_session: true # 规则 2: 起草人 ≠ reviewer 同 session
|
|
55
|
+
h0_self_check_segment_required: true # 规则 3: 任何 ADR-Hx 必含 §H0 自检段
|
|
56
|
+
|
|
57
|
+
# ── ADR-H6 §3 INV-H6-1: state 清单 schema 化 ──
|
|
58
|
+
# 把 .boll/state + .boll/proposals + .boll/guard + .boll/log + .boll/inbox + .boll/evidence
|
|
59
|
+
# 等 state 资产收口为顶层清单。kind: dynamic / archived / append-only / managed-by-other-h
|
|
60
|
+
# 红线(INV-H6-1):新增 state 资产路径必须先在原始 ADR 中宣告归属 owner。
|
|
61
|
+
state_inventory:
|
|
62
|
+
- id: state-mode
|
|
63
|
+
path: ".boll/state/mode"
|
|
64
|
+
kind: dynamic
|
|
65
|
+
owner: boll-mode-toolkit
|
|
66
|
+
- id: state-run
|
|
67
|
+
path: ".boll/state/run.json"
|
|
68
|
+
kind: dynamic
|
|
69
|
+
owner: boll-mode-toolkit
|
|
70
|
+
- id: state-locks
|
|
71
|
+
path: ".boll/state/locks.json"
|
|
72
|
+
kind: dynamic
|
|
73
|
+
owner: boll-mode-toolkit
|
|
74
|
+
- id: state-completion-proposal
|
|
75
|
+
path: ".boll/state/completion-proposal.json"
|
|
76
|
+
kind: dynamic
|
|
77
|
+
owner: boll-review-toolkit
|
|
78
|
+
- id: state-risk-snapshot
|
|
79
|
+
path: ".boll/state/risk-snapshot.json"
|
|
80
|
+
kind: dynamic
|
|
81
|
+
owner: risk-tracker
|
|
82
|
+
- id: state-round-verdicts
|
|
83
|
+
path: ".boll/state/round{1-5}-verdicts/"
|
|
84
|
+
kind: archived
|
|
85
|
+
owner: harness-review-history
|
|
86
|
+
- id: state-archived-dir
|
|
87
|
+
path: ".boll/state/_archived/"
|
|
88
|
+
kind: archived
|
|
89
|
+
owner: ADR-H6
|
|
90
|
+
- id: proposals-self-evolution
|
|
91
|
+
path: ".boll/proposals/"
|
|
92
|
+
kind: append-only
|
|
93
|
+
owner: vNext-self-evolution
|
|
94
|
+
note: "265 文件; 只增不删"
|
|
95
|
+
- id: guard-loop-counter
|
|
96
|
+
path: ".boll/guard/"
|
|
97
|
+
kind: append-only
|
|
98
|
+
owner: harness-guard
|
|
99
|
+
note: "11321 文件; 活工具态非污染(H 系列调研 #4 认知修正)"
|
|
100
|
+
- id: log-self-symptoms
|
|
101
|
+
path: ".boll/log/harness-self-symptoms.md"
|
|
102
|
+
kind: append-only
|
|
103
|
+
owner: H 系列
|
|
104
|
+
- id: log-hook-ledger
|
|
105
|
+
path: ".boll/log/hook/"
|
|
106
|
+
kind: append-only
|
|
107
|
+
owner: 各 hook
|
|
108
|
+
- id: inbox-mailbox
|
|
109
|
+
path: ".boll/inbox/"
|
|
110
|
+
kind: managed-by-other-h
|
|
111
|
+
owner: ADR-H9
|
|
112
|
+
note: "main/quarantine/schema/window-h{0-6,8,9}"
|
|
113
|
+
- id: evidence-packets
|
|
114
|
+
path: ".boll/evidence/"
|
|
115
|
+
kind: managed-by-other-h
|
|
116
|
+
owner: 各 PLAN
|
|
117
|
+
|
|
118
|
+
# ── ADR-H6 §3 INV-H6-2: state 健康度指标 schema 化 ──
|
|
119
|
+
# 红线(INV-H6-2):每条指标必须给出可执行 check 命令;不接受"靠人脑感知"。
|
|
120
|
+
state_health_indicators:
|
|
121
|
+
- id: schema-validity
|
|
122
|
+
desc: "dynamic JSON 文件 JSON parse 通过 + 必填字段非空"
|
|
123
|
+
check: "npx ts-node -e 'import * as json from \"json\"; [json.parse(require(\"fs\").readFileSync(p,\"utf8\")) for p in [\".boll/state/run.json\", \".boll/state/locks.json\", \".boll/state/completion-proposal.json\", \".boll/state/risk-snapshot.json\"]]'"
|
|
124
|
+
- id: top-level-no-noise
|
|
125
|
+
desc: ".boll/state/ 顶层无 .DS_Store / 未归档 archived 文件 / 临时文件"
|
|
126
|
+
check: "ls .boll/state/.DS_Store .boll/state/*archived*.json 2>/dev/null | wc -l"
|
|
127
|
+
expect: 0
|
|
128
|
+
- id: inbox-unread-volume
|
|
129
|
+
desc: ".boll/inbox/main/unread/ ≤50 文件(H9 ADR 红线复用)"
|
|
130
|
+
check: "ls .boll/inbox/main/unread/ 2>/dev/null | wc -l"
|
|
131
|
+
expect_max: 50
|
|
132
|
+
|
|
133
|
+
bindings:
|
|
134
|
+
|
|
135
|
+
- id: default-build-review
|
|
136
|
+
active: true # WP-026 activation — default build closures require pane packet
|
|
137
|
+
applies_when:
|
|
138
|
+
mode: build
|
|
139
|
+
task_kind: code_change
|
|
140
|
+
reviewer:
|
|
141
|
+
type: pane
|
|
142
|
+
produces: evidence-packet:kind=gate
|
|
143
|
+
inputs:
|
|
144
|
+
- diff: git_diff_against_main
|
|
145
|
+
- tests: required_tests_for_changed_files
|
|
146
|
+
- packet: previous_step_evidence
|
|
147
|
+
outputs:
|
|
148
|
+
- evidence_packet:
|
|
149
|
+
mode: build
|
|
150
|
+
kind: gate
|
|
151
|
+
claims:
|
|
152
|
+
- "diff is small enough to review (< 400 lines changed or ≥ 1 reviewer attestation)"
|
|
153
|
+
- "all changed files have at least one test that exercises the change OR a blocker entry"
|
|
154
|
+
- blockers_surface: top_level
|
|
155
|
+
gating:
|
|
156
|
+
blocks_mode_transition_to: verify
|
|
157
|
+
bypass_requires: human_attestation
|
|
158
|
+
|
|
159
|
+
- id: merge-ready-review
|
|
160
|
+
active: true # WP-027 activation — merge-ready gating + reviewer subagent installed
|
|
161
|
+
applies_when:
|
|
162
|
+
mode: verify
|
|
163
|
+
transition_target: release
|
|
164
|
+
reviewer:
|
|
165
|
+
type: subagent
|
|
166
|
+
subagent_ref: reviewer # see ../prompts/agent-reviewer.md
|
|
167
|
+
tools_whitelist: # CC frontmatter `tools:` list; enforced at capability layer
|
|
168
|
+
- Read
|
|
169
|
+
- Glob
|
|
170
|
+
- Grep
|
|
171
|
+
- Bash(git log:*)
|
|
172
|
+
- Bash(git diff:*)
|
|
173
|
+
- Bash(npx jest --collect-only:*)
|
|
174
|
+
forbidden_tools: [Edit, Write, Bash(rm:*), Bash(git push:*), SendMessage]
|
|
175
|
+
# Phase 1 open-question C.2: if delivery requires SendMessage, the runtime
|
|
176
|
+
# MUST re-spawn via a separate delivery tool; reviewer itself stays pure.
|
|
177
|
+
# ── ADR-H5 §3 INV-H5-2: 执检分离 binding 化 ──
|
|
178
|
+
# 把 ADR-H0 §H0.3 从 ad-hoc prompt 升级到 schema 字段。reviewer subagent 必须
|
|
179
|
+
# 来自白名单;verdict 文件路径必须匹配 evidence_path_pattern。
|
|
180
|
+
drafter_reviewer_separation:
|
|
181
|
+
required: true
|
|
182
|
+
rationale: "ADR-H0 §H0.3 执检分离 + ADR-038 D11.2"
|
|
183
|
+
evidence_path_pattern: "docs/decisions/tasks/PLAN-{plan}/WP-05/reviewer-verdict-*.md"
|
|
184
|
+
reviewer_subagent_whitelist:
|
|
185
|
+
- "pr-review-toolkit:code-reviewer"
|
|
186
|
+
- "boll-review-toolkit:reviewer"
|
|
187
|
+
inputs:
|
|
188
|
+
- all_step_packets: true
|
|
189
|
+
- all_gate_packets: true
|
|
190
|
+
- aggregate_diff: true
|
|
191
|
+
outputs:
|
|
192
|
+
- evidence_packet:
|
|
193
|
+
mode: verify
|
|
194
|
+
kind: merge_ready
|
|
195
|
+
must_include_unknowns: true # Phase 1 §6.1 anti-affordance: hiding unknowns fails gate
|
|
196
|
+
gating:
|
|
197
|
+
blocks_mode_transition_to: release
|
|
198
|
+
requires_all:
|
|
199
|
+
- every_unknown_in_earlier_packets_resolved_or_explicitly_deferred
|
|
200
|
+
- no_blocker_of_severity_block
|
|
201
|
+
- aggregate_diff_ci_green
|
|
202
|
+
bypass_requires: human_attestation_with_reason_string
|
|
203
|
+
|
|
204
|
+
- id: design-review
|
|
205
|
+
active: true # WP-022 activation — human-gated, low-traffic
|
|
206
|
+
applies_when:
|
|
207
|
+
mode: plan
|
|
208
|
+
transition_target: build
|
|
209
|
+
reviewer:
|
|
210
|
+
type: human
|
|
211
|
+
inputs:
|
|
212
|
+
- plan_file_ref: true
|
|
213
|
+
- reasoning_trace: optional
|
|
214
|
+
outputs:
|
|
215
|
+
- evidence_packet:
|
|
216
|
+
mode: plan
|
|
217
|
+
kind: gate
|
|
218
|
+
gating:
|
|
219
|
+
blocks_mode_transition_to: build
|
|
220
|
+
bypass_requires: never # plan → build is always human-gated
|
|
221
|
+
|
|
222
|
+
- id: retirement-review
|
|
223
|
+
active: true # WP-022 activation — human-gated, rare, high-blast-radius
|
|
224
|
+
applies_when:
|
|
225
|
+
operation: retire_asset
|
|
226
|
+
reviewer:
|
|
227
|
+
type: pane
|
|
228
|
+
produces: evidence-packet:kind=retire
|
|
229
|
+
inputs:
|
|
230
|
+
- asset_path: required
|
|
231
|
+
- usage_stats: last_90_days
|
|
232
|
+
- replaced_by: required_or_explicit_null
|
|
233
|
+
outputs:
|
|
234
|
+
- evidence_packet:
|
|
235
|
+
mode: release
|
|
236
|
+
kind: retire
|
|
237
|
+
claims:
|
|
238
|
+
- "asset was used fewer than N times in last 90 days OR replaced_by is non-null"
|
|
239
|
+
- "retire target is .boll/retired/<date>/ (not deleted)"
|
|
240
|
+
gating:
|
|
241
|
+
requires: human_attestation
|
|
242
|
+
|
|
243
|
+
# Explicit non-bindings — work that is NOT a review:
|
|
244
|
+
non_reviews:
|
|
245
|
+
- user_asks_claude_a_question # Phase 1 §6.3 mode collapse — chat ≠ review
|
|
246
|
+
- brainstorm # plan mode does not auto-trigger review
|
|
247
|
+
- read_only_exploration # no review until a change is proposed
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "backend/**"
|
|
4
|
+
- "server/**"
|
|
5
|
+
- "api/**"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# {{PROJECT_NAME}} Backend Routes (Template)
|
|
9
|
+
|
|
10
|
+
> 这是一个 domain-specific 的路由索引 rule 模板。bollharness fork 时保留骨架,业务内容由 {{PROJECT_NAME}} 安装后填充。
|
|
11
|
+
|
|
12
|
+
## 如何使用
|
|
13
|
+
|
|
14
|
+
1. 安装 bollharness 后, 把 `{{PROJECT_NAME}}` 替换成你的项目名
|
|
15
|
+
2. 把下表的示例行替换为你项目的真实路由
|
|
16
|
+
3. `.boll/rules/backend-routes.md` 的作用是让 agent 在读 `backend/**` 文件时自动加载此索引, 避免 agent 凭记忆猜路由
|
|
17
|
+
|
|
18
|
+
## 路由索引
|
|
19
|
+
|
|
20
|
+
| 方法 | 路径 | 模块 | 说明 |
|
|
21
|
+
|------|------|------|------|
|
|
22
|
+
| GET | `/api/{{DOMAIN}}/health` | {{DOMAIN}}/health.ts | 健康检查 |
|
|
23
|
+
| POST | `/api/{{DOMAIN}}/{{RESOURCE}}` | {{DOMAIN}}/routes.ts | 创建资源示例 |
|
|
24
|
+
|
|
25
|
+
## 真相源声明
|
|
26
|
+
|
|
27
|
+
本文件**不是**路由的真相源。真相源永远是实际的 FastAPI / Flask / Express router 代码。这份 rule 只是让 agent 有个检索起点。如果 rule 和代码冲突, 以代码为准, 并提醒修本文件。
|
|
28
|
+
|
|
29
|
+
## 生成建议
|
|
30
|
+
|
|
31
|
+
如果项目规模较大, 推荐用脚本自动生成这份 rule(例如 `npx ts-node scripts/gen_routes_rule.ts > .boll/rules/backend-routes.md`)而不是人工维护。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "docs/issues/**"
|
|
4
|
+
- "docs/decisions/ADR-030*"
|
|
5
|
+
- "src/scripts/hooks/**"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Closure Semantics
|
|
9
|
+
|
|
10
|
+
## Fixed 三层定义
|
|
11
|
+
|
|
12
|
+
Issue 标记 "Fixed" 不等于"症状消失"。三个层级:
|
|
13
|
+
|
|
14
|
+
| 层级 | 含义 | 标准 | 标记 |
|
|
15
|
+
|------|------|------|------|
|
|
16
|
+
| Level 1 | 症状消失 | 生产不报错了,但没有分析复发路径 | Runtime Fixed |
|
|
17
|
+
| Level 2 | 复发路径关闭 | 修了根因,分析了复发路径,写了 prevention_status | **Fixed** |
|
|
18
|
+
| Level 3 | 机制消灭 | Fixed + 有机械化 guard 自动检测防止复发 | Fixed + Guarded |
|
|
19
|
+
|
|
20
|
+
## Issue Doc YAML Frontmatter 规范
|
|
21
|
+
|
|
22
|
+
所有 `docs/issues/` 下的 issue 文档必须包含以下 frontmatter 字段:
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
status: fixed|open|wont_fix # 当前状态
|
|
26
|
+
prevention_status: open|closed # 复发预防是否闭环
|
|
27
|
+
mechanism_layer: guard|test|type|convention # 防护机制层级
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
详见: `docs/decisions/ADR-030-guard-signal-and-governance-reload.md`
|