@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,953 +0,0 @@
|
|
|
1
|
-
# CHANGELOG — 6.0.0 release overview (archived)
|
|
2
|
-
|
|
3
|
-
> Drained from `CHANGELOG.md` `## [Unreleased]` on 2026-07-21. This was the
|
|
4
|
-
> hand-authored "6.0.0 at a glance" release overview, staged under
|
|
5
|
-
> `[Unreleased]` during 6.0.0 readiness and never removed after the release
|
|
6
|
-
> shipped. It is preserved here verbatim for history; `[Unreleased]` now
|
|
7
|
-
> starts clean. The dated per-version 6.0.0-era entries live under the
|
|
8
|
-
> `# Era: pre-7.0.0 — archived` pointer in `CHANGELOG.md`.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
### 6.0.0 at a glance — release overview
|
|
13
|
-
|
|
14
|
-
> A reader who never saw the PRs should understand 6.0.0 in under two
|
|
15
|
-
> minutes. Seven headlines here; migration steps in **Breaking changes**
|
|
16
|
-
> below; granular per-roadmap detail in the entries further down.
|
|
17
|
-
|
|
18
|
-
6.0.0 is the release that turns agent-config into a **workplace**, not just a
|
|
19
|
-
rule pack:
|
|
20
|
-
|
|
21
|
-
1. **Workspace.** A task-orchestration layer owns the host-session lifecycle,
|
|
22
|
-
continuation, and drive health — the engine behind `/work` and
|
|
23
|
-
`/implement-ticket`.
|
|
24
|
-
2. **Multi-turn continuation.** A long task survives across turns: the
|
|
25
|
-
workspace resumes where it left off instead of restarting cold.
|
|
26
|
-
3. **Secure local stores.** Session state and sensitive local data live in an
|
|
27
|
-
encrypted-at-rest store under `~/.event4u/agent-config/`, not loose files.
|
|
28
|
-
4. **MCP server.** agent-config exposes its skills and commands over MCP, so
|
|
29
|
-
MCP-aware hosts can reach them directly.
|
|
30
|
-
5. **AI-video Creative Pack (optional).** The AI-video surface graduates from
|
|
31
|
-
prototype to validated provider adapters, shipped as an **opt-in Creative
|
|
32
|
-
Pack** — not core identity, not a new platform.
|
|
33
|
-
6. **Breaking — condensed output relocated.** The repo-root `.agent-src/` tree
|
|
34
|
-
is removed; condensed output now lives at `dist/agent-src/` ([ADR-058]).
|
|
35
|
-
7. **Upgrade cleanup.** Upgrading reaps stale deployed files (renamed/removed
|
|
36
|
-
skills and commands) so old installs don't rot; `agent-config --dry-run`
|
|
37
|
-
previews exactly what gets removed before any deletion.
|
|
38
|
-
|
|
39
|
-
Pack-scoped projection (opt-in) and the TypeScript CLI + local-server
|
|
40
|
-
foundation also land — both non-breaking by default.
|
|
41
|
-
|
|
42
|
-
### Breaking changes (6.0.0)
|
|
43
|
-
|
|
44
|
-
**1. Condensed output moved: root `.agent-src/` → `dist/agent-src/`** ([ADR-058])
|
|
45
|
-
|
|
46
|
-
- **Who is affected:** consumers whose scripts or tool configs hard-code
|
|
47
|
-
`.agent-src/…` paths (plugin-marketplace clones, custom symlinks, CI globs).
|
|
48
|
-
Default installs are **not** affected — regenerated projections pick up the
|
|
49
|
-
new location automatically.
|
|
50
|
-
- **What breaks:** the repo-root `.agent-src/` tree is removed, so any
|
|
51
|
-
hard-coded `.agent-src/<x>` path no longer resolves.
|
|
52
|
-
- **How to migrate:** replace `.agent-src/` with `dist/agent-src/` in any
|
|
53
|
-
path you hard-code.
|
|
54
|
-
- **Which command:** `agent-config install` (consumers) — or `task sync` +
|
|
55
|
-
`task generate-tools` (this repo) — regenerates projections at the new
|
|
56
|
-
location; the upgrade reaper removes the stale root tree. No manual path
|
|
57
|
-
edits beyond your own hard-codes.
|
|
58
|
-
- **Rationale:** the root tree conflated source and build output; moving
|
|
59
|
-
condensed output under `dist/` makes "generated, do not edit" unambiguous
|
|
60
|
-
and keeps the repo root clean.
|
|
61
|
-
|
|
62
|
-
**2. Settings key renamed: `cost_profile` → `rule_loading_tier`**
|
|
63
|
-
|
|
64
|
-
- **Who is affected:** anyone with a hand-edited `cost_profile` in
|
|
65
|
-
`.agent-settings.yml`.
|
|
66
|
-
- **What breaks:** nothing immediately — `cost_profile` is read as a fallback
|
|
67
|
-
during the grace period. The colliding memory-cadence meaning moved to its
|
|
68
|
-
own `memory.cadence` key (`auto`/`always`/`never`).
|
|
69
|
-
- **How to migrate:** automatic.
|
|
70
|
-
- **Which command:** `agent-config install` / `setup` migrates existing
|
|
71
|
-
settings on the next run. No manual action required.
|
|
72
|
-
- **Rationale:** one key carried two unrelated meanings (rule-loading footprint
|
|
73
|
-
vs. memory-line cadence); splitting them removes the collision.
|
|
74
|
-
|
|
75
|
-
[ADR-058]: docs/decisions/ADR-058-condensed-output-relocation-to-dist.md
|
|
76
|
-
|
|
77
|
-
### Feedback wanted — multi-agent MCP config (demand probe, `ADR-086`)
|
|
78
|
-
|
|
79
|
-
We are deciding whether to build a cross-agent MCP discovery / install helper.
|
|
80
|
-
One question — answer in [Discussions](https://github.com/event4u-app/agent-config/discussions):
|
|
81
|
-
|
|
82
|
-
> **Do you run more than one AI coding agent in the same project, and is keeping
|
|
83
|
-
> MCP-server config in sync across them painful?**
|
|
84
|
-
> (a) very painful · (b) somewhat · (c) single-agent, not applicable · (d) I already
|
|
85
|
-
> self-script it.
|
|
86
|
-
|
|
87
|
-
This gates the read-only MCP discovery helper (`agent-config mcp:search`) and the
|
|
88
|
-
deferred auto-install question (`ADR-086`).
|
|
89
|
-
|
|
90
|
-
### Added — humanizer (AI-tell removal for deliverable prose) (`road-to-humanized-writing` + `road-to-humanizer-hardening`)
|
|
91
|
-
|
|
92
|
-
- **`humanizer` skill + `/humanize` command** (gtm-marketing pack) — remove
|
|
93
|
-
AI-writing tells from deliverable prose (posts, articles, drafts) via a
|
|
94
|
-
draft→audit→final loop; scoped to deliverable text only, never chat replies
|
|
95
|
-
or repo docs.
|
|
96
|
-
- **`detect_ai_tells.ts` detector** — deterministic hard-tell / weighted-cluster
|
|
97
|
-
/ em-dash-density scan (EN + DE), with a hidden-unicode ingestion scan and a
|
|
98
|
-
ReDoS length bound on untrusted input.
|
|
99
|
-
- **Behavior change — write-engine step 4b is default-on.** Ghostwriter /
|
|
100
|
-
`post-as` drafts now pass a humanize audit before delivery; opt out per run
|
|
101
|
-
with `--raw`. The mechanical detector pass runs when a Node runtime is
|
|
102
|
-
present and degrades to a prose-only audit otherwise — the new
|
|
103
|
-
`humanizer-runtime` doctor check reports which path an install gets.
|
|
104
|
-
- **Disclosure footer stays inviolable** through the audit; quoted/secondhand
|
|
105
|
-
text is never rewritten.
|
|
106
|
-
|
|
107
|
-
### Added — `agents/` directory contract + gitignore hygiene (`road-to-agents-dir-and-gitignore-hygiene`)
|
|
108
|
-
|
|
109
|
-
- **`docs/contracts/agents-layout.md`** — authoritative contract for every top-level entry in `agents/` (purpose, git policy, retention, consumer-scope); includes the User Inbox Workflow (`agents/tmp/` → `agents/tmp.old/`).
|
|
110
|
-
- **`src/config/agents-paths.yml`** — machine-readable classification manifest for all agent-managed paths; feeds the new CI freshness gate.
|
|
111
|
-
- **`agents/tmp/` + `agents/tmp.old/` now covered in consumer `gitignore-block.txt`** — both dirs were previously unignored for consumers.
|
|
112
|
-
- **New CI gates** (all wired into `task ci`):
|
|
113
|
-
- `check-gitignore-freshness` — verifies every manifest entry is in the consumer block.
|
|
114
|
-
- `check-generator-output-coverage` — every `generate_*` output root in `condense.ts` must be classified.
|
|
115
|
-
- `check-tracked-but-ignored` — fails if any git-tracked file is now covered by an ignore pattern (makes the bench-run class of drift impossible to reintroduce).
|
|
116
|
-
- `check-generated-artefact-headers` — validates freshness markers on regenerable analysis artefacts.
|
|
117
|
-
- **`lint_agents_layout.ts` extended** — in source-repo mode, unknown **directories** at the `agents/` root are now CI errors (previously only flat files were checked); `CONSUMER_EXPECTED_ENTRIES` extended with the full consumer-scope allowlist.
|
|
118
|
-
- **Janitor** (`task janitor` / `task janitor-apply`) — TTL sweep for `agents/tmp.old/` (30 days) and `agents/runtime/tmp/` (7 days); reports user inbox state and `.harvest-local/` size; never auto-sweeps the user inbox.
|
|
119
|
-
- **`/sync-gitignore:fix` extended** (Steps 5–6) — now also reports ignored-but-tracked files with the exact `git rm --cached` commands, and runs the manifest coverage check.
|
|
120
|
-
- **`/roadmap:create`** — moves consumed `agents/tmp/` files to `agents/tmp.old/` in the same reply (inbox workflow).
|
|
121
|
-
- **`agent-docs-writing` skill** — documents the user inbox contract; redirected `prediction-pool` agent scratch from `agents/tmp/` to `agents/runtime/tmp/`.
|
|
122
|
-
|
|
123
|
-
#### Migration
|
|
124
|
-
|
|
125
|
-
If you have a consumer project:
|
|
126
|
-
|
|
127
|
-
1. Run `agent-config sync-gitignore --cleanup-legacy` to add `/agents/tmp/` and `/agents/tmp.old/` to your `.gitignore`.
|
|
128
|
-
2. Run `git ls-files -ci --exclude-standard` — if any files appear, run the printed `git rm --cached` commands and commit.
|
|
129
|
-
|
|
130
|
-
### Added — pack-scoped projection (opt-in, `road-to-6.0.0-b`)
|
|
131
|
-
|
|
132
|
-
The projector can now write only the **active profile + packs'** artefacts into
|
|
133
|
-
the host-tool trees instead of all 150 commands / 223 skills (ADR-040 —
|
|
134
|
-
projection-time filtering, not a runtime resolver).
|
|
135
|
-
|
|
136
|
-
- **Non-breaking by default.** A new `projection.mode` setting defaults to
|
|
137
|
-
`legacy-all` — `npm update` to 6.0.0 changes nothing. Scoped projection is
|
|
138
|
-
**opt-in** and never inferred from `profile.id`.
|
|
139
|
-
- **Opt in** with `agent-config use --profile=<id>` (sets `projection.mode:
|
|
140
|
-
scoped`), then `agent-config refresh` to re-project. Selected packs are the
|
|
141
|
-
profile's base `packs` unioned with the `runtime.active_packs` session
|
|
142
|
-
overlay, expanded over the `requires` graph. `agent-config use
|
|
143
|
-
--profile=legacy-all` restores the full surface.
|
|
144
|
-
- **Profiles are self-sufficient** — every `skills_hint` skill resolves from
|
|
145
|
-
the profile's base packs (the new `profile.packs` field). Resolved in the AI
|
|
146
|
-
council, 2026-06-03.
|
|
147
|
-
- **Atomic.** A failed scoped projection restores the full (legacy-all) tree.
|
|
148
|
-
The committed plugin marketplace (`.claude-plugin/`) and the Augment tree
|
|
149
|
-
(`.augment/`) always project the full set in 6.0.0.
|
|
150
|
-
|
|
151
|
-
**Staged rollout (this release ships 6.0.0 only):**
|
|
152
|
-
|
|
153
|
-
1. **6.0.0** — default `legacy-all` (opt-in profiles). *This release.*
|
|
154
|
-
2. **6.1.0** — default flips to profile/scoped mode with a `--legacy` escape.
|
|
155
|
-
3. **7.0.0** — removes `legacy-all` **only if** telemetry shows <10% usage.
|
|
156
|
-
|
|
157
|
-
The default flip and removal are explicitly **out of scope** for 6.0.0 and
|
|
158
|
-
gated on the telemetry from 6.0.0-C. Deferred to 6.0.0-C: a
|
|
159
|
-
`skills_discoverable` field, reactive just-in-time pack activation, and the
|
|
160
|
-
per-pack budget lint.
|
|
161
|
-
|
|
162
|
-
### Added — team mode: governed cross-model review (default-off, `road-to-team-mode`)
|
|
163
|
-
|
|
164
|
-
A new default-off `/team` command family (`review`, `adversarial`, `delegate`,
|
|
165
|
-
`status`) that governs the official `openai/codex-plugin-cc` as the Claude-Code
|
|
166
|
-
transport — a second strong model reviewing the real working-tree diff (depth),
|
|
167
|
-
the complement to the council's neutral-artefact breadth.
|
|
168
|
-
|
|
169
|
-
- **Default-off + fail-closed.** With `ai_team.enabled: false` (default) no
|
|
170
|
-
command is suggested and invocation prints an enable pointer — byte-identical
|
|
171
|
-
to pre-roadmap behaviour. On Claude-Code hosts the wrappers are thin
|
|
172
|
-
delegations to `/codex:*`; absent the plugin they fail closed with the
|
|
173
|
-
`agent-config doctor --check team` remediation, never a silent no-op.
|
|
174
|
-
- **Multi-host fallback (review lens only).** On non-Claude-Code hosts
|
|
175
|
-
`/team:review` sends a size-capped repo-diff bundle through the existing
|
|
176
|
-
subscription `OpenAICliClient`, with an honest capability-delta header.
|
|
177
|
-
- **Governed, not rebuilt.** Nothing upstream-maintained is reimplemented; the
|
|
178
|
-
Review-Gate stays upstream's (we add an opt-in loop-bound + ledger line), and
|
|
179
|
-
`/team:delegate` (write access) sits behind a second opt-in
|
|
180
|
-
`ai_team.allow_delegate: false`. Config: `docs/contracts/ai-team-config.md`.
|
|
181
|
-
- **No quality claim yet.** Cross-model defect-finding lift is unproven until
|
|
182
|
-
the Phase 5 benchmark runs (spend-gated); the docs describe workflow value
|
|
183
|
-
only, never a lift claim.
|
|
184
|
-
|
|
185
|
-
### Breaking — v4.0.0 unified setup (`road-to-unified-setup`)
|
|
186
|
-
|
|
187
|
-
`v4.0.0` is a **hard-cut** release. The legacy Python installer at
|
|
188
|
-
`scripts/install.py` and the standalone TypeScript installer workspace
|
|
189
|
-
at `packages/core/installer/{src,tests}` are no longer the canonical
|
|
190
|
-
install path; the wizard now boots a single Fastify process at
|
|
191
|
-
`agent-config install` / `agent-config setup` and drives the whole
|
|
192
|
-
plan + apply through the TypeScript engine under `src/install/`.
|
|
193
|
-
|
|
194
|
-
**Migrating from v3.x**
|
|
195
|
-
|
|
196
|
-
1. The first `agent-config install` run detects an existing v3 tree at
|
|
197
|
-
`~/.event4u/agent-config/` and renders a **backup screen** before
|
|
198
|
-
any write. Pick **"Backup v3 and proceed"** — the wizard copies the
|
|
199
|
-
v3 layout to `~/.event4u/agent-config.v3.bak/` atomically and runs
|
|
200
|
-
the v4 install against a clean slate.
|
|
201
|
-
2. No auto-migration runs. Rolling back is a single rename:
|
|
202
|
-
`mv ~/.event4u/agent-config.v3.bak ~/.event4u/agent-config`.
|
|
203
|
-
3. Re-running `npx @event4u/agent-config install` against an active v3
|
|
204
|
-
layout (without backup) is refused — silent overwrite is gone.
|
|
205
|
-
|
|
206
|
-
**Removed / retired**
|
|
207
|
-
|
|
208
|
-
- `packages/core/installer/{src,tests,package.json,tsconfig.json,
|
|
209
|
-
vitest.config.ts}` (the standalone `@event4u/installer` workspace)
|
|
210
|
-
and its workspaces declaration in the root `package.json`.
|
|
211
|
-
- `/install-via-agent` command — its JSON agent-mode protocol shipped
|
|
212
|
-
with the removed installer.
|
|
213
|
-
- `task installer-typecheck` / `task installer-test` gates in
|
|
214
|
-
`taskfiles/ci-fast.yml`.
|
|
215
|
-
|
|
216
|
-
**Kept for one release**
|
|
217
|
-
|
|
218
|
-
- `scripts/install.py` remains so the `curl | bash setup.sh` CURL
|
|
219
|
-
fallback + `smoke-public-install.yml` CI matrix keep working. It is
|
|
220
|
-
**not** invoked from the modern npx flow. Full removal is scheduled
|
|
221
|
-
for v5.
|
|
222
|
-
|
|
223
|
-
**New features (Phase B / C / E)**
|
|
224
|
-
|
|
225
|
-
- Hard-stop **continue-screen** after Step 3 (modules) when entering
|
|
226
|
-
via `agent-config install`; `setup` lands directly at Step 4
|
|
227
|
-
(identity) via `?mode=setup`. (B5)
|
|
228
|
-
- `WIZARD_READY <url>` line on stdout once Fastify is bound; the new
|
|
229
|
-
`scripts/bootstrap.sh` watches for it so a Node bootstrap does not
|
|
230
|
-
poll the port. (B4 + C1)
|
|
231
|
-
- **Recovery-pre-step** — `GET /api/v1/install/recovery` surfaces an
|
|
232
|
-
abort marker (Resume / Rollback / Ignore) when the previous run
|
|
233
|
-
closed mid-apply. (B4 + Council Finding #24)
|
|
234
|
-
- **v3 backup screen** — `GET /api/v1/install/legacy-v3` +
|
|
235
|
-
`POST /api/v1/install/backup-v3` drive the migration. (E2 +
|
|
236
|
-
Council Finding #21)
|
|
237
|
-
- **Batch-conflict resolution** at ≥ 5 conflicts (B3 + Council
|
|
238
|
-
Finding #19).
|
|
239
|
-
|
|
240
|
-
**TypeScript CLI shell + local server foundation (`typescript-cli-and-local-gui-foundation`)** —
|
|
241
|
-
Phase-5 cutover of the `agent-config` binary from a 955-line Bash
|
|
242
|
-
dispatcher to a compiled TypeScript entry point. The shell handles
|
|
243
|
-
native commands (`versions`, `doctor-shell`, `ui:serve`) and forwards
|
|
244
|
-
every other subcommand to the legacy logic, now living at
|
|
245
|
-
`scripts/_dispatch.bash`. New surfaces:
|
|
246
|
-
|
|
247
|
-
- **TS bin entry** — `package.json#bin` flipped to
|
|
248
|
-
`dist/cli/agent-config.js`. `npm run build:cli` compiles and
|
|
249
|
-
`chmod +x`-es the entry; `scripts/prepack-check.mjs` runs on
|
|
250
|
-
`npm pack` / `npm publish` and asserts the compiled file exists,
|
|
251
|
-
is executable, and carries the Node shebang.
|
|
252
|
-
- **Bash shim** — the old path `scripts/agent-config` is now a
|
|
253
|
-
~30-line deprecation shim that forwards to the TS binary. The real
|
|
254
|
-
dispatch logic moved to `scripts/_dispatch.bash` to prevent the
|
|
255
|
-
forward-and-back loop. Doctor probes both paths.
|
|
256
|
-
- **Embedded Fastify server** — `agent-config ui:serve` boots a
|
|
257
|
-
local server bound to `127.0.0.1`, on the first free port in
|
|
258
|
-
`41000–41999`. Wire shape locked in
|
|
259
|
-
[`docs/contracts/local-server-api.md`](docs/contracts/local-server-api.md)
|
|
260
|
-
(beta): per-process bearer token, Host-header guard, Origin
|
|
261
|
-
allow-list, `GET /api/v1/ping` liveness probe.
|
|
262
|
-
- **CI gates** — `task lint-ts`, `task typecheck-ts`, `task test-ts`,
|
|
263
|
-
`task build-ts` wired into `task ci` and `task ci-strict`. New
|
|
264
|
-
GitHub Actions job `TypeScript Tests` runs the same harness across
|
|
265
|
-
`ubuntu-latest` and `macos-latest` on Node 20, including the
|
|
266
|
-
`prepack-check.mjs` gate.
|
|
267
|
-
- **Test coverage** — 47 Vitest tests across
|
|
268
|
-
`tests/cli/{paths,registry,cli-e2e}.test.ts`,
|
|
269
|
-
`tests/server/{app,port,token}.test.ts`, and
|
|
270
|
-
`tests/ui/build.test.ts`. CLI-e2e exercises the shim → dispatcher
|
|
271
|
-
→ TS round trip; server tests cover the auth gate and 421/403/401
|
|
272
|
-
failure modes.
|
|
273
|
-
|
|
274
|
-
Decision record: [`docs/decisions/ADR-012-typescript-cli-shell.md`](docs/decisions/ADR-012-typescript-cli-shell.md).
|
|
275
|
-
|
|
276
|
-
**Discovery polish — `--root` override, doctor diagnostics, install-mode marker (`step-8-discovery-polish`)** —
|
|
277
|
-
follow-up to step-7 driven by AI Council review of PR #157. Adds an
|
|
278
|
-
explicit escape hatch for monorepos, surfaces the resolution decision
|
|
279
|
-
path, and replaces install-mode heuristics with an authoritative
|
|
280
|
-
marker file. New surfaces:
|
|
281
|
-
|
|
282
|
-
- **Global `--root <dir>` flag** — parsed by the bash dispatcher
|
|
283
|
-
before any subcommand and wins over every other channel (subcommand
|
|
284
|
-
`--project`, `AGENT_CONFIG_PROJECT_ROOT` env-pin, anchor walk).
|
|
285
|
-
Implemented as `AGENT_CONFIG_ROOT_OVERRIDE=1` +
|
|
286
|
-
`AGENT_CONFIG_PROJECT_ROOT` plus a new `ORIGIN_ROOT_FLAG` so doctor
|
|
287
|
-
can attribute the resolution. Wrapper-coupling warning emitted on
|
|
288
|
-
stderr when `--root` overrides a wrapper-pinned env-pin.
|
|
289
|
-
- **Fail-loud root validation** — `--root`, `--project`, and
|
|
290
|
-
`AGENT_CONFIG_PROJECT_ROOT` all reject non-existent paths and
|
|
291
|
-
non-directories via `ProjectRootError` mapped to exit code `2`. No
|
|
292
|
-
silent CWD fallback when the operator explicitly named a path.
|
|
293
|
-
- **`agent-config doctor --trace-root`** — read-only diagnostic that
|
|
294
|
-
prints every ancestor probed during root discovery, the winning
|
|
295
|
-
anchor, and the originating channel. `--json` for machine-readable
|
|
296
|
-
output. Short-circuits the drift report.
|
|
297
|
-
- **`agent-config doctor --context`** — prints effective project
|
|
298
|
-
root, origin, install mode + source, settings-layer chain, wrapper
|
|
299
|
-
state, and env-pin/override flags. `--json` available.
|
|
300
|
-
- **Install-mode marker file** — `agents/.agent-state/install-mode.txt`
|
|
301
|
-
written by `install.py` with `minimal\n` or `full\n`. Doctor uses
|
|
302
|
-
the marker authoritatively for new installs; back-compat heuristic
|
|
303
|
-
(`AGENTS.md` + copilot bridges) only fires when the marker is absent.
|
|
304
|
-
- **Minimal-install upgrade hint** — `install.py` emits a stderr
|
|
305
|
-
hint after a `--minimal` install describing how to upgrade to a
|
|
306
|
-
full install when the user is ready.
|
|
307
|
-
- **Test coverage** — `tests/test_root_override.py` (precedence,
|
|
308
|
-
fail-loud for each channel, end-to-end CLI exit-2 check),
|
|
309
|
-
`tests/test_doctor_trace.py` (text + JSON shape for both flags,
|
|
310
|
-
marker-vs-heuristic install-mode detection, origin propagation).
|
|
311
|
-
Twenty new tests, full suite green.
|
|
312
|
-
|
|
313
|
-
Council artefacts:
|
|
314
|
-
`agents/council-sessions/step-8-discovery-polish-decision.md` — 2
|
|
315
|
-
rounds + peer-review, $0.12. Decision cut `template-gen` (A4) and
|
|
316
|
-
`anchor-freeze AC` (A6), kept `--trace-root` and `--context` as two
|
|
317
|
-
distinct flags (host override of Claude's consolidation proposal),
|
|
318
|
-
and added the install-mode marker file as the hybrid resolution to
|
|
319
|
-
Q5 (marker for new installs, filesystem heuristic for back-compat).
|
|
320
|
-
|
|
321
|
-
**Agent-folder discovery + `--minimal` init (`step-7-agent-folder-discovery-and-minimal-init`)** —
|
|
322
|
-
project-root discovery widens beyond `.git` so non-git checkouts,
|
|
323
|
-
monorepo sub-trees, and `agent-config`-only worktrees resolve
|
|
324
|
-
correctly, and a new minimal-init payload lets teams keep the
|
|
325
|
-
runtime global while committing only the per-project shell. New
|
|
326
|
-
surfaces:
|
|
327
|
-
|
|
328
|
-
- **Boundary anchors (D1+D3)** — `.git` plus `agents/` containing
|
|
329
|
-
**any** of `roadmaps/`, `.ai-council.yml`, `roadmaps-progress.md`.
|
|
330
|
-
Bare `agents/` is **not** an anchor (false-positive guard). When
|
|
331
|
-
no boundary anchor exists in any ancestor, the **outermost**
|
|
332
|
-
`.agent-settings.yml` becomes the root so the layered-settings
|
|
333
|
-
cascade survives. Same-level tiebreaker:
|
|
334
|
-
`.agent-settings.yml` > `agents/` > `.git` (diagnostic anchor
|
|
335
|
-
name only — resolved path is identical).
|
|
336
|
-
- **`resolve_project_root(arg)` helper** (`scripts/_lib/agent_settings.py`)
|
|
337
|
-
— single entry point used by every `cmd_*.py`. Precedence:
|
|
338
|
-
explicit `--project`/`--target` → `AGENT_CONFIG_PROJECT_ROOT` env
|
|
339
|
-
→ anchor walk → CWD fallback. Returns `(root, origin)` so doctor
|
|
340
|
-
can surface which step resolved.
|
|
341
|
-
- **`AGENT_CONFIG_PROJECT_ROOT` env pin** — the `./agent-config`
|
|
342
|
-
wrapper exports its own directory before forwarding to the master
|
|
343
|
-
CLI, so subcommands invoked from a subdirectory (or after
|
|
344
|
-
`os.chdir`) stay pinned to the right root without re-walking.
|
|
345
|
-
- **`agent-config init --minimal`** — writes exactly three files:
|
|
346
|
-
`.agent-settings.yml`, `agents/.gitkeep`, and the `./agent-config`
|
|
347
|
-
wrapper. No `.augment/` / `.claude/` / `.cursor/` / `AGENTS.md`.
|
|
348
|
-
Refuses to run when an ancestor already carries an anchor
|
|
349
|
-
(nested-install guard); override with explicit `--target`.
|
|
350
|
-
Does **not** pin `agent_config_version` (D4) — consumer follows
|
|
351
|
-
the global CLI.
|
|
352
|
-
- **`AGENT_CONFIG_LEGACY_ANCHOR=1` kill-switch (D5)** — reverts
|
|
353
|
-
discovery to the pre-step-7 `.git`-only walk for one minor-version
|
|
354
|
-
soak. Scheduled for removal after the soak window unless
|
|
355
|
-
telemetry surfaces a missing case.
|
|
356
|
-
- **Performance budget (D6)** — anchor walk is `O(depth)` with at
|
|
357
|
-
most three `Path.exists()` calls per level. Test asserts
|
|
358
|
-
`< 5 ms` at depth 20 (`tests/test_anchor_perf.py`).
|
|
359
|
-
- **Test coverage** — `tests/test_project_root_anchors.py`
|
|
360
|
-
(precedence, mixed-anchor edge case, bare `agents/` rejection),
|
|
361
|
-
`tests/test_kill_switch.py`, `tests/test_minimal_init.py`
|
|
362
|
-
(payload shape + nested-install refusal), `tests/test_subdir_invocation.py`
|
|
363
|
-
(env-var precedence, wrapper-pin surviving `chdir`),
|
|
364
|
-
`tests/test_anchor_perf.py`.
|
|
365
|
-
|
|
366
|
-
Council artefacts: `agents/council-sessions/step-7-d3-cascade-conflict-{question,decision}.md`
|
|
367
|
-
— D3 strict closest-leaf-wins was relaxed to boundary-vs-layer
|
|
368
|
-
split after the analysis lens flagged four pre-existing cascade
|
|
369
|
-
tests as the contract, not edge cases.
|
|
370
|
-
|
|
371
|
-
**PR #150 follow-up hardening (`step-9-pr150-feedback-hardening`)** —
|
|
372
|
-
twelve-phase response to the Claude+GPT review findings on PR #150 plus
|
|
373
|
-
three user-requested settings-shape changes (CLI-default, preferred-single
|
|
374
|
-
member, low-impact dispatch) under one roadmap. New surfaces:
|
|
375
|
-
|
|
376
|
-
- **`defaults.member_mode: cli | api`** (default `cli`) — flips the
|
|
377
|
-
global transport default to CLI-first onboarding (subscription auth,
|
|
378
|
-
no API key). Per-member explicit `mode:` keeps overriding.
|
|
379
|
-
- **`routing.solo_member_fallback_chain: [provider, ...]`** — ordered
|
|
380
|
-
preference list for single-member dispatch. Disabled members are
|
|
381
|
-
skipped; duplicates rejected at config-load time; all-invalid
|
|
382
|
-
escalates to full council (never fails the decision). 15-minute
|
|
383
|
-
auth cache, 3-second timeout per probe.
|
|
384
|
-
- **`low_impact.dispatch: full | single`** (default `full`) — opt-in
|
|
385
|
-
cost-efficient routing for low-impact decisions through
|
|
386
|
-
`routing.solo_member_fallback_chain`. **Iron Law:** `high_impact`
|
|
387
|
-
and `user_required` dispatch are NOT configurable — config validator
|
|
388
|
-
rejects both top-level and `decision_resolution.classes.*` forms,
|
|
389
|
-
including YAML `<<:` anchor smuggling attempts. Sentinel in
|
|
390
|
-
`tests/test_iron_law_config.py`.
|
|
391
|
-
- **Shadow-mode safety net** — when `low_impact.dispatch: single` is
|
|
392
|
-
active, sample (default `0.1`) decisions go to both solo + full
|
|
393
|
-
council. Disagreements append to `agents/council-shadow-log.jsonl`
|
|
394
|
-
(privacy-redactor enforced). `agent-config council shadow-report`
|
|
395
|
-
computes the 7-day rolling SLO (`OK <5%` / `WARN 5–8%` / `BREACH
|
|
396
|
-
>8%`); pre-flight cost disclosure surfaces the verdict. No auto-
|
|
397
|
-
revert — humans decide.
|
|
398
|
-
- **Confidence gate — auto-escalation on uncertain solo runs**
|
|
399
|
-
(`scripts/ai_council/confidence_gate.py`) — every solo response is
|
|
400
|
-
scored before the verdict is returned. Four escalation reasons in
|
|
401
|
-
priority order: `refusal` (empty / refusal markers), `split`
|
|
402
|
-
(two-verdict / option-A-vs-B / Variante 1/2), `short_response`
|
|
403
|
-
(< 20 chars), `low_confidence` (explicit `Confidence: 0.X` marker
|
|
404
|
-
or hedge-word density below floor). Zero extra LLM calls —
|
|
405
|
-
heuristics run in-process. Escalations append `escalated: true` +
|
|
406
|
-
`escalation_reason` to `agents/council-shadow-log.jsonl`; the SLO
|
|
407
|
-
banner appends the rolling auto-escalation rate so quiet uncertainty
|
|
408
|
-
cannot hide behind a flat disagreement rate.
|
|
409
|
-
- **`low_impact.solo_confidence_floor: float`** (default `0.7`,
|
|
410
|
-
range `[0.0, 1.0]`) — threshold for the confidence gate.
|
|
411
|
-
**Iron Law:** `solo_confidence_floor` is also rejected on
|
|
412
|
-
top-level `high_impact:` and `user_required:` — those classes
|
|
413
|
-
never run solo, so a solo-specific knob there is incoherent.
|
|
414
|
-
- **`AGENT_CONFIG_FORCE_FULL_COUNCIL=1`** — per-invocation kill-switch
|
|
415
|
-
that forces full council regardless of `low_impact.dispatch`.
|
|
416
|
-
- **Airgap detection** (`scripts/ai_council/airgap.py`) — installer
|
|
417
|
-
first-run probes DNS for `api.anthropic.com`, `api.openai.com`,
|
|
418
|
-
`generativelanguage.googleapis.com` with 1s timeout per host. All
|
|
419
|
-
fail → banner `airgapped environment detected — defaulting to
|
|
420
|
-
mode: api` and `defaults.member_mode: api` recommendation.
|
|
421
|
-
- **Fast-path marker visibility Iron-Law rule**
|
|
422
|
-
(`.agent-src.uncondensed/rules/fast-path-marker-visibility.md`,
|
|
423
|
-
kernel-tier, always-active) — host agents MUST surface
|
|
424
|
-
`Resolved via low-impact council fast-path: …` markers verbatim;
|
|
425
|
-
swallowing them is a rule violation.
|
|
426
|
-
- **`/memory learn-low-impact --preview`** (default) / `--apply` —
|
|
427
|
-
preview shows promoted entries, refused entries with redaction
|
|
428
|
-
reasons, source-project-stripped diff, and the upstream PR body
|
|
429
|
-
draft before anything is written.
|
|
430
|
-
- **Corpus parser hardening** — typed `CorpusParseError(reason=...)`
|
|
431
|
-
replaces silent skip; seven failure-mode fixtures in
|
|
432
|
-
`tests/fixtures/corpus-robust/` (missing anchor · renamed heading ·
|
|
433
|
-
bullet-without-quotes · duplicate entry · anti-example wrongly
|
|
434
|
-
under Validated · malformed ISO timestamp · redactor-bypass).
|
|
435
|
-
Contract in `docs/contracts/low-impact-corpus-format.md`.
|
|
436
|
-
- **Fuzzy corpus matching (opt-in)** —
|
|
437
|
-
`low_impact.fuzzy_match.{enabled,threshold}` (defaults `false`,
|
|
438
|
-
`0.92`) using `difflib.SequenceMatcher`. High-impact trigger veto
|
|
439
|
-
+ anti-example veto preserve the Iron Law.
|
|
440
|
-
- **CLI-binary UX** — pre-flight cost disclosure now prints
|
|
441
|
-
`member X skipped: binary not found, install via <hint>` per
|
|
442
|
-
skipped CLI member; hints sourced from
|
|
443
|
-
`scripts/ai_council/cli_hints.py`.
|
|
444
|
-
- **Doctor CLI checks** — `agent-config doctor --check council-cli`
|
|
445
|
-
reports per CLI member: binary present · auth probe · parse
|
|
446
|
-
fixture · quota remaining · billable flag.
|
|
447
|
-
- **Iron-Law bypass linter** — `audit_cloud_compatibility.py
|
|
448
|
-
--iron-law` scans `scripts/` for raw YAML loads of `ai-council.yml`
|
|
449
|
-
that skip the config validator; baseline is 0 findings; suppress
|
|
450
|
-
legitimate cases with `# iron-law-ok: <reason>` on the load line.
|
|
451
|
-
|
|
452
|
-
Surface delta: **4 new config knobs** (`defaults.member_mode`,
|
|
453
|
-
`routing.solo_member_fallback_chain`, `low_impact.dispatch`,
|
|
454
|
-
`low_impact.solo_confidence_floor`),
|
|
455
|
-
**1 new env-var kill-switch** (`AGENT_CONFIG_FORCE_FULL_COUNCIL`),
|
|
456
|
-
**1 new CLI subcommand** (`council shadow-report`), **1 new CLI flag**
|
|
457
|
-
(`council run --single`), **1 new always-active rule**
|
|
458
|
-
(`fast-path-marker-visibility`), **2 new local-only files**
|
|
459
|
-
(`agents/council-shadow-log.jsonl`, gitignored;
|
|
460
|
-
`scripts/ai_council/airgap.py`). Backward-compat: defaults map the
|
|
461
|
-
existing behaviour (`dispatch=full`, empty chain, `member_mode=cli`
|
|
462
|
-
in fresh installs; existing configs read unchanged). No migration
|
|
463
|
-
script — defaults are silent-safe.
|
|
464
|
-
|
|
465
|
-
**Low-impact corpus YAML lockfile (`step-10-corpus-yaml-lockfile`)** —
|
|
466
|
-
follow-up to the PR #150 review (Punkt 4): the Markdown parser used to
|
|
467
|
-
be the runtime source-of-truth for the low-impact decisions corpus,
|
|
468
|
-
making every human edit-variation (curly quotes, bullet style,
|
|
469
|
-
whitespace, heading rename) a potential parser bomb on the hot path.
|
|
470
|
-
Switched the runtime to a generated YAML lockfile while keeping
|
|
471
|
-
Markdown as the human-editable source. New surfaces:
|
|
472
|
-
|
|
473
|
-
- **`scripts/ai_council/compile_corpus.py`** — build tool that runs
|
|
474
|
-
`parse_corpus_strict()` over `agents/low-impact-decisions.md` and
|
|
475
|
-
emits `agents/low-impact-decisions.lock.yaml` (schema-v1, sorted
|
|
476
|
-
keys, deterministic). `--check` mode exits `1` on drift, `2` on
|
|
477
|
-
parse error.
|
|
478
|
-
- **`agents/low-impact-decisions.lock.yaml`** — generated, **committed**
|
|
479
|
-
lockfile. Schema `{schema_version: 1, provenance: {source_path,
|
|
480
|
-
source_sha256, last_upstreamed}, validated, probation, anti_examples}`.
|
|
481
|
-
Diffed in PR reviews alongside the Markdown source.
|
|
482
|
-
- **`low_impact_corpus.load_corpus_lock()`** — new primitive that
|
|
483
|
-
loads the YAML lockfile and re-materialises a `CorpusParseResult`.
|
|
484
|
-
Schema-version mismatch raises `CorpusParseError` with reason
|
|
485
|
-
`schema_version_mismatch`.
|
|
486
|
-
- **Lenient loaders prefer YAML** — `load_validated_phrases` and
|
|
487
|
-
`load_anti_example_phrases` (consumed by `necessity.py` and
|
|
488
|
-
`low_impact.py` on the hot path) check for the sibling `.lock.yaml`
|
|
489
|
-
first. Missing / malformed lockfile → silent fallback to lenient
|
|
490
|
-
Markdown parsing, so a fresh clone before `task sync` still works.
|
|
491
|
-
- **CI gate** — `task compile-corpus` runs as part of `task sync` and
|
|
492
|
-
`task consistency` (before `git diff --quiet`). A stale lockfile
|
|
493
|
-
fails CI the same way `.agent-src/` drift does.
|
|
494
|
-
- **Preview tool unchanged** — `learn_low_impact_preview.py` keeps
|
|
495
|
-
reading the Markdown directly via `parse_corpus_strict`; it runs
|
|
496
|
-
*before* `task sync` rebuilds the lockfile, so it must read whatever
|
|
497
|
-
the user just edited.
|
|
498
|
-
|
|
499
|
-
The Markdown parser stays in the repo as a build-time dependency, not
|
|
500
|
-
a runtime dependency — a parser regression breaks `task consistency`,
|
|
501
|
-
never the live council. Privacy floor (`low-impact-corpus-privacy-floor`)
|
|
502
|
-
unchanged: the redactor scans entry text, not file format.
|
|
503
|
-
|
|
504
|
-
**Council quota & necessity transparency (`step-8-quota-necessity-transparency`)** —
|
|
505
|
-
the council's two pre-flight gates (`cli_call_budget` and
|
|
506
|
-
`necessity_classifier`) become observable and aligned with the
|
|
507
|
-
"Council always active when enabled" mental model. New surfaces:
|
|
508
|
-
|
|
509
|
-
- `council run` / `council debate` print a one-line
|
|
510
|
-
`council:quota · <provider> used/limit · …` summary before the
|
|
511
|
-
first member fires. Only providers with a configured per-day cap
|
|
512
|
-
appear; uncapped providers are omitted (no false metering).
|
|
513
|
-
- `cli_call_budget.warn_at` (float, default `0.8`) — once
|
|
514
|
-
`used / max_calls_per_day >= warn_at`, the summary line is
|
|
515
|
-
prefixed `⚠️` and a `council:quota · WARN` line names the
|
|
516
|
-
providers near the wall.
|
|
517
|
-
- New `agent-config council quota` subcommand dumps today's
|
|
518
|
-
`~/.event4u/agent-config/cli-calls.json` state plus the configured
|
|
519
|
-
caps. `--reset <provider> --confirm` clears today's counter for one
|
|
520
|
-
provider for manual rollover.
|
|
521
|
-
- **Necessity tier split (D2):** `necessity_classifier.user_explicit_mode`
|
|
522
|
-
(default `warn-only`) separates the agent and user_explicit tiers.
|
|
523
|
-
User-typed `/council` calls proceed by default with an annotated
|
|
524
|
-
stdout line; agent-initiated dispatches keep `educate` behaviour.
|
|
525
|
-
New `warn-only` mode joins the existing `off | educate | block`
|
|
526
|
-
enum — annotates the verdict but never skips.
|
|
527
|
-
- **Persistent events log (D3):** every necessity-gate decision
|
|
528
|
-
(`proceed` / `skip_necessity`) and every quota block
|
|
529
|
-
(`block_quota`) appends one JSON line to `agents/council-events.log`
|
|
530
|
-
(gitignored; never committed). Schema v1 with `schema_version`,
|
|
531
|
-
`ts_utc`, `lens`, `invocation`, `action`, `verdict`,
|
|
532
|
-
`provider_caps`, `original_ask_hash`. `original_ask` is hashed
|
|
533
|
-
`sha256[:12]` before write — the raw prompt is never persisted
|
|
534
|
-
(privacy floor per `agents/low-impact-decisions.md`).
|
|
535
|
-
- **Kill-switch (D5):** `AGENT_CONFIG_NO_EVENTS_LOG=1` disables
|
|
536
|
-
every events-log write in-process. Mirrors the
|
|
537
|
-
`AGENT_CONFIG_LEGACY_ANCHOR=1` pattern from step-7.
|
|
538
|
-
|
|
539
|
-
Surface delta: **1 new subcommand** (`council quota`), **2 new
|
|
540
|
-
config knobs** (`cli_call_budget.warn_at`,
|
|
541
|
-
`necessity_classifier.user_explicit_mode`), **1 new local-only file**
|
|
542
|
-
(`agents/council-events.log`, gitignored). Backward-compat:
|
|
543
|
-
existing `.agent-settings.yml` and `agents/.ai-council.yml` work
|
|
544
|
-
unchanged; new knobs are optional. Docs:
|
|
545
|
-
[`docs/contracts/ai-council-config.md`](docs/contracts/ai-council-config.md)
|
|
546
|
-
+ [`docs/installation.md`](docs/installation.md) § AI Council local
|
|
547
|
-
state.
|
|
548
|
-
|
|
549
|
-
Four roadmaps land in this release.
|
|
550
|
-
|
|
551
|
-
**Tier-0 trim (`road-to-surface-discipline` Phase 1)** — six CLI
|
|
552
|
-
commands moved from Tier-0 to Tier-1 in `./agent-config --help` to
|
|
553
|
-
collapse the daily-driver surface down to the seven commands a new
|
|
554
|
-
contributor actually needs in their first session. Commands stay
|
|
555
|
-
fully invokable by full name — only the default `--help` view
|
|
556
|
-
changed. Source of truth: `docs/contracts/command-surface-tiers.md`.
|
|
557
|
-
|
|
558
|
-
Pre/post diff of `./agent-config --help` Tier-0 block:
|
|
559
|
-
|
|
560
|
-
| Command | Pre | Post | Rationale |
|
|
561
|
-
|---|:-:|:-:|---|
|
|
562
|
-
| `init` | Tier-0 | Tier-0 | daily-driver entrypoint |
|
|
563
|
-
| `sync` | Tier-0 | Tier-0 | daily-driver entrypoint |
|
|
564
|
-
| `validate` | Tier-0 | Tier-0 | daily-driver entrypoint |
|
|
565
|
-
| `work` | Tier-0 | Tier-0 | daily-driver entrypoint |
|
|
566
|
-
| `implement-ticket` | Tier-0 | Tier-0 | daily-driver entrypoint |
|
|
567
|
-
| `help` | Tier-0 | Tier-0 | help meta-command |
|
|
568
|
-
| `--version` | Tier-0 | Tier-0 | help meta-command |
|
|
569
|
-
| `first-run` | Tier-0 | **Tier-1** | one-time setup; not in daily loop |
|
|
570
|
-
| `keys:install-anthropic` | Tier-0 | **Tier-1** | one-time credential setup |
|
|
571
|
-
| `keys:install-openai` | Tier-0 | **Tier-1** | one-time credential setup |
|
|
572
|
-
| `council:estimate` | Tier-0 | **Tier-1** | on-demand review tool |
|
|
573
|
-
| `council:run` | Tier-0 | **Tier-1** | on-demand review tool |
|
|
574
|
-
| `council:render` | Tier-0 | **Tier-1** | on-demand review tool |
|
|
575
|
-
|
|
576
|
-
Net surface delta: **0 new commands, 0 removed commands.** Only the
|
|
577
|
-
`--help` surfacing changed. Run `./agent-config --help --tier=1` for
|
|
578
|
-
the full power-user view (15 commands) or `--tier=all` for
|
|
579
|
-
maintenance / hooks / MCP / telemetry (26 additional commands).
|
|
580
|
-
|
|
581
|
-
**Diagnostic Hub (`road-to-surface-discipline` Phase 2)** — the
|
|
582
|
-
existing `./agent-config doctor` is repositioned as the single
|
|
583
|
-
entrypoint for health checks. New `CHECK_IDS` registry plus
|
|
584
|
-
`doctor --check <id>` filter; `--list-checks` enumerates every
|
|
585
|
-
runner; failing checks print the literal command line that
|
|
586
|
-
reproduces the failure. Surface delta: **0 new commands** — only
|
|
587
|
-
flags and registry plumbing.
|
|
588
|
-
|
|
589
|
-
**MCP beta gating (`road-to-surface-discipline` Phase 3)** — MCP
|
|
590
|
-
promotion criteria pinned in
|
|
591
|
-
[`docs/contracts/mcp-beta-criteria.md`](docs/contracts/mcp-beta-criteria.md)
|
|
592
|
-
with a four-gate contract (offline-readiness, scope, drift, runtime).
|
|
593
|
-
`doctor --check mcp-beta-readiness` enforces the gates; failing tests
|
|
594
|
-
under `tests/test_mcp_beta_gates.py` codify the promotion bar.
|
|
595
|
-
Cloud-scope behaviour cross-referenced from
|
|
596
|
-
[`docs/contracts/mcp-cloud-scope.md`](docs/contracts/mcp-cloud-scope.md).
|
|
597
|
-
|
|
598
|
-
**Architecture refresh (`road-to-surface-discipline` Phase 4)** —
|
|
599
|
-
[`docs/architecture.md`](docs/architecture.md) and
|
|
600
|
-
[`docs/mcp-server.md`](docs/mcp-server.md) re-anchor the 6-layer
|
|
601
|
-
system model (consumer → tools → installer → package → kernel →
|
|
602
|
-
runtime). `AGENTS.md` re-trimmed to honour the Thin-Root contract
|
|
603
|
-
(< 3,000 chars). No code churn — docs only.
|
|
604
|
-
|
|
605
|
-
**Tier-usage telemetry (`road-to-surface-discipline` Phase 5)** —
|
|
606
|
-
empirical retiering signal added behind a default-off opt-in. New
|
|
607
|
-
`telemetry.tier_usage` namespace in `.agent-settings.yml`; signal
|
|
608
|
-
contract pinned in
|
|
609
|
-
[`docs/contracts/command-clusters.md`](docs/contracts/command-clusters.md)
|
|
610
|
-
§ tier-usage (whitelist: `ts_bucket`, `command`, `tier`, `outcome`,
|
|
611
|
-
`user_hash`; hourly time buckets; 16-char salted user hash; no paths,
|
|
612
|
-
no argv). Retiering thresholds (≥ 20 invocations and ≥ 3 distinct
|
|
613
|
-
users over 30 days) live in the same contract. A new
|
|
614
|
-
`tier_usage_report.py` template script aggregates the local log into
|
|
615
|
-
a frequency table and refuses to render rows that violate the
|
|
616
|
-
privacy floor. The existing `doctor` gains a `tier-usage-readiness`
|
|
617
|
-
check (warn when disabled or empty; fail when every record is
|
|
618
|
-
poisoned; ok when ≥ 1 record passes the floor). Surface delta: **0
|
|
619
|
-
new commands, 0 new skills, 0 new personas** — telemetry rides on
|
|
620
|
-
the existing dispatcher and the existing `doctor` entrypoint.
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
**Package consolidation** — the standalone wrapper package
|
|
624
|
-
`@event4u/create-agent-config` is retired. `npx @event4u/agent-config init`
|
|
625
|
-
is now the canonical one-shot entrypoint; the bundle package gains an
|
|
626
|
-
`init` subcommand that delegates to `scripts/install`. `packages/create-agent-config/`
|
|
627
|
-
is removed from the repo, and every doc / template / help string is
|
|
628
|
-
updated to the new command. Existing users running the old wrapper
|
|
629
|
-
should switch — the old package name will stop receiving releases.
|
|
630
|
-
|
|
631
|
-
**Global-First Install (R4)** — `npx @event4u/agent-config init`
|
|
632
|
-
now defaults to a **global** install (`~/.claude/`, `~/.cursor/`, …)
|
|
633
|
-
when run outside a project, and a **project** install when run inside
|
|
634
|
-
one. A new global lockfile at `~/.config/agent-config/installed.lock`
|
|
635
|
-
records `agent_config_version` + `tools[]` and refuses mismatched
|
|
636
|
-
re-installs (exit 1) until `update` or `--force` realigns it. New
|
|
637
|
-
`agent-config export --tool=<id> --output=<path>` subcommand ejects a
|
|
638
|
-
named tool's resolved content into the project tree (idempotent;
|
|
639
|
-
`--force` overrides drift). 12 supported tool ids (claude-code,
|
|
640
|
-
cursor, windsurf, cline, aider, codex, gemini, copilot,
|
|
641
|
-
claude-desktop, continue, kilocode, zed, jetbrains, kiro). Windows
|
|
642
|
-
CI matrix added for the lockfile + export paths. See
|
|
643
|
-
[`docs/decisions/ADR-007-agent-discovery-scopes.md`](docs/decisions/ADR-007-agent-discovery-scopes.md)
|
|
644
|
-
and [`docs/decisions/ADR-008-installed-tools-manifest.md`](docs/decisions/ADR-008-installed-tools-manifest.md).
|
|
645
|
-
|
|
646
|
-
Three roadmaps land in this release.
|
|
647
|
-
|
|
648
|
-
**Universal Execution Engine (R1)** — the `/implement-ticket` runtime is
|
|
649
|
-
renamed and re-shaped into a universal dispatcher. **No user-visible
|
|
650
|
-
behavior change** — the `/implement-ticket` slash command and the
|
|
651
|
-
`./agent-config implement-ticket` CLI are byte-stable, gated by the
|
|
652
|
-
new Golden-Transcript replay harness.
|
|
653
|
-
|
|
654
|
-
**Prompt-Driven Execution (R2)** — a new `/work` command drives free-form
|
|
655
|
-
prompts through the same `work_engine` dispatcher with a
|
|
656
|
-
confidence-band gate at `refine`. R1 goldens remain byte-equal across
|
|
657
|
-
the R2 changes.
|
|
658
|
-
|
|
659
|
-
**Product UI Track (R3)** — three new directive sets (`ui`,
|
|
660
|
-
`ui-trivial`, `mixed`) turn UI work from "writes the code" into
|
|
661
|
-
"produces UI that feels designed". An existing-UI audit is enforced
|
|
662
|
-
as a hard gate before any `apply`; design briefs lock microcopy
|
|
663
|
-
verbatim; polish has a 2-round ceiling. Stack-aware dispatch routes
|
|
664
|
-
implementation to `blade-livewire-flux` / `react-shadcn` / `vue` /
|
|
665
|
-
`plain` skill bundles. Happy-path halt budget is 2 (audit pick +
|
|
666
|
-
design sign-off). R1 + R2 goldens stay byte-equal; 12 new GT-U
|
|
667
|
-
baselines pin the R3 contract.
|
|
668
|
-
|
|
669
|
-
### Features
|
|
670
|
-
|
|
671
|
-
* **engine:** universal `work_engine` Python module with explicit
|
|
672
|
-
`version: 1` state schema, `directive_set` envelope (backend / ui-stub
|
|
673
|
-
/ mixed-stub), and `input.kind`-based dispatch ready for prompt-driven
|
|
674
|
-
and UI directives in R2 / R3.
|
|
675
|
-
* **migration:** `work_engine.migration.v0_to_v1` auto-migrates
|
|
676
|
-
`.implement-ticket-state.json` → `.work-state.json` on first run;
|
|
677
|
-
v0 file preserved as `.implement-ticket-state.json.bak`. Idempotent
|
|
678
|
-
and refuses to overwrite an existing v1 destination.
|
|
679
|
-
* **tests:** Golden-Transcript replay harness with 5 live-captured
|
|
680
|
-
baseline transcripts (`tests/golden/baseline/GT-{1..5}/`),
|
|
681
|
-
`CHECKSUMS.txt` SHA-256 manifest, four strict comparators
|
|
682
|
-
(exit codes, state-snapshot structure, halt-marker shape, delivery
|
|
683
|
-
report headings) with allow-listed free-text drift on `questions`
|
|
684
|
-
and `report` bodies. Both pytest (`tests/golden/test_replay.py`) and
|
|
685
|
-
CLI (`python3 -m tests.golden.harness`) entry points.
|
|
686
|
-
* **command:** `/work` — sibling entrypoint to `/implement-ticket` that
|
|
687
|
-
drives free-form prompts through the same `work_engine` dispatcher
|
|
688
|
-
with `input.kind="prompt"`. Backed by the `command-routing` and
|
|
689
|
-
`refine-prompt` skills.
|
|
690
|
-
* **engine (R2):** prompt resolver (`work_engine.resolvers.prompt`)
|
|
691
|
-
builds the prompt envelope; `directives/backend/refine.py::_run_prompt`
|
|
692
|
-
reconstructs acceptance criteria, scores the prompt on five
|
|
693
|
-
dimensions, and dispatches on the resulting band.
|
|
694
|
-
* **scoring:** deterministic, heuristic-only confidence scorer at
|
|
695
|
-
`work_engine.scoring.confidence` — single source of truth for the
|
|
696
|
-
rubric (`goal_clarity`, `scope_boundary`, `ac_evidence`, `stack_data`,
|
|
697
|
-
`reversibility`) and band thresholds (`high ≥ 0.8`, `medium ≥ 0.5`,
|
|
698
|
-
`low < 0.5`).
|
|
699
|
-
* **band-action gate:** silent proceed on `high`, assumptions-report
|
|
700
|
-
halt on `medium`, one-question halt on `low` (per the
|
|
701
|
-
`ask-when-uncertain` Iron Law).
|
|
702
|
-
* **tests (R2):** four new Golden Transcripts (`GT-P1` high-band happy,
|
|
703
|
-
`GT-P2` medium-band release, `GT-P3` low-band one-question halt,
|
|
704
|
-
`GT-P4` UI-intent rejection — superseded by the R3 UI track but kept
|
|
705
|
-
to pin pre-R3 behaviour) pinned alongside the R1 goldens.
|
|
706
|
-
|
|
707
|
-
### Changed
|
|
708
|
-
|
|
709
|
-
* **engine (refactor):** internal Python module renamed
|
|
710
|
-
`implement_ticket` → `work_engine`. Public CLI surface, slash command,
|
|
711
|
-
user-facing prompts, halts, and delivery report are unchanged. State
|
|
712
|
-
filename moves from `.implement-ticket-state.json` to `.work-state.json`
|
|
713
|
-
with auto-migration.
|
|
714
|
-
* **engine (R2):** `refine` SUCCESS paths now mirror
|
|
715
|
-
`data["reconstructed_ac"]` into `state.ticket["acceptance_criteria"]`
|
|
716
|
-
as an independent list copy, so downstream gates (`analyze`, `plan`)
|
|
717
|
-
read the same AC slot regardless of envelope kind.
|
|
718
|
-
|
|
719
|
-
### Deprecated
|
|
720
|
-
|
|
721
|
-
* **`implement_ticket` Python module** — re-export shim retained for
|
|
722
|
-
backwards compatibility; emits `DeprecationWarning` on import.
|
|
723
|
-
Internal Python consumers should migrate to `from work_engine import …`.
|
|
724
|
-
Removal is a separate user-driven decision, not pinned to a release.
|
|
725
|
-
|
|
726
|
-
### CI
|
|
727
|
-
|
|
728
|
-
* **freeze-guard:** named `task golden-replay` step in `Taskfile.yml`
|
|
729
|
-
and a dedicated `Golden Replay` step in `.github/workflows/tests.yml`,
|
|
730
|
-
both invoked before the main pytest sweep so structural regressions
|
|
731
|
-
surface first. Freeze-guard workflow rejects baseline edits outside
|
|
732
|
-
`R1-P1`-tagged commits.
|
|
733
|
-
* **roadmap-progress-check** wired into `task ci` (1.13.0 carry-over).
|
|
734
|
-
|
|
735
|
-
### Documentation
|
|
736
|
-
|
|
737
|
-
* **ADR (R1):** [`agents/contexts/adr-work-engine-rename.md`](agents/contexts/adr-work-engine-rename.md)
|
|
738
|
-
— rationale, scope of the rename, compatibility shim policy, state
|
|
739
|
-
migration, golden-test contract, tradeoffs, non-goals.
|
|
740
|
-
* **ADR (R2):** [`docs/contracts/adr-prompt-driven-execution.md`](docs/contracts/adr-prompt-driven-execution.md)
|
|
741
|
-
— naming decision (`/work` over `/do`), confidence-band gate,
|
|
742
|
-
AC-projection fix, R3 deferral boundary, and golden contract.
|
|
743
|
-
* **flow:** `docs/contracts/implement-ticket-flow.md` gains a "Replay
|
|
744
|
-
protocol — Strict-Verb comparison" section (R1) and a
|
|
745
|
-
"Prompt envelopes and confidence bands (R2)" section pinning the
|
|
746
|
-
band-action mapping to the scorer module.
|
|
747
|
-
* **README + AGENTS.md template:** document `/work` as the sibling
|
|
748
|
-
entrypoint, the confidence-band rubric, and the
|
|
749
|
-
`/work` vs. `/implement-ticket` selection rule.
|
|
750
|
-
* **rules:** `scope-control` forbids release / version / deprecation-date
|
|
751
|
-
language in roadmaps, plans, and ADRs; introduces a `Decline = silence`
|
|
752
|
-
policy preventing branch-switch and PR proposals from being re-asked
|
|
753
|
-
on the same task.
|
|
754
|
-
|
|
755
|
-
### Features (R3 — Product UI Track)
|
|
756
|
-
|
|
757
|
-
* **directive sets:** `directives/ui/` (`audit → design → apply →
|
|
758
|
-
review → polish → report`), `directives/ui_trivial/` (provably
|
|
759
|
-
bounded edits, `MAX_FILES = 1` and `MAX_LINES_CHANGED = 5`), and
|
|
760
|
-
`directives/mixed/` (`contract → ui → stitch`). Dispatched at the
|
|
761
|
-
engine boundary on `state.directive_set`; the audit gate is enforced
|
|
762
|
-
at the dispatcher AND at always-on rule level
|
|
763
|
-
([`ui-audit-gate`](.agent-src/rules/ui-audit-gate.md))
|
|
764
|
-
so cloud surfaces and free-form edits cannot bypass it.
|
|
765
|
-
* **stack detection:** `scripts/work_engine/stack/detect.py` reads
|
|
766
|
-
`composer.json` + `package.json` and labels the frontend as
|
|
767
|
-
`blade-livewire-flux` / `react-shadcn` / `vue` / `plain`. Cached on
|
|
768
|
-
`state.stack` against manifest `mtime`; recoverable on parse error
|
|
769
|
-
(downgrades to `plain`). `apply` / `review` / `polish` route on the
|
|
770
|
-
label.
|
|
771
|
-
* **audit gate:** `state.ui_audit` must carry `≥ 1 components_found`
|
|
772
|
-
OR `greenfield = True` with a user-chosen `greenfield_decision` ∈
|
|
773
|
-
`{scaffold, bare, external_reference}`. Empty dict, `None`, or
|
|
774
|
-
populated-without-keys is rejected; the dispatcher emits
|
|
775
|
-
`@agent-directive: existing-ui-audit` and refuses to advance.
|
|
776
|
-
* **design brief lock:** `apply` rejects components carrying
|
|
777
|
-
`PLACEHOLDER_PATTERNS` (`<placeholder>`, `lorem`, `todo:`, `tbd`,
|
|
778
|
-
`xxx`); both producer and consumer enforce.
|
|
779
|
-
* **polish ceiling:** hard `POLISH_CEILING = 2` rounds, validated at
|
|
780
|
-
in-memory state, on-disk schema, AND dispatcher layers. After round
|
|
781
|
-
2 the engine halts with ship-as-is / abort / hand-off.
|
|
782
|
-
* **token-violation extraction:** polish classifies
|
|
783
|
-
`kind == "token_violation"` findings against
|
|
784
|
-
`state.ui_audit.design_tokens`; matched values use the named token,
|
|
785
|
-
unmatched values repeated > `TOKEN_REPEAT_THRESHOLD = 2` times
|
|
786
|
-
trigger token extraction before the next round.
|
|
787
|
-
* **trivial-path reclassification:** `directives/ui_trivial/apply.py`
|
|
788
|
-
flips `state.directive_set = "ui"` when the bounded preconditions
|
|
789
|
-
fail, restarting the dispatcher at audit. Reclassification is loud
|
|
790
|
-
and counted in the delivery report.
|
|
791
|
-
* **mixed orchestration:** sentinels `state.contract.contract_confirmed`
|
|
792
|
-
(UI sub-flow refuses to start without it) and
|
|
793
|
-
`state.stitch.verdict = "success"` (stitch's success condition;
|
|
794
|
-
`blocked` / `partial` halts unless `integration_confirmed` flips).
|
|
795
|
-
* **skills:** new `existing-ui-audit`, `react-shadcn-ui`, plus
|
|
796
|
-
stack-specific apply / review / polish bundles. `fe-design`
|
|
797
|
-
repositioned as a framework-agnostic reference cited by
|
|
798
|
-
`directives/ui/design.py`.
|
|
799
|
-
* **tests (R3):** twelve new Golden Transcripts (`GT-U1`..`GT-U4`,
|
|
800
|
-
`GT-U9`..`GT-U12`) covering high-confidence happy path
|
|
801
|
-
(1 halt budget), ambiguous (2 halts max), greenfield decisions,
|
|
802
|
-
trivial-path apply, polish ceiling hit, and mixed orchestration.
|
|
803
|
-
All R1 + R2 + R3 baselines auto-discovered by `tests/golden/test_replay.py`.
|
|
804
|
-
|
|
805
|
-
### Documentation (R3)
|
|
806
|
-
|
|
807
|
-
* **ADR (R3):** [`docs/contracts/adr-product-ui-track.md`](docs/contracts/adr-product-ui-track.md)
|
|
808
|
-
— audit-as-hard-gate rationale, design-review loop, halt-budget
|
|
809
|
-
reasoning, trivial-path-and-reclassification, stack-detection
|
|
810
|
-
strategy, fe-design migration, tradeoffs, non-goals.
|
|
811
|
-
* **flow contract:** [`docs/contracts/ui-track-flow.md`](docs/contracts/ui-track-flow.md)
|
|
812
|
-
— slot-by-slot wiring for `ui` / `ui-trivial` / `mixed`, the
|
|
813
|
-
audit-path table (`STRONG_SIMILARITY = 0.7`, `TIE_GAP = 0.05`),
|
|
814
|
-
design-brief lock + placeholder patterns, stack-dispatch tables,
|
|
815
|
-
polish ceiling, trivial preconditions, mixed sentinels,
|
|
816
|
-
idempotency table, declared ambiguities across all eight directives.
|
|
817
|
-
* **extension recipe:** [`docs/contracts/ui-stack-extension.md`](docs/contracts/ui-stack-extension.md)
|
|
818
|
-
— how to add a new stack (Svelte, SolidJS, Astro, …): label
|
|
819
|
-
conventions, detector heuristic, three required skills, dispatch
|
|
820
|
-
wiring, version anchor, Golden fixture, end-to-end verification.
|
|
821
|
-
* **README + AGENTS.md template:** UI track flow table (`ui` /
|
|
822
|
-
`ui-trivial` / `mixed`), audit-gate property, design-brief lock,
|
|
823
|
-
polish ceiling, stack-dispatch summary; the pre-R3 "rejected,
|
|
824
|
-
backend-only" wording is removed.
|
|
825
|
-
* **golden test capture:** [`tests/golden/CAPTURING.md`](tests/golden/CAPTURING.md)
|
|
826
|
-
— central regeneration recipe, lock policy, when to relock; replaces
|
|
827
|
-
17 per-baseline `reproduction-notes.md` files (the loadable artefacts
|
|
828
|
-
— `transcript.json`, `state-snapshots/`, `halt-markers.json`,
|
|
829
|
-
`exit-codes.json`, `delivery-report.md` — stay).
|
|
830
|
-
|
|
831
|
-
### Archived (R3)
|
|
832
|
-
|
|
833
|
-
* **roadmap:** `agents/roadmaps/intent-based-orchestration.md` moved to
|
|
834
|
-
`agents/roadmaps/archive/`; superseded by R1 + R2 + R3.
|
|
835
|
-
|
|
836
|
-
**Artefact-Engagement Telemetry** — opt-in, default-off measurement layer
|
|
837
|
-
that records which skills, rules, commands, and guidelines the agent
|
|
838
|
-
consults and applies during a `/implement-ticket` or `/work` run.
|
|
839
|
-
Maintainer-targeted; consumers see no prompts.
|
|
840
|
-
|
|
841
|
-
### Features
|
|
842
|
-
|
|
843
|
-
* **telemetry:** `./agent-config telemetry:record` and
|
|
844
|
-
`./agent-config telemetry:report` CLI scripts + `telemetry/` Python
|
|
845
|
-
package (boundary, aggregator, renderer, schema). Default-off via
|
|
846
|
-
`telemetry.artifact_engagement.enabled` in `.agent-settings.yml`.
|
|
847
|
-
* **schema:** `schema_version: 1` JSONL events with `task_id`,
|
|
848
|
-
`boundary_kind`, `consulted` / `applied` (kind→ids), `ts`,
|
|
849
|
-
`tokens_estimate`. Aggregator silently skips lines with unknown
|
|
850
|
-
schema versions.
|
|
851
|
-
* **report:** quartile bucketing on applied/consulted ratio — Essential
|
|
852
|
-
(top 20 %), Useful (mid 60 %), Retirement Candidates (bottom 20 %) —
|
|
853
|
-
emitted as Markdown or JSON.
|
|
854
|
-
* **rule:** `artifact-engagement-recording` — fires per phase-step
|
|
855
|
-
inside `/implement-ticket` and `/work`; no-op under the default-off
|
|
856
|
-
gate so the recording path costs nothing when disabled.
|
|
857
|
-
* **privacy:** `check_id_redaction` validator enforces a redaction
|
|
858
|
-
floor (no path separators, no file extensions, no control characters,
|
|
859
|
-
no whitespace, non-empty) on **both** write and export. Tampered or
|
|
860
|
-
legacy logs cannot leak through reports — renderer re-validates.
|
|
861
|
-
* **tests:** 36 redaction test cases plus end-to-end CLI coverage
|
|
862
|
-
in `tests/telemetry/`.
|
|
863
|
-
|
|
864
|
-
### Documentation
|
|
865
|
-
|
|
866
|
-
* **ADR:** [`agents/contexts/adr-artifact-engagement.md`](agents/contexts/adr-artifact-engagement.md)
|
|
867
|
-
— rationale, default-off doctrine, privacy contract, schema
|
|
868
|
-
versioning, deprecation horizon.
|
|
869
|
-
* **flow:** `docs/contracts/artifact-engagement-flow.md` is the
|
|
870
|
-
cross-cutting reference for what gets recorded, when, and under
|
|
871
|
-
which constraints; includes the maintainer hand-audit recipe.
|
|
872
|
-
* **AGENTS.md + README.md:** short *Maintainer telemetry (opt-in)*
|
|
873
|
-
pointer; consumers see nothing.
|
|
874
|
-
* **`/onboard`:** Step 9 emits a one-screen maintainer-only hint
|
|
875
|
-
describing the feature; no question, no prompt.
|
|
876
|
-
|
|
877
|
-
**Context-Aware Command Suggestion** — deterministic, read-only layer
|
|
878
|
-
that surfaces eligible slash commands as numbered options when a
|
|
879
|
-
non-`/`-prefixed user prompt matches their `suggestion.trigger_*`
|
|
880
|
-
frontmatter. **Nothing auto-executes** — the user picks every time;
|
|
881
|
-
the as-is option is always present and always last.
|
|
882
|
-
|
|
883
|
-
### Features
|
|
884
|
-
|
|
885
|
-
* **engine:** `scripts/command_suggester/` Python package
|
|
886
|
-
(`match` / `rank` / `cooldown` / `sanitize` / `render` / `loader`).
|
|
887
|
-
Heuristic-only scoring (substring + Jaccard token overlap +
|
|
888
|
-
structural-bonus boosts), per-conversation cooldown keyed on
|
|
889
|
-
`(command, evidence)`, and a sanitiser that strips fenced + inline
|
|
890
|
-
code blocks plus the suggester's own previous block shape before
|
|
891
|
-
scoring.
|
|
892
|
-
* **rule:** `command-suggestion` (always-on) — emits one
|
|
893
|
-
numbered-options block per turn under the `user-interaction` Iron
|
|
894
|
-
Law. Subordinate to `scope-control`, `ask-when-uncertain`,
|
|
895
|
-
`verify-before-complete`, and any active role-mode contract or
|
|
896
|
-
engine halt; on conflict → silent.
|
|
897
|
-
* **frontmatter:** every command carries
|
|
898
|
-
`suggestion.eligible` (default `true`) plus a flat
|
|
899
|
-
`trigger_description` + `trigger_context` pair (linter-validated,
|
|
900
|
-
≥ 10 chars each). Locked eligibility table at
|
|
901
|
-
[`agents/contexts/command-suggestion-eligibility.md`](agents/contexts/command-suggestion-eligibility.md).
|
|
902
|
-
* **settings:** `commands.suggestion` block in
|
|
903
|
-
`.agent-settings.yml` — `enabled` (global), `blocklist`
|
|
904
|
-
(per-command), `confidence_floor` (default `0.6`), `cooldown`
|
|
905
|
-
(default `10m`), `max_options` (default `4`, plus the always-extra
|
|
906
|
-
as-is option). Per-command overrides via frontmatter.
|
|
907
|
-
* **opt-out paths (3):** global (`enabled: false`), per-command
|
|
908
|
-
(`blocklist`), per-conversation (`/command-suggestion-off` /
|
|
909
|
-
`/command-suggestion-on` directives detected by `cooldown.py`).
|
|
910
|
-
* **anti-noise heuristics:** sub-floor suppression, lonely-match
|
|
911
|
-
guard within `floor + 0.1`, vague-prompt guard (< 6 words +
|
|
912
|
-
> 2 matches without structural bonus), continuation-phrase guard
|
|
913
|
-
(`ok`, `weiter`, `continue`, …). Structural bonuses (ticket key,
|
|
914
|
-
file path) override every suppressor.
|
|
915
|
-
* **tests:** 84 unit cases in `tests/test_command_suggester.py`
|
|
916
|
-
(matcher, rank, cooldown, sanitiser, render, settings, directive)
|
|
917
|
-
plus 9 GT-CS goldens in `tests/test_command_suggester_goldens.py`
|
|
918
|
-
(single-match, tie-break, sub-floor, slash-bypass, as-is pick,
|
|
919
|
-
cooldown, settings off, clarification-wins, adversarial echo).
|
|
920
|
-
* **no behavioural change to slash invocation:** explicit `/command`
|
|
921
|
-
bypasses the suggester entirely; per-command halts intact.
|
|
922
|
-
|
|
923
|
-
### Documentation
|
|
924
|
-
|
|
925
|
-
* **ADR:** [`docs/contracts/adr-command-suggestion.md`](docs/contracts/adr-command-suggestion.md)
|
|
926
|
-
— "suggest, never invoke" anchor, eligibility rubric, anti-noise
|
|
927
|
-
heuristics, hardening list, three opt-out paths.
|
|
928
|
-
* **flow:** [`docs/contracts/command-suggestion-flow.md`](docs/contracts/command-suggestion-flow.md)
|
|
929
|
-
— scoring breakdown, evidence semantics, subordination order, and
|
|
930
|
-
hardening tests.
|
|
931
|
-
* **README + AGENTS.md:** short *Context-aware command suggestion*
|
|
932
|
-
section pointing to the ADR and the flow doc.
|
|
933
|
-
|
|
934
|
-
**Install-path pruning (relabel only)** — `docs/installation.md`
|
|
935
|
-
reorders install paths by recommendation prominence. Composer + npm
|
|
936
|
-
remain the default; manual / submodule / VS Code Git URL are tagged
|
|
937
|
-
`advanced`; Claude.ai Web Skills UI is tagged `experimental`; Linear
|
|
938
|
-
AI workspace guidance is tagged `staged`. **No installer or shipped
|
|
939
|
-
artefact is removed in 1.15.0** — every path on the page still works
|
|
940
|
-
and is still tested. The labels describe how prominent the path is in
|
|
941
|
-
our recommendation order, not its support status.
|
|
942
|
-
|
|
943
|
-
### Documentation
|
|
944
|
-
|
|
945
|
-
* **`docs/installation.md`:** new label table at the top
|
|
946
|
-
(`(no label)` / `advanced` / `experimental` / `staged`) plus a
|
|
947
|
-
preamble that calls out the no-removal contract explicitly. Section
|
|
948
|
-
headers carry their label inline for skim-readers.
|
|
949
|
-
* **rationale:** see R9 in
|
|
950
|
-
[`agents/roadmaps/archive/road-to-post-pr29-optimize.md`](agents/roadmaps/archive/road-to-post-pr29-optimize.md)
|
|
951
|
-
— relabelling addresses the "four install paths at zero external
|
|
952
|
-
users" tension without removing any path that an existing user
|
|
953
|
-
might rely on.
|