@event4u/agent-config 9.7.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 +314 -190
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +57 -11
- 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/commit/in-chunks.md +8 -0
- package/dist/agent-src/commands/commit.md +17 -0
- 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/pr/create.md +4 -0
- 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/contexts/override-system.md +75 -5
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/context-hygiene.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
- package/dist/agent-src/rules/domain-safety-pii.md +1 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
- package/dist/agent-src/rules/git-history-discipline.md +2 -0
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/language-and-tone.md +2 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
- package/dist/agent-src/rules/media-governance-routing.md +2 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +4 -1
- package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
- package/dist/agent-src/rules/onboarding-gate.md +2 -0
- package/dist/agent-src/rules/output-discipline.md +2 -0
- package/dist/agent-src/rules/persona-governance.md +2 -0
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/preservation-guard.md +3 -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 +9 -0
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +2 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/telegraph-speak.md +2 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
- package/dist/agent-src/rules/tool-safety.md +4 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/rules/verify-before-complete.md +2 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
- 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/gated-reach/SKILL.md +185 -0
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -0
- 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-analyser/SKILL.md +14 -12
- package/dist/agent-src/skills/image-editing/SKILL.md +2 -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/readme-writing/SKILL.md +6 -1
- 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/screenshot-hygiene/SKILL.md +171 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
- 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/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
- 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 +4 -0
- 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/github-workflows/secret-scan.yml +65 -0
- 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/configRoot.js +112 -0
- package/dist/cli/configRoot.js.map +1 -0
- package/dist/cli/configRoot.test.js +97 -0
- package/dist/cli/configRoot.test.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/help.js +4 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +54 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +8 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +502 -101
- 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 +95 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +36 -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 +791 -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 +12 -0
- 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 +32 -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 +12 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/server/serverInfo.js +6 -2
- package/dist/server/serverInfo.js.map +1 -1
- package/dist/server/token.js +11 -4
- package/dist/server/token.js.map +1 -1
- package/dist/server/writeRoot.js +15 -1
- package/dist/server/writeRoot.js.map +1 -1
- package/dist/shared/capabilities.js +33 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/capabilities.test.js +39 -0
- package/dist/shared/capabilities.test.js.map +1 -0
- 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 +15 -6
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +22 -9
- 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 +94 -13
- 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/config/reach-channels.yml +217 -0
- package/src/config/reach-prescriptions-intake.yml +200 -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 +96 -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/exec_evidence.ts +251 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/kernel_rules.ts +46 -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/reddit_thread_parse.ts +598 -0
- package/src/scripts/_lib/risk_paths.ts +160 -0
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/secret_detector.test.ts +108 -0
- package/src/scripts/_lib/secret_detector.ts +328 -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/tool_probe.ts +359 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/adr/regenerate_index.ts +81 -6
- 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_adr_coverage.ts +33 -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 +207 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_adr_frontmatter.ts +195 -0
- package/src/scripts/check_artefact_count_messaging.ts +4 -0
- package/src/scripts/check_backstop_debt.ts +210 -0
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_claims.ts +188 -8
- package/src/scripts/check_comparison.ts +12 -0
- package/src/scripts/check_enforcement_coverage.ts +592 -0
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_kernel_rule_bundle.ts +16 -12
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_reach_channels.ts +407 -0
- package/src/scripts/check_reach_staleness.ts +364 -0
- package/src/scripts/check_secret_leak.test.ts +47 -0
- package/src/scripts/check_secret_leak.ts +290 -0
- 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 +379 -0
- package/src/scripts/code_graph/detect.ts +186 -0
- package/src/scripts/code_graph/extract.ts +386 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/loader.ts +123 -0
- package/src/scripts/code_graph/query.ts +290 -0
- package/src/scripts/code_graph/sanitize.ts +30 -0
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/code_graph/types.ts +83 -0
- package/src/scripts/code_graph/validate.ts +63 -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 +8 -4
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/generate_subagent_floor.ts +194 -0
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +65 -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 +191 -0
- 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/iron_law_sha.ts +3 -12
- 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 +267 -0
- 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/measure_rule_budget.ts +3 -12
- 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/reach_doctor.ts +1651 -0
- package/src/scripts/release.ts +24 -3
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/risk_escalation_shadow.ts +160 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/schemas/agent-settings.schema.json +23 -0
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/reach-channels.schema.json +134 -0
- package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
- package/src/scripts/schemas/rule.schema.json +20 -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/skill_linter.ts +55 -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/validate_reach_prescriptions.ts +751 -0
- 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 +24 -2
- package/src/shared/capabilities.test.ts +43 -0
- package/src/shared/capabilities.ts +75 -0
- package/src/templates/minimal/agents-overrides-readme.md +20 -0
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-BiEZiZ31.js +0 -40
- package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
- package/docs/CLAIMS.md +0 -261
- 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 -648
- 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 -721
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -45
- 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/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 -59
- 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 -685
- 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 -189
- 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 -246
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
- 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 -201
- 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-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 -136
- 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 -117
- 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 -44
- 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/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 -176
- 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 -29
- 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
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 047
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-03
|
|
5
|
-
decision: framework-neutral-stack-adaptive-commands
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: v6.0.0 · D structural restructure
|
|
9
|
-
type: decision
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-047 — Framework-neutral global commands; stack-adaptive resolution for engineering
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-03. Authored as Phase 7 / Step 20 of
|
|
17
|
-
[`road-to-6.0.0-d-structural-restructure`](../../agents/roadmaps/archive/road-to-6.0.0-d-structural-restructure.md).
|
|
18
|
-
Codifies, as an architecture decision, the floor already enforced by the
|
|
19
|
-
[`framework-neutrality-in-generic-skills`](../../src/rules/framework-neutrality-in-generic-skills.md)
|
|
20
|
-
rule and the "stack-adaptive set" resolved in the
|
|
21
|
-
[`command-classification worksheet`](../../agents/reports/command-classification-6.0.0-d.md).
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
The suite ships **global** commands that run against any consumer project,
|
|
26
|
-
whatever its stack. A naive design produces one of two failure modes:
|
|
27
|
-
|
|
28
|
-
1. **Framework leakage** — a generic command hardcodes a single stack's tooling
|
|
29
|
-
(`php artisan test`, `vendor/bin/phpunit`, `FormRequest`), so it silently
|
|
30
|
-
misbehaves on a Next.js or Python project.
|
|
31
|
-
2. **Per-stack command explosion** — `php-test-run`, `jest-test-run`,
|
|
32
|
-
`pytest-run`, … one command per toolchain, multiplying the surface for what
|
|
33
|
-
is conceptually one action.
|
|
34
|
-
|
|
35
|
-
Both are wrong. The right shape is a single framework-neutral command whose
|
|
36
|
-
implementation **detects** the toolchain and runs the right tool.
|
|
37
|
-
|
|
38
|
-
## Decision
|
|
39
|
-
|
|
40
|
-
1. **Generic commands are framework-neutral.** A global command never mandates a
|
|
41
|
-
specific framework. Stack specifics live in carve-out artefacts
|
|
42
|
-
(`laravel-*`, `nextjs-*`, `pest-*`, …) the neutral command composes — never
|
|
43
|
-
inlined. This is the existing
|
|
44
|
-
[`framework-neutrality-in-generic-skills`](../../src/rules/framework-neutrality-in-generic-skills.md)
|
|
45
|
-
rule, now ratified as architecture.
|
|
46
|
-
|
|
47
|
-
2. **A bounded stack-adaptive set, scoped to engineering.** The commands that
|
|
48
|
-
DETECT the toolchain and dispatch are: `test-run`, `test-create`,
|
|
49
|
-
`quality-fix` (`fix-quality`), `review-changes`, and `work`. A resolver
|
|
50
|
-
detects the stack (phpunit / pest / playwright / vitest / jest / pytest / …)
|
|
51
|
-
and runs the matching tool. There is **no per-stack command explosion**.
|
|
52
|
-
|
|
53
|
-
3. **Monorepo guard.** Stack-adaptive test/quality commands default to the FAST
|
|
54
|
-
path; `--include-slow` / `--include-e2e` opts into the heavy runs.
|
|
55
|
-
`--all`-style "run everything" is a monorepo footgun and is not the default.
|
|
56
|
-
|
|
57
|
-
4. **Non-interactive by construction.** Detection-based commands must work in CI:
|
|
58
|
-
detect a non-TTY, honor explicit flags (`--php`, `--json`, `--yes`), and never
|
|
59
|
-
block on a prompt. A prompt that hangs CI is "provably wrong for CI/CD".
|
|
60
|
-
|
|
61
|
-
5. **Genuinely stack-locked commands stay locked.** A command that only makes
|
|
62
|
-
sense for one stack (e.g. `update-form-request-messages` for Laravel
|
|
63
|
-
FormRequests) stays in that stack's pack and is not forced neutral. The
|
|
64
|
-
resolver is for the bounded engineering set, not a universal mandate.
|
|
65
|
-
|
|
66
|
-
## Consequences
|
|
67
|
-
|
|
68
|
-
- **Positive.** One command per action, correct on every stack; the surface does
|
|
69
|
-
not multiply per toolchain.
|
|
70
|
-
- **Positive.** The neutrality rule gains an architectural backing decision, so
|
|
71
|
-
the lint is not "just a style check" but the enforcement of a recorded contract.
|
|
72
|
-
- **Negative / accepted.** The resolver carries detection logic that must stay
|
|
73
|
-
current as toolchains evolve; per-stack run skills it composes are the units
|
|
74
|
-
that change, not the command.
|
|
75
|
-
- **Negative / accepted.** Detection can be ambiguous in mixed-stack repos; the
|
|
76
|
-
monorepo guard (fast-default + explicit opt-in) and the `--<stack>` narrowing
|
|
77
|
-
flag are the escape hatches.
|
|
78
|
-
|
|
79
|
-
## Alternatives considered
|
|
80
|
-
|
|
81
|
-
- **Per-stack commands.** Rejected: `php-test-run` / `jest-test-run` is the bad
|
|
82
|
-
world — surface explosion for one conceptual action.
|
|
83
|
-
- **One neutral command with stack hardcoded to the maintainer's stack.**
|
|
84
|
-
Rejected: that is framework leakage; it breaks on every other consumer.
|
|
85
|
-
- **Universal stack-adaptive (every command detects).** Rejected: only the
|
|
86
|
-
engineering set benefits; forcing detection onto genuinely stack-locked
|
|
87
|
-
commands adds complexity for no gain.
|
|
88
|
-
|
|
89
|
-
## References
|
|
90
|
-
|
|
91
|
-
- [`framework-neutrality-in-generic-skills`](../../src/rules/framework-neutrality-in-generic-skills.md) — the enforcing rule.
|
|
92
|
-
- [`agents/reports/command-classification-6.0.0-d.md`](../../agents/reports/command-classification-6.0.0-d.md) — the stack-adaptive set + monorepo-guard resolution.
|
|
93
|
-
- [`ADR-046`](ADR-046-thin-command-principle.md) — thin commands compose per-stack skills.
|
|
94
|
-
- [`ADR-044`](ADR-044-command-naming-scheme-hyphenated.md) — naming scheme.
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 048
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-03
|
|
5
|
-
decision: command-justification-rule
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: v6.0.0 · D structural restructure
|
|
9
|
-
type: decision
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-048 — Command justification: a command earns a top-level slot in exactly three cases
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-03. Authored as Phase 7 / Step 20b of
|
|
17
|
-
[`road-to-6.0.0-d-structural-restructure`](../../agents/roadmaps/archive/road-to-6.0.0-d-structural-restructure.md)
|
|
18
|
-
(feedback-5/7: "the rule that ends every future discussion"). **Locks** the
|
|
19
|
-
"Command justification" section already captured in
|
|
20
|
-
[`command-clusters.md`](../contracts/command-clusters.md#command-justification--a-command-must-earn-a-top-level-slot)
|
|
21
|
-
— the contract text itself defers its dedicated ADR to "the 6.0.0-D structural
|
|
22
|
-
rollout"; this is that ADR. Composes with
|
|
23
|
-
[`ADR-041`](ADR-041-controlled-command-verbs.md) (a new verb still needs an ADR)
|
|
24
|
-
and [`ADR-046`](ADR-046-thin-command-principle.md) (demoted behavior survives as
|
|
25
|
-
a skill).
|
|
26
|
-
|
|
27
|
-
## Context
|
|
28
|
-
|
|
29
|
-
The command surface re-bloats one well-meaning addition at a time. Across the
|
|
30
|
-
6.0.0-D council passes (anthropic/claude-sonnet-4-5 + openai/gpt-4o, 2026-06-03)
|
|
31
|
-
two failure modes were named: **125 commands overwhelms** (no one can find the
|
|
32
|
-
daily five) and **~29 commands buries features** (product-surfaces like `council`
|
|
33
|
-
/ `research` vanish as skills and lose discoverability). The defensible target is
|
|
34
|
-
a small, justified set — every top-level command earns its slot or becomes a
|
|
35
|
-
skill the agent triggers by task.
|
|
36
|
-
|
|
37
|
-
## Decision
|
|
38
|
-
|
|
39
|
-
A new command earns a top-level slot in **exactly three** cases. Everything else
|
|
40
|
-
is a **skill**.
|
|
41
|
-
|
|
42
|
-
1. **Flow-entry** — a daily starting point of a flow the user TYPES to begin
|
|
43
|
-
work: `work`, `git-commit`, `git-pr-create`, `ticket-implement`,
|
|
44
|
-
`feature-plan`, `review-changes`, `fix-ci`, `test-run`, `bug-fix`.
|
|
45
|
-
|
|
46
|
-
2. **State-query** — a read-only check typed many times a day: `agent-status`,
|
|
47
|
-
`session-status`, `project-health`, `profile-show`, `analytics-show`.
|
|
48
|
-
|
|
49
|
-
3. **Product-surface** — a FEATURE the user starts deliberately (not daily, but
|
|
50
|
-
consciously): `council`, `challenge-me`, `research`, `roadmap`,
|
|
51
|
-
`video-storyboard`. Burying these as skills destroys discoverability; a skill
|
|
52
|
-
is `code-review` / `git-workflow` / `testing`, never `council` / `research`.
|
|
53
|
-
|
|
54
|
-
If none of the three applies, it is a **skill**. Skills trigger automatically by
|
|
55
|
-
task, so each of the following does NOT need a top-level command:
|
|
56
|
-
|
|
57
|
-
- a **sub-action** of a flow (a phase, not a front door);
|
|
58
|
-
- a **one-off / setup-once** operation;
|
|
59
|
-
- a **pipeline stage**;
|
|
60
|
-
- a **destructive op** — a skill **with a mandatory confirmation gate**
|
|
61
|
-
(destructive ≠ command; the confirm covers the mis-parse risk);
|
|
62
|
-
- a **system / admin op** — the `agent-admin` platform surface, which is **NOT a
|
|
63
|
-
flow** (it is system administration, not user work).
|
|
64
|
-
|
|
65
|
-
Two corollaries:
|
|
66
|
-
|
|
67
|
-
- **Sibling variants become a flag, never a second command** — `git-commit
|
|
68
|
-
--in-chunks` not `git-commit-in-chunks`; `roadmap --step` not a separate
|
|
69
|
-
`roadmap-process-step`. `roadmap` with no scope defaults to processing the
|
|
70
|
-
WHOLE roadmap (that is why you write one).
|
|
71
|
-
- **A new verb still needs an ADR** per ADR-041. This ADR governs *whether*
|
|
72
|
-
something is a command; ADR-041 governs *what verb* it may use.
|
|
73
|
-
|
|
74
|
-
**Sweet spot ≈ 40–50 visible commands** (≈15 workflow + ≈10 status/admin +
|
|
75
|
-
≈15–20 product features) — not 125, not ~29.
|
|
76
|
-
|
|
77
|
-
## Consequences
|
|
78
|
-
|
|
79
|
-
- **Positive.** "Should X be a command?" has a deterministic answer: run the
|
|
80
|
-
three-case test; if it fails, X is a skill. A proposed `jira-comment` — not
|
|
81
|
-
flow-entry, not state-query, not a product-surface — is a skill. Done.
|
|
82
|
-
- **Positive.** Product-surface features stay discoverable as commands; pure
|
|
83
|
-
implementation helpers stay out of the surface as task-triggered skills.
|
|
84
|
-
- **Negative / accepted.** Aggressive demotion to skills depends on reliable
|
|
85
|
-
task→skill routing; that is handled at conversion time (6.1) via a confirmation
|
|
86
|
-
gate on each new skill, not by a telemetry wait. Nothing is lost — a demoted
|
|
87
|
-
command's behavior stays reachable as a task-triggered skill.
|
|
88
|
-
- **Negative / accepted.** "Daily" and "deliberately started" are judgement
|
|
89
|
-
calls; the contract + this ADR set the frame, review applies it.
|
|
90
|
-
|
|
91
|
-
## Alternatives considered
|
|
92
|
-
|
|
93
|
-
- **No justification rule (additive surface).** Rejected: that is the 125-command
|
|
94
|
-
bloat the rebuild exists to undo.
|
|
95
|
-
- **Maximally aggressive (~29 commands, everything else a skill).** Rejected:
|
|
96
|
-
buried real product-surface features and hurt discoverability (feedback-7).
|
|
97
|
-
- **A precision-admin command category for destructive ops.** Rejected (maintainer
|
|
98
|
-
line): a destructive op is a skill with a mandatory confirmation gate; the
|
|
99
|
-
confirm covers mis-parse risk, so it does not need a top-level slot.
|
|
100
|
-
|
|
101
|
-
## References
|
|
102
|
-
|
|
103
|
-
- [`command-clusters.md` § Command justification](../contracts/command-clusters.md#command-justification--a-command-must-earn-a-top-level-slot) — the locked contract text.
|
|
104
|
-
- [`ADR-041`](ADR-041-controlled-command-verbs.md) — controlled verb allowlist (a new verb needs an ADR).
|
|
105
|
-
- [`ADR-046`](ADR-046-thin-command-principle.md) — demoted behavior survives as a composed skill.
|
|
106
|
-
- [`agents/reports/command-classification-6.0.0-d.md`](../../agents/reports/command-classification-6.0.0-d.md) — the 150-command classification applying this rule.
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 049
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-03
|
|
5
|
-
decision: configuration-trust-boundary
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: v6.0.0 · settings-scope hardening
|
|
9
|
-
type: decision
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-049 — Configuration trust boundary: the user-global whitelist is a security boundary
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-03. **Council-config *placement* superseded by
|
|
17
|
-
[ADR-093](ADR-093-ai-council-config-user-global.md) → [ADR-104](ADR-104-ai-council-config-global-only.md)**
|
|
18
|
-
(council config now lives user-global at
|
|
19
|
-
`~/.event4u/agent-config/settings/.ai-council.yml`, never project-local).
|
|
20
|
-
The **trust-boundary decision below still stands**: `ai_council` is not on
|
|
21
|
-
the user-global *settings merge whitelist* (`.agent-settings.yml` keys) —
|
|
22
|
-
the council reads its own dedicated `.ai-council.yml`, not a merged
|
|
23
|
-
settings key. Wherever this ADR says council config "lives project-local",
|
|
24
|
-
read "lives user-global per ADR-104".
|
|
25
|
-
|
|
26
|
-
Locks the AI-council convergence
|
|
27
|
-
(anthropic/claude-sonnet-4-5 + openai/gpt-4o, design mode + peer-review,
|
|
28
|
-
2026-06-03) on where the source of truth for personal preferences and AI-council
|
|
29
|
-
configuration lives. Refines [`ADR-020`](ADR-020-global-only-consumer-scope.md)
|
|
30
|
-
(global-only consumer scope) and sits alongside
|
|
31
|
-
[`ADR-038`](ADR-038-canonical-settings-path.md) (canonical project settings
|
|
32
|
-
path) and the resolver cascade in `scripts/_lib/agent_settings.py`.
|
|
33
|
-
|
|
34
|
-
## Context
|
|
35
|
-
|
|
36
|
-
[`ADR-020`](ADR-020-global-only-consumer-scope.md) framed its consequences as
|
|
37
|
-
"one source of truth for `personal.*`, `agent_council.*`, and `personas:`",
|
|
38
|
-
which read as a mandate to push personal preferences, council configuration, and
|
|
39
|
-
personas into the **user-global** layer (`~/.event4u/agent-config/`). The
|
|
40
|
-
implementation never did this: the loader's user-global layer is **whitelist-
|
|
41
|
-
filtered** to a small curated set (`MERGEABLE_KEYS` = `name`, `ide`,
|
|
42
|
-
`rule_loading_tier`, `memory.cadence`, `personal.bot_icon`, `personal.autonomy`,
|
|
43
|
-
`telegraph.speak_scope`); everything else in a user-global file is silently
|
|
44
|
-
ignored. `ai_council` is not on the whitelist, and council configuration lives
|
|
45
|
-
project-local in `agents/settings/.ai-council.yml` (per
|
|
46
|
-
[`ai-council-config`](../contracts/ai-council-config.md), the Phase-0 single
|
|
47
|
-
source of truth). <!-- Council placement superseded by ADR-104: the config is
|
|
48
|
-
now user-global only (`~/.event4u/agent-config/settings/.ai-council.yml`),
|
|
49
|
-
never project-local. The trust-boundary reasoning below is unaffected. -->
|
|
50
|
-
|
|
51
|
-
The maintainer questioned whether that project-local placement is a bug. The AI
|
|
52
|
-
council was asked to decide and **converged** that it is **not** a bug — the
|
|
53
|
-
whitelist is a deliberate **security trust boundary**, and ADR-020's
|
|
54
|
-
"everything global" framing was aspirational overreach the implementation
|
|
55
|
-
correctly rejected. The decisive argument is the **untrusted-project escalation
|
|
56
|
-
test**: if `ai_council` or arbitrary `personal.*` keys cascaded from any layer a
|
|
57
|
-
project repo controls, a cloned repo could set `personal.autonomy: full` or point
|
|
58
|
-
a provider key at an attacker endpoint and have it silently inherited into the
|
|
59
|
-
user's scope. Only a whitelist that filters what a project may escalate survives
|
|
60
|
-
that test. Two further arguments hold even under this package's team-internal,
|
|
61
|
-
all-repos-trusted reality: workflow configuration (council member selection,
|
|
62
|
-
personas, rule tier) **belongs in version control**, and onboarding stays clean
|
|
63
|
-
(`clone → install → correct config`) without out-of-band global state.
|
|
64
|
-
|
|
65
|
-
## Decision
|
|
66
|
-
|
|
67
|
-
1. **The `MERGEABLE_KEYS` whitelist is a security trust boundary**, not a feature
|
|
68
|
-
gate. Project-controlled layers (repo-root, intermediate, CWD, and the
|
|
69
|
-
user-global file *when populated from an untrusted source*) may only escalate
|
|
70
|
-
the curated identity keys on the whitelist into the merged settings. Every
|
|
71
|
-
other key resolves **project-local**.
|
|
72
|
-
|
|
73
|
-
2. **Council configuration and personas stay project-local.** The canonical home
|
|
74
|
-
for council config is `agents/settings/.ai-council.yml`
|
|
75
|
-
([`ai-council-config`](../contracts/ai-council-config.md)); personas live in
|
|
76
|
-
the project surface. Neither is a user-global concern.
|
|
77
|
-
<!-- Superseded for the COUNCIL part by ADR-104: council config is now
|
|
78
|
-
user-global only, never project-local (personas are unaffected). -->
|
|
79
|
-
**Update (ADR-104):** the council half of this decision was reversed — the
|
|
80
|
-
council config now lives user-global only
|
|
81
|
-
(`~/.event4u/agent-config/settings/.ai-council.yml`) and the project tree is
|
|
82
|
-
never read. Personas stay project-local as stated.
|
|
83
|
-
|
|
84
|
-
3. **Only secrets and the curated identity whitelist are global.** Provider API
|
|
85
|
-
keys already live global in `~/.event4u/agent-config/<provider>.key` (0600);
|
|
86
|
-
the whitelist carries cross-project user identity (`name`, `ide`, autonomy,
|
|
87
|
-
bot icon, rule tier, memory cadence, telegraph scope). This is the complete
|
|
88
|
-
global surface.
|
|
89
|
-
|
|
90
|
-
4. **Expanding the whitelist requires a threat model, not just product
|
|
91
|
-
rationale.** Any future PR that adds a key to `MERGEABLE_KEYS` must state, in
|
|
92
|
-
an ADR, why an untrusted project escalating that key into user scope is safe.
|
|
93
|
-
|
|
94
|
-
## Consequences
|
|
95
|
-
|
|
96
|
-
- **Positive.** The untrusted-project escalation hole is closed by construction.
|
|
97
|
-
Council config and personas are diffable and reviewable in git. The
|
|
98
|
-
global surface stays minimal and auditable (`~/.event4u/agent-config/`).
|
|
99
|
-
- **Naming.** ADR-020's `agent_council.*` is corrected to `ai_council` and
|
|
100
|
-
dropped from the "global" list — see the ADR-020 amendment. `ai_council` is the
|
|
101
|
-
single canonical key; the standalone `.ai-council.yml` file is its canonical
|
|
102
|
-
home; the `ai_council:` block in `.agent-settings.yml` is the Phase-0
|
|
103
|
-
one-line breadcrumb only.
|
|
104
|
-
- **No code change required.** The loader already implements this boundary; this
|
|
105
|
-
ADR documents it as load-bearing so a future contributor does not "fix" the
|
|
106
|
-
whitelist by widening it without a threat pass.
|
|
107
|
-
- **Dev-mode is unaffected.** `AGENT_CONFIG_DEV_MODE=1` treats the package repo
|
|
108
|
-
as its own project surface; project-local council/persona files there are the
|
|
109
|
-
test fixtures, not a workaround — see the ADR-038 amendment.
|
|
110
|
-
|
|
111
|
-
## Alternatives considered
|
|
112
|
-
|
|
113
|
-
- **Make `ai_council` + `personal.*` global (implement ADR-020 literally).**
|
|
114
|
-
Rejected by the council: reintroduces the untrusted-project escalation hole and
|
|
115
|
-
moves version-controllable workflow config out of git. Even under a fully
|
|
116
|
-
trusted team-internal scope the version-control and onboarding arguments stand.
|
|
117
|
-
- **Split identity vs workflow into two new files
|
|
118
|
-
(`.agent-identity.yml` / `.agent-workflow.yml`).** Rejected: the whitelist
|
|
119
|
-
already is the boundary; new filenames add migration debt and a "which file do
|
|
120
|
-
I edit?" cognitive load without closing any gap the whitelist leaves open.
|
|
121
|
-
- **Status quo, undocumented.** Rejected: the gap between ADR-020's wording and
|
|
122
|
-
the implementation is exactly what triggered the "is this a bug?" question; an
|
|
123
|
-
undocumented boundary invites a future well-meaning widening.
|
|
124
|
-
|
|
125
|
-
## References
|
|
126
|
-
|
|
127
|
-
- AI-council convergence: anthropic/claude-sonnet-4-5 + openai/gpt-4o, design
|
|
128
|
-
mode + peer-review, 2026-06-03 (hybrid / security-bounded model).
|
|
129
|
-
- [`ADR-020`](ADR-020-global-only-consumer-scope.md) — global-only consumer scope; this ADR refines its "global source of truth" wording.
|
|
130
|
-
- [`ADR-038`](ADR-038-canonical-settings-path.md) — canonical project settings path; dev-mode amendment added there.
|
|
131
|
-
- [`ai-council-config`](../contracts/ai-council-config.md) — `.ai-council.yml` as the Phase-0 single source of truth for council config.
|
|
132
|
-
- `scripts/_lib/agent_settings.py` — `MERGEABLE_KEYS` whitelist and the resolver cascade this ADR locks.
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 050
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-05
|
|
5
|
-
decision: workspace-vs-package-root-boundary
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: v6.0.0 · D structural restructure · Step 16 closure
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-050 — Workspace-vs-package root boundary (Step 16 closure)
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-05. Closes Step 16 of
|
|
17
|
-
[`road-to-6.0.0-d-structural-restructure`](../../agents/roadmaps/archive/road-to-6.0.0-d-structural-restructure.md).
|
|
18
|
-
**Refines** [`ADR-045`](ADR-045-src-source-layout-and-profiles-as-views.md): ADR-045's
|
|
19
|
-
profiles-as-views and hard-break decisions stand unchanged; this ADR refines
|
|
20
|
-
ADR-045's stated *root inventory* against the executed reality. Routed through the
|
|
21
|
-
AI council (anthropic/claude-sonnet-4-5 + openai/gpt-4o, design mode, 2026-06-05;
|
|
22
|
-
converged 2-round) which both members signed off on the trust-boundary framing.
|
|
23
|
-
|
|
24
|
-
## Context
|
|
25
|
-
|
|
26
|
-
ADR-045 specified an end-state where `src/` is "the whole package, structured" and
|
|
27
|
-
"root keeps only tooling/agent-host essentials + `src/` + `tests/` + `taskfiles/`",
|
|
28
|
-
with `src/app/` holding the TS runtime and `src/internal/` holding maintainer infra.
|
|
29
|
-
Step 16's remaining work (`internal/`, `hooks/`, the maintainer `agents/` workspace)
|
|
30
|
-
forced a re-examination, and three facts emerged that ADR-045's diagram did not
|
|
31
|
-
account for:
|
|
32
|
-
|
|
33
|
-
1. **The repo is a dual-artifact workspace, not a monolith.** It ships an npm
|
|
34
|
-
package (`src/`) *and* hosts a maintainer workspace (CI, evals, benchmarks,
|
|
35
|
-
council runtime, roadmaps, settings). These have different lifecycles, trust
|
|
36
|
-
boundaries, and consumers. Forcing workspace tooling under `src/` implies it is
|
|
37
|
-
a package internal when it is a workspace peer of `.github/`.
|
|
38
|
-
2. **`hooks/hooks.json` is pinned to the plugin root by an external convention.**
|
|
39
|
-
Claude Code plugins auto-discover hooks at `<plugin-root>/hooks/hooks.json`
|
|
40
|
-
(`condense.generate_plugin_hooks()` writes `PROJECT_ROOT/hooks/hooks.json`;
|
|
41
|
-
`.claude-plugin/marketplace.json` ships it). Moving it under `src/` silently
|
|
42
|
-
breaks plugin hook discovery in every marketplace-install consumer — a coupling
|
|
43
|
-
invisible to static grep (the council rated `hooks/` "1 ref, trivial" without it).
|
|
44
|
-
3. **`src/app/` was never created; flat `src/{cli,server,install,shared,ui}` is the
|
|
45
|
-
executed reality** and is *more* correct for a dual-artifact repo than the false
|
|
46
|
-
`src/app/` module boundary the diagram assumed.
|
|
47
|
-
|
|
48
|
-
The council's converged verdict: the value of Step 16 was structural clarity for the
|
|
49
|
-
*package*; that is achieved. The remaining dirs have design blockers, not
|
|
50
|
-
implementation laziness, and the honest disposition is a documented trust boundary
|
|
51
|
-
plus deferral — not contorting workspace tooling to fit a diagram drawn for the
|
|
52
|
-
wrong repo shape.
|
|
53
|
-
|
|
54
|
-
## Decision
|
|
55
|
-
|
|
56
|
-
1. **Two root tiers, by trust boundary.**
|
|
57
|
-
- **Package source — `src/`** (shipped via npm `files[]`): `app`-equivalent
|
|
58
|
-
entrypoints (`cli/`, `server/`, `install/`, `shared/`, `ui/` — kept flat under
|
|
59
|
-
`src/`, *not* under a `src/app/` wrapper), `domains/`, `skills/`, `rules/`,
|
|
60
|
-
`flows/`, `profiles/`, `config/`, `templates/`, `scripts/`, `schemas/`.
|
|
61
|
-
- **Workspace tooling + external-convention anchors — root** (not shipped as
|
|
62
|
-
package source): `internal/`, `agents/`, `.github/`, `taskfiles/`, `docs/`,
|
|
63
|
-
`hooks/`.
|
|
64
|
-
|
|
65
|
-
2. **Kept-at-root exception set (final for 6.0.0), with rationale per dir.**
|
|
66
|
-
|
|
67
|
-
| Dir | Class | Why it stays at root |
|
|
68
|
-
|---|---|---|
|
|
69
|
-
| `docs/` | external convention | GitHub renders `docs/`, npm `files[]`, ~386 cross-refs + 5 generator/verifier scripts hardcode it (decided 2026-06-05, pre-this-ADR). |
|
|
70
|
-
| `hooks/` | external convention | Claude Code plugin spec auto-discovers `<plugin-root>/hooks/hooks.json`; moving it breaks consumer hook discovery. |
|
|
71
|
-
| `internal/` | workspace tooling | `bench/ docker/ evals/ schemas/ workers/` — never shipped; 117 repo-local refs; a workspace peer of `.github/`, not a package internal. |
|
|
72
|
-
| `agents/` | workspace tooling + namespace | Maintainer roadmaps/settings/runtime; 443 refs; `agents/settings/.agent-settings.yml` is read at runtime by `_lib/agent_settings.py` (self-referential move hazard); collides conceptually with the consumer-facing `agents/` convention the package ships. **Deferred — see below.** |
|
|
73
|
-
|
|
74
|
-
3. **`src/app/` is not created.** Flat `src/{cli,server,install,shared,ui}` is the
|
|
75
|
-
accepted layout. ADR-045's `src/app/` line is refined away as a false abstraction
|
|
76
|
-
for a dual-artifact repo.
|
|
77
|
-
|
|
78
|
-
4. **Deferred to a follow-up structural roadmap** (not 6.1 behavioral consolidation):
|
|
79
|
-
- **`packages/` dual-tree collapse.** 308 tracked files still coexist with
|
|
80
|
-
`src/domains/` and remain in CI (`packages/core/installer/**`,
|
|
81
|
-
`packages/<PACK>/.agent-src.uncondensed/`). Step 10 ("move remaining packs")
|
|
82
|
-
copied command surfaces but did not remove `packages/`. Completing the collapse
|
|
83
|
-
is its own roadmap — it is bigger than Step 16 and touches the install/CI
|
|
84
|
-
contract.
|
|
85
|
-
- **`agents/` namespace + runtime-coupling resolution.** Resolve the
|
|
86
|
-
maintainer-vs-consumer `agents/` collision and the settings-loader
|
|
87
|
-
self-reference before any move; requires a pre-flight path test, not a
|
|
88
|
-
bundled file move.
|
|
89
|
-
|
|
90
|
-
## Consequences
|
|
91
|
-
|
|
92
|
-
- **Positive.** Step 16 closes honestly: package source is structured under `src/`;
|
|
93
|
-
root carries only essentials + the two tiers above, each with a stated reason.
|
|
94
|
-
- **Positive.** No high-blast-radius move (443-ref `agents/`, 117-ref `internal/`,
|
|
95
|
-
plugin-pinned `hooks/`) is executed in an autonomous run, avoiding the kill-switch
|
|
96
|
-
the roadmap warned about.
|
|
97
|
-
- **Negative / accepted.** The root is not reduced to the minimal inventory ADR-045
|
|
98
|
-
diagrammed; the dual-artifact reality means workspace tooling stays at root by
|
|
99
|
-
design. The acceptance criteria are amended to record this (see the roadmap).
|
|
100
|
-
- **Negative / accepted.** `packages/` still exists; the "root contains only
|
|
101
|
-
essentials" goal is met *modulo* the documented dual-tree pending its own roadmap.
|
|
102
|
-
|
|
103
|
-
## Alternatives considered
|
|
104
|
-
|
|
105
|
-
- **Move `hooks/` under `src/` (the council's first-pass verdict).** Rejected on a
|
|
106
|
-
fact the council lacked: the Claude plugin spec pins `hooks/hooks.json` to the
|
|
107
|
-
plugin root. Moving it breaks consumer hook auto-discovery.
|
|
108
|
-
- **Move `internal/` + `agents/` under `src/` to satisfy ADR-045's diagram.**
|
|
109
|
-
Rejected: violates the workspace-vs-package trust boundary and (for `agents/`)
|
|
110
|
-
risks a self-referential runtime break; pure churn with negative value.
|
|
111
|
-
- **Keep Step 16 open until every dir moves.** Rejected: the remaining moves have
|
|
112
|
-
design blockers, not effort gaps; closing with a documented boundary + a scoped
|
|
113
|
-
follow-up is more honest than an open-ended step.
|
|
114
|
-
|
|
115
|
-
## References
|
|
116
|
-
|
|
117
|
-
- [`ADR-045`](ADR-045-src-source-layout-and-profiles-as-views.md) — `src/` source
|
|
118
|
-
layout + profiles-as-views (refined here on the root inventory only).
|
|
119
|
-
- [`ADR-028`](ADR-028-root-layout.md) — earlier root-layout verdict (superseded by ADR-045).
|
|
120
|
-
- [`road-to-6.0.0-d-structural-restructure`](../../agents/roadmaps/archive/road-to-6.0.0-d-structural-restructure.md) — Step 16 + amended acceptance criteria.
|
|
121
|
-
- AI council, design mode, 2026-06-05 (anthropic/claude-sonnet-4-5 + openai/gpt-4o) — converged on the trust-boundary closure.
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 051
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-05
|
|
5
|
-
decision: uncondensed-source-container-relocation
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: v6.0.x · workspace structural cleanup · Phase 1 sub-phase 1a
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-051 — Relocate the uncondensed source container to `src/agent-src/`
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-05. Lands sub-phase **1a** of
|
|
17
|
-
[`road-to-6.0.x-workspace-structural-cleanup`](../../agents/roadmaps/archive/road-to-6.0.x-workspace-structural-cleanup.md).
|
|
18
|
-
**Builds on** [`ADR-043`](ADR-043-monorepo-collapse-to-src-domains.md) (commands →
|
|
19
|
-
`src/domains/`) and [`ADR-045`](ADR-045-src-source-layout-and-profiles-as-views.md)
|
|
20
|
-
(the flat `src/skills` + `src/rules` library). Routed through the AI council
|
|
21
|
-
(`claude-sonnet-4-5` + `gpt-4o`, 2026-06-05).
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
The 6.0.0-D restructure moved **skills** → `src/skills/`, **rules** →
|
|
26
|
-
`src/rules/`, and **commands** → `src/domains/<pack>/<verb>/command.md`, but
|
|
27
|
-
left every other uncondensed artefact category (contexts, personas, templates,
|
|
28
|
-
profiles, presets, user-types, ghostwriter, scripts, packs — ~221 files) under
|
|
29
|
-
`packages/core/.agent-src.uncondensed/`. That directory was therefore **still
|
|
30
|
-
the live uncondensed source** for those categories — `condense.py` (via
|
|
31
|
-
`_lib/agent_src.py::_root_specs()` / `artefact_roots()`) walked
|
|
32
|
-
`packages/*/.agent-src.uncondensed/` to find it. It was not a dead duplicate.
|
|
33
|
-
|
|
34
|
-
Collapsing `packages/` (the roadmap's goal) thus requires first giving those
|
|
35
|
-
~221 source files a `src/` home and repointing the generator — a real
|
|
36
|
-
source-of-truth move, not a delete.
|
|
37
|
-
|
|
38
|
-
## Decision
|
|
39
|
-
|
|
40
|
-
Relocate the remaining uncondensed categories into a single container
|
|
41
|
-
**`src/agent-src/`** (prefix `""`, original per-category subdir names), and
|
|
42
|
-
register it in `_root_specs()` (leaf view) and `artefact_roots()` (container
|
|
43
|
-
view, ordered **before** `src/` so the three categories that also exist under
|
|
44
|
-
`src/` as a *different* concern — `src/templates` = workspace TS templates,
|
|
45
|
-
`src/profiles` = runtime profile-views, `src/scripts` = Python tooling — resolve
|
|
46
|
-
to the uncondensed source first, exactly the precedence
|
|
47
|
-
`packages/core/.agent-src.uncondensed/` held).
|
|
48
|
-
|
|
49
|
-
A **collision guard** in `_root_specs()` now raises if two roots emit the same
|
|
50
|
-
non-empty logical prefix (silent overwrite of one category's condensed output
|
|
51
|
-
by another's was the council's named #1 failure mode).
|
|
52
|
-
|
|
53
|
-
### Council convergence and the execution refinement
|
|
54
|
-
|
|
55
|
-
The council converged on **per-category `src/<category>` roots** with logical
|
|
56
|
-
prefixes (Option A), mirroring `src/skills`→`skills/`. Execution refined that
|
|
57
|
-
to the **single `src/agent-src/` container** because per-category physical
|
|
58
|
-
names collide with the three pre-existing `src/` dirs above, which would break
|
|
59
|
-
six `artefact_roots()`+category-append consumers (the profile loader and five
|
|
60
|
-
test conftests resolving `root / "templates" / "scripts"`, `root / "scripts"`,
|
|
61
|
-
`root / "profiles"`). The container delivers the council's stated #1 priority —
|
|
62
|
-
no generated-tree corruption, no collision — with **zero consumer edits**,
|
|
63
|
-
keeps the source under `src/` (the council rejected a root-level
|
|
64
|
-
`.agent-src.uncondensed/` for reverting the at-`src/` direction), and preserves
|
|
65
|
-
logical identity exactly.
|
|
66
|
-
|
|
67
|
-
## Consequences
|
|
68
|
-
|
|
69
|
-
- The condensed `.agent-src/` output is **byte-identical** before/after the
|
|
70
|
-
move (the decisive correctness gate; verified by snapshot diff). Consumers
|
|
71
|
-
see no change.
|
|
72
|
-
- `generate_pack_manifests` collects the **core** pack's artefacts from both
|
|
73
|
-
`packages/core/.agent-src.uncondensed/` and `src/agent-src/`, so the core
|
|
74
|
-
pack manifest stays byte-stable — the move is metadata-neutral.
|
|
75
|
-
- Gate path-integrity (`check_gate_paths`) now asserts targets resolve under
|
|
76
|
-
the **source tree** (`src/` / `packages/`) rather than `packages/core/`; the
|
|
77
|
-
four gates it guards (`lint_agents_md`, `audit_command_surface`,
|
|
78
|
-
`audit_initial_context`, `inventory_abstraction_budget`) were repointed to
|
|
79
|
-
the new homes. `audit_command_surface` was additionally repointed from its
|
|
80
|
-
pre-existing Step-10 silent-no-op (it read the evals-only `packages` commands
|
|
81
|
-
dir) onto the real `src/domains/` command surface — now audits 161 commands.
|
|
82
|
-
|
|
83
|
-
## What this ADR does NOT do — the deferred blocker
|
|
84
|
-
|
|
85
|
-
Sub-phase 1a relocates the **artefact source only**. It does **not** remove
|
|
86
|
-
`packages/`, because `packages/` also hosts a **live pack-home / manifest
|
|
87
|
-
layer**: `pack.yaml` + `README.md` (+ `FIRST_WIN.md`) for 11 capability packs
|
|
88
|
-
(finance, gtm, founder-strategy, ops-people, and the language packs) that are
|
|
89
|
-
**not** in `src/domains/`, plus `packages/core/installer/` (superseded by
|
|
90
|
-
`src/cli`+`src/install`+`src/server`), `packages/core/deploy/`, and
|
|
91
|
-
`packages/cloud/telemetry-worker/`. These are not mirrored elsewhere; deleting
|
|
92
|
-
them would violate the roadmap's acceptance criterion ("no skill/rule/command
|
|
93
|
-
deleted beyond duplicates proven already-mirrored").
|
|
94
|
-
|
|
95
|
-
**Where the 13 pack homes + installer + deploy + cloud worker migrate is an
|
|
96
|
-
open design decision** (e.g. `src/domains/<pack>/` homes vs a dedicated
|
|
97
|
-
`src/packs/` home; the semantics of capability-packs-as-domains) and is routed
|
|
98
|
-
to a follow-up council session + its own staged PR — consistent with the
|
|
99
|
-
roadmap's Goal that Phase 1 and Phase 2 ship as separate, never-bundled PRs.
|
|
100
|
-
|
|
101
|
-
## Alternatives considered
|
|
102
|
-
|
|
103
|
-
- **Per-category `src/<category>` roots (council Option A)** — rejected at
|
|
104
|
-
execution for the six-consumer collision breakage above.
|
|
105
|
-
- **Root-level `.agent-src.uncondensed/`** — rejected by the council for
|
|
106
|
-
reverting the at-`src/` flat-library direction.
|
|
107
|
-
- **Add `packs:` frontmatter to ~180 shared artefacts** — rejected as invasive
|
|
108
|
-
and orthogonal; the container preserves attribution without touching content.
|
|
109
|
-
|
|
110
|
-
## References
|
|
111
|
-
|
|
112
|
-
- [`road-to-6.0.x-workspace-structural-cleanup`](../../agents/roadmaps/archive/road-to-6.0.x-workspace-structural-cleanup.md)
|
|
113
|
-
- [`ADR-043`](ADR-043-monorepo-collapse-to-src-domains.md) · [`ADR-045`](ADR-045-src-source-layout-and-profiles-as-views.md) · [`ADR-050`](ADR-050-workspace-vs-package-root-boundary.md)
|
|
114
|
-
- `src/scripts/_lib/agent_src.py` — `_root_specs()`, `artefact_roots()`, collision guard.
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 052
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-05
|
|
5
|
-
decision: packages-removal-and-pack-home-migration
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: v6.0.x · workspace structural cleanup · Phase 1 sub-phase 1b
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-052 — Remove `packages/`; migrate pack homes to `src/packs/` + ops dirs to `deploy/`
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-05. Completes Phase 1 (Steps 2–3) of
|
|
17
|
-
[`road-to-6.0.x-workspace-structural-cleanup`](../../agents/roadmaps/archive/road-to-6.0.x-workspace-structural-cleanup.md);
|
|
18
|
-
builds on [`ADR-051`](ADR-051-uncondensed-source-container-relocation.md) (sub-phase 1a) and executes
|
|
19
|
-
[`ADR-043`](ADR-043-monorepo-collapse-to-src-domains.md)'s collapse. Routed through the AI council
|
|
20
|
-
(`claude-sonnet-4-5` + `gpt-4o`, 2026-06-05, two rounds incl. a tie-break).
|
|
21
|
-
|
|
22
|
-
## Context
|
|
23
|
-
|
|
24
|
-
After 1a relocated the uncondensed artefact source to `src/agent-src/`, the remaining `packages/`
|
|
25
|
-
content was **not** dead duplication:
|
|
26
|
-
|
|
27
|
-
- **11 manifest-only capability packs** (`pack-finance-*`, `pack-gtm-sales`, `pack-founder-strategy`,
|
|
28
|
-
`pack-ops-people`, `pack-{php,python,react,symfony,typescript,nextjs}`) — `pack.yaml` + `README.md`
|
|
29
|
-
(+ some `FIRST_WIN.md`); 0 commands; artefacts are flat `src/skills`/`src/rules` grouped by
|
|
30
|
-
frontmatter `packs:`. (Their old manifests were silently **empty** — `artefact_count: 0` — because
|
|
31
|
-
the generator rglob'd a non-existent `.agent-src.uncondensed/` under each.)
|
|
32
|
-
- **`packages/core/`** — pack manifest + `installer/` + `deploy/`.
|
|
33
|
-
- **`packages/cloud/`** — a vestigial `pack.yaml`/`README` + a Cloudflare `telemetry-worker/`.
|
|
34
|
-
|
|
35
|
-
## Decision
|
|
36
|
-
|
|
37
|
-
| Item | Destination | Mode |
|
|
38
|
-
|---|---|---|
|
|
39
|
-
| 11 capability packs | `src/packs/<id>/` | `flat` (frontmatter `packs:`) |
|
|
40
|
-
| `core` pack | `src/packs/core/` manifest; artefacts collected from the full `src/agent-src/` container | `core` |
|
|
41
|
-
| `installer/python/` workspace modules (8 `.py`) | `src/cli/python/` | runtime |
|
|
42
|
-
| `installer/` (TS entry, package.json) | **deleted** (superseded by `src/cli`+`src/install`+`src/server`) | — |
|
|
43
|
-
| `deploy/` (Dockerfile, compose) | root `deploy/` | build artefact |
|
|
44
|
-
| `cloud/telemetry-worker/` | root `deploy/telemetry-worker/` | deployable |
|
|
45
|
-
| `cloud` pack registration | **dropped** (a deployable is not an installable pack) | — |
|
|
46
|
-
|
|
47
|
-
`generate_pack_manifests._pack_homes()` now resolves homes from `src/packs/` + `src/domains/`
|
|
48
|
-
(+ legacy `packages/` for back-compat), with a 3-way collection mode (`core` / `flat` / `physical`).
|
|
49
|
-
The pack subsystem (`validate_pack_yaml`, `lint_pack_dependencies`, `lint_pack_first_win`,
|
|
50
|
-
`check_release_pr_shape`, `release.py`) was repointed off `packages/*`.
|
|
51
|
-
|
|
52
|
-
### Council convergence and the execution refinements
|
|
53
|
-
|
|
54
|
-
Round 1 converged on `src/packs/<id>/` for the 11 packs (Option B) — **not** `src/domains/`, to avoid
|
|
55
|
-
the *activation-gate inversion* (a command-less domain home would let a downstream installer that
|
|
56
|
-
greps for `command.md` silently skip the pack). The tie-break round resolved **core → `src/agent-src/`**
|
|
57
|
-
(home == artefact root). Execution **refined core to `src/packs/core/`** instead, because
|
|
58
|
-
`src/agent-src/` is a **condense source root** (prefix `""`) — a `pack.yaml`/`README.md` placed there
|
|
59
|
-
would leak into the condensed `.agent-src/` output (the README would overwrite the real source README
|
|
60
|
-
once `packages/` was gone). The silent-data-loss risk that drove the council to `src/agent-src/` does
|
|
61
|
-
**not** apply: `_collect_core()` rglobs the *entire* `src/agent-src/` container (no whitelist), so a
|
|
62
|
-
future category is auto-included.
|
|
63
|
-
|
|
64
|
-
## Consequences
|
|
65
|
-
|
|
66
|
-
- `packages/` no longer exists at repo root; `package.json files:` never shipped it, so the published
|
|
67
|
-
package is unaffected.
|
|
68
|
-
- Condensed `.agent-src/` output stays **byte-identical** (1a's snapshot guard, re-verified).
|
|
69
|
-
- The 11 capability-pack manifests now list their **real** artefacts (previously empty) — a correction,
|
|
70
|
-
surfaced by the per-pack manifest snapshot guard, not silent drift.
|
|
71
|
-
- The `installer/python/` workspace modules (`workspace_*`, `knowledge_ingest`) — live runtime + test
|
|
72
|
-
dependencies, **not** part of the superseded TS installer — were preserved at `src/cli/python/`.
|
|
73
|
-
|
|
74
|
-
## Alternatives considered
|
|
75
|
-
|
|
76
|
-
- **Pack homes under `src/domains/`** — rejected (activation-gate inversion).
|
|
77
|
-
- **core manifest at `src/agent-src/`** (tie-break winner) — rejected at execution (condense-source
|
|
78
|
-
pollution).
|
|
79
|
-
- **Keeping `packages/` as a thin shim** — rejected; the roadmap goal is its removal, and nothing in
|
|
80
|
-
`files:` or the build depends on it.
|
|
81
|
-
|
|
82
|
-
## References
|
|
83
|
-
|
|
84
|
-
- [`road-to-6.0.x-workspace-structural-cleanup`](../../agents/roadmaps/archive/road-to-6.0.x-workspace-structural-cleanup.md)
|
|
85
|
-
- [`ADR-051`](ADR-051-uncondensed-source-container-relocation.md) · [`ADR-043`](ADR-043-monorepo-collapse-to-src-domains.md)
|
|
86
|
-
- `src/scripts/generate_pack_manifests.py` — `_pack_homes()`, `_collect_core()`.
|