@event4u/agent-config 9.8.0 → 9.9.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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +278 -298
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +55 -9
- package/dist/agent-src/commands/agents/audit.md +1 -1
- package/dist/agent-src/commands/agents/optimize.md +2 -2
- package/dist/agent-src/commands/agents/user.md +1 -1
- package/dist/agent-src/commands/agents.md +1 -1
- package/dist/agent-src/commands/check-current-md.md +3 -3
- package/dist/agent-src/commands/fix/portability.md +2 -2
- package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
- package/dist/agent-src/commands/fix/refs.md +2 -2
- package/dist/agent-src/commands/fix/route.md +4 -3
- package/dist/agent-src/commands/fix.md +9 -6
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/image.md +1 -1
- package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +2 -2
- package/dist/agent-src/commands/post-as.md +1 -1
- package/dist/agent-src/commands/research.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/team/delegate.md +4 -0
- package/dist/agent-src/commands/video.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
- package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +4 -4
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/no-roadmap-references.md +1 -1
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/reviewer-awareness.md +1 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +7 -0
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +10 -0
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
- package/dist/agent-src/rules/tool-safety.md +3 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +17 -14
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-review/SKILL.md +5 -6
- package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
- package/dist/agent-src/skills/history-design/SKILL.md +101 -0
- package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
- package/dist/agent-src/skills/image-editing/SKILL.md +1 -1
- package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
- package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
- package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
- package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
- package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +3 -4
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +3 -3
- package/dist/agent-src/templates/persona.md +2 -2
- package/dist/agent-src/templates/rule.md +2 -2
- package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/dist/cli/commands/doctorShell.js +20 -0
- package/dist/cli/commands/doctorShell.js.map +1 -1
- package/dist/cli/commands/rtkDetect.js +58 -0
- package/dist/cli/commands/rtkDetect.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/main.js +35 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +7 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +362 -78
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +6 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +90 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +31 -7
- package/dist/hooks/dispatch.js +19475 -0
- package/dist/install/agentSwitchDetection.js +75 -0
- package/dist/install/agentSwitchDetection.js.map +1 -0
- package/dist/install/agentSwitchProfile.js +117 -0
- package/dist/install/agentSwitchProfile.js.map +1 -0
- package/dist/install/atomic.js +1 -1
- package/dist/install/detect.js +1 -1
- package/dist/install/install.mjs +775 -486
- package/dist/install/rtkDetection.js +213 -0
- package/dist/install/rtkDetection.js.map +1 -0
- package/dist/install/rule_scope.js +2 -1
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/types.js +2 -2
- package/dist/install/wizard-plan.js +1 -1
- package/dist/install/wizardDismissals.js +58 -0
- package/dist/install/wizardDismissals.js.map +1 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
- package/dist/mcp/registry-manifest.json +15 -4
- package/dist/mcp/server.json +20 -0
- package/dist/mcp/server.mjs +44292 -0
- package/dist/router.json +1 -1
- package/dist/scripts/condense.js +14 -7
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/app.js +4 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/io/sharedWriteCheck.js +101 -0
- package/dist/server/io/sharedWriteCheck.js.map +1 -0
- package/dist/server/routes/ping.js +14 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +21 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/userMd.js +21 -4
- package/dist/server/routes/userMd.js.map +1 -1
- package/dist/server/routes/wizard.js +68 -25
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +4 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/index-BpSQt5vm.js +40 -0
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
- package/dist/ui/assets/index-jSfMW8_t.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +21 -11
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/src/config/agent-settings.template.yml +52 -14
- package/src/config/discovery/packs.yml +22 -0
- package/src/config/discovery/workspaces.yml +1 -1
- package/src/config/evaluator-budgets.json +47 -0
- package/src/config/hook-latency-budget.json +20 -0
- package/src/install/agentSwitchDetection.ts +90 -0
- package/src/install/agentSwitchProfile.ts +131 -0
- package/src/install/atomic.ts +1 -1
- package/src/install/detect.ts +1 -1
- package/src/install/rtkDetection.ts +274 -0
- package/src/install/rule_scope.ts +9 -2
- package/src/install/types.ts +2 -2
- package/src/install/wizard-plan.ts +1 -1
- package/src/install/wizardDismissals.ts +60 -0
- package/src/scripts/_cli/cmd_doctor.ts +62 -1
- package/src/scripts/_cli/cmd_memory_get.ts +197 -0
- package/src/scripts/_cli/cmd_refresh.ts +30 -0
- package/src/scripts/_dispatch.bash +81 -0
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
- package/src/scripts/_lib/auto_dispatch.ts +76 -0
- package/src/scripts/_lib/detect_target_license.ts +714 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +5 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +4 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/memory_fts_index.ts +390 -0
- package/src/scripts/_lib/orchestration_record.ts +91 -2
- package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
- package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
- package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
- package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
- package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
- package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
- package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
- package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
- package/src/scripts/_lib/persistence/types.ts +109 -0
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/secret_detector.test.ts +5 -0
- package/src/scripts/_lib/secret_detector.ts +9 -0
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
- package/src/scripts/_lib/spawn_env.ts +7 -0
- package/src/scripts/_lib/sqlite_guard.ts +191 -0
- package/src/scripts/_lib/subagent_spawn.ts +53 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/config.ts +12 -6
- package/src/scripts/ai_council/orchestrator.ts +73 -3
- package/src/scripts/ai_team/review_gate.ts +8 -10
- package/src/scripts/ai_team/team_dispatch.ts +48 -0
- package/src/scripts/audit_initial_context.ts +1 -1
- package/src/scripts/bench_cross_source_eval.ts +400 -0
- package/src/scripts/bench_honesty_score.ts +1093 -0
- package/src/scripts/bench_hook_latency.ts +218 -0
- package/src/scripts/build_mcp_catalog.ts +275 -0
- package/src/scripts/build_mcp_registry_manifest.ts +46 -0
- package/src/scripts/build_proof.ts +45 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_backstop_debt.ts +23 -13
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_source_pointer_freshness.ts +28 -3
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/code_graph/cli.ts +181 -9
- package/src/scripts/code_graph/detect.ts +52 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/query.ts +143 -29
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/condense.ts +14 -6
- package/src/scripts/context_hygiene_hook.ts +8 -5
- package/src/scripts/council_cli.ts +126 -12
- package/src/scripts/detect_target_license.ts +203 -0
- package/src/scripts/evaluator_umbrella.sh +145 -0
- package/src/scripts/external_sources_denylist.json +5 -3
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +55 -16
- package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
- package/src/scripts/hooks/block_no_verify.ts +9 -9
- package/src/scripts/hooks/code_graph_nudge_hook.ts +11 -4
- package/src/scripts/hooks/concern_registry.ts +75 -0
- package/src/scripts/hooks/design_slop_hook.ts +8 -5
- package/src/scripts/hooks/dispatch_entry.ts +37 -0
- package/src/scripts/hooks/dispatch_hook.ts +176 -3
- package/src/scripts/hooks/hook_stdin.ts +42 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
- package/src/scripts/hot_context_hook.ts +7 -6
- package/src/scripts/injection_scan_hook.ts +9 -1
- package/src/scripts/install +6 -6
- package/src/scripts/install-hooks.sh +4 -4
- package/src/scripts/install.sh +5 -4
- package/src/scripts/install.ts +264 -23
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_budget_ownership.ts +89 -0
- package/src/scripts/lint_command_routing.ts +35 -5
- package/src/scripts/lint_command_verbs.ts +42 -9
- package/src/scripts/lint_consumer_internal_refs.ts +211 -0
- package/src/scripts/lint_discovery_vocabulary.ts +2 -0
- package/src/scripts/lint_documented_commands.ts +670 -0
- package/src/scripts/lint_framework_leakage.ts +17 -3
- package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
- package/src/scripts/lint_governed_writes.ts +335 -0
- package/src/scripts/lint_hidden_unicode.ts +6 -0
- package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
- package/src/scripts/lint_memory_tripwire.ts +186 -0
- package/src/scripts/lint_override_kernel_guard.ts +74 -26
- package/src/scripts/lint_persistence.ts +171 -0
- package/src/scripts/lint_pre_migration_refs.ts +106 -0
- package/src/scripts/lint_provenance.ts +547 -0
- package/src/scripts/lint_provenance_vocabulary.ts +437 -0
- package/src/scripts/lint_spawn_payload.ts +283 -0
- package/src/scripts/lint_store_boundary.ts +152 -0
- package/src/scripts/lint_versioned_cache.ts +7 -1
- package/src/scripts/mcp_server/__main__.ts +7 -2
- package/src/scripts/mcp_server/catalog.ts +23 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
- package/src/scripts/mcp_server/prompts.ts +6 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
- package/src/scripts/mcp_server/tools.ts +56 -5
- package/src/scripts/mcp_telemetry_query.ts +2 -33
- package/src/scripts/mcp_telemetry_store.ts +64 -34
- package/src/scripts/memory_learn_hook.ts +126 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/memory_replay_24.ts +312 -0
- package/src/scripts/memory_report.ts +16 -3
- package/src/scripts/memory_signal.ts +48 -0
- package/src/scripts/memory_status.ts +6 -0
- package/src/scripts/minimal_safe_diff_hook.ts +8 -5
- package/src/scripts/onboarding_gate_hook.ts +8 -5
- package/src/scripts/orchestration_record.ts +16 -0
- package/src/scripts/pr_url_reminder_hook.ts +8 -1
- package/src/scripts/prepack-check.mjs +17 -0
- package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
- package/src/scripts/prepack_lifecycle_check.mjs +82 -0
- package/src/scripts/profile_staleness_hook.ts +8 -7
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/rule.schema.json +10 -0
- package/src/scripts/self_review_gate.test.ts +173 -1
- package/src/scripts/self_review_gate.ts +155 -15
- package/src/scripts/session_canary_hook.ts +182 -0
- package/src/scripts/smoke_quickstart.ts +2 -2
- package/src/scripts/surface_probe_hook.ts +8 -7
- package/src/scripts/sync_gitattributes.ts +310 -0
- package/src/scripts/team_review_gate_hook.ts +13 -16
- package/src/scripts/verify_before_complete_hook.ts +8 -5
- package/src/scripts/wrapper_freshness_hook.ts +8 -7
- package/src/server/schemas/settings.ts +8 -2
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-CrmZ34Rg.js +0 -40
- package/dist/ui/assets/index-CrmZ34Rg.js.map +0 -1
- package/docs/CLAIMS.md +0 -286
- package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
- package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
- package/docs/SKILL_CENSUS.md +0 -352
- package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
- package/docs/adrs/cost/README.md +0 -9
- package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
- package/docs/adrs/memory/README.md +0 -10
- package/docs/adrs/router/0001-three-tier-routing.md +0 -119
- package/docs/adrs/router/README.md +0 -9
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
- package/docs/adrs/schema/README.md +0 -9
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
- package/docs/adrs/smoke/README.md +0 -9
- package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
- package/docs/adrs/telegraph/README.md +0 -9
- package/docs/announcements/2026-05-non-dev-launch.md +0 -79
- package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
- package/docs/anti-reskin-gate.md +0 -60
- package/docs/architecture/augment-projection.md +0 -70
- package/docs/architecture/claude-bundle.md +0 -77
- package/docs/architecture/current-onboard-baseline.md +0 -126
- package/docs/architecture/current-safety-behavior.md +0 -137
- package/docs/architecture/multi-tool-projection.md +0 -125
- package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
- package/docs/architecture/source-projection.md +0 -85
- package/docs/architecture.md +0 -390
- package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
- package/docs/archive/CHANGELOG-7.0.0.md +0 -419
- package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
- package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
- package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
- package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
- package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
- package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
- package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
- package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
- package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
- package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
- package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
- package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
- package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
- package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
- package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
- package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
- package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
- package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
- package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
- package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
- package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
- package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
- package/docs/artefact-census.md +0 -71
- package/docs/benchmark.md +0 -785
- package/docs/benchmark.pinned.yml +0 -31
- package/docs/benchmarks.md +0 -85
- package/docs/capability-matrix.md +0 -33
- package/docs/case-studies/_template.md +0 -60
- package/docs/case-studies/frontend-design-positioning.md +0 -86
- package/docs/catalog.md +0 -726
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -87
- package/docs/contracts/CHANGELOG-conventions.md +0 -149
- package/docs/contracts/STABILITY.md +0 -188
- package/docs/contracts/adoption-signal-floor.md +0 -127
- package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
- package/docs/contracts/adr-chat-history-split.md +0 -140
- package/docs/contracts/adr-command-suggestion.md +0 -144
- package/docs/contracts/adr-forecast-construction-shape.md +0 -90
- package/docs/contracts/adr-gtm-context-spine.md +0 -116
- package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
- package/docs/contracts/adr-install-user-type-axis.md +0 -107
- package/docs/contracts/adr-layout.md +0 -107
- package/docs/contracts/adr-level-6-productization.md +0 -145
- package/docs/contracts/adr-mcp-runtime.md +0 -128
- package/docs/contracts/adr-product-ui-track.md +0 -381
- package/docs/contracts/adr-prompt-driven-execution.md +0 -186
- package/docs/contracts/adr-settings-sync-engine.md +0 -128
- package/docs/contracts/adr-user-types-axis.md +0 -127
- package/docs/contracts/adr-wing4-context-spine.md +0 -126
- package/docs/contracts/agent-user-schema.md +0 -170
- package/docs/contracts/agents-layout.md +0 -148
- package/docs/contracts/agents-md-tech-stack.md +0 -75
- package/docs/contracts/ai-council-config.md +0 -829
- package/docs/contracts/ai-team-config.md +0 -224
- package/docs/contracts/analysis-memory-loop.md +0 -149
- package/docs/contracts/at-rest-encryption.md +0 -191
- package/docs/contracts/audit-log-v1.md +0 -150
- package/docs/contracts/auto-orchestration-v1.md +0 -70
- package/docs/contracts/benchmark-ab-contract.md +0 -106
- package/docs/contracts/benchmark-corpus-spec.md +0 -125
- package/docs/contracts/benchmark-report-schema.md +0 -113
- package/docs/contracts/branch-protection-policy.md +0 -139
- package/docs/contracts/brand-token-consumption.md +0 -74
- package/docs/contracts/capability-boundary.md +0 -69
- package/docs/contracts/capability-packs.md +0 -217
- package/docs/contracts/ci-cost-budget.md +0 -111
- package/docs/contracts/ci-green-floor.md +0 -141
- package/docs/contracts/command-category-governance.md +0 -84
- package/docs/contracts/command-clusters.md +0 -399
- package/docs/contracts/command-surface-tiers.md +0 -176
- package/docs/contracts/command-taxonomy.md +0 -137
- package/docs/contracts/condensation-default-kill-criterion.md +0 -116
- package/docs/contracts/config-presets.md +0 -144
- package/docs/contracts/conformance.md +0 -84
- package/docs/contracts/consumer-bridge.md +0 -73
- package/docs/contracts/context-paths.md +0 -101
- package/docs/contracts/context-spine.md +0 -179
- package/docs/contracts/cost-dashboard.md +0 -143
- package/docs/contracts/cost-enforcement.md +0 -134
- package/docs/contracts/cost-profile-defaults.md +0 -110
- package/docs/contracts/cost-summary-schema.md +0 -107
- package/docs/contracts/creative-pack-boundary.md +0 -63
- package/docs/contracts/cross-repo-retrieval.md +0 -64
- package/docs/contracts/cross-wing-handoff.md +0 -134
- package/docs/contracts/daily-workspace.md +0 -147
- package/docs/contracts/decision-engine-gates.md +0 -120
- package/docs/contracts/decision-trace-v1.md +0 -177
- package/docs/contracts/design-artifact-lifecycle.md +0 -93
- package/docs/contracts/design-artifact-verification.md +0 -153
- package/docs/contracts/discovery-manifest.md +0 -209
- package/docs/contracts/discovery-manifest.schema.json +0 -254
- package/docs/contracts/evidence-based-pruning.md +0 -102
- package/docs/contracts/explain-modes.md +0 -187
- package/docs/contracts/explain-trace.schema.json +0 -144
- package/docs/contracts/file-ownership-matrix.json +0 -13941
- package/docs/contracts/file-ownership-matrix.md +0 -135
- package/docs/contracts/frontmatter-contract.md +0 -140
- package/docs/contracts/ghostwriter-schema.md +0 -337
- package/docs/contracts/governance-enforcement-projection.md +0 -159
- package/docs/contracts/gui-wizard.md +0 -350
- package/docs/contracts/harness-expectations.md +0 -128
- package/docs/contracts/hook-architecture-v1.md +0 -325
- package/docs/contracts/host-agent-protocol.md +0 -110
- package/docs/contracts/implement-ticket-flow.md +0 -625
- package/docs/contracts/init-telemetry.md +0 -132
- package/docs/contracts/injected-block-authenticity-model.md +0 -66
- package/docs/contracts/install-layout.md +0 -249
- package/docs/contracts/install-scopes.md +0 -82
- package/docs/contracts/installed-tools-lockfile.md +0 -144
- package/docs/contracts/installer-agent-mode.md +0 -137
- package/docs/contracts/iron-law-overrides.txt +0 -26
- package/docs/contracts/kernel-membership.md +0 -339
- package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
- package/docs/contracts/linear-ai-three-layers.md +0 -130
- package/docs/contracts/linter-structural-model.md +0 -181
- package/docs/contracts/load-context-budget-model.md +0 -259
- package/docs/contracts/load-context-schema.md +0 -220
- package/docs/contracts/local-analytics.md +0 -160
- package/docs/contracts/local-knowledge-ingestion.md +0 -96
- package/docs/contracts/local-server-api.md +0 -134
- package/docs/contracts/local-server-ports.md +0 -53
- package/docs/contracts/low-impact-corpus-format.md +0 -95
- package/docs/contracts/mcp-beta-criteria.md +0 -130
- package/docs/contracts/mcp-cloud-scope.md +0 -355
- package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
- package/docs/contracts/mcp-phase-1-scope.md +0 -272
- package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
- package/docs/contracts/mcp-tool-inventory.md +0 -64
- package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
- package/docs/contracts/measurement-baseline.md +0 -103
- package/docs/contracts/memory-visibility-v1.md +0 -160
- package/docs/contracts/mental-models.md +0 -336
- package/docs/contracts/migrate-command.md +0 -233
- package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
- package/docs/contracts/namespace.md +0 -125
- package/docs/contracts/no-runtime-boundary.md +0 -61
- package/docs/contracts/one-off-script-lifecycle.md +0 -110
- package/docs/contracts/orchestration-dsl-v1.md +0 -153
- package/docs/contracts/package-self-orientation.md +0 -163
- package/docs/contracts/pilot/agent-authority.md +0 -24
- package/docs/contracts/pilot/direct-answers.md +0 -70
- package/docs/contracts/pilot/language-and-tone.md +0 -63
- package/docs/contracts/plain-language-surface.md +0 -117
- package/docs/contracts/prelaunch-diagnostics.md +0 -151
- package/docs/contracts/profile-system.md +0 -167
- package/docs/contracts/reasoning-discipline-protocol.md +0 -83
- package/docs/contracts/release-pr-gating.md +0 -151
- package/docs/contracts/release-sizing.md +0 -107
- package/docs/contracts/release-trunk-sync.md +0 -105
- package/docs/contracts/review-lens-schema.md +0 -64
- package/docs/contracts/roadmap-complexity-standard.md +0 -138
- package/docs/contracts/role-experience.md +0 -125
- package/docs/contracts/router-blending.md +0 -71
- package/docs/contracts/rule-classification.md +0 -171
- package/docs/contracts/rule-interactions.md +0 -132
- package/docs/contracts/rule-interactions.yml +0 -260
- package/docs/contracts/rule-priority-hierarchy.md +0 -88
- package/docs/contracts/rule-router.md +0 -287
- package/docs/contracts/safety-model.md +0 -129
- package/docs/contracts/session-profile-overlay.md +0 -157
- package/docs/contracts/settings-api.md +0 -264
- package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
- package/docs/contracts/settings-sync-yaml-subset.md +0 -139
- package/docs/contracts/skill-bundled-assets.md +0 -62
- package/docs/contracts/skill-discovery.md +0 -80
- package/docs/contracts/skill-distribution-channels.md +0 -66
- package/docs/contracts/skill-domains.md +0 -144
- package/docs/contracts/skill-dry-run.md +0 -47
- package/docs/contracts/skill-family-map.yml +0 -915
- package/docs/contracts/smoke-contracts.md +0 -144
- package/docs/contracts/subagent-boundary.md +0 -74
- package/docs/contracts/surface-agent-contracts.md +0 -153
- package/docs/contracts/surface-matrix.md +0 -108
- package/docs/contracts/surface-tiers.md +0 -81
- package/docs/contracts/telegraph-telemetry.md +0 -83
- package/docs/contracts/ticket-bundle-format.md +0 -233
- package/docs/contracts/tier-3-contrib-plugin.md +0 -137
- package/docs/contracts/trust-and-safety.md +0 -144
- package/docs/contracts/ui-stack-extension.md +0 -237
- package/docs/contracts/ui-track-flow.md +0 -329
- package/docs/contracts/universal-skills.md +0 -91
- package/docs/contracts/user-type-schema.md +0 -146
- package/docs/contracts/value-dashboard-spec.md +0 -378
- package/docs/contracts/value-report-schema.md +0 -168
- package/docs/contracts/workflow-packs.md +0 -121
- package/docs/contracts/workspace-boundary.md +0 -84
- package/docs/contracts/workspace-documents.md +0 -144
- package/docs/contracts/write-engine.md +0 -182
- package/docs/cookbook.md +0 -152
- package/docs/customization.md +0 -696
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
- package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
- package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
- package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
- package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
- package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
- package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
- package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
- package/docs/decisions/ADR-016-installer-architecture.md +0 -191
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
- package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
- package/docs/decisions/ADR-021-deployment-shape.md +0 -153
- package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
- package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
- package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
- package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
- package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
- package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
- package/docs/decisions/ADR-028-root-layout.md +0 -147
- package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
- package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
- package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
- package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
- package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
- package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
- package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
- package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
- package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
- package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
- package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
- package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
- package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
- package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
- package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
- package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
- package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
- package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
- package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
- package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
- package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
- package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
- package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
- package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
- package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
- package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
- package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
- package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
- package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
- package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
- package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
- package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
- package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
- package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
- package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
- package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
- package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
- package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
- package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
- package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
- package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
- package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
- package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
- package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
- package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
- package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
- package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
- package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
- package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
- package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
- package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
- package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
- package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
- package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
- package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
- package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
- package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
- package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
- package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
- package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
- package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
- package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
- package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
- package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
- package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
- package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
- package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
- package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
- package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
- package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
- package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
- package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
- package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
- package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
- package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
- package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
- package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
- package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
- package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
- package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -248
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -112
- package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -209
- package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
- package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
- package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
- package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
- package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
- package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
- package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
- package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
- package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
- package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
- package/docs/decisions/ADR-124-embedded-engine-doctrine.md +0 -255
- package/docs/decisions/ADR-125-doc-screenshot-anonymization.md +0 -131
- package/docs/decisions/ADR-126-internet-reach-operator-tooling.md +0 -254
- package/docs/decisions/ADR-127-enforcement-claims-must-resolve.md +0 -150
- package/docs/decisions/ADR-128-executable-evidence-and-measured-escalation.md +0 -201
- package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
- package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
- package/docs/decisions/INDEX.md +0 -157
- package/docs/decisions/engine-reclassification-2026-07.md +0 -104
- package/docs/deploy/connector-setup.md +0 -129
- package/docs/deploy/env-vars.md +0 -70
- package/docs/deploy/policy-cookbook.md +0 -130
- package/docs/deploy/quickstart.md +0 -112
- package/docs/deploy/small-team-recipe.md +0 -148
- package/docs/deploy/team-deployment-posture.md +0 -111
- package/docs/design/adversarial-council-eval.md +0 -106
- package/docs/design/council-vs-solo-baseline.md +0 -92
- package/docs/design/cross-model-parity-eval.md +0 -82
- package/docs/design/length-neutral-judge-rerun.md +0 -92
- package/docs/design/utilization-window-criteria.md +0 -51
- package/docs/development.md +0 -230
- package/docs/distribution/awesome-list-submission.md +0 -46
- package/docs/distribution/consumer-matrix.md +0 -96
- package/docs/distribution/launch-story-draft.md +0 -58
- package/docs/distribution/mcp-submission-checklist.md +0 -95
- package/docs/distribution/public-install-smoke.md +0 -68
- package/docs/distribution/registries.md +0 -126
- package/docs/distribution/registry-submissions.md +0 -85
- package/docs/distribution/telemetry-privacy.md +0 -128
- package/docs/distribution/telemetry-schema.md +0 -174
- package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
- package/docs/end-to-end-walkthroughs.md +0 -165
- package/docs/enforcement-by-host.md +0 -51
- package/docs/examples/agent-user.example.md +0 -22
- package/docs/experiences/agency.md +0 -49
- package/docs/experiences/content_creator.md +0 -49
- package/docs/experiences/developer.md +0 -49
- package/docs/experiences/finance.md +0 -50
- package/docs/experiences/founder.md +0 -49
- package/docs/experiences/ops.md +0 -49
- package/docs/featured-commands.md +0 -27
- package/docs/featured-skills.md +0 -95
- package/docs/flows.md +0 -67
- package/docs/getting-started-by-role.md +0 -190
- package/docs/getting-started-laravel.md +0 -72
- package/docs/getting-started-local-stdio.md +0 -77
- package/docs/getting-started.md +0 -254
- package/docs/github-topics.md +0 -93
- package/docs/governance-advantage.md +0 -72
- package/docs/governance.md +0 -96
- package/docs/guides/cross-repo-linked-projects.md +0 -93
- package/docs/guides/cross-repo-retrieval.md +0 -61
- package/docs/guides/frontend-design-corpus-refresh.md +0 -83
- package/docs/guides/gated-platform-reads.md +0 -221
- package/docs/guides/local-analytics.md +0 -125
- package/docs/guides/local-knowledge.md +0 -127
- package/docs/guides/skill-discovery.md +0 -71
- package/docs/guides/skill-preview.md +0 -71
- package/docs/hook-payload-capture.md +0 -221
- package/docs/install-friction-report.md +0 -66
- package/docs/installation.md +0 -959
- package/docs/maintainers/branch-protection.md +0 -105
- package/docs/maintainers/dev-mode.md +0 -106
- package/docs/maintainers/optional-media-deps.md +0 -50
- package/docs/maintainers/system-map.md +0 -85
- package/docs/mcp-registries.md +0 -94
- package/docs/mcp-server.md +0 -175
- package/docs/mcp.md +0 -147
- package/docs/media/proof-demo.cast +0 -14
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +0 -145
- package/docs/migration/divergences/README.md +0 -55
- package/docs/migration/divergences/_template.md +0 -50
- package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
- package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
- package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
- package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
- package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
- package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
- package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
- package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
- package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
- package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
- package/docs/migration/node-floor.md +0 -86
- package/docs/migration/v1-to-v2.md +0 -156
- package/docs/migration/yaml-roundtrip-spike.md +0 -163
- package/docs/migrations/commands-1.15.0.md +0 -117
- package/docs/parity/bench-external.json +0 -58
- package/docs/parity/bench.json +0 -41
- package/docs/parity/command-frontmatter.md +0 -60
- package/docs/parity/external-runtime.md +0 -46
- package/docs/personas.md +0 -178
- package/docs/positioning-evidence.md +0 -86
- package/docs/profiles.md +0 -108
- package/docs/proof.md +0 -252
- package/docs/quality.md +0 -98
- package/docs/readme-split-plan.md +0 -102
- package/docs/recruits/_template.md +0 -81
- package/docs/release-runbook.md +0 -141
- package/docs/role-experiences.md +0 -19
- package/docs/safety.md +0 -30
- package/docs/second-brain-scope.md +0 -116
- package/docs/self-review-gate.md +0 -65
- package/docs/setup/enterprise-and-offline.md +0 -201
- package/docs/setup/mcp-client-config.md +0 -358
- package/docs/setup/mcp-cloud-endpoints.md +0 -116
- package/docs/setup/mcp-cloud-registry-listing.md +0 -99
- package/docs/setup/mcp-cloud-setup.md +0 -183
- package/docs/setup/mcp-r2-bootstrap.md +0 -82
- package/docs/setup/mcp-server-docker.md +0 -101
- package/docs/setup/per-ide/aider.md +0 -48
- package/docs/setup/per-ide/antigravity.md +0 -68
- package/docs/setup/per-ide/augment.md +0 -89
- package/docs/setup/per-ide/claude-code.md +0 -97
- package/docs/setup/per-ide/claude-desktop.md +0 -207
- package/docs/setup/per-ide/cline.md +0 -43
- package/docs/setup/per-ide/codebuddy.md +0 -63
- package/docs/setup/per-ide/codex.md +0 -46
- package/docs/setup/per-ide/continue.md +0 -68
- package/docs/setup/per-ide/copilot.md +0 -80
- package/docs/setup/per-ide/cursor.md +0 -125
- package/docs/setup/per-ide/droid.md +0 -65
- package/docs/setup/per-ide/gemini-cli.md +0 -45
- package/docs/setup/per-ide/jetbrains.md +0 -76
- package/docs/setup/per-ide/kilocode.md +0 -66
- package/docs/setup/per-ide/kiro.md +0 -72
- package/docs/setup/per-ide/opencode.md +0 -62
- package/docs/setup/per-ide/qoder.md +0 -63
- package/docs/setup/per-ide/roocode.md +0 -68
- package/docs/setup/per-ide/trae.md +0 -63
- package/docs/setup/per-ide/warp.md +0 -63
- package/docs/setup/per-ide/windsurf.md +0 -109
- package/docs/setup/per-ide/zed.md +0 -73
- package/docs/showcase.md +0 -209
- package/docs/skill-duplication-findings.md +0 -91
- package/docs/skills-catalog.md +0 -265
- package/docs/skills-taxonomy.md +0 -90
- package/docs/spawn-site-policy.md +0 -72
- package/docs/succession.md +0 -80
- package/docs/threat-model.md +0 -30
- package/docs/troubleshooting.md +0 -155
- package/docs/ui-track-mental-model.md +0 -121
- package/docs/us-vs-the-category.md +0 -38
- package/docs/value.md +0 -86
- package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
- package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
- package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
- package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
- package/docs/walkthroughs/daily-workspace.md +0 -127
- package/docs/wedge/production-validator/README.md +0 -81
- package/docs/wedge/production-validator/first-run-check.sh +0 -42
- package/docs/wedge/production-validator/production-validator.md +0 -83
- package/docs/wizard.md +0 -173
- package/src/scripts/postinstall_gui.ts +0 -129
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
* into a subagent — keep the private-data leg narrow.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
import * as crypto from 'node:crypto';
|
|
15
|
+
|
|
14
16
|
export type RoleMode = 'developer' | 'reviewer' | 'tester' | 'po' | 'incident' | 'planner';
|
|
15
17
|
|
|
16
18
|
const ROLE_MODES: ReadonlySet<string> = new Set<RoleMode>([
|
|
@@ -37,6 +39,12 @@ export interface SpawnSelection {
|
|
|
37
39
|
personas?: string[];
|
|
38
40
|
/** Knowledge slice REFERENCES (ids / paths) — never inline bodies. */
|
|
39
41
|
knowledge_refs?: string[];
|
|
42
|
+
/**
|
|
43
|
+
* Hard per-worker token stop-loss (L0b), resolved from the worker's tier
|
|
44
|
+
* via `worker_budget.budgetForTier`. Null/absent = orchestrator did not
|
|
45
|
+
* set one (legacy dispatch).
|
|
46
|
+
*/
|
|
47
|
+
max_tokens_per_worker?: number | null;
|
|
40
48
|
}
|
|
41
49
|
|
|
42
50
|
export interface SpawnBrief {
|
|
@@ -45,6 +53,8 @@ export interface SpawnBrief {
|
|
|
45
53
|
profile: string | null;
|
|
46
54
|
personas: string[];
|
|
47
55
|
knowledge_refs: string[];
|
|
56
|
+
/** Per-worker token stop-loss; null = unset (legacy dispatch). */
|
|
57
|
+
max_tokens_per_worker: number | null;
|
|
48
58
|
warnings: string[];
|
|
49
59
|
}
|
|
50
60
|
|
|
@@ -86,12 +96,55 @@ export function composeSpawnBrief(sel: SpawnSelection): SpawnBrief {
|
|
|
86
96
|
knowledge_refs = knowledge_refs.slice(0, MAX_KNOWLEDGE_REFS);
|
|
87
97
|
}
|
|
88
98
|
|
|
99
|
+
let max_tokens_per_worker: number | null = null;
|
|
100
|
+
if (sel.max_tokens_per_worker != null) {
|
|
101
|
+
if (Number.isInteger(sel.max_tokens_per_worker) && sel.max_tokens_per_worker > 0) {
|
|
102
|
+
max_tokens_per_worker = sel.max_tokens_per_worker;
|
|
103
|
+
} else {
|
|
104
|
+
warnings.push(`invalid max_tokens_per_worker '${sel.max_tokens_per_worker}' dropped (positive integer required)`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
89
108
|
return {
|
|
90
109
|
task: sel.task,
|
|
91
110
|
role_mode,
|
|
92
111
|
profile: sel.profile ?? null,
|
|
93
112
|
personas,
|
|
94
113
|
knowledge_refs,
|
|
114
|
+
max_tokens_per_worker,
|
|
95
115
|
warnings,
|
|
96
116
|
};
|
|
97
117
|
}
|
|
118
|
+
|
|
119
|
+
// ── Prefix-stable payload serialization (road-to-lean-agent-init Phase 4) ──
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Serialize a brief into the spawn payload with DETERMINISTIC ordering:
|
|
123
|
+
* static prefix first (role contract, profile, personas, budget — stable
|
|
124
|
+
* across dispatches of the same configuration), variable task part last.
|
|
125
|
+
* No timestamps, no random IDs — the prefix is byte-identical for identical
|
|
126
|
+
* configurations, which is what provider prompt-caching keys on. The
|
|
127
|
+
* `cache_hit` audit field records whether the provider actually reused it;
|
|
128
|
+
* measurement only — no savings claim without provider-response evidence.
|
|
129
|
+
*/
|
|
130
|
+
export function serializeSpawnPayload(brief: SpawnBrief): string {
|
|
131
|
+
const staticPrefix = JSON.stringify({
|
|
132
|
+
role_mode: brief.role_mode,
|
|
133
|
+
profile: brief.profile,
|
|
134
|
+
personas: brief.personas,
|
|
135
|
+
max_tokens_per_worker: brief.max_tokens_per_worker,
|
|
136
|
+
});
|
|
137
|
+
const variableTail = JSON.stringify({
|
|
138
|
+
task: brief.task,
|
|
139
|
+
knowledge_refs: brief.knowledge_refs,
|
|
140
|
+
});
|
|
141
|
+
return `${staticPrefix}\n${variableTail}`;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Hex digest of a serialized payload — the `payload_hash` audit field
|
|
146
|
+
* (never content; 16 hex chars satisfy the audit schema's 8–64 window).
|
|
147
|
+
*/
|
|
148
|
+
export function spawnPayloadHash(payload: string): string {
|
|
149
|
+
return crypto.createHash('sha256').update(payload, 'utf8').digest('hex').slice(0, 16);
|
|
150
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-worker token stop-loss (L0b — road-to-lean-agent-init Phase 2).
|
|
3
|
+
*
|
|
4
|
+
* Pure, no-I/O. A dispatched worker carries a hard `max_tokens_per_worker`
|
|
5
|
+
* budget keyed by its resolved tier; on hit it returns a STRUCTURED PARTIAL
|
|
6
|
+
* RESULT + escalation flag to the orchestrator instead of continuing to
|
|
7
|
+
* explore. Live evidence (2026-07-28): four lookup-class workers burned
|
|
8
|
+
* 280–327k tokens each — a worker overrunning its budget 20× is a dispatch
|
|
9
|
+
* error on the wrong rung, not diligence.
|
|
10
|
+
*
|
|
11
|
+
* Composes with — replaces nothing:
|
|
12
|
+
* - the N=3 validation-loop budget (`autonomous-execution`),
|
|
13
|
+
* - the ADR-109 / `subagent-response-contract` body + 4-status envelope
|
|
14
|
+
* (`subagent-steering`): the partial result rides as the body of a
|
|
15
|
+
* `BLOCKED` envelope with `budget_hit: true` as the escalation flag.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import type { Tier } from './subagent_routing.js';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Start values — refined from Phase-3 telemetry (`budget_hit` rate in the
|
|
22
|
+
* audit stream), never final. `lite` is the roadmap-pinned lookup-class
|
|
23
|
+
* start value (~15k); `medium`/`high` are conservative seeds an order of
|
|
24
|
+
* magnitude below the observed 280–327k runaway runs.
|
|
25
|
+
*/
|
|
26
|
+
export const MAX_TOKENS_PER_WORKER: Readonly<Record<Exclude<Tier, 'inherit'>, number>> = {
|
|
27
|
+
lite: 15_000,
|
|
28
|
+
medium: 60_000,
|
|
29
|
+
high: 150_000,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** Resolve the budget for a worker's tier; `inherit` uses the session tier's budget. */
|
|
33
|
+
export function budgetForTier(tier: Tier, sessionTier: Exclude<Tier, 'inherit'> = 'high'): number {
|
|
34
|
+
const effective = tier === 'inherit' ? sessionTier : tier;
|
|
35
|
+
return MAX_TOKENS_PER_WORKER[effective];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Where the orchestrator should send the task after a budget hit. */
|
|
39
|
+
export type NextRung = 'primitive' | 'higher-tier-subagent' | 'in-session';
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The structured partial result a budget-hit worker returns. Body of a
|
|
43
|
+
* `BLOCKED` envelope; `budget_hit: true` IS the escalation flag. Refs, not
|
|
44
|
+
* bodies — same privacy floor as the spawn/response contracts.
|
|
45
|
+
*/
|
|
46
|
+
export interface WorkerPartialResult {
|
|
47
|
+
budget_hit: true;
|
|
48
|
+
/** What was found so far — ref tokens (`file:line`, ids, paths), never bodies. */
|
|
49
|
+
found: string[];
|
|
50
|
+
/** What remains unexplored, one plain sentence. */
|
|
51
|
+
remaining: string;
|
|
52
|
+
/** Suggested next rung for the remainder. */
|
|
53
|
+
suggested_next_rung: NextRung;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const NEXT_RUNGS: ReadonlySet<string> = new Set<NextRung>(['primitive', 'higher-tier-subagent', 'in-session']);
|
|
57
|
+
|
|
58
|
+
/** Ref-like guard — mirrors the spawn contract's refs-not-bodies invariant. */
|
|
59
|
+
function isRefLike(s: unknown): s is string {
|
|
60
|
+
return typeof s === 'string' && s.length > 0 && s.length <= 200 && !s.includes('\n');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface BudgetEvaluation {
|
|
64
|
+
budget_hit: boolean;
|
|
65
|
+
consumed: number;
|
|
66
|
+
budget: number;
|
|
67
|
+
reason: string;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** Evaluate consumption against the worker's budget. */
|
|
71
|
+
export function evaluateWorkerBudget(consumed: number, budget: number): BudgetEvaluation {
|
|
72
|
+
const hit = consumed >= budget;
|
|
73
|
+
return {
|
|
74
|
+
budget_hit: hit,
|
|
75
|
+
consumed,
|
|
76
|
+
budget,
|
|
77
|
+
reason: hit
|
|
78
|
+
? `budget hit (${consumed} >= ${budget}) — return partial result + escalation flag, stop exploring`
|
|
79
|
+
: `within budget (${consumed} < ${budget})`,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Validate a partial-result body. Returns the list of violations (empty =
|
|
85
|
+
* valid). The orchestrator never adopts an invalid partial return — it
|
|
86
|
+
* re-dispatches or resolves in-session per the synthesis duties.
|
|
87
|
+
*/
|
|
88
|
+
export function validateWorkerPartialResult(input: unknown): string[] {
|
|
89
|
+
const errors: string[] = [];
|
|
90
|
+
if (typeof input !== 'object' || input === null) return ['not an object'];
|
|
91
|
+
const r = input as Record<string, unknown>;
|
|
92
|
+
|
|
93
|
+
if (r['budget_hit'] !== true) errors.push('budget_hit must be literally true (the escalation flag)');
|
|
94
|
+
if (!Array.isArray(r['found'])) {
|
|
95
|
+
errors.push('found must be an array of ref tokens');
|
|
96
|
+
} else {
|
|
97
|
+
const bodyLike = (r['found'] as unknown[]).filter((x) => !isRefLike(x));
|
|
98
|
+
if (bodyLike.length > 0) errors.push(`found carries ${bodyLike.length} non-ref entr${bodyLike.length === 1 ? 'y' : 'ies'} (refs only, no bodies)`);
|
|
99
|
+
}
|
|
100
|
+
if (typeof r['remaining'] !== 'string' || (r['remaining'] as string).length === 0) {
|
|
101
|
+
errors.push('remaining must be a non-empty sentence');
|
|
102
|
+
}
|
|
103
|
+
if (typeof r['suggested_next_rung'] !== 'string' || !NEXT_RUNGS.has(r['suggested_next_rung'] as string)) {
|
|
104
|
+
errors.push(`suggested_next_rung must be one of ${[...NEXT_RUNGS].join(' | ')}`);
|
|
105
|
+
}
|
|
106
|
+
return errors;
|
|
107
|
+
}
|
|
Binary file
|
|
@@ -915,10 +915,15 @@ function _build_model_downgrade(d: Dict): ModelDowngradeConfig {
|
|
|
915
915
|
if (!_isBool(enabled)) {
|
|
916
916
|
throw new CouncilConfigError('`model_downgrade.enabled` must be a bool.');
|
|
917
917
|
}
|
|
918
|
-
//
|
|
919
|
-
//
|
|
920
|
-
//
|
|
921
|
-
|
|
918
|
+
// 2026-07-28 (road-to-feedback-9.8.0-followups Phase 3): auto_apply
|
|
919
|
+
// default downgraded back to FALSE (suggest, don't silently apply). The
|
|
920
|
+
// A3 flip to TRUE (2026-07-20) shipped without a paired quality
|
|
921
|
+
// measurement and was the only default-ON surface without one (R7
|
|
922
|
+
// watch-item); until a paired eval measures downgraded-member council
|
|
923
|
+
// quality, the downgrade surfaces as a suggestion the caller applies
|
|
924
|
+
// explicitly. Revisit: a paired eval (full-tier vs downgraded, blind
|
|
925
|
+
// judge) showing held quality re-flips this to true.
|
|
926
|
+
const auto_apply = _get(d, 'auto_apply', false);
|
|
922
927
|
if (!_isBool(auto_apply)) {
|
|
923
928
|
throw new CouncilConfigError('`model_downgrade.auto_apply` must be a bool.');
|
|
924
929
|
}
|
|
@@ -1331,8 +1336,9 @@ function _build_lens_overrides(d: Dict): LensOverridesConfig {
|
|
|
1331
1336
|
`\`lenses.${lens_name}.model_downgrade.enabled\` must be a bool.`,
|
|
1332
1337
|
);
|
|
1333
1338
|
}
|
|
1334
|
-
// Lens overrides inherit the
|
|
1335
|
-
|
|
1339
|
+
// Lens overrides inherit the suggest-by-default posture
|
|
1340
|
+
// (2026-07-28 downgrade of the unmeasured A3 auto-default).
|
|
1341
|
+
const md_auto = _get(md_block, 'auto_apply', false);
|
|
1336
1342
|
if (!_isBool(md_auto)) {
|
|
1337
1343
|
throw new CouncilConfigError(
|
|
1338
1344
|
`\`lenses.${lens_name}.model_downgrade.auto_apply\` must be a bool.`,
|
|
@@ -67,6 +67,7 @@ import {
|
|
|
67
67
|
} from './prompts.js';
|
|
68
68
|
import { count_dissenters, dissent_quota_met, is_near_duplicate } from './debate_gates.js';
|
|
69
69
|
import { parse_stance_line, render_vote_tally, tally_stances } from './stance_tally.js';
|
|
70
|
+
import { CHAIRMAN_FIELDS_ADDENDUM, render_deanonymization_block } from './blind_review.js';
|
|
70
71
|
|
|
71
72
|
// ── Python-format / stdlib parity helpers ────────────────────────────────
|
|
72
73
|
//
|
|
@@ -428,6 +429,20 @@ export interface ConsultOptions {
|
|
|
428
429
|
on_stance_repair?: ((member: string) => boolean) | null;
|
|
429
430
|
/** Receives each stance-repair response so the caller can account its cost. */
|
|
430
431
|
on_stance_repair_result?: ((r: CouncilResponse) => void) | null;
|
|
432
|
+
/**
|
|
433
|
+
* Ü2 (road-to-council-blind-review Phase 1): per-member system-prompt
|
|
434
|
+
* suffix appended AFTER the base/advisor system prompt — e.g. a stance
|
|
435
|
+
* framing sentence from `blind_review.assign_stances`. This module stays
|
|
436
|
+
* stance-agnostic on purpose: the caller supplies plain text keyed by
|
|
437
|
+
* member name. Default `null` → byte-identical to today.
|
|
438
|
+
*/
|
|
439
|
+
member_prompt_suffix?: Map<string, string> | null;
|
|
440
|
+
/**
|
|
441
|
+
* Ü2 outsider-seat ablation: member names in this set get `project: null`
|
|
442
|
+
* in their system-prompt build (question + artefact only, no project
|
|
443
|
+
* context). Default `null` → byte-identical to today.
|
|
444
|
+
*/
|
|
445
|
+
no_project_context_members?: ReadonlySet<string> | null;
|
|
431
446
|
}
|
|
432
447
|
|
|
433
448
|
/**
|
|
@@ -514,6 +529,8 @@ export function consult(
|
|
|
514
529
|
project,
|
|
515
530
|
original_ask,
|
|
516
531
|
advisor_plans,
|
|
532
|
+
member_prompt_suffix: opts.member_prompt_suffix ?? null,
|
|
533
|
+
no_project_context_members: opts.no_project_context_members ?? null,
|
|
517
534
|
split: suffix_for_round
|
|
518
535
|
? { stable: question.user_prompt, suffix: suffix_for_round }
|
|
519
536
|
: null,
|
|
@@ -589,6 +606,10 @@ interface RunRoundOptions {
|
|
|
589
606
|
* full concatenation (estimates + persistence unchanged).
|
|
590
607
|
*/
|
|
591
608
|
split?: { stable: string; suffix: string } | null;
|
|
609
|
+
/** Ü2 — see `ConsultOptions.member_prompt_suffix`. */
|
|
610
|
+
member_prompt_suffix?: Map<string, string> | null;
|
|
611
|
+
/** Ü2 — see `ConsultOptions.no_project_context_members`. */
|
|
612
|
+
no_project_context_members?: ReadonlySet<string> | null;
|
|
592
613
|
}
|
|
593
614
|
|
|
594
615
|
/** Run a single round; mutate `spent` with cumulative totals. */
|
|
@@ -604,6 +625,8 @@ function _run_round(
|
|
|
604
625
|
const project = opts.project;
|
|
605
626
|
const original_ask = opts.original_ask;
|
|
606
627
|
const plans = opts.advisor_plans ?? new Map<string, AdvisorPlan>();
|
|
628
|
+
const member_prompt_suffix = opts.member_prompt_suffix ?? null;
|
|
629
|
+
const no_project_context_members = opts.no_project_context_members ?? null;
|
|
607
630
|
const base_system_prompt = system_prompt_for(question.mode, {
|
|
608
631
|
project,
|
|
609
632
|
original_ask,
|
|
@@ -611,10 +634,22 @@ function _run_round(
|
|
|
611
634
|
|
|
612
635
|
const _system_prompt_for_member = (m: ExternalAIClient): string => {
|
|
613
636
|
const plan = plans.get(m.name);
|
|
637
|
+
// Ü2 outsider-seat ablation: this member's system prompt is built
|
|
638
|
+
// WITHOUT project context (question + artefact only). Everyone else
|
|
639
|
+
// is unaffected — `use_project === project` short-circuits back to
|
|
640
|
+
// the precomputed `base_system_prompt` when no set is provided.
|
|
641
|
+
const use_project = no_project_context_members?.has(m.name) ? null : project;
|
|
642
|
+
let base: string;
|
|
614
643
|
if (plan === undefined) {
|
|
615
|
-
|
|
644
|
+
base =
|
|
645
|
+
use_project === project
|
|
646
|
+
? base_system_prompt
|
|
647
|
+
: system_prompt_for(question.mode, { project: use_project, original_ask });
|
|
648
|
+
} else {
|
|
649
|
+
base = advisor_system_prompt(plan.persona_text, { project: use_project, original_ask });
|
|
616
650
|
}
|
|
617
|
-
|
|
651
|
+
const suffix = member_prompt_suffix?.get(m.name);
|
|
652
|
+
return suffix ? `${base}\n\n${suffix}` : base;
|
|
618
653
|
};
|
|
619
654
|
|
|
620
655
|
const results: CouncilResponse[] = [];
|
|
@@ -1716,6 +1751,21 @@ export interface RenderOptions {
|
|
|
1716
1751
|
* slot, prefixed by the visible annotation. Absent/null → byte-identical.
|
|
1717
1752
|
*/
|
|
1718
1753
|
chairman?: { member: string | null; annotation: string; text: string | null } | null;
|
|
1754
|
+
/**
|
|
1755
|
+
* Ü3 (road-to-council-blind-review Phase 1): when true, the synthesis
|
|
1756
|
+
* template gains the two mandatory chairman fields (Collective blind
|
|
1757
|
+
* spot / One-line verdict). Default `false` → byte-identical.
|
|
1758
|
+
*/
|
|
1759
|
+
chairman_fields?: boolean;
|
|
1760
|
+
/**
|
|
1761
|
+
* Ü1 host-path blind render (road-to-council-blind-review Phase 1): when
|
|
1762
|
+
* set, response blocks are headed by their blind label (`## Response A`)
|
|
1763
|
+
* instead of `## <provider> · <model>`, and a de-anonymization map is
|
|
1764
|
+
* appended AFTER the synthesis slot. Only meaningful when no member
|
|
1765
|
+
* chairman ran — the member-chairman path embeds its own de-anon block
|
|
1766
|
+
* directly in `chairman.text`. Default `null` → byte-identical.
|
|
1767
|
+
*/
|
|
1768
|
+
blind?: { label_to_source: ReadonlyMap<string, string> } | null;
|
|
1719
1769
|
}
|
|
1720
1770
|
|
|
1721
1771
|
/**
|
|
@@ -1744,6 +1794,15 @@ export function render(responses: CouncilResponse[], opts: RenderOptions = {}):
|
|
|
1744
1794
|
const consensus = opts.consensus ?? null;
|
|
1745
1795
|
const peer_review = opts.peer_review ?? null;
|
|
1746
1796
|
const explain_confidence = opts.explain_confidence ?? null;
|
|
1797
|
+
// Ü1 host-path blind render: reverse the persisted `label -> provider:model`
|
|
1798
|
+
// map so each response block can look up its own blind label by source.
|
|
1799
|
+
const blind = opts.blind ?? null;
|
|
1800
|
+
const source_to_label =
|
|
1801
|
+
blind !== null
|
|
1802
|
+
? new Map<string, string>(
|
|
1803
|
+
Array.from(blind.label_to_source.entries()).map(([label, source]) => [source, label]),
|
|
1804
|
+
)
|
|
1805
|
+
: null;
|
|
1747
1806
|
|
|
1748
1807
|
const blocks: string[] = [];
|
|
1749
1808
|
const explain =
|
|
@@ -1759,7 +1818,8 @@ export function render(responses: CouncilResponse[], opts: RenderOptions = {}):
|
|
|
1759
1818
|
blocks.push(_render_consensus(consensus.bucket, explain));
|
|
1760
1819
|
}
|
|
1761
1820
|
for (const r of responses) {
|
|
1762
|
-
const
|
|
1821
|
+
const blind_label = source_to_label?.get(`${r.provider}:${r.model}`) ?? null;
|
|
1822
|
+
const header = blind_label !== null ? `## ${blind_label}` : `## ${r.provider} · ${r.model}`;
|
|
1763
1823
|
if (r.error) {
|
|
1764
1824
|
blocks.push(`${header}\n\n*ERROR:* \`${r.error}\``);
|
|
1765
1825
|
continue;
|
|
@@ -1782,6 +1842,11 @@ export function render(responses: CouncilResponse[], opts: RenderOptions = {}):
|
|
|
1782
1842
|
const addendum = peer_review_synthesis_addendum();
|
|
1783
1843
|
template = template ? `${template}\n${addendum}` : _pyLStrip(addendum);
|
|
1784
1844
|
}
|
|
1845
|
+
if (opts.chairman_fields === true) {
|
|
1846
|
+
// Ü3: two mandatory trailing sections, composed after any peer-review
|
|
1847
|
+
// addendum so both extensions stack predictably.
|
|
1848
|
+
template = template ? `${template}\n\n${CHAIRMAN_FIELDS_ADDENDUM}` : CHAIRMAN_FIELDS_ADDENDUM;
|
|
1849
|
+
}
|
|
1785
1850
|
let body: string;
|
|
1786
1851
|
if (template) {
|
|
1787
1852
|
body = template;
|
|
@@ -1808,6 +1873,11 @@ export function render(responses: CouncilResponse[], opts: RenderOptions = {}):
|
|
|
1808
1873
|
blocks.push(render_vote_tally(tally));
|
|
1809
1874
|
}
|
|
1810
1875
|
blocks.push(`## Convergence / Divergence\n\n${body}`);
|
|
1876
|
+
if (blind !== null) {
|
|
1877
|
+
// Ü1: de-anonymization AFTER the synthesis slot — blind is only at
|
|
1878
|
+
// decision time, never the archive.
|
|
1879
|
+
blocks.push(render_deanonymization_block('### De-anonymization map', blind.label_to_source));
|
|
1880
|
+
}
|
|
1811
1881
|
return blocks.join('\n\n---\n\n');
|
|
1812
1882
|
}
|
|
1813
1883
|
|
|
@@ -25,16 +25,14 @@
|
|
|
25
25
|
* the same `AGENT_CONFIG_NO_EVENTS_LOG` kill-switch, no free-form
|
|
26
26
|
* content — verdict enum + counter only, PII-excluded by construction).
|
|
27
27
|
*
|
|
28
|
-
* Composition point (
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* plugin's
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
* it drags the manifest lint + installer + tests/hooks snapshot surface and
|
|
37
|
-
* is deliberately left to the orchestrator. With
|
|
28
|
+
* Composition point (manifest-wired): the minimal call-site is
|
|
29
|
+
* `src/scripts/team_review_gate_hook.ts`, a `stop` concern in the
|
|
30
|
+
* dispatcher shape, registered in `src/scripts/hook_manifest.yaml` under
|
|
31
|
+
* `claude.stop` (after `chat-history`). Claude Code gives sibling Stop
|
|
32
|
+
* hooks no view of the plugin gate's own stdout, so the hook reads the
|
|
33
|
+
* gate verdict from the plugin's persisted job record (`jobs/<id>.json` →
|
|
34
|
+
* `result.rawOutput`, title `Codex Stop Gate Review`) — see
|
|
35
|
+
* `find_latest_gate_transcript`. With
|
|
38
36
|
* `ai_team.review_gate.managed: false` (default) every entry point here is
|
|
39
37
|
* a no-op — byte-identical pre-Phase-4 behavior.
|
|
40
38
|
*/
|
|
@@ -64,6 +64,42 @@ export class TeamDisabledError extends TeamDispatchError {
|
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Thrown by `assert_delegate_allowed` when `ai_team.enabled` is true but the
|
|
69
|
+
* second opt-in (`ai_team.allow_delegate`) is not. `/team delegate` is the
|
|
70
|
+
* only wrapper that hands WRITE access to the second model, so it is
|
|
71
|
+
* double-gated; `enabled: true` alone is never delegate authorization.
|
|
72
|
+
*/
|
|
73
|
+
export class TeamDelegateDisabledError extends TeamDispatchError {
|
|
74
|
+
constructor() {
|
|
75
|
+
super(
|
|
76
|
+
'`/team delegate` is disabled (`ai_team.allow_delegate: false`, the shipped ' +
|
|
77
|
+
'default). It is the only team-mode wrapper that hands write access to ' +
|
|
78
|
+
'the second model, so it needs its own opt-in: set both ' +
|
|
79
|
+
'`ai_team.enabled: true` and `ai_team.allow_delegate: true` in ' +
|
|
80
|
+
'`.agent-settings.yml` — see docs/contracts/ai-team-config.md.',
|
|
81
|
+
);
|
|
82
|
+
this.name = 'TeamDelegateDisabledError';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Deterministic mirror of the `/team delegate` double gate: throws
|
|
88
|
+
* `TeamDisabledError` unless `ai_team.enabled`, then
|
|
89
|
+
* `TeamDelegateDisabledError` unless `ai_team.allow_delegate`. The command
|
|
90
|
+
* doc's prose gates instruct the agent; this guard is the machine-checkable
|
|
91
|
+
* contract (`--delegate-gate` CLI mode) tests pin against.
|
|
92
|
+
*/
|
|
93
|
+
export function assert_delegate_allowed(config?: AiTeamConfig, cwd?: string | null): void {
|
|
94
|
+
const cfg = config ?? load_ai_team_config({ cwd: cwd ?? null });
|
|
95
|
+
if (!cfg.enabled) {
|
|
96
|
+
throw new TeamDisabledError();
|
|
97
|
+
}
|
|
98
|
+
if (!cfg.allow_delegate) {
|
|
99
|
+
throw new TeamDelegateDisabledError();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
67
103
|
// ── repo-context bundle (READ-ONLY) ─────────────────────────────────────
|
|
68
104
|
|
|
69
105
|
/**
|
|
@@ -572,6 +608,18 @@ export function run_team_review(opts: RunTeamReviewOptions = {}): TeamReviewRunR
|
|
|
572
608
|
// ── CLI entry ───────────────────────────────────────────────────────────
|
|
573
609
|
|
|
574
610
|
function _main(argv: string[]): number {
|
|
611
|
+
if (argv.includes('--delegate-gate')) {
|
|
612
|
+
try {
|
|
613
|
+
assert_delegate_allowed();
|
|
614
|
+
return 0;
|
|
615
|
+
} catch (exc) {
|
|
616
|
+
if (exc instanceof TeamDispatchError) {
|
|
617
|
+
process.stderr.write(`${exc.message}\n`);
|
|
618
|
+
return 2;
|
|
619
|
+
}
|
|
620
|
+
throw exc;
|
|
621
|
+
}
|
|
622
|
+
}
|
|
575
623
|
const manual = argv.includes('--manual');
|
|
576
624
|
try {
|
|
577
625
|
const result = run_team_review({ manual });
|
|
@@ -81,7 +81,7 @@ export const BUDGETS: Record<string, number | null> = {
|
|
|
81
81
|
'rules.gpt': null,
|
|
82
82
|
'skill_catalog.gpt': 12_500, // always-scanned skill descriptions (skills_core_source, 258); current ~10,999
|
|
83
83
|
'command_catalog.gpt': 5_800, // always-scanned command catalog; current ~5,005
|
|
84
|
-
'mcp_schemas.gpt':
|
|
84
|
+
'mcp_schemas.gpt': 5_570, // per-connected-client MCP tool schemas; current ~4,839 after Phase 3 of road-to-credible-install (stub-honesty description marker on 12 stubs + readOnlyHint annotations on 19 implemented tools) — re-anchored current + ~15% per this cap's own policy
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
/**
|