@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
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
* lockfile-freshness · bridge-drift · mcp-mode · mcp-beta-readiness ·
|
|
31
31
|
* offline-readiness · python-runtime · humanizer-runtime · tier-usage-readiness ·
|
|
32
32
|
* council-cli · team ·
|
|
33
|
-
* unsupported-combos · wizard-state
|
|
33
|
+
* unsupported-combos · wizard-state · settings-review-pending ·
|
|
34
|
+
* memory-merge-union.
|
|
34
35
|
* Each emits a structured `{id, status, message, remedy}` record with
|
|
35
36
|
* `status` ∈ `ok` / `warn` / `fail` / `skipped` (rendered
|
|
36
37
|
* `✅` / `⚠️` / `❌` / `⏭️`). `--check <id>` runs a single check.
|
|
@@ -88,6 +89,7 @@ import * as installed_lock from '../_lib/installed_lock.js';
|
|
|
88
89
|
import * as installed_tools from '../_lib/installed_tools.js';
|
|
89
90
|
import * as user_global_paths from '../_lib/user_global_paths.js';
|
|
90
91
|
import * as global_deploy_inventory from '../_lib/global_deploy_inventory.js';
|
|
92
|
+
import * as sync_gitattributes from '../sync_gitattributes.js';
|
|
91
93
|
import {
|
|
92
94
|
PROJECT_ROOT_ENV,
|
|
93
95
|
ROOT_OVERRIDE_ENV,
|
|
@@ -759,6 +761,7 @@ const CHECK_IDS = [
|
|
|
759
761
|
'unsupported-combos',
|
|
760
762
|
'wizard-state',
|
|
761
763
|
'settings-review-pending',
|
|
764
|
+
'memory-merge-union',
|
|
762
765
|
] as const;
|
|
763
766
|
|
|
764
767
|
/** Checks that need only the project root and run regardless of a lockfile. */
|
|
@@ -782,6 +785,7 @@ const GLOBAL_CHECK_IDS: ReadonlySet<string> = new Set([
|
|
|
782
785
|
'team',
|
|
783
786
|
'wizard-state',
|
|
784
787
|
'settings-review-pending',
|
|
788
|
+
'memory-merge-union',
|
|
785
789
|
]);
|
|
786
790
|
|
|
787
791
|
/** Checks that genuinely cannot run without the project manifest. */
|
|
@@ -2557,6 +2561,61 @@ function _check_settings_review_pending(): Dict {
|
|
|
2557
2561
|
};
|
|
2558
2562
|
}
|
|
2559
2563
|
|
|
2564
|
+
/**
|
|
2565
|
+
* `memory-merge-union` — read-only warn check (road-to-reachable-code-memory
|
|
2566
|
+
* Phase 5). The `merge=union` .gitattributes block lets two branches each
|
|
2567
|
+
* appending a NEW memory entry (intake JSONL, or the flat curated
|
|
2568
|
+
* `agents/memory/<type>.yml` files) merge cleanly instead of conflicting.
|
|
2569
|
+
* Without it, ordinary parallel memory writes on separate branches produce a
|
|
2570
|
+
* merge conflict the human has to resolve by hand. Never fails the run —
|
|
2571
|
+
* this is advisory, same posture as `offline-readiness`.
|
|
2572
|
+
*/
|
|
2573
|
+
function _check_memory_merge_union(project_root: string): Dict {
|
|
2574
|
+
const remedy =
|
|
2575
|
+
'run: npx tsx src/scripts/sync_gitattributes.ts (or `agent-config refresh --project`)';
|
|
2576
|
+
const target = path.join(project_root, sync_gitattributes.DEFAULT_GITATTRIBUTES);
|
|
2577
|
+
if (!pathExists(target)) {
|
|
2578
|
+
return {
|
|
2579
|
+
id: 'memory-merge-union',
|
|
2580
|
+
status: 'warn',
|
|
2581
|
+
message:
|
|
2582
|
+
'no .gitattributes at project root — memory merge-safety attributes not applied',
|
|
2583
|
+
remedy,
|
|
2584
|
+
};
|
|
2585
|
+
}
|
|
2586
|
+
let text: string;
|
|
2587
|
+
try {
|
|
2588
|
+
text = readText(target);
|
|
2589
|
+
} catch (exc) {
|
|
2590
|
+
return {
|
|
2591
|
+
id: 'memory-merge-union',
|
|
2592
|
+
status: 'warn',
|
|
2593
|
+
message: `unreadable .gitattributes at ${target}: ${osErrorStr(exc)}`,
|
|
2594
|
+
remedy,
|
|
2595
|
+
};
|
|
2596
|
+
}
|
|
2597
|
+
const has_block = text.includes(sync_gitattributes.SECTION_HEADER);
|
|
2598
|
+
const has_intake_union = /agents\/memory\/intake\/\*\.jsonl\s+merge=union/.test(text);
|
|
2599
|
+
if (has_block && has_intake_union) {
|
|
2600
|
+
return {
|
|
2601
|
+
id: 'memory-merge-union',
|
|
2602
|
+
status: 'ok',
|
|
2603
|
+
message:
|
|
2604
|
+
'.gitattributes carries the memory merge-safety block (intake JSONL union-merge present)',
|
|
2605
|
+
remedy: '',
|
|
2606
|
+
};
|
|
2607
|
+
}
|
|
2608
|
+
return {
|
|
2609
|
+
id: 'memory-merge-union',
|
|
2610
|
+
status: 'warn',
|
|
2611
|
+
message: has_block
|
|
2612
|
+
? '.gitattributes has the managed block but is missing the intake merge=union line'
|
|
2613
|
+
: '.gitattributes is missing the memory merge-safety block — parallel-branch ' +
|
|
2614
|
+
'memory writes can conflict instead of merging',
|
|
2615
|
+
remedy,
|
|
2616
|
+
};
|
|
2617
|
+
}
|
|
2618
|
+
|
|
2560
2619
|
interface JsonDecodeError {
|
|
2561
2620
|
msg: string;
|
|
2562
2621
|
lineno: number;
|
|
@@ -2691,6 +2750,7 @@ function _run_checks(
|
|
|
2691
2750
|
'unsupported-combos': () => _check_unsupported_combos(manifest),
|
|
2692
2751
|
'wizard-state': _check_wizard_state,
|
|
2693
2752
|
'settings-review-pending': _check_settings_review_pending,
|
|
2753
|
+
'memory-merge-union': () => _check_memory_merge_union(project_root),
|
|
2694
2754
|
};
|
|
2695
2755
|
const out: Dict[] = [];
|
|
2696
2756
|
for (const cid of CHECK_IDS) {
|
|
@@ -2765,6 +2825,7 @@ function _run_checks_no_manifest(
|
|
|
2765
2825
|
'unsupported-combos': () => _skipped_manifest_check('unsupported-combos'),
|
|
2766
2826
|
'wizard-state': _check_wizard_state,
|
|
2767
2827
|
'settings-review-pending': _check_settings_review_pending,
|
|
2828
|
+
'memory-merge-union': () => _check_memory_merge_union(project_root),
|
|
2768
2829
|
};
|
|
2769
2830
|
const out: Dict[] = [];
|
|
2770
2831
|
for (const cid of CHECK_IDS) {
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
/**
|
|
3
|
+
* `agent-config memory:get` — CLI twin of the `memory_get` MCP tool
|
|
4
|
+
* (`src/scripts/mcp_server/tools.ts` `_memoryGetHandler`, road-to-memory-
|
|
5
|
+
* retrieval-economy Phase 1).
|
|
6
|
+
*
|
|
7
|
+
* Batch-fetches FULL memory entries by id — the second half of the
|
|
8
|
+
* index-first retrieval workflow: `memory:lookup --detail index` returns
|
|
9
|
+
* compact priced rows, this fetches ONLY the bodies actually needed, in one
|
|
10
|
+
* call. Reuses the exact same shared function the MCP tool calls
|
|
11
|
+
* (`memory_get_v1` in `../memory_lookup.js`) — no duplicated lookup logic.
|
|
12
|
+
*
|
|
13
|
+
* Unlike the MCP handler (which `chdir`s into the consumer root before
|
|
14
|
+
* calling), this CLI relies on `agent-config`'s existing invariant that the
|
|
15
|
+
* dispatcher never changes CWD — `memory_get_v1` resolves `agents/memory`
|
|
16
|
+
* relative to `process.cwd()`, which is already the consumer's repo root.
|
|
17
|
+
*
|
|
18
|
+
* Usage: memory:get <id> [<id> ...] [--format text|json]
|
|
19
|
+
* Exit codes:
|
|
20
|
+
* 0 — every requested id was found.
|
|
21
|
+
* 1 — at least one requested id was not found (unknown id).
|
|
22
|
+
* 2 — usage error (no ids given, unrecognized flag, missing flag value).
|
|
23
|
+
*/
|
|
24
|
+
import process from 'node:process';
|
|
25
|
+
import * as fs from 'node:fs';
|
|
26
|
+
import * as path from 'node:path';
|
|
27
|
+
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
28
|
+
|
|
29
|
+
import { memory_get_v1 } from '../memory_lookup.js';
|
|
30
|
+
|
|
31
|
+
const PROG = 'agent-config memory:get';
|
|
32
|
+
const USAGE = `usage: ${PROG} <id> [<id> ...] [--format text|json]\n`;
|
|
33
|
+
|
|
34
|
+
/** argparse-style usage / help exit (code 2 / 0). Caught at the CLI entry. */
|
|
35
|
+
class ArgparseExit extends Error {
|
|
36
|
+
constructor(public readonly code: number) {
|
|
37
|
+
super(`argparse-exit-${code}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
interface Opts {
|
|
42
|
+
ids: string[];
|
|
43
|
+
format: 'text' | 'json';
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function _argError(msg: string): never {
|
|
47
|
+
process.stderr.write(USAGE);
|
|
48
|
+
process.stderr.write(`${PROG}: error: ${msg}\n`);
|
|
49
|
+
throw new ArgparseExit(2);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function _parse(argv: string[]): Opts {
|
|
53
|
+
const opts: Opts = { ids: [], format: 'text' };
|
|
54
|
+
let i = 0;
|
|
55
|
+
while (i < argv.length) {
|
|
56
|
+
const a = argv[i] as string;
|
|
57
|
+
if (a === '-h' || a === '--help') {
|
|
58
|
+
process.stdout.write(
|
|
59
|
+
`${USAGE}\n` +
|
|
60
|
+
'Batch-fetch FULL memory entries by id — the second half of the\n' +
|
|
61
|
+
"index-first retrieval workflow (`memory:lookup --detail index`\n" +
|
|
62
|
+
'first, then `memory:get` the ids that justify the fetch).\n\n' +
|
|
63
|
+
'options:\n' +
|
|
64
|
+
' --format text|json output format (default: text)\n' +
|
|
65
|
+
' -h, --help show this help and exit\n\n' +
|
|
66
|
+
'exit codes:\n' +
|
|
67
|
+
' 0 every requested id was found\n' +
|
|
68
|
+
' 1 at least one requested id was not found\n' +
|
|
69
|
+
' 2 usage error\n',
|
|
70
|
+
);
|
|
71
|
+
throw new ArgparseExit(0);
|
|
72
|
+
} else if (a === '--format') {
|
|
73
|
+
const val = argv[i + 1];
|
|
74
|
+
if (val === undefined) _argError('argument --format: expected one argument');
|
|
75
|
+
if (val !== 'text' && val !== 'json') {
|
|
76
|
+
_argError(`argument --format: invalid choice: '${val}' (choose from 'text', 'json')`);
|
|
77
|
+
}
|
|
78
|
+
opts.format = val;
|
|
79
|
+
i += 2;
|
|
80
|
+
} else if (a.startsWith('--format=')) {
|
|
81
|
+
const val = a.slice('--format='.length);
|
|
82
|
+
if (val !== 'text' && val !== 'json') {
|
|
83
|
+
_argError(`argument --format: invalid choice: '${val}' (choose from 'text', 'json')`);
|
|
84
|
+
}
|
|
85
|
+
opts.format = val;
|
|
86
|
+
i += 1;
|
|
87
|
+
} else if (a.startsWith('--')) {
|
|
88
|
+
_argError(`unrecognized arguments: ${a}`);
|
|
89
|
+
} else {
|
|
90
|
+
opts.ids.push(a);
|
|
91
|
+
i += 1;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (opts.ids.length === 0) {
|
|
95
|
+
_argError('at least one <id> is required');
|
|
96
|
+
}
|
|
97
|
+
return opts;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
101
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** Render one fetched entry as an indented `key: value` block. */
|
|
105
|
+
function _renderEntryText(entry: Record<string, unknown>): string {
|
|
106
|
+
const lines: string[] = [];
|
|
107
|
+
const id = typeof entry['id'] === 'string' ? entry['id'] : '(unknown id)';
|
|
108
|
+
const type = typeof entry['type'] === 'string' ? entry['type'] : '(unknown type)';
|
|
109
|
+
lines.push(`[${id}] ${type}`);
|
|
110
|
+
const body = entry['body'];
|
|
111
|
+
if (isPlainObject(body)) {
|
|
112
|
+
for (const key of Object.keys(body).sort()) {
|
|
113
|
+
lines.push(` ${key}: ${_renderValue(body[key])}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return lines.join('\n');
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Render one body value for text output. `memory_lookup.ts` wraps YAML
|
|
121
|
+
* date scalars in a `PyTimestamp`-shaped object (`{ pyStr: string }`, not
|
|
122
|
+
* exported) to mirror Python's `yaml.safe_load` date parsing — duck-type
|
|
123
|
+
* that shape rather than importing the private class.
|
|
124
|
+
*/
|
|
125
|
+
function _renderValue(value: unknown): string {
|
|
126
|
+
if (typeof value === 'string') return value;
|
|
127
|
+
if (isPlainObject(value) && typeof value['pyStr'] === 'string' && Object.keys(value).length === 1) {
|
|
128
|
+
return value['pyStr'];
|
|
129
|
+
}
|
|
130
|
+
return JSON.stringify(value);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export function main(argv: string[] | null = null): number {
|
|
134
|
+
const opts = _parse(argv ?? process.argv.slice(2));
|
|
135
|
+
const envelope = memory_get_v1(opts.ids);
|
|
136
|
+
const entries = Array.isArray(envelope['entries']) ? (envelope['entries'] as Record<string, unknown>[]) : [];
|
|
137
|
+
const idStatus = isPlainObject(envelope['ids']) ? (envelope['ids'] as Record<string, string>) : {};
|
|
138
|
+
const unknown = opts.ids.filter((id) => idStatus[id] === 'unknown');
|
|
139
|
+
|
|
140
|
+
if (opts.format === 'json') {
|
|
141
|
+
process.stdout.write(`${JSON.stringify(envelope, null, 2)}\n`);
|
|
142
|
+
} else {
|
|
143
|
+
if (entries.length === 0) {
|
|
144
|
+
process.stdout.write(' (no entries found)\n');
|
|
145
|
+
} else {
|
|
146
|
+
for (const entry of entries) {
|
|
147
|
+
process.stdout.write(`${_renderEntryText(entry)}\n`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
for (const id of unknown) {
|
|
151
|
+
process.stderr.write(`${PROG}: unknown id: ${id}\n`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return unknown.length > 0 ? 1 : 0;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// --- CLI entry ---
|
|
159
|
+
|
|
160
|
+
const _HERE = fileURLToPath(import.meta.url);
|
|
161
|
+
|
|
162
|
+
function _isCliEntry(): boolean {
|
|
163
|
+
if (process.argv[1] === undefined) {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
|
|
167
|
+
if (import.meta.url === argvUrl) {
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
// A symlinked invocation (e.g. via an installed `.augment/` projection,
|
|
171
|
+
// or macOS /var → /private/var temp dirs) makes the raw URLs differ:
|
|
172
|
+
// import.meta.url is the resolved real path while argv[1] keeps the
|
|
173
|
+
// symlink path. Compare realpaths so the entry guard still fires
|
|
174
|
+
// (without this the CLI silently no-ops when run through a symlink).
|
|
175
|
+
try {
|
|
176
|
+
const here = fs.realpathSync(fileURLToPath(import.meta.url));
|
|
177
|
+
const argv = fs.realpathSync(path.resolve(process.argv[1]));
|
|
178
|
+
return here === argv;
|
|
179
|
+
} catch {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (_isCliEntry() || process.argv[1] === _HERE) {
|
|
185
|
+
try {
|
|
186
|
+
process.exitCode = main(process.argv.slice(2));
|
|
187
|
+
} catch (exc) {
|
|
188
|
+
if (exc instanceof ArgparseExit) {
|
|
189
|
+
process.exitCode = exc.code;
|
|
190
|
+
} else {
|
|
191
|
+
throw exc;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export { ArgparseExit };
|
|
197
|
+
export type { Opts };
|
|
@@ -68,6 +68,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
68
68
|
|
|
69
69
|
import * as cli_wrapper from '../_lib/cli_wrapper.js';
|
|
70
70
|
import * as sync_gitignore from '../sync_gitignore.js';
|
|
71
|
+
import * as sync_gitattributes from '../sync_gitattributes.js';
|
|
71
72
|
|
|
72
73
|
const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..');
|
|
73
74
|
|
|
@@ -306,6 +307,12 @@ function _refresh_project(project_root: string, out: OutSink, err: OutSink): num
|
|
|
306
307
|
if (rc !== 0) {
|
|
307
308
|
return rc;
|
|
308
309
|
}
|
|
310
|
+
|
|
311
|
+
// Memory merge-safety attributes (road-to-reachable-code-memory Phase 5):
|
|
312
|
+
// advisory, same shape as the gitignore sync above — never fails the
|
|
313
|
+
// refresh on its own.
|
|
314
|
+
_sync_gitattributes(project_root, out, err);
|
|
315
|
+
|
|
309
316
|
_print(out, '✅ refresh --project complete.');
|
|
310
317
|
return 0;
|
|
311
318
|
}
|
|
@@ -329,6 +336,28 @@ function _sync_gitignore(project_root: string, out: OutSink, err: OutSink): numb
|
|
|
329
336
|
return 0;
|
|
330
337
|
}
|
|
331
338
|
|
|
339
|
+
/**
|
|
340
|
+
* Sync the memory-merge-safety block into the consumer's `.gitattributes`.
|
|
341
|
+
* Advisory only (mirrors `_sync_gitignore`'s failure shape) — a missing
|
|
342
|
+
* template or a write failure is reported but never fails the refresh.
|
|
343
|
+
*/
|
|
344
|
+
function _sync_gitattributes(project_root: string, out: OutSink, err: OutSink): number {
|
|
345
|
+
let mod: typeof sync_gitattributes;
|
|
346
|
+
try {
|
|
347
|
+
mod = sync_gitattributes;
|
|
348
|
+
} catch (exc) {
|
|
349
|
+
_print(err, `⚠️ refresh --project: gitattributes sync unavailable (${osErrorStr(exc)})`);
|
|
350
|
+
return 0;
|
|
351
|
+
}
|
|
352
|
+
const rc = mod.main(['--path', path.join(project_root, '.gitattributes')]);
|
|
353
|
+
if (rc !== 0 && rc !== null && rc !== undefined) {
|
|
354
|
+
_print(err, `⚠️ refresh --project: gitattributes sync returned ${rc}`);
|
|
355
|
+
} else {
|
|
356
|
+
_print(out, '✅ .gitattributes memory merge-safety block synced.');
|
|
357
|
+
}
|
|
358
|
+
return 0;
|
|
359
|
+
}
|
|
360
|
+
|
|
332
361
|
interface Args {
|
|
333
362
|
is_global: boolean;
|
|
334
363
|
is_project: boolean;
|
|
@@ -460,6 +489,7 @@ export {
|
|
|
460
489
|
_is_source_repo,
|
|
461
490
|
_refresh_project,
|
|
462
491
|
_sync_gitignore,
|
|
492
|
+
_sync_gitattributes,
|
|
463
493
|
_remove_legacy_consumer_bridge_marker,
|
|
464
494
|
ArgparseExit,
|
|
465
495
|
};
|
|
@@ -76,6 +76,7 @@ TS-shell native (run via the installed `agent-config` binary):
|
|
|
76
76
|
commands [ls|explain] List/explain the command surface from the discovery manifest
|
|
77
77
|
mcp-server Turnkey read-only stdio MCP server (no repo clone; ADR-085)
|
|
78
78
|
doctor-shell Probe the TS-shell environment
|
|
79
|
+
rtk:detect rtk (Rust Token Killer) presence + identity readout (--json)
|
|
79
80
|
eval:record Record a live trigger-eval result into a corpus manifest
|
|
80
81
|
EOF
|
|
81
82
|
|
|
@@ -173,6 +174,8 @@ Tier 2 — maintenance / internal (hooks, MCP, memory, telemetry):
|
|
|
173
174
|
relation-graph with a node budget. Flags: --budget N
|
|
174
175
|
benchmark Report context-token reduction vs the full always-loaded
|
|
175
176
|
projection (from the pinned token baseline). Flags: --format
|
|
177
|
+
code-graph Deterministic code-graph engine (ADR-124, Class A).
|
|
178
|
+
Usage: code-graph build|validate|detect|query|explain|affected|path [options]
|
|
176
179
|
roadmap:progress Regenerate agents/roadmaps-progress.md from open roadmaps
|
|
177
180
|
roadmap:progress-check Fail if agents/roadmaps-progress.md is stale (for CI)
|
|
178
181
|
roadmap:archive Archive completed roadmaps (branch-touched by default;
|
|
@@ -215,12 +218,21 @@ Tier 2 — maintenance / internal (hooks, MCP, memory, telemetry):
|
|
|
215
218
|
read-only request per declared backend; never runs in CI,
|
|
216
219
|
writes nothing)
|
|
217
220
|
memory:lookup Retrieve memory entries (text or JSON envelope)
|
|
221
|
+
memory:get Batch-fetch full memory entries by id (CLI twin of the
|
|
222
|
+
memory_get MCP tool). Usage: memory:get <id> [<id> ...] [--format text|json]
|
|
218
223
|
linked-projects:list List opted-in IDE-attached sibling repos (path · detected_via · large)
|
|
219
224
|
Flags: --all (show undecided too), --format json
|
|
220
225
|
memory:signal Append a provisional intake signal (memory proposal)
|
|
221
226
|
memory:hash Hash a memory entry (YAML or JSON stdin)
|
|
222
227
|
memory:check Validate memory YAML schema + staleness
|
|
223
228
|
memory:check-proposal Run the admission gate on a memory proposal
|
|
229
|
+
memory:learn Aggregate memory intake signals into the local learning
|
|
230
|
+
sidecar (read-only; --write to emit). Usage: memory:learn [--intake-dir DIR]
|
|
231
|
+
[--out-dir DIR] [--now ISO] [--write] [--format text|json]
|
|
232
|
+
analytics Local-only workspace analytics (emit|show|prune|migrate).
|
|
233
|
+
Usage: analytics show [--window 30d|7d|24h] · analytics prune
|
|
234
|
+
knowledge Global knowledge-card store (list|show|trace|forget|promote|
|
|
235
|
+
validate|lead-check|purge). Usage: knowledge list [--json]
|
|
224
236
|
proposal:check Validate a learning/skill/rule proposal markdown
|
|
225
237
|
refine-ticket:detect Run the deterministic refine-ticket detection helper
|
|
226
238
|
chat-history:hook Platform hook entry point (read JSON from stdin)
|
|
@@ -305,8 +317,12 @@ Examples (Tier 2):
|
|
|
305
317
|
./agent-config hooks:install
|
|
306
318
|
./agent-config hooks:replay --platform augment --event post_tool_use --payload post_tool_use --json
|
|
307
319
|
./agent-config memory:lookup --types domain-invariants --key billing
|
|
320
|
+
./agent-config memory:get a1-crosshost-subagent-degradation
|
|
308
321
|
./agent-config memory:signal --type architecture-decision --path src/Foo.php --body "…"
|
|
309
322
|
./agent-config memory:check --path agents/memory
|
|
323
|
+
./agent-config memory:learn --format json
|
|
324
|
+
./agent-config code-graph detect
|
|
325
|
+
./agent-config code-graph query <symbol>
|
|
310
326
|
./agent-config refine-ticket:detect ticket-body.txt
|
|
311
327
|
./agent-config telemetry:status
|
|
312
328
|
./agent-config telemetry:status --format json
|
|
@@ -464,6 +480,15 @@ cmd_benchmark() {
|
|
|
464
480
|
exec_ts "$script" "$@"
|
|
465
481
|
}
|
|
466
482
|
|
|
483
|
+
# `agent-config code-graph` — deterministic code-graph engine (ADR-124,
|
|
484
|
+
# Class A). Delegates 1:1 to the engine CLI's own subcommand dispatch
|
|
485
|
+
# (build|validate|detect|query|explain|affected|path); no re-parsing here.
|
|
486
|
+
cmd_code_graph() {
|
|
487
|
+
local script
|
|
488
|
+
script="$(resolve_script "src/scripts/code_graph/cli.ts")"
|
|
489
|
+
exec_ts "$script" "$@"
|
|
490
|
+
}
|
|
491
|
+
|
|
467
492
|
cmd_mcp_check() {
|
|
468
493
|
local script
|
|
469
494
|
script="$(resolve_script "src/scripts/mcp_render.ts")"
|
|
@@ -480,6 +505,13 @@ cmd_mcp_setup() {
|
|
|
480
505
|
# package (PACKAGE_ROOT/src/scripts/mcp_server/) as a TypeScript module run
|
|
481
506
|
# via tsx — no Python venv / SDK install any more (the runtime is Node/tsx).
|
|
482
507
|
cmd_mcp_run() {
|
|
508
|
+
# Precompiled bundle first (road-to-credible-install Phase 1 tsx sweep):
|
|
509
|
+
# one node start, no tsx in the runtime tree. tsx path is the dev-tree
|
|
510
|
+
# fallback only.
|
|
511
|
+
local server_bundle="$PACKAGE_ROOT/dist/mcp/server.mjs"
|
|
512
|
+
if [[ -f "$server_bundle" ]]; then
|
|
513
|
+
exec node "$server_bundle" "$@"
|
|
514
|
+
fi
|
|
483
515
|
local server_main="$PACKAGE_ROOT/src/scripts/mcp_server/__main__.ts"
|
|
484
516
|
if [[ ! -f "$server_main" ]]; then
|
|
485
517
|
echo "❌ agent-config: MCP server module not found at $server_main" >&2
|
|
@@ -551,6 +583,43 @@ cmd_memory_lookup() {
|
|
|
551
583
|
exec_ts "$script" "$@"
|
|
552
584
|
}
|
|
553
585
|
|
|
586
|
+
# `agent-config memory:get` — CLI twin of the `memory_get` MCP tool
|
|
587
|
+
# (batch full-entry fetch by id). Package-internal handler
|
|
588
|
+
# (src/scripts/_cli/cmd_memory_get.ts) reuses `memory_get_v1` from
|
|
589
|
+
# src/scripts/memory_lookup.ts — no separate resolve needed, same
|
|
590
|
+
# direct-PACKAGE_ROOT pattern as cmd_export / cmd_sync / cmd_validate.
|
|
591
|
+
cmd_memory_get() {
|
|
592
|
+
exec_ts "$PACKAGE_ROOT/src/scripts/_cli/cmd_memory_get.ts" "$@"
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
# `agent-config memory:learn` — aggregate the memory intake signal log
|
|
596
|
+
# into the local, gitignored learning sidecar (road-to-retrieval-
|
|
597
|
+
# substrate-hardening B3). Read-only by default (the sidecar's own
|
|
598
|
+
# default); `--write` emits `.agent-learning.json` + `LESSONS.md`.
|
|
599
|
+
cmd_memory_learn() {
|
|
600
|
+
local script
|
|
601
|
+
script="$(resolve_script "src/scripts/learning_sidecar.ts")" || return 1
|
|
602
|
+
exec_ts "$script" "$@"
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
# `agent-config analytics` — local-only workspace analytics
|
|
606
|
+
# (docs/contracts/local-analytics.md). Delegates 1:1 to the module's own
|
|
607
|
+
# subcommand dispatch (emit|show|prune|migrate|decrypt-all|rekey).
|
|
608
|
+
cmd_analytics() {
|
|
609
|
+
local script
|
|
610
|
+
script="$(resolve_script "src/cli/python/workspace_analytics.ts")" || return 1
|
|
611
|
+
exec_ts "$script" "$@"
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
# `agent-config knowledge` — file-first global knowledge-card store
|
|
615
|
+
# (ADR-100). Delegates 1:1 to the store CLI's own subcommand dispatch
|
|
616
|
+
# (list|show|trace|forget|promote|validate|lead-check|purge).
|
|
617
|
+
cmd_knowledge() {
|
|
618
|
+
local script
|
|
619
|
+
script="$(resolve_script "src/scripts/knowledge_global_cli.ts")" || return 1
|
|
620
|
+
exec_ts "$script" "$@"
|
|
621
|
+
}
|
|
622
|
+
|
|
554
623
|
cmd_linked_projects_list() {
|
|
555
624
|
local script
|
|
556
625
|
script="$(resolve_script "src/scripts/linked_projects_list.ts")" || return 1
|
|
@@ -630,6 +699,13 @@ cmd_context_hygiene_hook() {
|
|
|
630
699
|
}
|
|
631
700
|
|
|
632
701
|
cmd_dispatch_hook() {
|
|
702
|
+
# Hook hot path (road-to-credible-install Phase 1): prefer the precompiled
|
|
703
|
+
# single-process bundle — one node start, concerns in-process, no tsx.
|
|
704
|
+
# Fallback to the tsx path only on a stale dev tree without dist/.
|
|
705
|
+
local bundle="$PACKAGE_ROOT/dist/hooks/dispatch.js"
|
|
706
|
+
if [[ -f "$bundle" ]]; then
|
|
707
|
+
exec node "$bundle" "$@"
|
|
708
|
+
fi
|
|
633
709
|
exec_hook "src/scripts/hooks/dispatch_hook" "$@"
|
|
634
710
|
}
|
|
635
711
|
|
|
@@ -1072,6 +1148,7 @@ main() {
|
|
|
1072
1148
|
affected) cmd_affected "$@" ;;
|
|
1073
1149
|
graph-explain) cmd_graph_explain "$@" ;;
|
|
1074
1150
|
benchmark) cmd_benchmark "$@" ;;
|
|
1151
|
+
code-graph) cmd_code_graph "$@" ;;
|
|
1075
1152
|
roadmap:progress) cmd_roadmap_progress "$@" ;;
|
|
1076
1153
|
roadmap:progress-check) cmd_roadmap_progress_check "$@" ;;
|
|
1077
1154
|
roadmap:archive) cmd_roadmap_archive "$@" ;;
|
|
@@ -1083,11 +1160,15 @@ main() {
|
|
|
1083
1160
|
implement-ticket) cmd_implement_ticket "$@" ;;
|
|
1084
1161
|
work) cmd_work "$@" ;;
|
|
1085
1162
|
memory:lookup) cmd_memory_lookup "$@" ;;
|
|
1163
|
+
memory:get) cmd_memory_get "$@" ;;
|
|
1086
1164
|
linked-projects:list) cmd_linked_projects_list "$@" ;;
|
|
1087
1165
|
memory:signal) cmd_memory_signal "$@" ;;
|
|
1088
1166
|
memory:hash) cmd_memory_hash "$@" ;;
|
|
1089
1167
|
memory:check) cmd_memory_check "$@" ;;
|
|
1090
1168
|
memory:check-proposal) cmd_memory_check_proposal "$@" ;;
|
|
1169
|
+
memory:learn) cmd_memory_learn "$@" ;;
|
|
1170
|
+
analytics) cmd_analytics "$@" ;;
|
|
1171
|
+
knowledge) cmd_knowledge "$@" ;;
|
|
1091
1172
|
proposal:check) cmd_proposal_check "$@" ;;
|
|
1092
1173
|
refine-ticket:detect) cmd_refine_ticket_detect "$@" ;;
|
|
1093
1174
|
chat-history:hook) cmd_chat_history_hook "$@" ;;
|
|
@@ -15,7 +15,13 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { describe, expect, it } from 'vitest';
|
|
17
17
|
|
|
18
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
classifyLookup,
|
|
20
|
+
classifyTask,
|
|
21
|
+
type ActivationInputs,
|
|
22
|
+
type LookupClass,
|
|
23
|
+
type TaskSignals,
|
|
24
|
+
} from './auto_dispatch.js';
|
|
19
25
|
|
|
20
26
|
const ON: ActivationInputs = { enabled: true, auto: 'on', subagent_spawn: true };
|
|
21
27
|
|
|
@@ -85,3 +91,60 @@ describe('parallelizable classifier — corpus recall', () => {
|
|
|
85
91
|
}
|
|
86
92
|
});
|
|
87
93
|
});
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Lookup-class corpus (L0 — road-to-lean-agent-init Phase 1). The first four
|
|
97
|
+
* entries are the live-observed 2026-07-28 task shapes that burned ~1.21M
|
|
98
|
+
* subagent tokens; each must route to a primitive, never a spawn. The
|
|
99
|
+
* negative controls are non-lookup tasks that must escalate unchanged.
|
|
100
|
+
*/
|
|
101
|
+
const LOOKUP_CORPUS: Array<{ id: string; text: string; expect: LookupClass | null }> = [
|
|
102
|
+
// ── the four observed shapes (live evidence, 2026-07-28 session) ──
|
|
103
|
+
{ id: 'lk-01', text: 'Confirming ExternalApiProviderEnum definition location', expect: 'definition' },
|
|
104
|
+
{ id: 'lk-02', text: 'Confirming GWInput import call sites', expect: 'references' },
|
|
105
|
+
{ id: 'lk-03', text: 'Running check_enforcement_coverage report', expect: 'report-run' },
|
|
106
|
+
{ id: 'lk-04', text: 'Probing candidate strings with tsx', expect: 'string-existence' },
|
|
107
|
+
// ── generalizations of the same shapes ──
|
|
108
|
+
{ id: 'lk-05', text: 'Where is classifyTask defined?', expect: 'definition' },
|
|
109
|
+
{ id: 'lk-06', text: 'Who calls readOrchestrationMetrics across the repo?', expect: 'references' },
|
|
110
|
+
{ id: 'lk-07', text: 'Does the string "lean-init-2026" exist anywhere in src/?', expect: 'string-existence' },
|
|
111
|
+
{ id: 'lk-08', text: 'Run the roadmap:progress-check report and summarize', expect: 'report-run' },
|
|
112
|
+
{ id: 'lk-09', text: 'Find all usages of InferredTier in tests', expect: 'references' },
|
|
113
|
+
{ id: 'lk-10', text: 'Locate the enum that lists the dispatch actions', expect: 'definition' },
|
|
114
|
+
// ── negative controls — must escalate, never route to a primitive ──
|
|
115
|
+
{ id: 'lk-n1', text: 'Refactor the auth middleware to use the new session store', expect: null },
|
|
116
|
+
{ id: 'lk-n2', text: 'Fix the failing corpus test and explain the root cause', expect: null },
|
|
117
|
+
{ id: 'lk-n3', text: 'Design a migration plan for the audit schema', expect: null },
|
|
118
|
+
{ id: 'lk-n4', text: 'Review this diff for security issues', expect: null },
|
|
119
|
+
];
|
|
120
|
+
|
|
121
|
+
describe('lookup-class routing — corpus recall + FP=0 (lean-init L0)', () => {
|
|
122
|
+
for (const c of LOOKUP_CORPUS) {
|
|
123
|
+
it(`${c.id}: ${c.text}`, () => {
|
|
124
|
+
const r = classifyLookup(c.text);
|
|
125
|
+
expect(r.lookup_class).toBe(c.expect);
|
|
126
|
+
expect(r.route).toBe(c.expect === null ? 'escalate' : 'primitive');
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
it('recall on the four live-observed shapes is 4/4', () => {
|
|
131
|
+
const observed = LOOKUP_CORPUS.filter((c) => c.id.startsWith('lk-0') && Number(c.id.slice(3)) <= 4);
|
|
132
|
+
expect(observed).toHaveLength(4);
|
|
133
|
+
for (const c of observed) {
|
|
134
|
+
expect(classifyLookup(c.text).route).toBe('primitive');
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it('false-positive rate is 0 — no negative control routes to a primitive', () => {
|
|
139
|
+
for (const c of LOOKUP_CORPUS.filter((x) => x.expect === null)) {
|
|
140
|
+
expect(classifyLookup(c.text).route).toBe('escalate');
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it('unknown resolves to escalate with a non-degradation reason', () => {
|
|
145
|
+
const r = classifyLookup('Do something clever with the codebase');
|
|
146
|
+
expect(r.route).toBe('escalate');
|
|
147
|
+
expect(r.primitive).toBeNull();
|
|
148
|
+
expect(r.reason).toContain('never down-guessed');
|
|
149
|
+
});
|
|
150
|
+
});
|