@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
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derived SQLite twin of the code-graph JSON cache (ADR-129, Phase 6 of
|
|
3
|
+
* road-to-reachable-code-memory).
|
|
4
|
+
*
|
|
5
|
+
* `build` additionally emits `<cache>.sqlite3` beside the canonical JSON;
|
|
6
|
+
* the query path PREFERS the SQLite twin (cheap freshness check via the
|
|
7
|
+
* JSON's stat + stored source_checksum) and falls back to parsing the JSON
|
|
8
|
+
* when the twin is absent, stale, corrupt, version-mismatched, or the
|
|
9
|
+
* runtime has no `node:sqlite` (engines floor is Node >=20.11; the module
|
|
10
|
+
* needs >=22.5 — sqlite_guard's lazy import keeps old Nodes on the JSON
|
|
11
|
+
* path).
|
|
12
|
+
*
|
|
13
|
+
* INVARIANTS (ADR-129):
|
|
14
|
+
* - JSON stays canonical and byte-deterministic; the SQLite file is a
|
|
15
|
+
* derived, gitignored, disposable accelerator. Rollback = delete it.
|
|
16
|
+
* - Answers are byte-identical on both stores — the loader reconstructs the
|
|
17
|
+
* exact `CodeGraph` object (`serializeGraph` equality is the test).
|
|
18
|
+
* - Rollback triggers (recorded, not ship gates): query p95 <= 50 ms and
|
|
19
|
+
* heap <= 10 MB on the SQLite path — a miss reverts THAT store to the
|
|
20
|
+
* JSON fallback plus an incident note.
|
|
21
|
+
* - Zero-touch upgrades (Phase 7): `PRAGMA user_version` stamps the schema;
|
|
22
|
+
* a mismatch / corrupt / absent twin is silently rebuilt from the
|
|
23
|
+
* committed truth (the JSON) on the next load — never a user action.
|
|
24
|
+
*/
|
|
25
|
+
import * as fs from 'node:fs';
|
|
26
|
+
|
|
27
|
+
import {
|
|
28
|
+
isSqliteAvailableSync,
|
|
29
|
+
loadSqliteSync,
|
|
30
|
+
readUserVersion,
|
|
31
|
+
stampUserVersion,
|
|
32
|
+
} from '../_lib/sqlite_guard.js';
|
|
33
|
+
import type { CodeEdge, CodeGraph, CodeNode } from './types.js';
|
|
34
|
+
|
|
35
|
+
/** Bump on ANY table/column change — a mismatch sends readers to the JSON. */
|
|
36
|
+
export const GRAPH_STORE_VERSION = 1;
|
|
37
|
+
|
|
38
|
+
/** Derived twin path for a JSON cache path.
|
|
39
|
+
* cache-invalidation: versioned via PRAGMA user_version (GRAPH_STORE_VERSION), not the filename. */
|
|
40
|
+
export function sqliteTwinPath(jsonPath: string): string {
|
|
41
|
+
return jsonPath.endsWith('.json') ? `${jsonPath.slice(0, -5)}.sqlite3` : `${jsonPath}.sqlite3`;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Emit the SQLite twin beside the JSON cache. Best-effort: returns false
|
|
46
|
+
* (never throws) when `node:sqlite` is unavailable or the write fails — the
|
|
47
|
+
* JSON path remains the source of truth either way.
|
|
48
|
+
*
|
|
49
|
+
* Storage model: nodes/edges land in real tables (queryable, and the FTS-free
|
|
50
|
+
* structure the rollback triggers measure), while `meta.graph_json` carries
|
|
51
|
+
* the byte-exact canonical serialization so the loader can guarantee
|
|
52
|
+
* byte-identical answers without re-deriving key order.
|
|
53
|
+
*/
|
|
54
|
+
export function emitSqliteTwin(graph: CodeGraph, serialized: string, jsonPath: string): boolean {
|
|
55
|
+
if (!isSqliteAvailableSync()) return false;
|
|
56
|
+
const twin = sqliteTwinPath(jsonPath);
|
|
57
|
+
const tmp = `${twin}.tmp-${process.pid}`;
|
|
58
|
+
try {
|
|
59
|
+
const { DatabaseSync } = loadSqliteSync('code_graph.sqlite_store');
|
|
60
|
+
let stat: fs.Stats;
|
|
61
|
+
try {
|
|
62
|
+
stat = fs.statSync(jsonPath);
|
|
63
|
+
} catch {
|
|
64
|
+
return false; // no canonical JSON — nothing to twin
|
|
65
|
+
}
|
|
66
|
+
fs.rmSync(tmp, { force: true });
|
|
67
|
+
const db = new DatabaseSync(tmp);
|
|
68
|
+
try {
|
|
69
|
+
db.exec('PRAGMA journal_mode = MEMORY');
|
|
70
|
+
db.exec(
|
|
71
|
+
'CREATE TABLE meta (key TEXT PRIMARY KEY, value TEXT NOT NULL);' +
|
|
72
|
+
'CREATE TABLE nodes (id TEXT PRIMARY KEY, label TEXT NOT NULL, kind TEXT, source_file TEXT, l0 INTEGER, l1 INTEGER, l2 INTEGER, l3 INTEGER);' +
|
|
73
|
+
'CREATE TABLE edges (source TEXT NOT NULL, target TEXT NOT NULL, relation TEXT NOT NULL, confidence TEXT NOT NULL, candidates TEXT);' +
|
|
74
|
+
'CREATE INDEX edges_source ON edges(source);' +
|
|
75
|
+
'CREATE INDEX edges_target ON edges(target);',
|
|
76
|
+
);
|
|
77
|
+
const meta = db.prepare('INSERT INTO meta (key, value) VALUES (?, ?)');
|
|
78
|
+
meta.run('source_checksum', graph.source_checksum);
|
|
79
|
+
meta.run('json_size', String(stat.size));
|
|
80
|
+
meta.run('json_mtime_ms', String(stat.mtimeMs));
|
|
81
|
+
meta.run('graph_json', serialized);
|
|
82
|
+
const insNode = db.prepare(
|
|
83
|
+
'INSERT INTO nodes (id, label, kind, source_file, l0, l1, l2, l3) VALUES (?, ?, ?, ?, ?, ?, ?, ?)',
|
|
84
|
+
);
|
|
85
|
+
for (const n of graph.nodes) {
|
|
86
|
+
const loc = n.source_location ?? [];
|
|
87
|
+
insNode.run(
|
|
88
|
+
n.id,
|
|
89
|
+
n.label,
|
|
90
|
+
(n as { kind?: string }).kind ?? null,
|
|
91
|
+
n.source_file ?? null,
|
|
92
|
+
(loc[0] as number | undefined) ?? null,
|
|
93
|
+
(loc[1] as number | undefined) ?? null,
|
|
94
|
+
(loc[2] as number | undefined) ?? null,
|
|
95
|
+
(loc[3] as number | undefined) ?? null,
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
const insEdge = db.prepare(
|
|
99
|
+
'INSERT INTO edges (source, target, relation, confidence, candidates) VALUES (?, ?, ?, ?, ?)',
|
|
100
|
+
);
|
|
101
|
+
for (const e of graph.edges) {
|
|
102
|
+
insEdge.run(e.source, e.target, e.relation, e.confidence, e.candidates ? JSON.stringify(e.candidates) : null);
|
|
103
|
+
}
|
|
104
|
+
stampUserVersion(db, GRAPH_STORE_VERSION);
|
|
105
|
+
} finally {
|
|
106
|
+
db.close();
|
|
107
|
+
}
|
|
108
|
+
fs.renameSync(tmp, twin);
|
|
109
|
+
return true;
|
|
110
|
+
} catch {
|
|
111
|
+
fs.rmSync(tmp, { force: true });
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Load the canonical serialization from a FRESH SQLite twin, or null when the
|
|
118
|
+
* twin is absent / stale (JSON changed since emission) / corrupt /
|
|
119
|
+
* version-mismatched / unsupported runtime. Callers fall back to reading the
|
|
120
|
+
* JSON — and best-effort re-emit the twin from it (zero-touch rebuild).
|
|
121
|
+
*/
|
|
122
|
+
export function loadSerializedFromTwin(jsonPath: string): string | null {
|
|
123
|
+
if (!isSqliteAvailableSync()) return null;
|
|
124
|
+
const twin = sqliteTwinPath(jsonPath);
|
|
125
|
+
if (!fs.existsSync(twin)) return null;
|
|
126
|
+
let stat: fs.Stats;
|
|
127
|
+
try {
|
|
128
|
+
stat = fs.statSync(jsonPath);
|
|
129
|
+
} catch {
|
|
130
|
+
return null; // canonical JSON gone — the twin has no truth to mirror
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const { DatabaseSync } = loadSqliteSync('code_graph.sqlite_store');
|
|
134
|
+
const db = new DatabaseSync(twin, { readOnly: true });
|
|
135
|
+
try {
|
|
136
|
+
if (readUserVersion(db) !== GRAPH_STORE_VERSION) return null;
|
|
137
|
+
const rows = db.prepare('SELECT key, value FROM meta').all() as { key: string; value: string }[];
|
|
138
|
+
const meta = new Map(rows.map((r) => [r.key, r.value]));
|
|
139
|
+
if (meta.get('json_size') !== String(stat.size)) return null;
|
|
140
|
+
if (meta.get('json_mtime_ms') !== String(stat.mtimeMs)) return null;
|
|
141
|
+
const serialized = meta.get('graph_json');
|
|
142
|
+
return serialized && serialized.length > 0 ? serialized : null;
|
|
143
|
+
} finally {
|
|
144
|
+
db.close();
|
|
145
|
+
}
|
|
146
|
+
} catch {
|
|
147
|
+
// Corrupt twin is a non-event: drop it so the next build re-emits.
|
|
148
|
+
fs.rmSync(twin, { force: true });
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** Structured node/edge access for future in-process consumers (kept minimal:
|
|
154
|
+
* the loader above guarantees byte-identical answers; these are for tooling). */
|
|
155
|
+
export function twinCounts(jsonPath: string): { nodes: number; edges: number } | null {
|
|
156
|
+
if (!isSqliteAvailableSync()) return null;
|
|
157
|
+
const twin = sqliteTwinPath(jsonPath);
|
|
158
|
+
if (!fs.existsSync(twin)) return null;
|
|
159
|
+
try {
|
|
160
|
+
const { DatabaseSync } = loadSqliteSync('code_graph.sqlite_store');
|
|
161
|
+
const db = new DatabaseSync(twin, { readOnly: true });
|
|
162
|
+
try {
|
|
163
|
+
const n = db.prepare('SELECT COUNT(*) AS c FROM nodes').get() as { c: number };
|
|
164
|
+
const e = db.prepare('SELECT COUNT(*) AS c FROM edges').get() as { c: number };
|
|
165
|
+
return { nodes: n.c, edges: e.c };
|
|
166
|
+
} finally {
|
|
167
|
+
db.close();
|
|
168
|
+
}
|
|
169
|
+
} catch {
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export type { CodeEdge, CodeGraph, CodeNode };
|
package/src/scripts/condense.ts
CHANGED
|
@@ -965,17 +965,25 @@ function _read_rule_packs(): string[] | null {
|
|
|
965
965
|
}
|
|
966
966
|
|
|
967
967
|
/**
|
|
968
|
-
* Whether a rule source file projects under the given workspace + pack
|
|
969
|
-
* scopes.
|
|
970
|
-
* rule's frontmatter list must intersect
|
|
971
|
-
*
|
|
968
|
+
* Whether a rule source file projects under the given workspace + pack +
|
|
969
|
+
* role scopes. Each configured scope is an independent constraint: the
|
|
970
|
+
* rule's frontmatter list must intersect it. Kernel always projects;
|
|
971
|
+
* untagged axes fail safe.
|
|
972
|
+
*
|
|
973
|
+
* `role_scope` is the subagent-role axis (road-to-lean-agent-init Phase 4):
|
|
974
|
+
* a `roles:` frontmatter list, parallel to `workspaces:`/`packs:`, so a
|
|
975
|
+
* review-worker subagent's rule projection can be scoped to review-shaped
|
|
976
|
+
* rules instead of the full set. Additive — the new param defaults to
|
|
977
|
+
* `null` (no role filtering), so every existing 2- and 3-arg call site
|
|
978
|
+
* compiles and behaves unchanged.
|
|
972
979
|
*/
|
|
973
980
|
export function rule_in_scope(
|
|
974
981
|
source_path: string,
|
|
975
982
|
scope: readonly string[] | null,
|
|
976
983
|
pack_scope: readonly string[] | null = null,
|
|
984
|
+
role_scope: readonly string[] | null = null,
|
|
977
985
|
): boolean {
|
|
978
|
-
if (scope === null && pack_scope === null) {
|
|
986
|
+
if (scope === null && pack_scope === null && role_scope === null) {
|
|
979
987
|
return true;
|
|
980
988
|
}
|
|
981
989
|
const [meta] = _parse_frontmatter(_readText(source_path));
|
|
@@ -994,7 +1002,7 @@ export function rule_in_scope(
|
|
|
994
1002
|
}
|
|
995
1003
|
return values.some((v) => configured.includes(v));
|
|
996
1004
|
};
|
|
997
|
-
return axis('workspaces', scope) && axis('packs', pack_scope);
|
|
1005
|
+
return axis('workspaces', scope) && axis('packs', pack_scope) && axis('roles', role_scope);
|
|
998
1006
|
}
|
|
999
1007
|
|
|
1000
1008
|
/** List rule basenames under RULES_SOURCE, workspace/pack scope applied. */
|
|
@@ -36,6 +36,7 @@ import { fileURLToPath, pathToFileURL } from "node:url";
|
|
|
36
36
|
// `agents/runtime/state/.dispatcher.lock` discipline (hook-architecture-v1.md
|
|
37
37
|
// § Concurrency, Phase 7.4).
|
|
38
38
|
import { atomic_write_json } from "./hooks/state_io.js";
|
|
39
|
+
import { readHookStdin } from "./hooks/hook_stdin.js";
|
|
39
40
|
|
|
40
41
|
// NOTE: the Python docstring says `agents/runtime/state/`, but the code
|
|
41
42
|
// constant is `agents/state/`. Replicated verbatim — this is a latent
|
|
@@ -252,11 +253,7 @@ function parse_args(argv: string[]): ParsedArgs {
|
|
|
252
253
|
}
|
|
253
254
|
|
|
254
255
|
function _readStdin(): string {
|
|
255
|
-
|
|
256
|
-
return fs.readFileSync(0, "utf-8");
|
|
257
|
-
} catch {
|
|
258
|
-
return "";
|
|
259
|
-
}
|
|
256
|
+
return readHookStdin();
|
|
260
257
|
}
|
|
261
258
|
|
|
262
259
|
export function main(argv?: string[]): number {
|
|
@@ -264,7 +261,13 @@ export function main(argv?: string[]): number {
|
|
|
264
261
|
return run(_readStdin(), { consumer_root: process.cwd(), verbose: args.verbose });
|
|
265
262
|
}
|
|
266
263
|
|
|
264
|
+
// Bundle-safety: never auto-run when inlined into an esbuild bundle, where
|
|
265
|
+
// every module shares the bundle's `import.meta.url` (see cmd_migrate.ts).
|
|
266
|
+
declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
|
|
267
267
|
function _isCliEntry(): boolean {
|
|
268
|
+
if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
268
271
|
if (process.argv[1] === undefined) {
|
|
269
272
|
return false;
|
|
270
273
|
}
|
|
@@ -117,6 +117,15 @@ import {
|
|
|
117
117
|
} from './ai_council/consensus.js';
|
|
118
118
|
import * as _shadow from './ai_council/shadow_dispatch.js';
|
|
119
119
|
import * as _lowimpact from './ai_council/low_impact.js';
|
|
120
|
+
import {
|
|
121
|
+
apply_chairman_override,
|
|
122
|
+
assign_stances,
|
|
123
|
+
build_blind_labels,
|
|
124
|
+
OUTSIDER_STANCE_NAME,
|
|
125
|
+
parse_chairman_override,
|
|
126
|
+
render_deanonymization_block,
|
|
127
|
+
with_chairman_fields,
|
|
128
|
+
} from './ai_council/blind_review.js';
|
|
120
129
|
|
|
121
130
|
// ── argparse-style exit plumbing ────────────────────────────────────
|
|
122
131
|
// Mirror CPython argparse: a `prog: error: …` line on stderr + exit 2.
|
|
@@ -1168,16 +1177,36 @@ function _maybe_run_chairman(
|
|
|
1168
1177
|
response: null,
|
|
1169
1178
|
};
|
|
1170
1179
|
}
|
|
1171
|
-
//
|
|
1172
|
-
//
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
const
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1180
|
+
// road-to-council-blind-review Phase 1 (Ü1): --blind-chairman shuffles the
|
|
1181
|
+
// transcript deterministically (seeded by the question text) and strips
|
|
1182
|
+
// identity to Response-A/B/… labels, reusing the EXISTING
|
|
1183
|
+
// `consensus.anonymize_responses` seam. The default path below (transcript
|
|
1184
|
+
// WITH identities — "the chairman judges attributed positions") is
|
|
1185
|
+
// byte-identical to today.
|
|
1186
|
+
const blind = args.blind_chairman === true;
|
|
1187
|
+
let transcript: string;
|
|
1188
|
+
let blind_label_to_source: Map<string, string> | null = null;
|
|
1189
|
+
const successful = responses.filter((r) => r.error === null && r.text.trim() !== '');
|
|
1190
|
+
if (blind) {
|
|
1191
|
+
const pairs: Array<[string, string]> = successful.map((r) => [`${r.provider}:${r.model}`, r.text]);
|
|
1192
|
+
const built = build_blind_labels(question.user_prompt, pairs);
|
|
1193
|
+
transcript = built.transcript;
|
|
1194
|
+
blind_label_to_source = built.label_to_source;
|
|
1195
|
+
} else {
|
|
1196
|
+
transcript = successful
|
|
1197
|
+
.map((r) => `## ${r.provider} - ${r.model}\n\n${r.text.trim()}`)
|
|
1198
|
+
.join('\n\n---\n\n');
|
|
1199
|
+
}
|
|
1200
|
+
// Ü3: --chairman-fields appends the two mandatory trailing sections.
|
|
1201
|
+
const template =
|
|
1202
|
+
args.chairman_fields === true ? with_chairman_fields(synthesis_template(question.mode)) : synthesis_template(question.mode);
|
|
1203
|
+
const synth_prompt = blind
|
|
1204
|
+
? `You are the council CHAIRMAN. You did not deliberate. Author the synthesis ` +
|
|
1205
|
+
`of the anonymized member positions below (labels A–E). Do not guess ` +
|
|
1206
|
+
`identities.\n\n${template}\n\n---\n\n${transcript}`
|
|
1207
|
+
: `You are the council CHAIRMAN. You did not deliberate. Author the synthesis ` +
|
|
1208
|
+
`of the attributed member positions below, following the template.\n\n` +
|
|
1209
|
+
`${template}\n\n---\n\n${transcript}`;
|
|
1181
1210
|
const synthQ = new CouncilQuestion({
|
|
1182
1211
|
mode: question.mode,
|
|
1183
1212
|
user_prompt: synth_prompt,
|
|
@@ -1197,7 +1226,13 @@ function _maybe_run_chairman(
|
|
|
1197
1226
|
response: r,
|
|
1198
1227
|
};
|
|
1199
1228
|
}
|
|
1200
|
-
|
|
1229
|
+
// Blind is only at decision time — de-anonymization lands in the audit
|
|
1230
|
+
// artifact immediately after the verdict, never fed back into a prompt.
|
|
1231
|
+
const final_text =
|
|
1232
|
+
blind && blind_label_to_source !== null
|
|
1233
|
+
? `${r.text.trim()}\n\n${render_deanonymization_block('### De-anonymization (post-verdict)', blind_label_to_source)}`
|
|
1234
|
+
: r.text;
|
|
1235
|
+
return { member: sel.member, annotation: sel.annotation, text: final_text, response: r };
|
|
1201
1236
|
}
|
|
1202
1237
|
|
|
1203
1238
|
function _maybe_run_peer_review(
|
|
@@ -1840,6 +1875,15 @@ function _apply_solo_dispatch(members: ExternalAIClient[]): [ExternalAIClient[],
|
|
|
1840
1875
|
];
|
|
1841
1876
|
}
|
|
1842
1877
|
|
|
1878
|
+
/** `--chairman` value → parsed override, or `ArgumentTypeError` on malformed input. */
|
|
1879
|
+
function _resolved_chairman_override(raw: string | null) {
|
|
1880
|
+
try {
|
|
1881
|
+
return parse_chairman_override(raw);
|
|
1882
|
+
} catch (exc) {
|
|
1883
|
+
throw new ArgumentTypeError(exc instanceof Error ? exc.message : String(exc));
|
|
1884
|
+
}
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1843
1887
|
function cmd_run(
|
|
1844
1888
|
args: Args,
|
|
1845
1889
|
opts: { settings?: Dict | null; members?: ExternalAIClient[] | null; table?: PriceTable | null } = {},
|
|
@@ -1850,7 +1894,12 @@ function cmd_run(
|
|
|
1850
1894
|
if (settings === null) {
|
|
1851
1895
|
settings = load_settings();
|
|
1852
1896
|
}
|
|
1853
|
-
|
|
1897
|
+
// road-to-council-blind-review Phase 1: `--chairman host|auto|member:NAME`
|
|
1898
|
+
// is a pure runtime override, never a config write.
|
|
1899
|
+
const ai_cfg = apply_chairman_override(
|
|
1900
|
+
_isDict(settings) ? ((settings['ai_council'] as Dict) || {}) : {},
|
|
1901
|
+
_resolved_chairman_override(_getattr<string | null>(args, 'chairman', null)),
|
|
1902
|
+
) as Dict;
|
|
1854
1903
|
const advisor_plans = _build_advisor_plans(ai_cfg, REPO_ROOT);
|
|
1855
1904
|
const explicit_overrides = _parse_model_overrides(_getattr<string[] | null>(args, 'model', null));
|
|
1856
1905
|
const skipped: Dict[] = [];
|
|
@@ -1978,6 +2027,21 @@ function cmd_run(
|
|
|
1978
2027
|
_isDict(ai_cfg) &&
|
|
1979
2028
|
_isDict(ai_cfg['stance_tally']) &&
|
|
1980
2029
|
(ai_cfg['stance_tally'] as Dict)['enabled'] === true;
|
|
2030
|
+
// road-to-council-blind-review Phase 1 (Ü2): five orthogonal stances
|
|
2031
|
+
// rotated deterministically over the config-ordered member list; the
|
|
2032
|
+
// outsider seat additionally drops project_context. Default off.
|
|
2033
|
+
const stances_on = args.stances === true;
|
|
2034
|
+
const stance_assignment = stances_on ? assign_stances(members.map((m) => m.name), question.user_prompt) : null;
|
|
2035
|
+
const member_prompt_suffix = stance_assignment
|
|
2036
|
+
? new Map(Array.from(stance_assignment.entries()).map(([name, s]) => [name, s.prompt]))
|
|
2037
|
+
: null;
|
|
2038
|
+
const no_project_context_members = stance_assignment
|
|
2039
|
+
? new Set(
|
|
2040
|
+
Array.from(stance_assignment.entries())
|
|
2041
|
+
.filter(([, s]) => s.name === OUTSIDER_STANCE_NAME)
|
|
2042
|
+
.map(([name]) => name),
|
|
2043
|
+
)
|
|
2044
|
+
: null;
|
|
1981
2045
|
const stance_repairs: CouncilResponse[] = [];
|
|
1982
2046
|
const responses = consult(members, question, budget, {
|
|
1983
2047
|
table,
|
|
@@ -1986,6 +2050,8 @@ function cmd_run(
|
|
|
1986
2050
|
rounds,
|
|
1987
2051
|
advisor_plans,
|
|
1988
2052
|
stance_tally: stance_tally_on,
|
|
2053
|
+
member_prompt_suffix,
|
|
2054
|
+
no_project_context_members,
|
|
1989
2055
|
// Interactive one-line confirm (cmd_run has no --auto-continue); the
|
|
1990
2056
|
// repaired-call cost is collected so cost_usd_actual stays honest.
|
|
1991
2057
|
on_stance_repair: stance_tally_on
|
|
@@ -2009,6 +2075,22 @@ function cmd_run(
|
|
|
2009
2075
|
);
|
|
2010
2076
|
const consensus = _maybe_run_consensus(ai_cfg, question, members, responses, budget, table, project, args);
|
|
2011
2077
|
const chairman = _maybe_run_chairman(ai_cfg, question, members, responses, budget, table, project, args);
|
|
2078
|
+
// road-to-council-blind-review Phase 1 (Ü1), host-path only: when no
|
|
2079
|
+
// member chairman ran (mode === 'host'), the blind mapping is computed
|
|
2080
|
+
// here (seeded from the question text) and persisted for a later
|
|
2081
|
+
// `council:render` to blind the response headers. The member-chairman
|
|
2082
|
+
// path (below, inside `_maybe_run_chairman`) blinds inline instead.
|
|
2083
|
+
const blind_chairman_on = args.blind_chairman === true;
|
|
2084
|
+
const chairman_fields_on = args.chairman_fields === true;
|
|
2085
|
+
let blind_review_map: Map<string, string> | null = null;
|
|
2086
|
+
if (blind_chairman_on && chairman === null) {
|
|
2087
|
+
const pairs: Array<[string, string]> = responses
|
|
2088
|
+
.filter((r) => r.error === null && r.text.trim() !== '')
|
|
2089
|
+
.map((r) => [`${r.provider}:${r.model}`, r.text]);
|
|
2090
|
+
if (pairs.length > 0) {
|
|
2091
|
+
blind_review_map = build_blind_labels(question.user_prompt, pairs).label_to_source;
|
|
2092
|
+
}
|
|
2093
|
+
}
|
|
2012
2094
|
const estimated_total = estimates.reduce((acc, e) => acc + _total_usd(e), 0.0);
|
|
2013
2095
|
let actual_total = 0.0;
|
|
2014
2096
|
const all_responses: CouncilResponse[] = [...responses];
|
|
@@ -2043,6 +2125,9 @@ function cmd_run(
|
|
|
2043
2125
|
cost_usd_estimated: _pyRound(estimated_total, 6),
|
|
2044
2126
|
cost_usd_actual: _pyRound(actual_total, 6),
|
|
2045
2127
|
stance_tally: stance_tally_on,
|
|
2128
|
+
stances: stances_on,
|
|
2129
|
+
blind_chairman: blind_chairman_on,
|
|
2130
|
+
chairman_fields: chairman_fields_on,
|
|
2046
2131
|
responses: _serialise_responses(responses),
|
|
2047
2132
|
};
|
|
2048
2133
|
if (peer_review !== null) {
|
|
@@ -2054,6 +2139,9 @@ function cmd_run(
|
|
|
2054
2139
|
if (chairman !== null) {
|
|
2055
2140
|
payload['chairman'] = { member: chairman.member, annotation: chairman.annotation, text: chairman.text };
|
|
2056
2141
|
}
|
|
2142
|
+
if (blind_review_map !== null) {
|
|
2143
|
+
payload['blind_review_map'] = _mapToObject(blind_review_map);
|
|
2144
|
+
}
|
|
2057
2145
|
const out_path = _validate_council_output_path(args.output as string, {
|
|
2058
2146
|
kind: 'responses',
|
|
2059
2147
|
subcommand: 'run',
|
|
@@ -2452,12 +2540,18 @@ function cmd_render(args: Args): number {
|
|
|
2452
2540
|
}
|
|
2453
2541
|
const consensus = _deserialise_consensus(payload['consensus'] as Dict);
|
|
2454
2542
|
const peer_review = _deserialise_peer_review(payload['peer_review'] as Dict);
|
|
2543
|
+
// road-to-council-blind-review Phase 1: a persisted `blind_review_map`
|
|
2544
|
+
// means `--blind-chairman` ran on the host path (no member chairman) —
|
|
2545
|
+
// blind the response headers + append the de-anonymization map.
|
|
2546
|
+
const blind_map_raw = payload['blind_review_map'];
|
|
2455
2547
|
const body = render(_deserialise_responses(items), {
|
|
2456
2548
|
mode: mode ?? null,
|
|
2457
2549
|
prose_synthesis: prose,
|
|
2458
2550
|
consensus,
|
|
2459
2551
|
peer_review,
|
|
2460
2552
|
stance_tally: payload['stance_tally'] === true,
|
|
2553
|
+
chairman_fields: payload['chairman_fields'] === true,
|
|
2554
|
+
blind: _isDict(blind_map_raw) ? { label_to_source: _objToMap(blind_map_raw as Dict) } : null,
|
|
2461
2555
|
chairman: _isDict(payload['chairman'])
|
|
2462
2556
|
? (payload['chairman'] as { member: string | null; annotation: string; text: string | null })
|
|
2463
2557
|
: null,
|
|
@@ -2672,6 +2766,11 @@ interface Args {
|
|
|
2672
2766
|
auto_continue: boolean;
|
|
2673
2767
|
restate?: boolean;
|
|
2674
2768
|
continue_as_debate: string | null;
|
|
2769
|
+
// road-to-council-blind-review Phase 1 — flag-gated, default-off (`run` only)
|
|
2770
|
+
chairman: string | null;
|
|
2771
|
+
blind_chairman: boolean;
|
|
2772
|
+
stances: boolean;
|
|
2773
|
+
chairman_fields: boolean;
|
|
2675
2774
|
// render / replay
|
|
2676
2775
|
responses?: string | null;
|
|
2677
2776
|
include_member_arguments: boolean | null;
|
|
@@ -2726,6 +2825,15 @@ function _defaultArgs(): Args {
|
|
|
2726
2825
|
prose_synthesis: null,
|
|
2727
2826
|
auto_continue: false,
|
|
2728
2827
|
continue_as_debate: null,
|
|
2828
|
+
chairman: null,
|
|
2829
|
+
// Ü1 ADOPTED (road-to-council-blind-review Phase 3, 2026-07-28):
|
|
2830
|
+
// blind synthesis is the default — 0/10 + 0/10 pre-registered
|
|
2831
|
+
// degradation triggers on the n=10 A/B; opt out per-invocation
|
|
2832
|
+
// with --no-blind-chairman (the audit artifact always keeps the
|
|
2833
|
+
// post-verdict de-anonymization map either way).
|
|
2834
|
+
blind_chairman: true,
|
|
2835
|
+
stances: false,
|
|
2836
|
+
chairman_fields: false,
|
|
2729
2837
|
responses: null,
|
|
2730
2838
|
include_member_arguments: null,
|
|
2731
2839
|
low_impact_stats: false,
|
|
@@ -2788,6 +2896,12 @@ function _specsFor(cmd: string): { positionals: string[]; opts: OptSpec[]; requi
|
|
|
2788
2896
|
{ flag: '--single', takesValue: false, apply: (o) => (o.single = true) },
|
|
2789
2897
|
{ flag: '--prose-synthesis', takesValue: false, apply: (o) => (o.prose_synthesis = true) },
|
|
2790
2898
|
{ flag: '--no-prose-synthesis', takesValue: false, apply: (o) => (o.prose_synthesis = false) },
|
|
2899
|
+
// road-to-council-blind-review Phase 1 — flag-gated, default-off.
|
|
2900
|
+
{ flag: '--chairman', takesValue: true, apply: (o, v) => (o.chairman = v) },
|
|
2901
|
+
{ flag: '--blind-chairman', takesValue: false, apply: (o) => (o.blind_chairman = true) },
|
|
2902
|
+
{ flag: '--no-blind-chairman', takesValue: false, apply: (o) => (o.blind_chairman = false) },
|
|
2903
|
+
{ flag: '--stances', takesValue: false, apply: (o) => (o.stances = true) },
|
|
2904
|
+
{ flag: '--chairman-fields', takesValue: false, apply: (o) => (o.chairman_fields = true) },
|
|
2791
2905
|
],
|
|
2792
2906
|
requiredOpts: ['--output'],
|
|
2793
2907
|
};
|