@bolloon/bolloon-agent 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/bolloon-cli.cjs +157 -0
- package/bin/bolloon-daemon.sh +207 -0
- package/bin/bolloon.cmd +11 -0
- package/dist/agents/constraint-layer.js +10 -15
- package/dist/agents/pi-sdk.js +433 -106
- package/dist/agents/protocol.js +82 -1
- package/dist/agents/subagent-manager.js +2 -2
- package/dist/agents/workflow-engine.js +15 -20
- package/dist/agents/workflow-pivot-loop.js +541 -0
- package/dist/bollharness/src/index.js +5 -0
- package/dist/bollharness/src/scripts/checks/check_adr_plan_numbering.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_api_types.js +45 -0
- package/dist/bollharness/src/scripts/checks/check_artifact_link.js +146 -0
- package/dist/bollharness/src/scripts/checks/check_bridge_deps.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_bugfix_binding.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_bugfix_binding_ci.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_doc_file_references.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_doc_freshness.js +135 -0
- package/dist/bollharness/src/scripts/checks/check_doc_links.js +31 -0
- package/dist/bollharness/src/scripts/checks/check_file_existence_claims.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_fragment_integrity.js +34 -0
- package/dist/bollharness/src/scripts/checks/check_hook_installed.js +63 -0
- package/dist/bollharness/src/scripts/checks/check_issue_closure.js +41 -0
- package/dist/bollharness/src/scripts/checks/check_mcp_parity.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_security.js +48 -0
- package/dist/bollharness/src/scripts/checks/check_skill_parity.js +6 -0
- package/dist/bollharness/src/scripts/checks/check_versions.js +6 -0
- package/dist/bollharness/src/scripts/checks/finding.js +13 -0
- package/dist/bollharness/src/scripts/checks/next_decision_number.js +20 -0
- package/dist/bollharness/src/scripts/checks/regenerate_magic_docs.js +6 -0
- package/dist/bollharness/src/scripts/ci/detect_rebaseline_triggers.js +8 -0
- package/dist/bollharness/src/scripts/ci/scan_subprocess_cfg.js +8 -0
- package/dist/bollharness/src/scripts/ci/scan_verify_artifacts.js +8 -0
- package/dist/bollharness/src/scripts/ci/scan_yaml_schema.js +8 -0
- package/dist/bollharness/src/scripts/context_router.js +67 -0
- package/dist/bollharness/src/scripts/deploy-guard.js +157 -0
- package/dist/bollharness/src/scripts/guard-feedback.js +192 -0
- package/dist/bollharness/src/scripts/guard_router.js +158 -0
- package/dist/bollharness/src/scripts/hooks/_hook_output.js +6 -0
- package/dist/bollharness/src/scripts/hooks/auto-python3.js +6 -0
- package/dist/bollharness/src/scripts/hooks/deploy-progress-on-session-end.js +6 -0
- package/dist/bollharness/src/scripts/hooks/failure-analyzer.js +6 -0
- package/dist/bollharness/src/scripts/hooks/gate-judgment-inject.js +92 -0
- package/dist/bollharness/src/scripts/hooks/gate-transition-judgment.js +63 -0
- package/dist/bollharness/src/scripts/hooks/inbox-ack.js +6 -0
- package/dist/bollharness/src/scripts/hooks/inbox-inject-on-start.js +6 -0
- package/dist/bollharness/src/scripts/hooks/inbox-validate.js +6 -0
- package/dist/bollharness/src/scripts/hooks/inbox-write-ledger.js +6 -0
- package/dist/bollharness/src/scripts/hooks/initializer-agent.js +6 -0
- package/dist/bollharness/src/scripts/hooks/loop-detection.js +73 -0
- package/dist/bollharness/src/scripts/hooks/owner-guard.js +6 -0
- package/dist/bollharness/src/scripts/hooks/precompact.js +6 -0
- package/dist/bollharness/src/scripts/hooks/review-agent-gatekeeper.js +6 -0
- package/dist/bollharness/src/scripts/hooks/risk-tracker.js +108 -0
- package/dist/bollharness/src/scripts/hooks/sanitize-on-read.js +6 -0
- package/dist/bollharness/src/scripts/hooks/session-reflection.js +7 -0
- package/dist/bollharness/src/scripts/hooks/session-start-magic-docs.js +7 -0
- package/dist/bollharness/src/scripts/hooks/session-start-reset-risk.js +7 -0
- package/dist/bollharness/src/scripts/hooks/session-start-toolkit-reminder.js +7 -0
- package/dist/bollharness/src/scripts/hooks/stop-evaluator.js +157 -0
- package/dist/bollharness/src/scripts/hooks/tool-call-counter.js +6 -0
- package/dist/bollharness/src/scripts/hooks/trace-analyzer.js +10 -0
- package/dist/bollharness/src/scripts/install/install-trust-token.js +7 -0
- package/dist/bollharness/src/scripts/install/multi_project_registry.js +9 -0
- package/dist/bollharness/src/scripts/install/phase2_auto.js +21 -0
- package/dist/bollharness/src/scripts/install/pre_commit_installer.js +6 -0
- package/dist/bollharness/src/scripts/install/tier_selector.js +7 -0
- package/dist/bollharness/src/scripts/install/transcript_miner.js +7 -0
- package/dist/bollharness/src/scripts/lib/claim_patterns.js +10 -0
- package/dist/bollharness/src/scripts/lib/sanitize_patterns.js +12 -0
- package/dist/bollharness/src/scripts/sanitize.js +6 -0
- package/dist/bollharness-integration/channel-judgment-engine.js +530 -0
- package/dist/bollharness-integration/context-chain-router.js +383 -0
- package/dist/bollharness-integration/context-router-judgment.js +13 -21
- package/dist/bollharness-integration/context-router.js +22 -64
- package/dist/bollharness-integration/gate-state-machine.js +14 -19
- package/dist/bollharness-integration/gate-transition-hooks.js +16 -61
- package/dist/bollharness-integration/guard-checker.js +21 -68
- package/dist/bollharness-integration/index.js +14 -124
- package/dist/bollharness-integration/integration.js +13 -20
- package/dist/bollharness-integration/llm-judgment-engine.js +569 -0
- package/dist/bollharness-integration/skill-adapter.js +18 -64
- package/dist/cli-entry.js +261 -0
- package/dist/constraint-runtime/src/commands.js +17 -7
- package/dist/constraint-runtime/src/constraint/budget.js +1 -6
- package/dist/constraint-runtime/src/constraint/permission.js +1 -6
- package/dist/constraint-runtime/src/models.js +1 -3
- package/dist/constraint-runtime/src/tools.js +17 -7
- package/dist/constraints/index.js +1 -7
- package/dist/documents/reader.js +8 -49
- package/dist/heartbeat/DaemonManager.js +242 -0
- package/dist/heartbeat/HealthMonitor.js +285 -0
- package/dist/heartbeat/StartupVerifier.js +205 -0
- package/dist/heartbeat/Watchdog.js +168 -0
- package/dist/heartbeat/index.js +84 -0
- package/dist/heartbeat/types.js +5 -0
- package/dist/index.js +381 -28
- package/dist/llm/config-store.js +31 -57
- package/dist/llm/llm-judgment-client.js +389 -0
- package/dist/llm/pi-ai.js +9 -52
- package/dist/network/agent-network.js +46 -90
- package/dist/network/hybrid-messenger.js +125 -0
- package/dist/network/iroh-bootstrap.js +38 -0
- package/dist/network/iroh-discovery.js +145 -0
- package/dist/network/iroh-integration.js +9 -16
- package/dist/network/iroh-transport.js +10 -48
- package/dist/network/p2p.js +23 -62
- package/dist/network/storage/adapters/json-adapter.js +4 -42
- package/dist/network/storage/index.js +147 -0
- package/dist/network/storage/types.js +14 -0
- package/dist/pi-ecosystem/index.js +233 -0
- package/dist/pi-ecosystem-colony/index.js +29 -90
- package/dist/pi-ecosystem-goals/index.js +20 -74
- package/dist/pi-ecosystem-judgment/decision.js +29 -47
- package/dist/pi-ecosystem-judgment/distillation.js +16 -29
- package/dist/pi-ecosystem-judgment/human-value-store.js +13 -60
- package/dist/pi-ecosystem-judgment/index.js +21 -74
- package/dist/pi-ecosystem-judgment/value-injection.js +26 -72
- package/dist/pi-ecosystem-mcp/index.js +24 -78
- package/dist/pi-ecosystem-subagents/index.js +20 -69
- package/dist/social/ant-colony/AdaptiveHeartbeat.js +3 -8
- package/dist/social/ant-colony/PheromoneEngine.js +11 -49
- package/dist/social/ant-colony/index.js +6 -0
- package/dist/social/ant-colony/types.js +4 -8
- package/dist/social/channels/ChannelManager.js +8 -46
- package/dist/social/channels/DiapChannelBridge.js +9 -47
- package/dist/social/channels/InterestMatcher.js +2 -7
- package/dist/social/channels/channel-agent-session.js +309 -0
- package/dist/social/channels/channel-heartbeat-agent.js +494 -0
- package/dist/social/channels/diap-doc-parser.js +204 -0
- package/dist/social/channels/harness-workflow-integrator.js +446 -0
- package/dist/social/channels/index.js +9 -0
- package/dist/social/channels/types.js +3 -7
- package/dist/social/global-shared-context.js +6 -47
- package/dist/social/heartbeat.js +29 -72
- package/dist/social/persona/enhanced-persona.js +299 -0
- package/dist/web/client.js +302 -136
- package/dist/web/components/p2p/index.js +159 -9
- package/dist/web/components/p2p/p2p-connection.js +136 -0
- package/dist/web/components/p2p/p2p-manager.js +24 -0
- package/dist/web/components/p2p/p2p-store-memory.js +1 -1
- package/dist/web/components/p2p/types.js +7 -0
- package/dist/web/index.html +5 -0
- package/dist/web/style.css +118 -0
- package/package.json +12 -6
- package/scripts/build-cli.js +206 -0
- package/scripts/postinstall.js +153 -0
- package/src/agents/pi-sdk.ts +347 -28
- package/src/agents/protocol.ts +95 -1
- package/src/agents/workflow-pivot-loop.ts +674 -0
- package/src/bollharness/scripts/context-fragments/pi-agent-operations.md +34 -0
- package/src/cli-entry.ts +304 -0
- package/src/heartbeat/DaemonManager.ts +283 -0
- package/src/heartbeat/HealthMonitor.ts +316 -0
- package/src/heartbeat/StartupVerifier.ts +223 -0
- package/src/heartbeat/Watchdog.ts +198 -0
- package/src/heartbeat/index.ts +108 -0
- package/src/heartbeat/types.ts +82 -0
- package/src/llm/config-store.ts +23 -5
- package/src/network/iroh-transport.ts +3 -3
- package/src/web/client.js +302 -136
- package/src/web/components/p2p/P2PModal.tsx +91 -3
- package/src/web/components/p2p/index.ts +171 -9
- package/src/web/components/p2p/p2p-connection.ts +153 -1
- package/src/web/components/p2p/p2p-manager.ts +39 -1
- package/src/web/components/p2p/p2p-store-memory.ts +1 -1
- package/src/web/components/p2p/p2p-tools.ts +315 -0
- package/src/web/components/p2p/types.ts +58 -0
- package/src/web/index.html +5 -0
- package/src/web/server.ts +353 -36
- package/src/web/style.css +118 -0
- package/tsconfig.cli.json +16 -0
- package/tsconfig.electron.json +1 -1
- package/tsconfig.json +1 -2
- package/dist/constraint-runtime/tests/agent.test.js +0 -16
- package/dist/constraint-runtime/tests/constraint.test.js +0 -41
- package/dist/constraint-runtime/tests/skill.test.js +0 -19
- package/dist/constraint-runtime/tests/thinking.test.js +0 -22
- package/dist/electron-preload.js +0 -15
- package/dist/electron-preload.js.map +0 -1
- package/dist/electron.js +0 -206
- package/dist/electron.js.map +0 -1
- package/dist/test/constraint-layer.test.js +0 -164
- package/dist/test/global-shared-context.test.js +0 -315
- package/dist/test/pi-sdk.test.js +0 -47
- package/dist/test/set-persona.test.js +0 -38
- package/dist/test/subagent-manager.test.js +0 -276
- package/dist/test/workflow-engine.test.js +0 -87
- package/dist/web/server.js +0 -1647
- package/dist/web/server.js.map +0 -1
- package/dist/workflows/collaboration.js +0 -374
- package/dist/workflows/index.js +0 -54
- package/docs/agent-communication.md +0 -333
- package/docs/plans/2026-05-15-document-agent-design.md +0 -479
- package/docs/plans/2026-05-15-document-agent-implementation-plan.md +0 -792
- package/docs/plans/2026-05-16-chat-ui-design.md +0 -86
- package/docs/plans/2026-05-16-constraint-runtime-design.md +0 -106
- package/docs/plans/2026-05-16-constraint-runtime-implementation.md +0 -441
- package/docs//346/225/260/345/255/246/350/276/205/345/212/251/346/231/272/350/203/275/344/275/223-/346/240/270/345/277/203/346/225/210/346/236/234/345/256/232/344/271/211.md +0 -287
- package/src/bollharness/.boll/CLAUDE.md.template +0 -34
- package/src/bollharness/.boll/MANIFEST.yaml +0 -213
- package/src/bollharness/.boll/active-review-agents/.gitkeep +0 -0
- package/src/bollharness/.boll/agents/review-base.yaml +0 -108
- package/src/bollharness/.boll/deploy-allowlist.yaml +0 -38
- package/src/bollharness/.boll/inbox/schema/message-v1.json +0 -99
- package/src/bollharness/.boll/install-staging/.gitkeep +0 -0
- package/src/bollharness/.boll/issue-adapter.yaml +0 -31
- package/src/bollharness/.boll/plugins/boll-mode-toolkit/contracts/mode-contract.md +0 -85
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
- package/src/bollharness/.boll/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
- package/src/bollharness/.boll/rules/backend-routes.md +0 -31
- package/src/bollharness/.boll/rules/closure-semantics.md +0 -30
- package/src/bollharness/.boll/rules/env-vars.md +0 -32
- package/src/bollharness/.boll/rules/hanis-protocol.md +0 -145
- package/src/bollharness/.boll/rules/repo-structure.md +0 -42
- package/src/bollharness/.boll/rules/review-agent-isolation.md +0 -73
- package/src/bollharness/.boll/rules/source-of-truth.md +0 -33
- package/src/bollharness/.boll/settings.json +0 -180
- package/src/bollharness/.boll/settings.json.template +0 -31
- package/src/bollharness/.boll/skills/arch/SKILL.md +0 -372
- package/src/bollharness/.boll/skills/bug-pipeline/SKILL.md +0 -168
- package/src/bollharness/.boll/skills/bug-triage/SKILL.md +0 -161
- package/src/bollharness/.boll/skills/context-chains/SKILL.md +0 -250
- package/src/bollharness/.boll/skills/context-chains/context-chain-index.md +0 -48
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/code_change_extractor.ts +0 -142
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/debugging_extractor.ts +0 -126
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/design_extractor.ts +0 -148
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/planning_extractor.ts +0 -162
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/question_extractor.ts +0 -116
- package/src/bollharness/.boll/skills/context-chains/work-type-extractors/review_extractor.ts +0 -136
- package/src/bollharness/.boll/skills/crystal-learn/SKILL.md +0 -93
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-0.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-1.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-2.md +0 -35
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-3.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-4.md +0 -43
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-5.md +0 -34
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-6.md +0 -37
- package/src/bollharness/.boll/skills/crystal-learn/invariants/INV-7.md +0 -46
- package/src/bollharness/.boll/skills/guardian-fixer/PROMPT.md +0 -415
- package/src/bollharness/.boll/skills/guardian-fixer/SKILL.md +0 -320
- package/src/bollharness/.boll/skills/harness-dev/SKILL.md +0 -93
- package/src/bollharness/.boll/skills/harness-dev/examples/README.md +0 -227
- package/src/bollharness/.boll/skills/harness-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/.boll/skills/harness-eng/SKILL.md +0 -110
- package/src/bollharness/.boll/skills/harness-eng-test/SKILL.md +0 -79
- package/src/bollharness/.boll/skills/harness-lab/SKILL.md +0 -170
- package/src/bollharness/.boll/skills/harness-ops/SKILL.md +0 -57
- package/src/bollharness/.boll/skills/harness-voice/SKILL.md +0 -183
- package/src/bollharness/.boll/skills/judgment/SKILL.md +0 -115
- package/src/bollharness/.boll/skills/lead/SKILL.md +0 -245
- package/src/bollharness/.boll/skills/lead/install-wow-harness.md +0 -77
- package/src/bollharness/.boll/skills/lead/ref-review-sop.md +0 -91
- package/src/bollharness/.boll/skills/lead/ref-stages.md +0 -129
- package/src/bollharness/.boll/skills/skill-discovery/SKILL.md +0 -169
- package/src/bollharness/.boll/skills/task-arch/SKILL.md +0 -106
- package/src/bollharness/.boll/skills/toolkit/SKILL.md +0 -57
- package/src/bollharness/.boll/tasks/.gitkeep +0 -0
- package/src/bollharness/.boll/toolkit-index.yaml +0 -112
- package/src/bollharness/.claude/agents/review-base.yaml +0 -108
- package/src/bollharness/.claude/plugins/boll-mode-toolkit/.claude-plugin/plugin.json +0 -44
- package/src/bollharness/.claude/plugins/boll-review-toolkit/.claude-plugin/plugin.json +0 -24
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/evidence-packet-schema.json +0 -102
- package/src/bollharness/.claude/plugins/boll-review-toolkit/contracts/review-contract.yaml +0 -247
- package/src/bollharness/.claude/settings.json +0 -157
- package/src/bollharness/.claude/skills/arch/SKILL.md +0 -64
- package/src/bollharness/.claude/skills/crystal-learn/SKILL.md +0 -93
- package/src/bollharness/.claude/skills/guardian-fixer/PROMPT.md +0 -44
- package/src/bollharness/.claude/skills/guardian-fixer/SKILL.md +0 -324
- package/src/bollharness/.claude/skills/harness-dev/SKILL.md +0 -93
- package/src/bollharness/.claude/skills/harness-dev/examples/README.md +0 -17
- package/src/bollharness/.claude/skills/harness-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/.claude/skills/harness-eng/SKILL.md +0 -183
- package/src/bollharness/.claude/skills/harness-eng-test/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/harness-ops/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/harness-voice/SKILL.md +0 -84
- package/src/bollharness/.claude/skills/lead/INDEX.md +0 -28
- package/src/bollharness/.claude/skills/lead/SKILL.md +0 -24
- package/src/bollharness/.claude/skills/lead/install-wow-harness.md +0 -77
- package/src/bollharness/.claude/skills/lead/ref-review-sop.md +0 -48
- package/src/bollharness/.claude/skills/lead/ref-stages.md +0 -58
- package/src/bollharness/.claude/skills/plan-lock/SKILL.md +0 -74
- package/src/bollharness/.claude/skills/skill-discovery/SKILL.md +0 -120
- package/src/bollharness/.claude/skills/task-arch/SKILL.md +0 -106
- package/src/bollharness/.claude/skills/toolkit/SKILL.md +0 -57
- package/src/bollharness/.claude/skills/toolkit/list.sh +0 -92
- package/src/bollharness/.githooks/pre-commit +0 -21
- package/src/bollharness/.github/workflows/ci.yml +0 -88
- package/src/bollharness/docs/decisions/ADR-030-guard-signal-protocol-and-governance-reload.md +0 -1076
- package/src/bollharness/docs/decisions/ADR-038-harness-optimization-strategy.md +0 -2039
- package/src/bollharness/docs/decisions/ADR-041-codex-claude-code-division-of-labor.md +0 -128
- package/src/bollharness/docs/decisions/ADR-H1-crystal-learn-revival.md +0 -188
- package/src/bollharness/docs/decisions/ADR-H2-identity-isolation.md +0 -183
- package/src/bollharness/docs/decisions/ADR-H3-memory-scope.md +0 -133
- package/src/bollharness/docs/decisions/ADR-H4-prompt-governance.md +0 -146
- package/src/bollharness/docs/decisions/ADR-H5-gate-quantization.md +0 -212
- package/src/bollharness/docs/decisions/ADR-H6-state-file-health.md +0 -211
- package/src/bollharness/docs/decisions/ADR-H8-issue-and-doc-compliance.md +0 -202
- package/src/bollharness/docs/decisions/ADR-H9-mailbox.md +0 -231
- package/src/bollharness/docs/decisions/PLAN-H1-crystal-learn-revival.md +0 -270
- package/src/bollharness/docs/decisions/PLAN-H2-identity-isolation.md +0 -291
- package/src/bollharness/docs/decisions/PLAN-H3-memory-scope.md +0 -228
- package/src/bollharness/docs/decisions/PLAN-H4-prompt-governance.md +0 -227
- package/src/bollharness/docs/decisions/PLAN-H5-gate-quantization.md +0 -239
- package/src/bollharness/docs/decisions/PLAN-H6-state-file-health.md +0 -325
- package/src/bollharness/docs/decisions/PLAN-H8-issue-and-doc-compliance.md +0 -242
- package/src/bollharness/docs/decisions/PLAN-H9-mailbox.md +0 -378
- package/src/bollharness/docs/launch-article-en.md +0 -276
- package/src/bollharness/docs/launch-article-zh.md +0 -305
- package/src/bollharness/docs/practice.html +0 -356
- package/src/bollharness/docs/practice.md +0 -82
- package/src/bollharness/docs/research/round-1/README.md +0 -11
- package/src/bollharness/docs/research/round-2/README.md +0 -11
- package/src/bollharness/docs/research/round-3/README.md +0 -11
- package/src/bollharness/docs/research/round-4/README.md +0 -11
- package/src/bollharness/docs/research/round-5/README.md +0 -11
- package/src/bollharness/docs/research/round-6/README.md +0 -11
- package/src/bollharness/package-lock.json +0 -48
- package/src/bollharness/reference/boll-reference/.claude/rules/backend-routes.md +0 -268
- package/src/bollharness/reference/boll-reference/.claude/rules/bridge.md +0 -20
- package/src/bollharness/reference/boll-reference/.claude/rules/closure-semantics.md +0 -30
- package/src/bollharness/reference/boll-reference/.claude/rules/coaching.md +0 -13
- package/src/bollharness/reference/boll-reference/.claude/rules/env-vars.md +0 -50
- package/src/bollharness/reference/boll-reference/.claude/rules/hackathon.md +0 -12
- package/src/bollharness/reference/boll-reference/.claude/rules/repo-structure.md +0 -184
- package/src/bollharness/reference/boll-reference/.claude/rules/review-agent-isolation.md +0 -112
- package/src/bollharness/reference/boll-reference/.claude/rules/scenes.md +0 -12
- package/src/bollharness/reference/boll-reference/.claude/skills/arch/SKILL.md +0 -551
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-animation/SKILL.md +0 -26
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/SKILL.md +0 -227
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/agents/openai.yaml +0 -4
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-failure-taxonomy.md +0 -142
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-bridge/references/bridge-validation-ladder.md +0 -107
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal/SKILL.md +0 -893
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-crystal-learn/SKILL.md +0 -89
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/SKILL.md +0 -93
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev/examples/README.md +0 -209
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-dev-handoff/SKILL.md +0 -165
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng/SKILL.md +0 -110
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-frontend/SKILL.md +0 -203
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-hdc/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-orchestrator/SKILL.md +0 -28
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-prompt/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-eng-test/SKILL.md +0 -79
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-lab/SKILL.md +0 -372
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-run/SKILL.md +0 -437
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-ux-appstore/SKILL.md +0 -27
- package/src/bollharness/reference/boll-reference/.claude/skills/boll-voice/SKILL.md +0 -442
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/PROMPT.md +0 -421
- package/src/bollharness/reference/boll-reference/.claude/skills/guardian-fixer/SKILL.md +0 -326
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/SKILL.md +0 -155
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-review-sop.md +0 -91
- package/src/bollharness/reference/boll-reference/.claude/skills/lead/ref-stages.md +0 -129
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-preview.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v2.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v3.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/nature-designer/output/skill-map-v4.png +0 -0
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/SKILL.md +0 -425
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-three-checks.md +0 -62
- package/src/bollharness/reference/boll-reference/.claude/skills/plan-lock/ref-wp-templates.md +0 -78
- package/src/bollharness/reference/boll-reference/.claude/skills/task-arch/SKILL.md +0 -76
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/SKILL.md +0 -57
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-graph/beads-graph.sh +0 -153
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/SKILL.md +0 -52
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-init/beads-auto-link.sh +0 -76
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/SKILL.md +0 -50
- package/src/bollharness/reference/boll-reference/.claude/skills/vibedevteam-sync/beads-sync-proj.sh +0 -108
- package/src/bollharness/reference/boll-reference/docs/architecture/AGENT-PROFILE.md +0 -151
- package/src/bollharness/reference/boll-reference/docs/architecture/COST-STRUCTURE.md +0 -56
- package/src/bollharness/reference/boll-reference/docs/architecture/INDEX.md +0 -76
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE1-INTENT-FIELD.md +0 -116
- package/src/bollharness/reference/boll-reference/docs/architecture/MODULE2-CRYSTALLIZATION.md +0 -200
- package/src/bollharness/reference/boll-reference/docs/architecture/PRINCIPLES.md +0 -84
- package/src/bollharness/reference/boll-reference/docs/architecture/PROTOCOL-CORE.md +0 -209
- package/src/bollharness/reference/boll-reference/docs/architecture/VISION.md +0 -181
- package/src/bollharness/reference/boll-reference/docs/architecture/discussions/D-01-MARKET-SCENE-PROTOCOL.md +0 -754
- package/src/bollharness/templates/scaffold/.boll/guard/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/.boll/metrics/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/.boll/state/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/docs/INDEX.md +0 -3
- package/src/bollharness/templates/scaffold/docs/decisions/ADR_TEMPLATE.md +0 -38
- package/src/bollharness/templates/scaffold/docs/decisions/PLAN_TEMPLATE.md +0 -45
- package/src/bollharness/templates/scaffold/docs/decisions/tasks/.gitkeep +0 -2
- package/src/bollharness/templates/scaffold/docs/issues/.gitkeep +0 -0
- package/src/bollharness/templates/scaffold/docs/issues/GUARD_ISSUE_TEMPLATE.md +0 -35
- package/src/bollharness/templates/scaffold/docs/issues/ISSUE_TEMPLATE.md +0 -51
- package/src/bollharness/tsconfig.json +0 -26
- package/src/constraint-runtime/package-lock.json +0 -48
- package/src/constraint-runtime/package.json +0 -34
- package/src/constraint-runtime/src/_archive_helper.ts +0 -16
- package/src/constraint-runtime/src/agent/coordinator.ts +0 -71
- package/src/constraint-runtime/src/agent/index.ts +0 -1
- package/src/constraint-runtime/src/assistant/index.ts +0 -15
- package/src/constraint-runtime/src/bootstrap/index.ts +0 -15
- package/src/constraint-runtime/src/bootstrap_graph.ts +0 -17
- package/src/constraint-runtime/src/bridge/index.ts +0 -15
- package/src/constraint-runtime/src/buddy/index.ts +0 -15
- package/src/constraint-runtime/src/cli/index.ts +0 -15
- package/src/constraint-runtime/src/command_graph.ts +0 -20
- package/src/constraint-runtime/src/commands.ts +0 -83
- package/src/constraint-runtime/src/components/index.ts +0 -15
- package/src/constraint-runtime/src/constants/index.ts +0 -15
- package/src/constraint-runtime/src/constraint/budget.ts +0 -25
- package/src/constraint-runtime/src/constraint/index.ts +0 -3
- package/src/constraint-runtime/src/constraint/permission.ts +0 -28
- package/src/constraint-runtime/src/context.ts +0 -45
- package/src/constraint-runtime/src/coordinator/index.ts +0 -15
- package/src/constraint-runtime/src/cost_hook.ts +0 -6
- package/src/constraint-runtime/src/cost_tracker.ts +0 -9
- package/src/constraint-runtime/src/deferred_init.ts +0 -18
- package/src/constraint-runtime/src/direct_modes.ts +0 -13
- package/src/constraint-runtime/src/dynamic-tool-loader.ts +0 -115
- package/src/constraint-runtime/src/entrypoints/index.ts +0 -15
- package/src/constraint-runtime/src/execution_registry.ts +0 -41
- package/src/constraint-runtime/src/history.ts +0 -16
- package/src/constraint-runtime/src/hooks/index.ts +0 -15
- package/src/constraint-runtime/src/index.ts +0 -28
- package/src/constraint-runtime/src/ink.ts +0 -4
- package/src/constraint-runtime/src/keybindings/index.ts +0 -15
- package/src/constraint-runtime/src/memdir/index.ts +0 -15
- package/src/constraint-runtime/src/migrations/index.ts +0 -15
- package/src/constraint-runtime/src/models.ts +0 -49
- package/src/constraint-runtime/src/moreright/index.ts +0 -15
- package/src/constraint-runtime/src/native_ts/index.ts +0 -15
- package/src/constraint-runtime/src/output_styles/index.ts +0 -15
- package/src/constraint-runtime/src/parity_audit.ts +0 -23
- package/src/constraint-runtime/src/plugins/index.ts +0 -15
- package/src/constraint-runtime/src/port_manifest.ts +0 -20
- package/src/constraint-runtime/src/prefetch.ts +0 -17
- package/src/constraint-runtime/src/query.ts +0 -7
- package/src/constraint-runtime/src/reference_data/archive_surface_snapshot.json +0 -63
- package/src/constraint-runtime/src/reference_data/commands_snapshot.json +0 -1037
- package/src/constraint-runtime/src/reference_data/subsystems/OpenCLI.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/PolymarketSDK.json +0 -12
- package/src/constraint-runtime/src/reference_data/subsystems/SafeSDK.json +0 -14
- package/src/constraint-runtime/src/reference_data/subsystems/assistant.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/bootstrap.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/bridge.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/buddy.json +0 -13
- package/src/constraint-runtime/src/reference_data/subsystems/cli.json +0 -26
- package/src/constraint-runtime/src/reference_data/subsystems/components.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/constants.json +0 -28
- package/src/constraint-runtime/src/reference_data/subsystems/coordinator.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/entrypoints.json +0 -15
- package/src/constraint-runtime/src/reference_data/subsystems/hooks.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/keybindings.json +0 -21
- package/src/constraint-runtime/src/reference_data/subsystems/memdir.json +0 -15
- package/src/constraint-runtime/src/reference_data/subsystems/migrations.json +0 -18
- package/src/constraint-runtime/src/reference_data/subsystems/moreright.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/native_ts.json +0 -11
- package/src/constraint-runtime/src/reference_data/subsystems/outputStyles.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/plugins.json +0 -9
- package/src/constraint-runtime/src/reference_data/subsystems/remote.json +0 -11
- package/src/constraint-runtime/src/reference_data/subsystems/schemas.json +0 -8
- package/src/constraint-runtime/src/reference_data/subsystems/screens.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/server.json +0 -10
- package/src/constraint-runtime/src/reference_data/subsystems/services.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/skills.json +0 -27
- package/src/constraint-runtime/src/reference_data/subsystems/state.json +0 -13
- package/src/constraint-runtime/src/reference_data/subsystems/types.json +0 -18
- package/src/constraint-runtime/src/reference_data/subsystems/upstreamproxy.json +0 -9
- package/src/constraint-runtime/src/reference_data/subsystems/utils.json +0 -32
- package/src/constraint-runtime/src/reference_data/subsystems/vim.json +0 -12
- package/src/constraint-runtime/src/reference_data/subsystems/voice.json +0 -8
- package/src/constraint-runtime/src/reference_data/tools_snapshot.json +0 -1042
- package/src/constraint-runtime/src/remote/index.ts +0 -15
- package/src/constraint-runtime/src/remote_runtime.ts +0 -17
- package/src/constraint-runtime/src/runtime/index.ts +0 -1
- package/src/constraint-runtime/src/runtime/session.ts +0 -42
- package/src/constraint-runtime/src/schemas/index.ts +0 -15
- package/src/constraint-runtime/src/screens/index.ts +0 -15
- package/src/constraint-runtime/src/server/index.ts +0 -15
- package/src/constraint-runtime/src/services/index.ts +0 -15
- package/src/constraint-runtime/src/session_store.ts +0 -32
- package/src/constraint-runtime/src/setup.ts +0 -50
- package/src/constraint-runtime/src/skills/index.ts +0 -1
- package/src/constraint-runtime/src/skills/skill-registry.ts +0 -40
- package/src/constraint-runtime/src/state/index.ts +0 -15
- package/src/constraint-runtime/src/system_init.ts +0 -21
- package/src/constraint-runtime/src/thinking/engine.ts +0 -61
- package/src/constraint-runtime/src/thinking/index.ts +0 -1
- package/src/constraint-runtime/src/tool_pool.ts +0 -20
- package/src/constraint-runtime/src/tools/OpenCLI/execAdapter.ts +0 -12
- package/src/constraint-runtime/src/tools/OpenCLI/listAdapters.ts +0 -12
- package/src/constraint-runtime/src/tools/OpenCLI/runCommand.ts +0 -13
- package/src/constraint-runtime/src/tools/PolymarketSDK/cancelOrder.ts +0 -10
- package/src/constraint-runtime/src/tools/PolymarketSDK/createOrder.ts +0 -13
- package/src/constraint-runtime/src/tools/PolymarketSDK/getMarket.ts +0 -14
- package/src/constraint-runtime/src/tools/PolymarketSDK/getOrders.ts +0 -10
- package/src/constraint-runtime/src/tools/PolymarketSDK/listMarkets.ts +0 -24
- package/src/constraint-runtime/src/tools/SafeSDK/confirmTransaction.ts +0 -13
- package/src/constraint-runtime/src/tools/SafeSDK/createTransaction.ts +0 -23
- package/src/constraint-runtime/src/tools/SafeSDK/deploySafe.ts +0 -12
- package/src/constraint-runtime/src/tools/SafeSDK/executeTransaction.ts +0 -12
- package/src/constraint-runtime/src/tools/SafeSDK/getBalance.ts +0 -10
- package/src/constraint-runtime/src/tools/SafeSDK/getPendingTransactions.ts +0 -10
- package/src/constraint-runtime/src/tools/SafeSDK/proposeTransaction.ts +0 -14
- package/src/constraint-runtime/src/tools/WalletTools/autoPay.ts +0 -58
- package/src/constraint-runtime/src/tools/WalletTools/createWallet.ts +0 -19
- package/src/constraint-runtime/src/tools/WalletTools/getBalance.ts +0 -28
- package/src/constraint-runtime/src/tools/WalletTools/importWallet.ts +0 -34
- package/src/constraint-runtime/src/tools/WalletTools/sendTransaction.ts +0 -50
- package/src/constraint-runtime/src/tools/WalletTools/signMessage.ts +0 -23
- package/src/constraint-runtime/src/tools/WalletTools/transferToken.ts +0 -49
- package/src/constraint-runtime/src/tools.ts +0 -100
- package/src/constraint-runtime/src/transcript.ts +0 -23
- package/src/constraint-runtime/src/types/index.ts +0 -15
- package/src/constraint-runtime/src/upstream_proxy/index.ts +0 -15
- package/src/constraint-runtime/src/utils/index.ts +0 -15
- package/src/constraint-runtime/src/vim/index.ts +0 -15
- package/src/constraint-runtime/src/voice/index.ts +0 -15
- package/src/constraint-runtime/tests/agent.test.ts +0 -20
- package/src/constraint-runtime/tests/constraint.test.ts +0 -47
- package/src/constraint-runtime/tests/skill.test.ts +0 -23
- package/src/constraint-runtime/tests/thinking.test.ts +0 -28
- package/src/constraint-runtime/tsconfig.json +0 -13
- package/src/pi-ecosystem/index.ts +0 -453
- package/src/pi-ecosystem-colony/index.ts +0 -482
- package/src/pi-ecosystem-goals/index.ts +0 -585
- package/src/pi-ecosystem-judgment/decision.ts +0 -431
- package/src/pi-ecosystem-judgment/distillation.ts +0 -398
- package/src/pi-ecosystem-judgment/human-value-store.ts +0 -580
- package/src/pi-ecosystem-judgment/index.ts +0 -678
- package/src/pi-ecosystem-judgment/value-injection.ts +0 -744
- package/src/pi-ecosystem-mcp/index.ts +0 -427
- package/src/pi-ecosystem-subagents/index.ts +0 -408
- package/src/test/ai-judgment-test.ts +0 -92
- package/src/test/bollharness-integration.test.ts +0 -398
- package/src/test/channel-agent-multi-dialogue.ts +0 -265
- package/src/test/channel-heartbeat-agent-test.ts +0 -244
- package/src/test/constraint-layer.test.ts +0 -191
- package/src/test/diap-identity-test.ts +0 -222
- package/src/test/diap-quick-test.ts +0 -73
- package/src/test/global-shared-context.test.ts +0 -393
- package/src/test/harness-judgment-injection.test.ts +0 -353
- package/src/test/harness-workflow-integrator-test.ts +0 -285
- package/src/test/human-value-store.test.ts +0 -316
- package/src/test/hybrid-integration-test.ts +0 -126
- package/src/test/hybrid-messenger-verify.ts +0 -68
- package/src/test/iroh-bistream-debug.ts +0 -50
- package/src/test/iroh-communication.test.ts +0 -81
- package/src/test/iroh-debug-test.ts +0 -69
- package/src/test/iroh-diap-test.ts +0 -90
- package/src/test/iroh-direct-connect.ts +0 -65
- package/src/test/iroh-e2e-fixed.ts +0 -106
- package/src/test/iroh-e2e-same-process.ts +0 -83
- package/src/test/iroh-e2e.ts +0 -83
- package/src/test/iroh-final-e2e.ts +0 -84
- package/src/test/iroh-relay-test.ts +0 -46
- package/src/test/iroh-simple-test.ts +0 -49
- package/src/test/iroh-transport-verify.ts +0 -60
- package/src/test/iroh-transport.test.ts +0 -47
- package/src/test/iroh-two-nodes.ts +0 -87
- package/src/test/iroh-verify.ts +0 -55
- package/src/test/judgment-decision.test.ts +0 -373
- package/src/test/llm-judgment-integration.test.ts +0 -257
- package/src/test/p2p-agent-complex-dialogue.ts +0 -490
- package/src/test/p2p-agent-dialogue.ts +0 -423
- package/src/test/p2p-agent-full-bidirectional.ts +0 -686
- package/src/test/p2p-agent-harness-flow.ts +0 -562
- package/src/test/p2p-agent-harness-single.ts +0 -175
- package/src/test/p2p-ai-dialogue-test.ts +0 -374
- package/src/test/p2p-cid-connect-test.ts +0 -245
- package/src/test/p2p-connect-receiver.ts +0 -85
- package/src/test/p2p-iroh-test.ts +0 -214
- package/src/test/p2p-minimal-test.ts +0 -264
- package/src/test/p2p-node-1.ts +0 -172
- package/src/test/p2p-node-2.ts +0 -172
- package/src/test/p2p-server.ts +0 -335
- package/src/test/p2p-two-nodes-test.ts +0 -542
- package/src/test/pi-sdk.test.ts +0 -47
- package/src/test/set-persona.ts +0 -56
- package/src/test/simple.test.ts +0 -11
- package/src/test/storage-integration.test.ts +0 -191
- package/src/test/subagent-manager.test.ts +0 -392
- package/src/test/test-gate-flow.test.ts +0 -92
- package/src/test/workflow-engine.test.ts +0 -101
- package/src/workflows/collaboration.ts +0 -455
- package/src/workflows/index.ts +0 -64
- package/vitest.config.ts +0 -12
- package//346/203/263/346/263/225.md +0 -79
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: lead
|
|
3
|
-
description: 开发流程统领 Skill。
|
|
4
|
-
status: active
|
|
5
|
-
tier: entry
|
|
6
|
-
owner: {{PROJECT_OWNER}}
|
|
7
|
-
last_audited: 2026-04-09
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# lead
|
|
11
|
-
|
|
12
|
-
开发流程统领。
|
|
13
|
-
|
|
14
|
-
## 文件索引
|
|
15
|
-
|
|
16
|
-
- SKILL.md — 主文件
|
|
17
|
-
- INDEX.md — 本索引
|
|
18
|
-
- ref-review-sop.md — 审查 SOP
|
|
19
|
-
- ref-stages.md — 五阶段定义
|
|
20
|
-
- install-wow-harness.md — 安装指引
|
|
21
|
-
|
|
22
|
-
## 状态
|
|
23
|
-
|
|
24
|
-
active
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
# /lead install bollharness
|
|
2
|
-
|
|
3
|
-
## 一句话
|
|
4
|
-
|
|
5
|
-
在用户的项目里安装 bollharness 开发护栏。一条命令,三种深度,开箱即用。
|
|
6
|
-
|
|
7
|
-
## 使用方式
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# 最常见:当前项目,默认 adapt 档
|
|
11
|
-
npx ts-node scripts/install/phase2_auto.ts --auto
|
|
12
|
-
|
|
13
|
-
# 指定档位
|
|
14
|
-
npx ts-node scripts/install/phase2_auto.ts --auto --tier=drop-in
|
|
15
|
-
npx ts-node scripts/install/phase2_auto.ts --auto --tier=adapt
|
|
16
|
-
npx ts-node scripts/install/phase2_auto.ts --auto --tier=mine --projects=/path/a,/path/b
|
|
17
|
-
|
|
18
|
-
# 多项目
|
|
19
|
-
npx ts-node scripts/install/phase2_auto.ts --auto --projects=/path/a,/path/b --scope=explicit
|
|
20
|
-
|
|
21
|
-
# 验证幂等性
|
|
22
|
-
npx ts-node scripts/install/phase2_auto.ts --auto --dry-run
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## 三档安装光谱(ADR-043 §3.4.4)
|
|
26
|
-
|
|
27
|
-
| 档位 | 适合谁 | 读什么 | 做什么 |
|
|
28
|
-
|------|--------|--------|--------|
|
|
29
|
-
| **drop-in** | "我只要护栏,别碰我代码" | 只读 bundle 自身 | 复制 L0-L5 组件 + 16 条 hook matcher |
|
|
30
|
-
| **adapt** ⭐ 默认 | "看懂我项目就行" | README.md + docs/**/*.md (50KB) | drop-in + 按 stack 启/禁 rules |
|
|
31
|
-
| **mine** | "完全长进来" | adapt + 点名项目的 transcripts | adapt + crystal-learn 种子提案 |
|
|
32
|
-
|
|
33
|
-
**adapt 是默认档。** 绝大多数用户不需要碰这个参数。
|
|
34
|
-
|
|
35
|
-
## 显式点名(ADR-043 §3.4.5)
|
|
36
|
-
|
|
37
|
-
安装器会问你装到哪里:
|
|
38
|
-
|
|
39
|
-
1. 当前目录
|
|
40
|
-
2. 用户级全局(~/.boll/ plugin)
|
|
41
|
-
3. 显式点名几个项目
|
|
42
|
-
|
|
43
|
-
**mine + 全局 = 禁止**(隐私灾难,fail-closed)。mine 档必须显式点名。
|
|
44
|
-
|
|
45
|
-
## Gate 8 反思 loop(ADR-043 §3.4.6)
|
|
46
|
-
|
|
47
|
-
adapt 和 mine 档安装后,当你完成一个大 plan(lead state machine Gate 8 PASS),harness 会自动在后台启动一个 crystal-learn reflection agent。
|
|
48
|
-
|
|
49
|
-
这不是你需要记得做的事——它绑在 Gate 8 事件上,plan 完成就反思,不完成就不反思。
|
|
50
|
-
|
|
51
|
-
反思产物在 `.boll/proposals/` 目录,下次开 session 时自然能看到。
|
|
52
|
-
|
|
53
|
-
## 安全模型
|
|
54
|
-
|
|
55
|
-
- **HMAC trust token**:安装过程用 `BOLLHARNESS_INSTALL_HMAC_KEY` 环境变量签名,30min 滑动窗口 + 6h 绝对上限
|
|
56
|
-
- **fail-closed**:key 缺失 / 过短 / 过期 = 自动中止,不降级
|
|
57
|
-
- **settings.json 原子追加**:用 json 库,不用 sed(INV-4 防护)
|
|
58
|
-
- **幂等**:第二次运行检测到已安装 → 跳过,不重复写
|
|
59
|
-
|
|
60
|
-
## 安装后验证
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
# 确认 hook 数量
|
|
64
|
-
npx ts-node -e "import fs from 'fs'; const s=JSON.parse(fs.readFileSync('.boll/settings.json','utf8')); console.log(Object.values(s.hooks||{}).flat().reduce((a,e)=>a+(e.hooks||[]).length,0))"
|
|
65
|
-
# 预期输出: 16
|
|
66
|
-
|
|
67
|
-
# 确认 sanitize-on-read 工作
|
|
68
|
-
echo '{\"tool_name\":\"Read\",\"tool_input\":{\"file_path\":\"test.txt\"}}' | npx ts-node scripts/hooks/sanitize-on-read.ts
|
|
69
|
-
# 预期: {"decision": "approve"}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## 这个 skill 不做什么
|
|
73
|
-
|
|
74
|
-
- 不碰 lead 的 8-gate 状态机核心逻辑
|
|
75
|
-
- 不自动扫描 ~/.boll/projects/ 推断项目(发现 = 未授权)
|
|
76
|
-
- 不装 OS-level daemon(没有 launchd/systemd/cron)
|
|
77
|
-
- 不在 drop-in 档读任何用户文件
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# lead SKILL.md
|
|
2
|
-
|
|
3
|
-
## 审查闭环 SOP
|
|
4
|
-
|
|
5
|
-
### TeamCreate 使用规范
|
|
6
|
-
|
|
7
|
-
**什么时候用 TeamCreate**:
|
|
8
|
-
- Gate 2 架构审查
|
|
9
|
-
- Gate 4 PLAN 审查 + plan-lock
|
|
10
|
-
- Gate 6 task 审查
|
|
11
|
-
- Gate 8 最终审查
|
|
12
|
-
|
|
13
|
-
**什么时候用 Agent tool**:
|
|
14
|
-
- 禁止用 Agent tool 做审查
|
|
15
|
-
- Agent tool 是共享上下文,判断不独立
|
|
16
|
-
|
|
17
|
-
### 三视角矩阵
|
|
18
|
-
|
|
19
|
-
| 视角 | 关注点 |
|
|
20
|
-
|------|--------|
|
|
21
|
-
| 商业可行性 | 价值、风险、成本 |
|
|
22
|
-
| 技术本质 | 可行性、复杂性、依赖 |
|
|
23
|
-
| 用户体验 | 可用性、接受度 |
|
|
24
|
-
|
|
25
|
-
### 裁决格式
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
## Verdict: PASS / FAIL
|
|
29
|
-
|
|
30
|
-
## Scores
|
|
31
|
-
- Completeness: X/5
|
|
32
|
-
- Honesty: X/5
|
|
33
|
-
- Quality: X/5
|
|
34
|
-
- Consistency: X/5
|
|
35
|
-
|
|
36
|
-
## Findings
|
|
37
|
-
1. [具体发现]
|
|
38
|
-
2. [具体发现]
|
|
39
|
-
|
|
40
|
-
## Recommendation
|
|
41
|
-
[如果 FAIL,具体要修什么]
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### 生产问题诊断硬规则
|
|
45
|
-
|
|
46
|
-
1. **先看日志/事件/DB**,不先看代码猜测
|
|
47
|
-
2. **先隔离问题范围**,不直接全局搜索
|
|
48
|
-
3. **先验证假设**,不基于假设行动
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# lead SKILL.md
|
|
2
|
-
|
|
3
|
-
## 五阶段定义
|
|
4
|
-
|
|
5
|
-
### 阶段①:问题锁定
|
|
6
|
-
|
|
7
|
-
Gate 0 的入口条件:用户提出需求。
|
|
8
|
-
|
|
9
|
-
产出:问题陈述 + Change Classification。
|
|
10
|
-
|
|
11
|
-
Change Classification 决定最低门禁:
|
|
12
|
-
- policy:边界、身份、权限、场景承诺
|
|
13
|
-
- contract:API、schema、事件、配置
|
|
14
|
-
- implementation:单模块内部
|
|
15
|
-
|
|
16
|
-
### 阶段②:架构设计
|
|
17
|
-
|
|
18
|
-
Gate 1 的入口条件:Gate 0 产物存在。
|
|
19
|
-
|
|
20
|
-
产出:ADR 草稿 + 消费方清单。
|
|
21
|
-
|
|
22
|
-
消费方发现三维度:
|
|
23
|
-
- 数据消费方:谁读这个数据
|
|
24
|
-
- 行为消费方:谁调用这个接口
|
|
25
|
-
- 可见性消费方:谁看到这个输出
|
|
26
|
-
|
|
27
|
-
### 阶段③:方案冻结
|
|
28
|
-
|
|
29
|
-
Gate 3 → Gate 4 的入口条件:Gate 2 PASS。
|
|
30
|
-
|
|
31
|
-
产出:PLAN 文档 + 架构覆盖矩阵。
|
|
32
|
-
|
|
33
|
-
冻结条件:
|
|
34
|
-
- 所有决策口子已关
|
|
35
|
-
- 接口已对齐
|
|
36
|
-
- 测试层级已定
|
|
37
|
-
|
|
38
|
-
### 阶段④:任务拆分
|
|
39
|
-
|
|
40
|
-
Gate 5 的入口条件:Gate 4 PASS + plan-lock。
|
|
41
|
-
|
|
42
|
-
产出:WP DAG + TASK.md。
|
|
43
|
-
|
|
44
|
-
拆分原则:
|
|
45
|
-
- 按 write_set 拆
|
|
46
|
-
- 按接缝定 owner
|
|
47
|
-
- 每 WP 有独立验收标准
|
|
48
|
-
|
|
49
|
-
### 阶段⑤:执行与验证
|
|
50
|
-
|
|
51
|
-
Gate 7 的入口条件:Gate 6 PASS。
|
|
52
|
-
|
|
53
|
-
产出:代码 + LOG.md + TEST.md。
|
|
54
|
-
|
|
55
|
-
执行约束:
|
|
56
|
-
- 先开 LOG.md
|
|
57
|
-
- 每 WP 有运行时证据
|
|
58
|
-
- 验证诚实报告
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: plan-lock
|
|
3
|
-
description: 计划锁定器。把修复计划、实现方案和 WP 规格锻造成 decision-complete 的可执行上游文档:真相先验、决策关死、接口对齐、测试层级一致、时序稳定。在 lead 的 Gate 3 与 Gate 4 之间,以及 task-arch 拆 WP 之前必须使用。
|
|
4
|
-
status: active
|
|
5
|
-
tier: entry
|
|
6
|
-
triggers:
|
|
7
|
-
- Gate 4
|
|
8
|
-
- PLAN 审查
|
|
9
|
-
- WP 前置锁定
|
|
10
|
-
outputs:
|
|
11
|
-
- decision-complete 冻结结论
|
|
12
|
-
- 未锁口子
|
|
13
|
-
truth_policy:
|
|
14
|
-
- 只基于真实代码和真实计划锁口
|
|
15
|
-
- 不复制高变化仓库事实
|
|
16
|
-
- 执行者清晰优先于作者省事
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
# 计划锁定器
|
|
20
|
-
|
|
21
|
-
## 存在定位
|
|
22
|
-
|
|
23
|
-
我是开发流程里的**计划锁定器**。
|
|
24
|
-
|
|
25
|
-
我不是来写"方向正确的计划"的。我存在,是为了把一份计划锁成**执行者无需再判断**的上游规格。
|
|
26
|
-
|
|
27
|
-
## 张力地图
|
|
28
|
-
|
|
29
|
-
### 核心张力
|
|
30
|
-
|
|
31
|
-
我始终工作在这 4 组拉扯里:
|
|
32
|
-
|
|
33
|
-
1. **速度 vs 锁定**
|
|
34
|
-
- 写得快很容易
|
|
35
|
-
- 写到执行者不用猜很难
|
|
36
|
-
2. **开放性 vs 收敛性**
|
|
37
|
-
- 讨论阶段允许保留可能性
|
|
38
|
-
- 执行阶段必须关掉可能性
|
|
39
|
-
3. **局部修复 vs 系统一致**
|
|
40
|
-
- 眼前问题想快修
|
|
41
|
-
- 但计划一旦错层,后面全线返工
|
|
42
|
-
4. **简洁 vs 完整**
|
|
43
|
-
- 文档不能变成规则堆
|
|
44
|
-
- 但也不能把关键判断留白
|
|
45
|
-
|
|
46
|
-
### 优先级序
|
|
47
|
-
|
|
48
|
-
当这些张力不可兼得时,按这个顺序裁决:
|
|
49
|
-
|
|
50
|
-
1. **真相优先于流畅**
|
|
51
|
-
2. **锁定优先于灵活**
|
|
52
|
-
3. **层级一致优先于表面覆盖**
|
|
53
|
-
4. **执行者清晰优先于作者省事**
|
|
54
|
-
5. **简洁建立在闭合之上,不建立在省略之上**
|
|
55
|
-
|
|
56
|
-
## Output Contract
|
|
57
|
-
|
|
58
|
-
每次使用我,默认给:
|
|
59
|
-
|
|
60
|
-
1. `decision-complete 冻结结论`
|
|
61
|
-
2. `未锁口子`
|
|
62
|
-
3. `层级错位或时序漂移风险`
|
|
63
|
-
|
|
64
|
-
## 核心功能
|
|
65
|
-
|
|
66
|
-
> 在代码开始之前,把讨论中的模糊性、假设和未完成决策全部拦截掉,不让它们流进执行阶段。
|
|
67
|
-
|
|
68
|
-
## 不做什么
|
|
69
|
-
|
|
70
|
-
- 不决定这件事值不值得做,那是 `lead / arch`
|
|
71
|
-
- 不做架构本质分析,那是 `arch`
|
|
72
|
-
- 不拆任务 DAG,那是 `task-arch`
|
|
73
|
-
- 不写代码,那是 `harness-dev`
|
|
74
|
-
- 不替正式审查员完成独立审查
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: skill-discovery
|
|
3
|
-
description: Skill 发现者。读用户项目的工作历史(transcripts、commit log、issue 记录),识别重复出现的工作模式,提议将其封装为专属 skill,让 harness 能"长出"新的能力,而不是只用预装的。
|
|
4
|
-
status: active
|
|
5
|
-
tier: meta
|
|
6
|
-
triggers:
|
|
7
|
-
- 首次安装后的能力审计
|
|
8
|
-
- 定期(月度/季度)skill 审计
|
|
9
|
-
- 用户觉得"我总在重复做同一类事"
|
|
10
|
-
- mine 档安装触发
|
|
11
|
-
outputs:
|
|
12
|
-
- skill 提案文档(markdown)
|
|
13
|
-
- 可选:skill SKILL.md 草稿
|
|
14
|
-
truth_policy:
|
|
15
|
-
- 只读用户显式授权的项目数据
|
|
16
|
-
- transcript 读取遵守 tier_selector 的读取边界
|
|
17
|
-
- 提案是建议,不是自动安装——用户确认后才创建 skill
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
# Skill 发现者
|
|
21
|
-
|
|
22
|
-
## 存在定位
|
|
23
|
-
|
|
24
|
-
我是 harness 生态中的**能力审计师和 skill 接生者**。
|
|
25
|
-
|
|
26
|
-
## 核心张力
|
|
27
|
-
|
|
28
|
-
### 敏感度 vs 噪音
|
|
29
|
-
|
|
30
|
-
- 太敏感:每做两次同样的事就提议建 skill → 用户被提案淹没
|
|
31
|
-
- 太迟钝:明显的重复模式视而不见 → 用户永远在重复劳动
|
|
32
|
-
|
|
33
|
-
**校准锚点**:
|
|
34
|
-
- 一个模式在 3+ 次 session 中出现、且每次都消耗 >10 轮对话 → 值得提案
|
|
35
|
-
- 一个模式只出现 1-2 次、或每次 <5 轮 → 还不够,继续观察
|
|
36
|
-
|
|
37
|
-
### 通用性 vs 专属性
|
|
38
|
-
|
|
39
|
-
- 太通用:"写代码"不是 skill,它是所有 skill 的基础
|
|
40
|
-
- 太专属:"修第 47 行的 bug"不是 skill,它是一次性任务
|
|
41
|
-
|
|
42
|
-
**校准锚点**:
|
|
43
|
-
- 好的 skill 有明确的触发条件、稳定的执行流程、可复用的判断框架
|
|
44
|
-
- 如果描述一个 skill 需要 >3 句话才能说清"什么时候用它",可能粒度不对
|
|
45
|
-
|
|
46
|
-
## 发现方法
|
|
47
|
-
|
|
48
|
-
### 来源 1:Transcript 分析(需 mine 档授权)
|
|
49
|
-
|
|
50
|
-
读用户的 Claude Code transcript .jsonl 文件,提取:
|
|
51
|
-
|
|
52
|
-
1. **重复意图模式**:用户在不同 session 中发出相似的指令
|
|
53
|
-
2. **重复解释模式**:用户反复解释同一个上下文
|
|
54
|
-
3. **重复纠正模式**:用户反复纠正 AI 的同一类错误
|
|
55
|
-
|
|
56
|
-
### 来源 2:Commit 历史分析
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
git log --oneline -100 | ... # 提取 commit 类型分布
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 来源 3:Issue / 文档模式分析
|
|
63
|
-
|
|
64
|
-
扫描 `docs/issues/`、`docs/decisions/`、CHANGELOG 等,识别:
|
|
65
|
-
- 重复出现的 issue 类型 → 可能需要预防性 skill
|
|
66
|
-
- 重复出现的决策模式 → 可能需要决策框架 skill
|
|
67
|
-
|
|
68
|
-
### 来源 4:用户直接告知
|
|
69
|
-
|
|
70
|
-
用户说"我总在做 X"——这是最直接的信号。
|
|
71
|
-
|
|
72
|
-
## 提案格式
|
|
73
|
-
|
|
74
|
-
```markdown
|
|
75
|
-
# Skill 提案:{名称}
|
|
76
|
-
|
|
77
|
-
## 发现来源
|
|
78
|
-
- {transcript/commit/issue/用户告知}
|
|
79
|
-
- 出现频率:{N 次 / M 个 session}
|
|
80
|
-
- 每次消耗:{约 X 轮对话 / Y 分钟}
|
|
81
|
-
|
|
82
|
-
## 模式描述
|
|
83
|
-
{这个重复工作是什么?每次的输入和输出是什么?}
|
|
84
|
-
|
|
85
|
-
## 为什么值得封装
|
|
86
|
-
{如果不封装,代价是什么?如果封装了,收益是什么?}
|
|
87
|
-
|
|
88
|
-
## 建议的 skill 结构
|
|
89
|
-
- **触发条件**:什么时候应该使用这个 skill?
|
|
90
|
-
- **核心流程**:大致的执行步骤
|
|
91
|
-
- **判断框架**:需要内化的决策标准
|
|
92
|
-
- **输出契约**:每次使用应该产出什么?
|
|
93
|
-
|
|
94
|
-
## 风险
|
|
95
|
-
- 是否可能过度封装?
|
|
96
|
-
- 是否可能很快过时?
|
|
97
|
-
- 是否与已有 skill 重叠?
|
|
98
|
-
|
|
99
|
-
## 推荐优先级
|
|
100
|
-
- [ ] 高:每周 3+ 次,每次 >15 分钟 → 立即创建
|
|
101
|
-
- [ ] 中:每周 1-2 次,每次 >10 分钟 → 下次闲下来创建
|
|
102
|
-
- [ ] 低:偶尔出现,但模式清晰 → 记录,观察
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
## 从提案到 skill
|
|
106
|
-
|
|
107
|
-
用户确认提案后:
|
|
108
|
-
|
|
109
|
-
1. **用 soul-writing 方法论写 SKILL.md**
|
|
110
|
-
2. **放到正确位置**
|
|
111
|
-
- `.boll/skills/{name}/SKILL.md`
|
|
112
|
-
3. **更新 lead 调度表(如果适用)**
|
|
113
|
-
4. **验证安装**
|
|
114
|
-
|
|
115
|
-
## 我不做什么
|
|
116
|
-
|
|
117
|
-
- 不自动创建 skill(只提案,用户确认后才创建)
|
|
118
|
-
- 不扫描未授权的项目
|
|
119
|
-
- 不替代 crystal-learn(crystal-learn 提取失败模式和不变量,skill-discovery 发现可封装的工作模式)
|
|
120
|
-
- 不把一次性任务强行封装成 skill
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: task-arch
|
|
3
|
-
description: 任务架构师。负责把已冻结的 PLAN 拆成可执行、可委派、可集成的工作单元(WP)。在 lead 的 Gate 5 由 lead 调度。
|
|
4
|
-
status: active
|
|
5
|
-
tier: entry
|
|
6
|
-
triggers:
|
|
7
|
-
- 已冻结的 PLAN 需要拆成 WP
|
|
8
|
-
- 需要显式写出依赖和写集
|
|
9
|
-
- 需要并行执行编排
|
|
10
|
-
outputs:
|
|
11
|
-
- WP DAG
|
|
12
|
-
- write_set
|
|
13
|
-
- depends_on
|
|
14
|
-
- acceptance_test
|
|
15
|
-
truth_policy:
|
|
16
|
-
- 只消费已冻结的计划
|
|
17
|
-
- 不重做架构决策
|
|
18
|
-
- 任务定义优先写问题边界和接缝责任,不复制仓库事实
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
# 任务架构师
|
|
22
|
-
|
|
23
|
-
## 角色
|
|
24
|
-
|
|
25
|
-
我负责把一份已经 decision-complete 的计划拆成可执行、可委派、可集成的工作单元。我的价值不在于"拆得细",而在于"拆完之后不会把接缝拆丢"。
|
|
26
|
-
|
|
27
|
-
## 张力
|
|
28
|
-
|
|
29
|
-
我工作在两组核心张力中:
|
|
30
|
-
|
|
31
|
-
1. **粒度 vs 集成成本**
|
|
32
|
-
- 拆得越细,每个 WP 越容易执行
|
|
33
|
-
- 但跨 WP 的接缝越多,集成越脆弱
|
|
34
|
-
- 正确的粒度是"每个 WP 有独立可验证的产物"
|
|
35
|
-
|
|
36
|
-
2. **并行度 vs 接缝安全**
|
|
37
|
-
- 并行越多,总耗时越短
|
|
38
|
-
- 但并行 Track 之间的中间层是最危险的无主地带
|
|
39
|
-
- 正确的并行是"共享接口有显式 seam owner"
|
|
40
|
-
|
|
41
|
-
## 拆分原则
|
|
42
|
-
|
|
43
|
-
- 按 `write_set` 拆,不按"感觉上的功能块"拆
|
|
44
|
-
- 按接缝定义 owner,不让中间层落到无人地带
|
|
45
|
-
- 每个 WP 必须有自己的 `acceptance_test`
|
|
46
|
-
- 共享接口优先拆出单独 gate / integration task,而不是默认某一方顺手做
|
|
47
|
-
|
|
48
|
-
## 禁止事项
|
|
49
|
-
|
|
50
|
-
- 不在这里补架构判断
|
|
51
|
-
- 不在这里发明新的契约
|
|
52
|
-
- 不把"谁来做"写成"大家协同完成"
|
|
53
|
-
- 不把验证责任丢给最终集成阶段
|
|
54
|
-
|
|
55
|
-
## 来自 crystal-learn 的注入
|
|
56
|
-
|
|
57
|
-
**INV-7 无主接缝**:WP 本身有 owner,但 WP 之间的接缝没有 owner。行动:
|
|
58
|
-
1. 每条跨 WP 数据流都显式指定生产端 owner、消费端 owner、接缝验证 owner
|
|
59
|
-
2. 如果不自然归属任何 WP,创建独立 Gate 任务
|
|
60
|
-
3. **PLAN 冻结前,对文档声明的每个 API 端点做 WP 归属验证**——如果某端点不在任何 WP 的 write set 中,必须显式分配
|
|
61
|
-
|
|
62
|
-
## Output Contract
|
|
63
|
-
|
|
64
|
-
每次拆分必须给出:
|
|
65
|
-
|
|
66
|
-
1. `WP DAG` — WP 编号 + 每个 WP 的一句话目标
|
|
67
|
-
2. `write_set` — 每个 WP 允许写的路径或模块
|
|
68
|
-
3. `depends_on` — 哪些前置必须完成
|
|
69
|
-
4. `acceptance_test` — 每个 WP 结束时必须通过什么验证
|
|
70
|
-
5. `integration_tasks` — 哪些接缝需要单独集成验证
|
|
71
|
-
|
|
72
|
-
## 最小模板
|
|
73
|
-
|
|
74
|
-
```markdown
|
|
75
|
-
## WP-x [名称]
|
|
76
|
-
- Goal:
|
|
77
|
-
- Write set:
|
|
78
|
-
- Depends on:
|
|
79
|
-
- Parallel with:
|
|
80
|
-
- Seam owner:
|
|
81
|
-
- Acceptance test:
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## 文档规范
|
|
85
|
-
|
|
86
|
-
每个 WP 的 TASK.md 的行数上限:≤120 行。每个 seam 只写 3 行角色 + PLAN 引用,禁止复写 >5 行契约正文。批量拆 WP 时并发 5-8 个 Write。
|
|
87
|
-
|
|
88
|
-
## 与其他 Skill 的关系
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
plan-lock
|
|
92
|
-
↓ 产出冻结后的 PLAN(vN-final)
|
|
93
|
-
task-arch(我)
|
|
94
|
-
↓ 拆成 WP DAG
|
|
95
|
-
lead(Gate 6 审查)
|
|
96
|
-
↓ 审查 WP 拆分完整性
|
|
97
|
-
harness-dev / harness-eng
|
|
98
|
-
↓ 按 WP 执行
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### 边界
|
|
102
|
-
|
|
103
|
-
- `plan-lock` 负责锁住计划,我只消费已冻结的
|
|
104
|
-
- 如果计划未冻结(还有 TBD/需确认),我必须退回 `plan-lock`
|
|
105
|
-
- `harness-dev` 按我的拆分执行,不补我遗漏的接缝
|
|
106
|
-
- `lead` 在 Gate 6 审查我的拆分是否完整
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: toolkit
|
|
3
|
-
description: Pull-surface slash command for `.boll/` tooling that is not auto-triggered. Replaces the retired SessionStart push-reminder (session-start-toolkit-reminder.ts, retired in WP-031). Reads `.boll/toolkit-index.yaml` and prints active entries grouped by category; retired entries are shown with their retirement packet reference so capability history is never silently dropped.
|
|
4
|
-
status: active
|
|
5
|
-
tier: usability
|
|
6
|
-
owner: nature
|
|
7
|
-
window_owner: shared
|
|
8
|
-
window_owner_since: 2026-04-28T17:00+08:00
|
|
9
|
-
window_owner_adr: docs/decisions/ADR-H2-identity-isolation.md
|
|
10
|
-
last_audited: 2026-04-19
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# /toolkit — harness toolkit index
|
|
14
|
-
|
|
15
|
-
## What this does
|
|
16
|
-
|
|
17
|
-
Prints the contents of `.boll/toolkit-index.yaml` in a human-readable layout. The index lists
|
|
18
|
-
`.boll/` tooling that users occasionally need but is NOT auto-triggered by any hook —
|
|
19
|
-
for example: trace-analyzer proposals, magic-doc rebuild, doc-freshness scan, metrics inspection.
|
|
20
|
-
|
|
21
|
-
This is a **pull surface**, not a push notification. The predecessor hook
|
|
22
|
-
`session-start-toolkit-reminder.ts` injected the same content every ~3 hours whether the user
|
|
23
|
-
wanted it or not; that push channel was retired in WP-031 and replaced by this on-demand
|
|
24
|
-
readout. Discoverability is preserved (the kernel CLAUDE.md points at `/toolkit`); context
|
|
25
|
-
pollution is eliminated (zero bytes cost until the user invokes).
|
|
26
|
-
|
|
27
|
-
## Sub-commands
|
|
28
|
-
|
|
29
|
-
| Command | Behavior |
|
|
30
|
-
|---|---|
|
|
31
|
-
| `/toolkit` | List all active entries grouped by category; show retired entries with their retirement packet reference at the bottom. |
|
|
32
|
-
| `/toolkit all` | Same as above but without the retired/active split — single chronological list. |
|
|
33
|
-
|
|
34
|
-
## Invocation handler
|
|
35
|
-
|
|
36
|
-
The handler is `list.sh`. It reads `.boll/toolkit-index.yaml` via `npx ts-node -e "import yaml; ..."` (js-yaml is available; used elsewhere in the harness), formats entries, and prints to
|
|
37
|
-
stdout. No network, no side effects. Exit 0 on success, 1 on missing index, 2 on yaml parse
|
|
38
|
-
error.
|
|
39
|
-
|
|
40
|
-
## Why this exists (WP-031 context)
|
|
41
|
-
|
|
42
|
-
Retiring `session-start-toolkit-reminder.ts` without providing a pull channel would leave a
|
|
43
|
-
silent regression for:
|
|
44
|
-
|
|
45
|
-
1. A user returning after weeks away who has forgotten the 5 entries existed.
|
|
46
|
-
2. A clean-bootstrap consumer (WP-039) whose first session has no prior reminder history.
|
|
47
|
-
3. An external consumer importing the harness (WP-040) who never saw the reminder at all.
|
|
48
|
-
|
|
49
|
-
`/toolkit` is the minimal pull-side substitute. The invariant is: every capability listed in
|
|
50
|
-
the retired hook is either (a) surfaced here, or (b) retired with a retirement packet
|
|
51
|
-
referenced in the index entry — no capability becomes undiscoverable.
|
|
52
|
-
|
|
53
|
-
## Amendment
|
|
54
|
-
|
|
55
|
-
When a new `.boll/` pull-tool ships or an existing one retires, update
|
|
56
|
-
`.boll/toolkit-index.yaml`. Do NOT edit this skill to describe specific entries — the skill
|
|
57
|
-
is a renderer, the yaml is the data.
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# /toolkit handler — print .boll/toolkit-index.yaml in human-readable form.
|
|
3
|
-
# Exit 0 = OK; 1 = missing index; 2 = parse error.
|
|
4
|
-
|
|
5
|
-
set -eu
|
|
6
|
-
|
|
7
|
-
ROOT="$(cd "$(/Users/nature/个人项目/boll/scripts/hooks/find-boll-root.sh)" && pwd)"
|
|
8
|
-
INDEX="$ROOT/.boll/toolkit-index.yaml"
|
|
9
|
-
|
|
10
|
-
if [ ! -f "$INDEX" ]; then
|
|
11
|
-
echo "toolkit: index not found at $INDEX" >&2
|
|
12
|
-
echo "toolkit: if this is a fresh repo, copy 99-appendix-prototypes/config/toolkit-index.yaml to .boll/" >&2
|
|
13
|
-
exit 1
|
|
14
|
-
fi
|
|
15
|
-
|
|
16
|
-
MODE="${1:-grouped}"
|
|
17
|
-
|
|
18
|
-
npx ts-node - "$INDEX" "$MODE" <<'TS'
|
|
19
|
-
import * as fs from 'fs';
|
|
20
|
-
import * as yaml from 'js-yaml';
|
|
21
|
-
|
|
22
|
-
const [indexPath, mode] = process.argv.slice(2);
|
|
23
|
-
try {
|
|
24
|
-
const data = yaml.load(fs.readFileSync(indexPath, 'utf8')) as any;
|
|
25
|
-
const entries = data.get("entries", []);
|
|
26
|
-
const active = entries.filter((e: any) => (e.get("status", "active") || "").toString().startsWith("active"));
|
|
27
|
-
const retired = entries.filter((e: any) => !(e.get("status", "active") || "").toString().startsWith("active"));
|
|
28
|
-
|
|
29
|
-
console.log("# /toolkit — .boll/ pull-surface tooling\n");
|
|
30
|
-
console.log((data.get("purpose") || "").trim() + "\n");
|
|
31
|
-
|
|
32
|
-
const render = (e: any) => {
|
|
33
|
-
const name = e.get("name") || e.get("id") || "?";
|
|
34
|
-
const cat = e.get("category") || "-";
|
|
35
|
-
const status = e.get("status") || "active";
|
|
36
|
-
const purpose = (e.get("purpose") || "").trim();
|
|
37
|
-
const inv = e.get("invocation");
|
|
38
|
-
console.log(`## ${name}`);
|
|
39
|
-
console.log(`- id: \`${e.get('id')}\` | category: \`${cat}\` | status: \`${status}\``);
|
|
40
|
-
if (purpose) console.log(`- purpose: ${purpose}`);
|
|
41
|
-
if (typeof inv === "string") {
|
|
42
|
-
console.log(`- run: \`${inv}\``);
|
|
43
|
-
} else if (typeof inv === "object") {
|
|
44
|
-
for (const [k, v] of Object.entries(inv)) {
|
|
45
|
-
console.log(`- run (${k}): \`${v}\``);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (e.get("entries")) {
|
|
49
|
-
console.log("- sub-entries:");
|
|
50
|
-
for (const sub of e.get("entries")) {
|
|
51
|
-
const writer = sub.get("writer") || "?";
|
|
52
|
-
const wstatus = sub.get("writer_status") || "?";
|
|
53
|
-
const pend = sub.get("pending_retire_wp");
|
|
54
|
-
const retby = sub.get("retired_by_wp");
|
|
55
|
-
let label = wstatus;
|
|
56
|
-
if (pend) label += ` (pending retire in ${pend})`;
|
|
57
|
-
if (retby) label += ` (retired by ${retby})`;
|
|
58
|
-
console.log(` - \`${sub.get('file')}\` — writer \`${writer}\`, ${label} — \`${sub.get('invocation')}\``);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
const retby = e.get("retired_by_wp");
|
|
62
|
-
const pkt = e.get("retirement_packet");
|
|
63
|
-
if (retby || pkt) {
|
|
64
|
-
const bits = [];
|
|
65
|
-
if (retby) bits.push(`retired by ${retby}`);
|
|
66
|
-
if (pkt) bits.push(`packet: \`${pkt}\``);
|
|
67
|
-
console.log(`- retirement: {' | '.join(bits)}`);
|
|
68
|
-
}
|
|
69
|
-
console.log();
|
|
70
|
-
};
|
|
71
|
-
|
|
72
|
-
if (mode === "all") {
|
|
73
|
-
for (const e of entries) render(e);
|
|
74
|
-
} else {
|
|
75
|
-
if (active.length) {
|
|
76
|
-
console.log("---\n## Active entries\n");
|
|
77
|
-
for (const e of active) render(e);
|
|
78
|
-
}
|
|
79
|
-
if (retired.length) {
|
|
80
|
-
console.log("---\n## Retired (kept for historical discoverability)\n");
|
|
81
|
-
for (const e of retired) render(e);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
console.log("---");
|
|
86
|
-
console.log(`Index: \`.boll/toolkit-index.yaml\` (last_updated: ${data.get('last_updated','?')}, by WP ${data.get('updated_by_wp','?')})`);
|
|
87
|
-
console.log("Amendment protocol: update the yaml when a .boll/ pull-tool is added or retires; do not edit this skill for entry-specific text.");
|
|
88
|
-
} catch (e) {
|
|
89
|
-
console.error(`toolkit: yaml parse error: ${e}`);
|
|
90
|
-
process.exit(2);
|
|
91
|
-
}
|
|
92
|
-
TS
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
# pre-commit hook — bollharness
|
|
3
|
-
#
|
|
4
|
-
# 一次性启用(clone 后跑一次):
|
|
5
|
-
# git config core.hooksPath .githooks
|
|
6
|
-
#
|
|
7
|
-
# 来源: 同步自 boll 主仓 commit dff58afb (ADR/PLAN 编号唯一性)
|
|
8
|
-
# 设计: ADR-038 D11 schema-level 100% > prompt-level 70%
|
|
9
|
-
# 红线: ADR-041 v1.0 调字不加机制(grep 级 chokepoint 不算)
|
|
10
|
-
|
|
11
|
-
set -e
|
|
12
|
-
|
|
13
|
-
# H 系列编号唯一性预防:阻断同号 + 不同主题的 ADR/PLAN 命名冲突
|
|
14
|
-
NUMBERING_CHECK="$(git rev-parse --show-toplevel 2>/dev/null)/scripts/checks/check_adr_plan_numbering.ts"
|
|
15
|
-
if [ -f "$NUMBERING_CHECK" ]; then
|
|
16
|
-
if ! npx ts-node "$NUMBERING_CHECK"; then
|
|
17
|
-
exit 1
|
|
18
|
-
fi
|
|
19
|
-
fi
|
|
20
|
-
|
|
21
|
-
exit 0
|