@event4u/agent-config 16.3.0 → 16.4.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +251 -0
- package/README.md +2 -2
- package/agents/templates/.ai-council.yml.example +26 -8
- package/dist/agent-src/commands/analyze/inbox.md +10 -7
- package/dist/agent-src/commands/bug/investigate.md +1 -1
- package/dist/agent-src/commands/commit/in-chunks.md +40 -31
- package/dist/agent-src/commands/commit.md +72 -33
- package/dist/agent-src/commands/condense.md +2 -8
- package/dist/agent-src/commands/council/debate.md +11 -7
- package/dist/agent-src/commands/council/default.md +10 -9
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/estimate-ticket.md +1 -1
- package/dist/agent-src/commands/feature/explore.md +3 -3
- package/dist/agent-src/commands/feature/plan.md +1 -1
- package/dist/agent-src/commands/fix/ci.md +17 -3
- package/dist/agent-src/commands/fix/commit-messages.md +48 -23
- package/dist/agent-src/commands/fix/pr-comments.md +3 -6
- package/dist/agent-src/commands/implement-ticket.md +3 -3
- package/dist/agent-src/commands/memory/add.md +4 -16
- package/dist/agent-src/commands/memory/load.md +5 -6
- package/dist/agent-src/commands/memory/promote.md +3 -16
- package/dist/agent-src/commands/mission/upgrade.md +3 -2
- package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
- package/dist/agent-src/commands/optimize/deep.md +4 -2
- package/dist/agent-src/commands/optimize/rtk.md +4 -26
- package/dist/agent-src/commands/pr/create/description-only.md +18 -15
- package/dist/agent-src/commands/pr/create.md +42 -34
- package/dist/agent-src/commands/pr/merge.md +136 -9
- package/dist/agent-src/commands/prepare-for-review.md +13 -11
- package/dist/agent-src/commands/project/analyze.md +7 -35
- package/dist/agent-src/commands/refine-ticket.md +1 -1
- package/dist/agent-src/commands/review/changes.md +14 -19
- package/dist/agent-src/commands/roadmap/next.md +10 -1
- package/dist/agent-src/commands/roadmap/process-full.md +52 -38
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +64 -14
- package/dist/agent-src/commands/worktree/create.md +7 -3
- package/dist/agent-src/commands/worktree/verify.md +2 -1
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
- package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +1 -1
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
- package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
- package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
- package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +67 -52
- package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
- package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
- package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +4 -10
- package/dist/agent-src/contexts/subagent-configuration.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
- package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
- package/dist/agent-src/guidelines/php/git.md +15 -2
- package/dist/agent-src/rules/active-remediation.md +0 -1
- package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
- package/dist/agent-src/rules/architecture.md +0 -1
- package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
- package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
- package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
- package/dist/agent-src/rules/autonomous-execution.md +0 -1
- package/dist/agent-src/rules/brand-consistency.md +0 -1
- package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
- package/dist/agent-src/rules/broken-access-control.md +0 -1
- package/dist/agent-src/rules/cli-output-handling.md +0 -1
- package/dist/agent-src/rules/code-comment-discipline.md +0 -1
- package/dist/agent-src/rules/code-provenance.md +0 -1
- package/dist/agent-src/rules/command-suggestion-policy.md +0 -1
- package/dist/agent-src/rules/commit-conventions.md +1 -2
- package/dist/agent-src/rules/communication-through-line.md +1 -2
- package/dist/agent-src/rules/content-quoting-floor.md +1 -2
- package/dist/agent-src/rules/context-hygiene.md +5 -5
- package/dist/agent-src/rules/copilot-routing.md +1 -2
- package/dist/agent-src/rules/council-availability.md +4 -4
- package/dist/agent-src/rules/cross-source-consistency.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +2 -3
- package/dist/agent-src/rules/delegation-policy.md +2 -3
- package/dist/agent-src/rules/design-fidelity.md +0 -1
- package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
- package/dist/agent-src/rules/devcontainer-routing.md +1 -2
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +0 -1
- package/dist/agent-src/rules/docker-commands.md +0 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
- package/dist/agent-src/rules/domain-safety-disclaimer.md +0 -1
- package/dist/agent-src/rules/domain-safety-pii.md +0 -1
- package/dist/agent-src/rules/domain-safety-retention.md +0 -1
- package/dist/agent-src/rules/downstream-changes.md +0 -1
- package/dist/agent-src/rules/engineering-safety-floor.md +0 -1
- package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
- package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -2
- package/dist/agent-src/rules/finance-safety-floor.md +0 -1
- package/dist/agent-src/rules/fix-what-you-see.md +6 -32
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
- package/dist/agent-src/rules/git-history-discipline.md +1 -2
- package/dist/agent-src/rules/guidelines.md +0 -1
- package/dist/agent-src/rules/history-discipline.md +0 -1
- package/dist/agent-src/rules/icon-consistency.md +0 -1
- package/dist/agent-src/rules/image-likeness-and-rights.md +0 -1
- package/dist/agent-src/rules/improve-before-implement.md +0 -1
- package/dist/agent-src/rules/invite-challenge.md +0 -1
- package/dist/agent-src/rules/laravel-routing.md +1 -2
- package/dist/agent-src/rules/laravel-translations.md +0 -1
- package/dist/agent-src/rules/legal-safety-floor.md +0 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +0 -1
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +0 -1
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
- package/dist/agent-src/rules/media-governance-routing.md +1 -2
- package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
- package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
- package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
- package/dist/agent-src/rules/missing-tool-handling.md +0 -1
- package/dist/agent-src/rules/model-recommendation.md +0 -1
- package/dist/agent-src/rules/neighbour-precedence.md +64 -0
- package/dist/agent-src/rules/no-attribution-footers.md +0 -1
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
- package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
- package/dist/agent-src/rules/no-roadmap-references.md +0 -1
- package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
- package/dist/agent-src/rules/onboarding-gate.md +0 -1
- package/dist/agent-src/rules/output-discipline.md +0 -1
- package/dist/agent-src/rules/package-ci-checks.md +0 -1
- package/dist/agent-src/rules/persona-governance.md +2 -3
- package/dist/agent-src/rules/php-coding.md +0 -1
- package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
- package/dist/agent-src/rules/preservation-guard.md +0 -1
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +2 -3
- package/dist/agent-src/rules/question-not-instruction.md +0 -1
- package/dist/agent-src/rules/reviewer-awareness.md +0 -1
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +3 -6
- package/dist/agent-src/rules/role-mode-adherence.md +0 -1
- package/dist/agent-src/rules/rule-type-governance.md +0 -1
- package/dist/agent-src/rules/runtime-safety.md +0 -1
- package/dist/agent-src/rules/scale-discipline.md +0 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +0 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +0 -1
- package/dist/agent-src/rules/self-repair-loop.md +0 -1
- package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
- package/dist/agent-src/rules/session-canary.md +0 -1
- package/dist/agent-src/rules/settings-ask-protocol.md +5 -6
- package/dist/agent-src/rules/size-enforcement.md +0 -1
- package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
- package/dist/agent-src/rules/skill-quality.md +0 -1
- package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
- package/dist/agent-src/rules/source-confidentiality.md +0 -1
- package/dist/agent-src/rules/source-discovery-gate.md +0 -1
- package/dist/agent-src/rules/source-of-truth.md +0 -1
- package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +0 -1
- package/dist/agent-src/rules/symfony-routing.md +1 -2
- package/dist/agent-src/rules/think-before-action.md +0 -1
- package/dist/agent-src/rules/token-budget-discipline.md +12 -46
- package/dist/agent-src/rules/token-efficiency.md +0 -1
- package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
- package/dist/agent-src/rules/tool-safety.md +0 -1
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +0 -1
- package/dist/agent-src/rules/upstream-proposal.md +0 -1
- package/dist/agent-src/rules/user-interaction.md +0 -1
- package/dist/agent-src/rules/user-interrupt-priority.md +0 -1
- package/dist/agent-src/scripts/gate_budget.ts +47 -23
- package/dist/agent-src/scripts/gate_execute.ts +12 -4
- package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
- package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
- package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
- package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
- package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
- package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
- package/dist/agent-src/skills/database/data/manifest.json +2 -2
- package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
- package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
- package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
- package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
- package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
- package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
- package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
- package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -1
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agent-settings.md +46 -129
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/roadmaps.md +6 -1
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/dist/agent-src/templates/skill.md +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli-delegate/check_update_banner.js +195 -119
- package/dist/cli-delegate/{chunk-TRI6DQZ6.js → chunk-5GPULQBE.js} +60 -42
- package/dist/cli-delegate/{chunk-JQVYKIZA.js → chunk-6SRJTYJS.js} +33 -177
- package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
- package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
- package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
- package/dist/cli-delegate/{chunk-NQ7WT43P.js → chunk-AED2VQGM.js} +65 -11
- package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
- package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
- package/dist/cli-delegate/{chunk-NXEILF2K.js → chunk-F3QDG2GT.js} +481 -72
- package/dist/cli-delegate/{chunk-CQWX336L.js → chunk-G5VVIZRC.js} +3 -3
- package/dist/cli-delegate/{chunk-JY2I2DXV.js → chunk-H76PHZBI.js} +137 -60
- package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
- package/dist/cli-delegate/{chunk-LIYTLH6O.js → chunk-KXXWJTDO.js} +5 -10
- package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
- package/dist/cli-delegate/{chunk-S4YWNRKO.js → chunk-MDPPKQCQ.js} +34 -1
- package/dist/cli-delegate/{chunk-S4UMZNES.js → chunk-MSUL5NYP.js} +5 -5
- package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
- package/dist/cli-delegate/{chunk-GKE7ZVFA.js → chunk-PWX7CKMD.js} +1 -1
- package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
- package/dist/cli-delegate/{chunk-RQNNW7IF.js → chunk-T7XSJSUQ.js} +433 -632
- package/dist/cli-delegate/{chunk-EEHDXSYD.js → chunk-WQWXGIWB.js} +12 -273
- package/dist/cli-delegate/{chunk-QLDHIPWR.js → chunk-XQTPXKFA.js} +1 -1
- package/dist/cli-delegate/cmd_analyze_session.js +223 -43
- package/dist/cli-delegate/cmd_brand_status.js +3 -2
- package/dist/cli-delegate/cmd_conformance.js +105 -35
- package/dist/cli-delegate/cmd_converge.js +3 -3
- package/dist/cli-delegate/cmd_doctor.js +15 -12
- package/dist/cli-delegate/cmd_doctor_neighbours.js +11 -4
- package/dist/cli-delegate/cmd_explain.js +43 -19
- package/dist/cli-delegate/cmd_export.js +10 -10
- package/dist/cli-delegate/cmd_git_convention.js +1851 -0
- package/dist/cli-delegate/cmd_handoff.js +40 -21
- package/dist/cli-delegate/cmd_mcp_available.js +3 -2
- package/dist/cli-delegate/cmd_migrate.js +3 -3
- package/dist/cli-delegate/cmd_packs_active.js +4 -3
- package/dist/cli-delegate/cmd_prune.js +10 -10
- package/dist/cli-delegate/cmd_route_audit.js +7 -7
- package/dist/cli-delegate/cmd_route_explain.js +5 -5
- package/dist/cli-delegate/cmd_session_recycle.js +9 -7
- package/dist/cli-delegate/cmd_settings_check.js +54 -7
- package/dist/cli-delegate/cmd_settings_get.js +18 -8
- package/dist/cli-delegate/cmd_settings_migrate.js +10 -10
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +10 -10
- package/dist/cli-delegate/cmd_uninstall.js +10 -10
- package/dist/cli-delegate/cmd_update.js +7 -7
- package/dist/cli-delegate/cmd_upgrade.js +7 -7
- package/dist/cli-delegate/cmd_validate.js +10 -10
- package/dist/cli-delegate/cmd_versions.js +5 -5
- package/dist/cli-delegate/gate_budget.js +1 -1
- package/dist/cli-delegate/gate_execute.js +2 -2
- package/dist/cli-delegate/roadmap_gates.js +2 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +129 -90
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +24 -9
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +5 -4
- package/dist/hooks/dispatch.js +2151 -1820
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/install/install.mjs +462 -431
- package/dist/install/installThinLayer.js +40 -12
- package/dist/install/installedRuleLinks.js +105 -19
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
- package/dist/mcp/registry-manifest.json +5 -5
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2702 -1995
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +15 -120
- package/dist/scripts/_lib/compile_time_toggles.js +12 -21
- package/dist/scripts/_lib/git_convention.js +232 -0
- package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
- package/dist/scripts/_lib/installed_layer.js +344 -18
- package/dist/scripts/_lib/package_root.js +68 -0
- package/dist/scripts/_lib/rule_law_section.js +1 -1
- package/dist/scripts/_lib/settings_removed_keys.js +168 -0
- package/dist/scripts/_lib/thin_rules.js +80 -3
- package/dist/server/app.js +2 -1
- package/dist/server/gitKeysGate.js +105 -0
- package/dist/server/routes/settings.js +67 -8
- package/dist/server/routes/wizard.js +4 -0
- package/dist/server/schemas/settings.js +23 -81
- package/dist/shared/skillRanking.js +30 -4
- package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +72 -1
- package/docs/contracts/settings-classes.md +35 -65
- package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
- package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
- package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
- package/docs/guidelines/agent-infra/layered-settings.md +13 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
- package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
- package/docs/guidelines/php/git.md +15 -2
- package/package.json +1 -1
- package/src/agent-src/scripts/gate_budget.ts +47 -23
- package/src/agent-src/scripts/gate_execute.ts +12 -4
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
- package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
- package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
- package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
- package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
- package/src/config/agent-settings.template.yml +79 -312
- package/src/config/agents-paths.yml +16 -0
- package/src/config/assurance-capability-registry.json +7 -3
- package/src/config/ci-local-parity.yml +3 -0
- package/src/config/continuity-surface.json +3 -3
- package/src/config/discovery/packs.yml +17 -1
- package/src/config/evaluator-budgets.json +19 -6
- package/src/config/gate-coverage.yml +65 -23
- package/src/config/gate-violation-baselines.json +53 -13
- package/src/config/gitignore-block.txt +19 -0
- package/src/config/hook-bundle-budget.json +1 -1
- package/src/config/release-gate-locality.yml +2 -1
- package/src/config/routing-coverage-seed.json +48 -6
- package/src/config/rule-law-ceilings.json +12 -6
- package/src/config/rule-obligations.json +833 -0
- package/src/install/installThinLayer.ts +76 -10
- package/src/install/installedRuleLinks.ts +105 -17
- package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
- package/src/scripts/_cli/cmd_conformance.ts +13 -2
- package/src/scripts/_cli/cmd_doctor.ts +10 -10
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +133 -0
- package/src/scripts/_cli/cmd_explain.ts +72 -14
- package/src/scripts/_cli/cmd_git_convention.ts +637 -0
- package/src/scripts/_cli/cmd_settings_check.ts +66 -8
- package/src/scripts/_cli/cmd_settings_get.ts +18 -3
- package/src/scripts/_cli/doctor_execution.ts +72 -1
- package/src/scripts/_dispatch.bash +37 -2
- package/src/scripts/_lib/agent_settings.ts +15 -124
- package/src/scripts/_lib/blocked_by_marker.ts +1 -1
- package/src/scripts/_lib/compile_time_toggles.ts +12 -21
- package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
- package/src/scripts/_lib/git_base_ref.ts +92 -0
- package/src/scripts/_lib/git_convention.ts +291 -0
- package/src/scripts/_lib/git_convention_carrier.ts +389 -0
- package/src/scripts/_lib/git_convention_grammar.ts +246 -0
- package/src/scripts/_lib/git_convention_measure.ts +344 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +74 -0
- package/src/scripts/_lib/graph_feeder_record.ts +236 -13
- package/src/scripts/_lib/installed_layer.ts +448 -23
- package/src/scripts/_lib/knowledge_global.ts +14 -1
- package/src/scripts/_lib/module_reach.ts +456 -0
- package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +8 -10
- package/src/scripts/_lib/ratification_artifact.ts +220 -1
- package/src/scripts/_lib/ratification_subject.ts +92 -0
- package/src/scripts/_lib/release_findings_ingest.ts +15 -7
- package/src/scripts/_lib/release_highlights.ts +5 -0
- package/src/scripts/_lib/rule_law_section.ts +1 -1
- package/src/scripts/_lib/rule_obligations.ts +205 -0
- package/src/scripts/_lib/self_repair.ts +1 -1
- package/src/scripts/_lib/settings_removed_keys.ts +173 -0
- package/src/scripts/_lib/test_red_state.ts +5 -0
- package/src/scripts/_lib/thin_rules.ts +83 -3
- package/src/scripts/_lib/touched_file_quality.ts +142 -6
- package/src/scripts/_lib/worker_budget.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +16 -1
- package/src/scripts/ai_council/config.ts +7 -7
- package/src/scripts/ai_council/modification_review.ts +100 -0
- package/src/scripts/ai_council/modification_review_questions.ts +90 -0
- package/src/scripts/ai_council/orchestrator.ts +5 -5
- package/src/scripts/ai_council/spend_gate.ts +18 -7
- package/src/scripts/ai_team/config.ts +11 -16
- package/src/scripts/audit_user_type_axis.ts +20 -8
- package/src/scripts/bench_ab_clone.ts +1 -2
- package/src/scripts/bench_concern_spawn_path.ts +129 -0
- package/src/scripts/bench_graph_feeder_latency.ts +584 -0
- package/src/scripts/check_agent_artifact_location.ts +36 -0
- package/src/scripts/check_branch_freshness.ts +147 -24
- package/src/scripts/check_enforcement_coverage.ts +130 -0
- package/src/scripts/check_evaluator_budgets.ts +4 -0
- package/src/scripts/check_finding_dispositions.ts +88 -25
- package/src/scripts/check_gate_coverage.ts +4 -3
- package/src/scripts/check_gate_reachability.ts +48 -1
- package/src/scripts/check_generator_sync.ts +48 -0
- package/src/scripts/check_hook_bundle_composition.ts +107 -0
- package/src/scripts/check_kernel_edit_ratified.ts +86 -6
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_release_manifest_content.ts +189 -0
- package/src/scripts/check_standing_rule_delivery.ts +96 -0
- package/src/scripts/check_suppression_hygiene.ts +2 -5
- package/src/scripts/ci_settle.ts +42 -5
- package/src/scripts/classify_merge_risk.ts +320 -0
- package/src/scripts/closure_scan.ts +91 -1
- package/src/scripts/command_suggester/settings.ts +8 -108
- package/src/scripts/command_suggester/types.ts +4 -5
- package/src/scripts/consumer_matrix.ts +102 -0
- package/src/scripts/context_hygiene_hook.ts +13 -23
- package/src/scripts/cost/preflight.mjs +12 -1
- package/src/scripts/council_cli.ts +7 -7
- package/src/scripts/dispatch_r2_reviewer.ts +24 -11
- package/src/scripts/explain_run.ts +8 -13
- package/src/scripts/generate_git_convention_grammar.ts +127 -0
- package/src/scripts/generate_host_cost_table.ts +20 -3
- package/src/scripts/handoff_context_hook.ts +86 -37
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +25 -6
- package/src/scripts/hooks/block_config_weakening.ts +48 -5
- package/src/scripts/hooks/block_plumbing_writes.ts +8 -4
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
- package/src/scripts/hooks/evidence_independence.ts +12 -4
- package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
- package/src/scripts/hooks/push_settle_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +44 -3
- package/src/scripts/hooks/state_io.ts +8 -4
- package/src/scripts/hooks/telemetry_usage_hook.ts +7 -46
- package/src/scripts/hooks/turn_end_gate_hook.ts +1 -0
- package/src/scripts/install-hooks.sh +42 -14
- package/src/scripts/install.ts +7 -31
- package/src/scripts/lint_blocker_citations.ts +198 -0
- package/src/scripts/lint_evidence_artifacts.ts +9 -0
- package/src/scripts/lint_hook_concern_budget.ts +10 -21
- package/src/scripts/lint_pack_boundaries.ts +406 -28
- package/src/scripts/lint_roadmap_blockers.ts +282 -29
- package/src/scripts/lint_roadmap_complexity.ts +4 -2
- package/src/scripts/lint_rule_law_section.ts +151 -21
- package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
- package/src/scripts/lint_settings_classes.ts +1 -1
- package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
- package/src/scripts/lint_workflow_security.ts +12 -1
- package/src/scripts/measure_skill_ranker_baseline.ts +5 -0
- package/src/scripts/model_rule_injection.ts +3 -3
- package/src/scripts/onboarding_gate_hook.ts +7 -6
- package/src/scripts/print_required_checks.ts +15 -3
- package/src/scripts/probe_host_compliance.ts +33 -5
- package/src/scripts/probe_turnaround.ts +183 -3
- package/src/scripts/ratification_header.ts +77 -0
- package/src/scripts/refusal_envelope.ts +138 -0
- package/src/scripts/release_publication.ts +29 -3
- package/src/scripts/report_dispatch_import_closure.ts +76 -0
- package/src/scripts/report_installed_rule_links.ts +118 -1
- package/src/scripts/report_module_reach.ts +212 -0
- package/src/scripts/report_obligation_mechanism.ts +16 -18
- package/src/scripts/report_parked_blockers.ts +222 -0
- package/src/scripts/report_required_checks_drift.ts +196 -0
- package/src/scripts/report_skill_ranker_confusion.ts +103 -2
- package/src/scripts/report_standing_payload_by_host.ts +1 -1
- package/src/scripts/routing_doctor.ts +2 -2
- package/src/scripts/schemas/agent-settings.schema.json +17 -31
- package/src/scripts/schemas/command.schema.json +1 -1
- package/src/scripts/schemas/skill.schema.json +1 -1
- package/src/scripts/self_review_gate.ts +39 -2
- package/src/scripts/skill_tools/score_skill_relevance.ts +28 -19
- package/src/scripts/sync_pr_branch.ts +403 -132
- package/src/scripts/trigger_eval_grandfather.json +0 -16
- package/src/server/schemas/settings.ts +33 -177
- package/src/shared/skillRanking.ts +53 -4
- package/dist/cli-delegate/chunk-NYX3L2PZ.js +0 -99
- package/src/scripts/_lib/config_chain.ts +0 -477
- package/src/scripts/_lib/conformance_report.ts +0 -403
- package/src/scripts/_lib/eval_discrimination.ts +0 -95
- package/src/scripts/_lib/evaluator_promotion.ts +0 -225
- package/src/scripts/_lib/file_slicer.ts +0 -117
- package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
- package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
- package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
- package/src/scripts/_lib/role_split.ts +0 -338
|
@@ -25,63 +25,62 @@ import {
|
|
|
25
25
|
build_claude_hook_matrix,
|
|
26
26
|
global_deploy_inventory_exports,
|
|
27
27
|
residualReport
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-MDPPKQCQ.js";
|
|
29
|
+
import {
|
|
30
|
+
LEGACY_ALL,
|
|
31
|
+
excludedRuleBasenames,
|
|
32
|
+
ruleScopeFromSettings
|
|
33
|
+
} from "./chunk-DMSZHXZS.js";
|
|
29
34
|
import {
|
|
30
|
-
CLI_CALLS_ATTRIBUTION_SUFFIX,
|
|
31
|
-
CLI_CONSUMER_COUNCIL,
|
|
32
|
-
CLI_CONSUMER_SELF_REVIEW,
|
|
33
|
-
CLI_CONSUMER_TEAM,
|
|
34
|
-
CLI_CONSUMER_UNKNOWN,
|
|
35
35
|
DEFAULT_PROJECTS_ROOT,
|
|
36
|
-
DEFAULT_SEAT_CEILING,
|
|
37
|
-
OPENAI_CLI_VENDOR_DEFAULT,
|
|
38
|
-
QUOTA_SOURCE_LOCAL_BUDGET,
|
|
39
|
-
QUOTA_SOURCE_PROVIDER,
|
|
40
|
-
admitsContent,
|
|
41
36
|
aggregateByBucket,
|
|
42
37
|
billableInputTokens,
|
|
43
|
-
config_exports,
|
|
44
38
|
derivedBytes,
|
|
45
39
|
hardenedSpawnEnv,
|
|
46
40
|
measureBytesPerToken,
|
|
47
|
-
policyExclusionReason,
|
|
48
41
|
projectStoreSlug,
|
|
49
|
-
quotaSummaryLine,
|
|
50
|
-
readAttribution,
|
|
51
|
-
recordAttribution,
|
|
52
|
-
resetAttribution,
|
|
53
42
|
scanTranscripts,
|
|
54
|
-
weightedInputUnits
|
|
55
|
-
|
|
56
|
-
writeStateAtomically
|
|
57
|
-
} from "./chunk-EEHDXSYD.js";
|
|
43
|
+
weightedInputUnits
|
|
44
|
+
} from "./chunk-OAFSJBHH.js";
|
|
58
45
|
import {
|
|
59
46
|
git_common_dir
|
|
60
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-IAYTIIQW.js";
|
|
61
48
|
import {
|
|
62
49
|
read_lockfile
|
|
63
|
-
} from "./chunk-
|
|
64
|
-
import {
|
|
65
|
-
LEGACY_ALL,
|
|
66
|
-
excludedRuleBasenames,
|
|
67
|
-
ruleScopeFromSettings
|
|
68
|
-
} from "./chunk-DMSZHXZS.js";
|
|
50
|
+
} from "./chunk-LQOCRFWT.js";
|
|
69
51
|
import {
|
|
70
52
|
runCensus,
|
|
71
53
|
summaryLine
|
|
72
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-F3QDG2GT.js";
|
|
73
55
|
import {
|
|
74
56
|
DEFAULT_DEPLOY_ROOTS,
|
|
75
57
|
SCHEMA_VERSIONS_SUPPORTED,
|
|
76
58
|
manifest_path,
|
|
77
59
|
read_manifest
|
|
78
60
|
} from "./chunk-OKJUIAPS.js";
|
|
61
|
+
import {
|
|
62
|
+
CLI_CALLS_ATTRIBUTION_SUFFIX,
|
|
63
|
+
CLI_CONSUMER_COUNCIL,
|
|
64
|
+
CLI_CONSUMER_SELF_REVIEW,
|
|
65
|
+
CLI_CONSUMER_TEAM,
|
|
66
|
+
CLI_CONSUMER_UNKNOWN,
|
|
67
|
+
DEFAULT_SEAT_CEILING,
|
|
68
|
+
OPENAI_CLI_VENDOR_DEFAULT,
|
|
69
|
+
QUOTA_SOURCE_LOCAL_BUDGET,
|
|
70
|
+
QUOTA_SOURCE_PROVIDER,
|
|
71
|
+
admitsContent,
|
|
72
|
+
config_exports,
|
|
73
|
+
policyExclusionReason,
|
|
74
|
+
quotaSummaryLine,
|
|
75
|
+
readAttribution,
|
|
76
|
+
recordAttribution,
|
|
77
|
+
resetAttribution,
|
|
78
|
+
withStateLock,
|
|
79
|
+
writeStateAtomically
|
|
80
|
+
} from "./chunk-WQWXGIWB.js";
|
|
79
81
|
import {
|
|
80
82
|
require_dist
|
|
81
83
|
} from "./chunk-OY53J6II.js";
|
|
82
|
-
import {
|
|
83
|
-
resolvePackageRoot
|
|
84
|
-
} from "./chunk-MCJYCQPF.js";
|
|
85
84
|
import {
|
|
86
85
|
PROJECT_ROOT_ENV,
|
|
87
86
|
ProjectRootError,
|
|
@@ -91,12 +90,15 @@ import {
|
|
|
91
90
|
load_agent_settings,
|
|
92
91
|
project_settings_path,
|
|
93
92
|
resolve_project_root
|
|
94
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-H76PHZBI.js";
|
|
95
94
|
import {
|
|
96
95
|
event4u_root,
|
|
97
96
|
resolve_with_fallback,
|
|
98
97
|
write_target
|
|
99
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-T6BP34WI.js";
|
|
99
|
+
import {
|
|
100
|
+
resolvePackageRoot
|
|
101
|
+
} from "./chunk-MCJYCQPF.js";
|
|
100
102
|
import {
|
|
101
103
|
__export,
|
|
102
104
|
__toESM
|
|
@@ -3205,7 +3207,7 @@ function executionJson(overrides) {
|
|
|
3205
3207
|
escalation: [...posture.escalation]
|
|
3206
3208
|
};
|
|
3207
3209
|
}
|
|
3208
|
-
function forgeProtectionJson(reading, repo = null) {
|
|
3210
|
+
function forgeProtectionJson(reading, repo = null, not_checked = null) {
|
|
3209
3211
|
const rows = forgeProtectionRows(reading);
|
|
3210
3212
|
const readFromForge = rows.some((r) => r.state !== "unread");
|
|
3211
3213
|
const anonymous = repo === null || !readFromForge;
|
|
@@ -3219,10 +3221,22 @@ function forgeProtectionJson(reading, repo = null) {
|
|
|
3219
3221
|
detail: r.detail
|
|
3220
3222
|
})),
|
|
3221
3223
|
actions: protectionActions(rows).map(name),
|
|
3222
|
-
read_from_forge: readFromForge
|
|
3224
|
+
read_from_forge: readFromForge,
|
|
3225
|
+
// Present on every run, `null` when the read happened. A key that
|
|
3226
|
+
// appeared only on the skipped path would make its absence carry the
|
|
3227
|
+
// meaning, and absence is exactly what a schema-validating consumer
|
|
3228
|
+
// reads as "this build does not report it".
|
|
3229
|
+
not_checked
|
|
3223
3230
|
};
|
|
3224
3231
|
}
|
|
3232
|
+
function forgeDepsFor(opts) {
|
|
3233
|
+
const not_checked = opts.check !== null ? "single_check" : opts.no_forge === true ? "offline_flag" : opts.online === true ? null : "online_not_requested";
|
|
3234
|
+
return { offline: not_checked !== null, not_checked };
|
|
3235
|
+
}
|
|
3225
3236
|
function forgeProtectionJsonFor(root, deps = {}) {
|
|
3237
|
+
if (deps.offline === true) {
|
|
3238
|
+
return forgeProtectionJson(UNREAD_FORGE, null, deps.not_checked ?? null);
|
|
3239
|
+
}
|
|
3226
3240
|
const env = deps.env ?? process.env;
|
|
3227
3241
|
const run = deps.run;
|
|
3228
3242
|
const remaining = budgetOf(FORGE_TOTAL_BUDGET_MS);
|
|
@@ -6414,7 +6428,6 @@ var AI_TEAM_DEFAULTS = Object.freeze({
|
|
|
6414
6428
|
model: "auto",
|
|
6415
6429
|
allow_delegate: false,
|
|
6416
6430
|
max_calls_per_day: 50,
|
|
6417
|
-
suppress_setup_hint: false,
|
|
6418
6431
|
review_gate: AI_TEAM_REVIEW_GATE_DEFAULTS
|
|
6419
6432
|
});
|
|
6420
6433
|
|
|
@@ -8759,7 +8772,7 @@ function _run_no_manifest(opts, project_root, origin, bridge_present) {
|
|
|
8759
8772
|
const fail_check = checks.some((c) => c["status"] === "fail");
|
|
8760
8773
|
const skipped_requested = opts.check !== null && checks.some((c) => c["id"] === opts.check && c["status"] === "skipped");
|
|
8761
8774
|
if (opts.json) {
|
|
8762
|
-
_emit_json(project_root, [], [], [], [], checks, origin);
|
|
8775
|
+
_emit_json(project_root, [], [], [], [], checks, origin, forgeDepsFor(opts));
|
|
8763
8776
|
} else if (opts.check === null) {
|
|
8764
8777
|
print2(` \u{1F4CD} project_root: ${project_root} (origin: ${origin})`);
|
|
8765
8778
|
if (bridge_present) {
|
|
@@ -8795,7 +8808,7 @@ function _run_no_manifest(opts, project_root, origin, bridge_present) {
|
|
|
8795
8808
|
}
|
|
8796
8809
|
return bridge_present ? 0 : 2;
|
|
8797
8810
|
}
|
|
8798
|
-
function _emit_json(project_root, missing, modified, foreign, tag_drift, checks = null, origin = null) {
|
|
8811
|
+
function _emit_json(project_root, missing, modified, foreign, tag_drift, checks = null, origin = null, forge = {}) {
|
|
8799
8812
|
const payload = {
|
|
8800
8813
|
project_root: String(project_root),
|
|
8801
8814
|
missing,
|
|
@@ -8805,7 +8818,7 @@ function _emit_json(project_root, missing, modified, foreign, tag_drift, checks
|
|
|
8805
8818
|
};
|
|
8806
8819
|
if (origin !== null) payload["project_root_origin"] = origin;
|
|
8807
8820
|
payload["execution"] = executionJson(() => iter_setting_overrides({ cwd: project_root }));
|
|
8808
|
-
payload["forge_protection"] = forgeProtectionJsonFor(String(project_root));
|
|
8821
|
+
payload["forge_protection"] = forgeProtectionJsonFor(String(project_root), forge);
|
|
8809
8822
|
payload["traffic_environment"] = trafficEnvironmentJson(process3.env);
|
|
8810
8823
|
if (checks !== null) {
|
|
8811
8824
|
payload["checks"] = checks;
|
|
@@ -8842,12 +8855,15 @@ function _emit_detection_text(project_root, checks) {
|
|
|
8842
8855
|
}
|
|
8843
8856
|
var PROG = "agent-config doctor";
|
|
8844
8857
|
var USAGE = `usage: ${PROG} [-h] [--project PROJECT] [--json] [--ci] [--check ID]
|
|
8845
|
-
` + STRICT_USAGE + " [--trace-root] [--context] [--anatomy]\n [--repair ID]\n";
|
|
8858
|
+
` + STRICT_USAGE + " [--trace-root] [--context] [--anatomy] [--no-forge]\n [--online] [--repair ID]\n";
|
|
8846
8859
|
var _STORE_TRUE_FLAGS = {
|
|
8847
8860
|
"--json": "json",
|
|
8848
8861
|
"--ci": "ci",
|
|
8849
8862
|
...STRICT_STORE_TRUE,
|
|
8850
8863
|
"--trace-root": "trace_root",
|
|
8864
|
+
"--no-forge": "no_forge",
|
|
8865
|
+
"--offline": "no_forge",
|
|
8866
|
+
"--online": "online",
|
|
8851
8867
|
"--context": "context",
|
|
8852
8868
|
"--anatomy": "anatomy"
|
|
8853
8869
|
};
|
|
@@ -8871,6 +8887,8 @@ function _parse2(argv) {
|
|
|
8871
8887
|
...STRICT_DEFAULTS,
|
|
8872
8888
|
check: null,
|
|
8873
8889
|
trace_root: false,
|
|
8890
|
+
no_forge: false,
|
|
8891
|
+
online: false,
|
|
8874
8892
|
context: false,
|
|
8875
8893
|
anatomy: false,
|
|
8876
8894
|
repair: null
|
|
@@ -9110,7 +9128,7 @@ function main6(argv = null) {
|
|
|
9110
9128
|
const checks = _run_checks(project_root, manifest, drift_groups, opts.check);
|
|
9111
9129
|
const fail_check = checks.some((c) => c["status"] === "fail");
|
|
9112
9130
|
if (opts.json) {
|
|
9113
|
-
_emit_json(project_root, missing, modified, foreign, tag_drift, checks, origin);
|
|
9131
|
+
_emit_json(project_root, missing, modified, foreign, tag_drift, checks, origin, forgeDepsFor(opts));
|
|
9114
9132
|
} else {
|
|
9115
9133
|
if (opts.check === null) {
|
|
9116
9134
|
print2(` \u{1F4CD} project_root: ${project_root} (origin: ${origin})`);
|
|
@@ -4054,22 +4054,19 @@ var profileId = external_exports.enum(["developer", "content_creator", "founder"
|
|
|
4054
4054
|
var accessStyle = external_exports.enum(["getters_setters", "get_attribute", "magic_properties"]);
|
|
4055
4055
|
var chatFreq = external_exports.enum(["per_turn", "per_phase", "per_tool"]);
|
|
4056
4056
|
var qualityCadence = external_exports.enum(["end_of_roadmap", "per_phase", "per_step"]);
|
|
4057
|
-
var regenCadence = external_exports.enum(["per_step", "every_5_steps", "phase_boundary"]);
|
|
4058
4057
|
var fidelityMode = external_exports.enum(["strict", "structural", "hard-floor"]);
|
|
4059
|
-
var crossSourceMode = external_exports.enum(["on", "auto", "off"]);
|
|
4060
|
-
var richSkillsMode = external_exports.enum(["on", "ask", "off"]);
|
|
4061
4058
|
var replyMethod = external_exports.enum(["replies_endpoint", "create_review_comment", "auto"]);
|
|
4062
4059
|
var confidenceBand = external_exports.enum(["off", "low", "medium", "high"]);
|
|
4063
4060
|
var onBlock = external_exports.enum(["stop", "ask", "warn"]);
|
|
4064
|
-
var onBlockFallback = external_exports.enum(["stop", "warn"]);
|
|
4065
4061
|
var modelAutoSwitch = external_exports.enum(["auto", "suggest", "off"]);
|
|
4066
4062
|
var leanProjectionMode = external_exports.enum(["eager-all", "thin", "delivery"]);
|
|
4067
4063
|
var leanProjectionHost = external_exports.enum(["claude-code", "cursor", "cline"]);
|
|
4068
4064
|
var projectionMode = external_exports.enum(["legacy-all", "scoped"]);
|
|
4069
|
-
var memoryCadence = external_exports.enum(["auto", "always", "never"]);
|
|
4070
4065
|
var projectAudience = external_exports.enum(["self", "internal", "client", "public"]);
|
|
4071
4066
|
var deliveryMerge = external_exports.enum(["off", "on-green"]);
|
|
4072
4067
|
var prTopology = external_exports.enum(["single", "stacked"]);
|
|
4068
|
+
var gitCommitFormat = external_exports.enum(["ticket-scope", "ticket-conventional"]);
|
|
4069
|
+
var gitUpdateStrategy = external_exports.enum(["merge", "rebase"]);
|
|
4073
4070
|
var settingsSchema = external_exports.object({
|
|
4074
4071
|
agent_config_version: external_exports.string().default("").describe(
|
|
4075
4072
|
'Pin the package to an exact semver (e.g. "1.4.2") so all teammates load the same skill / rule set. Leave empty to track whatever is installed locally \u2014 useful for the maintainers of this package, risky for production projects.'
|
|
@@ -4146,18 +4143,9 @@ var settingsSchema = external_exports.object({
|
|
|
4146
4143
|
rtk_installed: external_exports.boolean().default(false).describe(
|
|
4147
4144
|
"Does this machine have rtk (Rust Token Killer, a third-party Apache-2.0 tool: https://github.com/rtk-ai/rtk) on PATH \u2014 verified as the real Token Killer, not the unrelated Rust Type Kit that shares the binary name? When true the agent wraps verbose CLI output (git, tests, linters, docker, npm, composer) with rtk (upstream reports 60-90% token savings \u2014 their estimate). Leave false if rtk is missing \u2014 the agent falls back to tail / grep. The wizard overwrites this from a live two-stage probe (PATH presence + `rtk gain` identity check)."
|
|
4148
4145
|
),
|
|
4149
|
-
minimal_output: external_exports.boolean().default(true).describe(
|
|
4150
|
-
"Prefer short bullets and tables (true, default) vs verbose prose with rationale (false). Affects every chat reply; flip to false during debugging when you want the agent to think out loud."
|
|
4151
|
-
),
|
|
4152
4146
|
canary_name: external_exports.string().default("").describe(
|
|
4153
4147
|
'Session canary \u2014 the name the agent addresses you with at the start of every new task (e.g. "Alex"). When the greeting silently disappears, the context window is degrading: start a fresh conversation. Also keeps the reply-close markers (end-summary, PR URL as literal last line) alive. Empty = fall back to the user-global canary_name, then to identity.name from the setup wizard; no name anywhere = off. See rules/session-canary.md.'
|
|
4154
4148
|
),
|
|
4155
|
-
play_by_play: external_exports.boolean().default(false).describe(
|
|
4156
|
-
`Narrate intermediate findings between tool calls ("Found it.", "Let me check Y."). Off by default \u2014 most users find it noisy. Turn on when you want to follow the agent's reasoning step by step.`
|
|
4157
|
-
),
|
|
4158
|
-
pr_comment_bot_icon: external_exports.boolean().default(false).describe(
|
|
4159
|
-
"Prefix every PR review-comment reply with \u{1F916} so humans can tell agent-authored comments apart from teammate comments at a glance. Cosmetic only; the comment body itself never changes."
|
|
4160
|
-
),
|
|
4161
4149
|
pr_progress_comments: external_exports.boolean().default(false).describe(
|
|
4162
4150
|
'Permit the agent to post unsolicited progress / status comments on an open PR (e.g. "CI fix iteration #2", "still blocked on workflow scope"). Default off \u2014 most teammates find them noisy. User-invoked flows (/fix:pr-comments, /create-pr, /code-review, explicit "post a comment that \u2026") are NOT gated by this setting. See rules/no-pr-progress-comments.md.'
|
|
4163
4151
|
),
|
|
@@ -4169,9 +4157,6 @@ var settingsSchema = external_exports.object({
|
|
|
4169
4157
|
)
|
|
4170
4158
|
}),
|
|
4171
4159
|
project: external_exports.object({
|
|
4172
|
-
pr_template: external_exports.string().default(".github/pull_request_template.md").describe(
|
|
4173
|
-
"Path (relative to project root) to the PR-description template the agent fills in before opening a pull request. Override only if your repo keeps the template somewhere non-standard."
|
|
4174
|
-
),
|
|
4175
4160
|
upstream_repo: external_exports.string().default("").describe(
|
|
4176
4161
|
"GitHub slug (owner/repo) the upstream-contribute skill targets when you ask the agent to push a learning back to the shared agent-config package. Empty = improvement PRs are disabled."
|
|
4177
4162
|
),
|
|
@@ -4182,6 +4167,17 @@ var settingsSchema = external_exports.object({
|
|
|
4182
4167
|
'Who this project is built for \u2014 read by the demand gate (\xA7 8-pre of docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md), whose L0-L4 ladder measures MARKET demand and is meaningless where no market is intended. self = a tool its maintainer builds for themselves; the gate is inert and work is classified L-self (build) instead of being deferred for lack of a user population nobody wants. internal = a team tool; only "what breaks without it?" survives. client = built for a named client, who is the requester rather than a market segment. public (default) = a product with an intended market; full three-question gate, behaviour unchanged from before this key existed.'
|
|
4183
4168
|
)
|
|
4184
4169
|
}),
|
|
4170
|
+
git: external_exports.object({
|
|
4171
|
+
commit_format: gitCommitFormat.default("ticket-scope").describe(
|
|
4172
|
+
"Where a ticket id goes in a commit subject. ticket-scope (default) = the ticket is the Conventional-Commits scope, `feat(DEV-1234): add export filter` \u2014 the behaviour every install had before this key existed. ticket-conventional = the ticket leads the subject and the scope names the system area, `DEV-1234 feat(exporter): add export filter`; a ticket is then never a scope. Without a ticket both shapes are plain Conventional Commits. A commit-linting config in the repository (commitlint, a commit-msg hook) outranks this key."
|
|
4173
|
+
),
|
|
4174
|
+
branch_pattern: external_exports.string().default("{type}/{slug}").describe(
|
|
4175
|
+
"Shape of a branch name the agent creates. Placeholders: {type} (feat, fix, \u2026), {ticket} (e.g. DEV-1234), {slug} (short kebab-case description). Default {type}/{slug}. {slug} is required, and characters outside the placeholders are limited to A-Z a-z 0-9 . _ / - so a rendered name is safe in a command; agent-config git:convention show reports anything else as invalid. A team that names branches after the ticket sets {ticket}-{slug}. A placeholder with no value is dropped together with the separator that follows it, or the one before it when it is last, so no name starts or ends with a separator ({type}/{ticket}-{slug} without a ticket gives feat/slug). Reading a ticket back out of an existing branch never depends on this pattern."
|
|
4176
|
+
),
|
|
4177
|
+
update_strategy: gitUpdateStrategy.default("merge").describe(
|
|
4178
|
+
"How a feature branch is brought up to date with its base. merge (default) = merge the base into the branch, as before this key existed. rebase = rebase the branch onto origin/<base> and publish with --force-with-lease, never a merge of the base into the branch. Rebase rewrites history, so the agent still asks for it unless the git-history-discipline rule already authorises the rewrite (the user asked this turn, an unrevoked standing instruction, or a pull --rebase the user started); this key decides which operation is proposed, never whether one is authorised."
|
|
4179
|
+
)
|
|
4180
|
+
}).default({}),
|
|
4185
4181
|
github: external_exports.object({
|
|
4186
4182
|
pr_reply_method: replyMethod.default("create_review_comment").describe(
|
|
4187
4183
|
"How the agent replies to PR review comments. create_review_comment = post a new review comment (works on every GitHub plan). replies_endpoint = thread the reply under the original comment (needs the newer REST endpoint). auto = detect at runtime, prefer threaded replies when available."
|
|
@@ -4261,32 +4257,29 @@ var settingsSchema = external_exports.object({
|
|
|
4261
4257
|
)
|
|
4262
4258
|
})
|
|
4263
4259
|
}),
|
|
4264
|
-
pipelines: external_exports.object({
|
|
4265
|
-
skill_improvement: external_exports.boolean().default(true).describe(
|
|
4266
|
-
"After a meaningful task the agent proposes a learning-capture turn (new skill, rule tweak, guideline). Turn off if you find the prompts noisy \u2014 you can still run /memory:promote manually."
|
|
4267
|
-
)
|
|
4268
|
-
}),
|
|
4269
4260
|
roadmap: external_exports.object({
|
|
4270
|
-
skip_pre_run_gate: external_exports.boolean().default(true).describe(
|
|
4271
|
-
'Skip the /roadmap:process-* pre-run confirmation gate. true (default) starts processing immediately and surfaces the resolved config inline; false shows the numbered-options gate and waits. A genuine "which roadmap?" ambiguity always prompts regardless.'
|
|
4272
|
-
),
|
|
4273
4261
|
quality_cadence: qualityCadence.default("per_phase").describe(
|
|
4274
4262
|
"When the agent runs the full quality / test suite during /roadmap:process-* runs. per_phase = after each phase boundary (default since 2026-09-13 \u2014 end_of_roadmap lets errors compound across phases, which is expensive in a multi-phase autonomous run nobody is watching). end_of_roadmap = once, after the last step (fastest). per_step = after every single step (slowest, highest confidence)."
|
|
4275
4263
|
),
|
|
4276
|
-
dashboard_regen_cadence: regenCadence.default("every_5_steps").describe(
|
|
4277
|
-
"How often the agent regenerates agents/roadmaps/dashboard.md during a roadmap run. every_5_steps = batch the regen (default). per_step = after every step (freshest dashboard, highest subprocess overhead). phase_boundary = only at phase edges. A rename, phase add, or archive always regenerates immediately regardless."
|
|
4278
|
-
),
|
|
4279
4264
|
horizon_weeks: external_exports.number().int().min(0).default(0).describe(
|
|
4280
4265
|
'Optional planning horizon (weeks) the agent shows in roadmap framing ("next 4 weeks"). Set 0 to omit the horizon \u2014 most teams prefer to ship without a hardcoded window.'
|
|
4281
4266
|
),
|
|
4282
4267
|
gate_budget: external_exports.object({
|
|
4283
|
-
|
|
4284
|
-
|
|
4268
|
+
// `.min(0)` is kept deliberately, at a known cost: the settings-
|
|
4269
|
+
// reference generator renders a constrained nullable number as
|
|
4270
|
+
// type `unknown` rather than `number,null` (it reads `node.type`,
|
|
4271
|
+
// which a constrained nullable emits as an `anyOf` instead).
|
|
4272
|
+
// Eight keys already render that way. Dropping the constraint
|
|
4273
|
+
// would buy a nicer doc cell by letting a negative USD ceiling
|
|
4274
|
+
// into the schema, and a cap that refuses everything is a worse
|
|
4275
|
+
// outcome than an uninformative table cell.
|
|
4276
|
+
max_cost_per_run_usd: external_exports.number().min(0).nullable().default(null).describe(
|
|
4277
|
+
"Per-run USD ceiling for a CLASS-1 roadmap blocker executed via `agent-config gates --execute`. A class-1 entry whose **Budget:** field states a larger figure renders its consent line instead of running. null (default) = no per-run ceiling, per ADR-279: a spend bound applies only where one was set, and the absence of a bound is not a refusal. Bounds the size of an authorised spend; never supplies the authorisation \u2014 `--confirm` is still required on every class-1 run, set or unset."
|
|
4285
4278
|
),
|
|
4286
|
-
max_cost_per_rolling_7d_usd: external_exports.number().min(0).default(
|
|
4287
|
-
"Rolling 7-day USD ceiling for class-1 gate execution, summed from the append-only receipt ledger at agents/runtime/state/gate-budget-ledger.jsonl. A run whose estimate would cross it renders instead of running. A per-run cap alone bounds one mistake, not a week of them, which is why option (a) of b-gate-budget-preauth carries two numbers."
|
|
4279
|
+
max_cost_per_rolling_7d_usd: external_exports.number().min(0).nullable().default(null).describe(
|
|
4280
|
+
"Rolling 7-day USD ceiling for class-1 gate execution, summed from the append-only receipt ledger at agents/runtime/state/gate-budget-ledger.jsonl. A run whose estimate would cross it renders instead of running. null (default) = no rolling ceiling, per ADR-279. A per-run cap alone bounds one mistake, not a week of them, which is why option (a) of b-gate-budget-preauth carries two numbers \u2014 but each cap now bounds on its own, so setting one and leaving the other null is supported."
|
|
4288
4281
|
)
|
|
4289
|
-
}).default({ max_cost_per_run_usd:
|
|
4282
|
+
}).default({ max_cost_per_run_usd: null, max_cost_per_rolling_7d_usd: null })
|
|
4290
4283
|
}),
|
|
4291
4284
|
planning: external_exports.object({
|
|
4292
4285
|
closure_pass: external_exports.boolean().default(true).describe(
|
|
@@ -4341,11 +4334,6 @@ var settingsSchema = external_exports.object({
|
|
|
4341
4334
|
"Extra project-relative paths where THIS project keeps a code-graph index another tool wrote. The built-in list is deliberately vendor-neutral (graph.json, code-graph.json, .code-graph/graph.json) and names no tool, so a tool that writes its index elsewhere is named here rather than waited for. A graph found this way LOADS and answers query and explain with every edge tagged read-from-elsewhere; the gate verbs (impact, untested, dead) refuse a graph made only of such edges and say so, because an empty answer from a gate must not read as 'nothing found' when it means 'nothing trusted'. Absolute paths and paths escaping the project root are ignored."
|
|
4342
4335
|
)
|
|
4343
4336
|
}).default({}),
|
|
4344
|
-
consistency: external_exports.object({
|
|
4345
|
-
cross_source: crossSourceMode.default("on").describe(
|
|
4346
|
-
"Consumed by the cross-source-consistency rule. When the agent works from multiple sources (ticket text, an attached image/mockup, the spec, the codebase) it checks them against each other and asks before proceeding on a discrepancy \u2014 instead of silently guessing. on (default) = surface every real cross-source contradiction / silent-scope-expansion as one question; auto = surface only high-confidence contradictions, state low-confidence as an assumption; off = no cross-source checking."
|
|
4347
|
-
)
|
|
4348
|
-
}).default({ cross_source: "on" }),
|
|
4349
4337
|
screenshots: external_exports.object({
|
|
4350
4338
|
identity_allowlist: external_exports.array(external_exports.string()).default([]).describe(
|
|
4351
4339
|
"Consumed by the doc-screenshot-hygiene rule and screenshot-hygiene skill. Public identity tokens SAFE to show unredacted in a documentation screenshot \u2014 the maintainer's own public handles plus well-known fake-data tokens. Not a general fake-data dictionary and not identity-resolution: everything not listed is treated as sensitive by default, and a public handle co-located with a real name does not whitelist the real name. Default [] = nothing auto-allowed."
|
|
@@ -4357,39 +4345,11 @@ var settingsSchema = external_exports.object({
|
|
|
4357
4345
|
"Consumed by the doc-screenshot-hygiene rule. on (default) = a data-bearing screenshot embed is gated behind this-turn human confirmation; uncertain/unresolved regions redact-or-refuse, never ship-and-hope; illustrative/no-data screenshots may embed with a stated justification. off = no data-bearing gate (the anonymization taxonomy still applies)."
|
|
4358
4346
|
)
|
|
4359
4347
|
}).default({ identity_allowlist: [], forbid_terminal_capture: true, data_bearing_gate: "on" }),
|
|
4360
|
-
telegraph: external_exports.object({
|
|
4361
|
-
speak: external_exports.boolean().default(false).describe(
|
|
4362
|
-
"Whether the telegraph-speak rule ships at all. false (default) = DORMANT: compile_router omits the rule from dist/router.json entirely, so its body never reaches a host. This is the only lever that stops the cost. Set true only after an output-side bench clears the kill-criterion bar (docs/adrs/telegraph/0002)."
|
|
4363
|
-
)
|
|
4364
|
-
}).default({ speak: false }),
|
|
4365
|
-
tokens: external_exports.object({
|
|
4366
|
-
rich_skills: richSkillsMode.default("on").describe(
|
|
4367
|
-
"Whether skills marked token_budget_class: rich may load in full (exempt from telegraph-speak + thin-projector trimming), consumed by the token-budget-discipline rule. on = allowed (default); off = fall back to standard condensed behavior; ask = surface an estimated token delta (tokens, not dollars) and ask once per session before loading."
|
|
4368
|
-
)
|
|
4369
|
-
}).default({ rich_skills: "on" }),
|
|
4370
4348
|
verbosity: external_exports.object({
|
|
4371
|
-
intent_announcements: external_exports.boolean().default(false).describe(
|
|
4372
|
-
'Intent narration before tool batches ("Let me check X\u2026"). Only honored when personal.play_by_play is ALSO true (the direct-answers narration carve-out requires both). false (default) = act and emit the result.'
|
|
4373
|
-
),
|
|
4374
|
-
preview_artifacts: external_exports.boolean().default(false).describe(
|
|
4375
|
-
"Show generated commit messages, PR titles/bodies, branch names before acting. false (default) = use generated content directly (/commit terse path)."
|
|
4376
|
-
),
|
|
4377
|
-
routine_confirmations: external_exports.boolean().default(false).describe(
|
|
4378
|
-
"Confirmation prompts for routine workflow steps with one obvious answer. Iron-Law gates (commit-policy, scope-control git-ops, Hard Floor) ALWAYS ask regardless."
|
|
4379
|
-
),
|
|
4380
4349
|
offer_council_in_delivery: external_exports.boolean().default(false).describe(
|
|
4381
4350
|
'Offer "run AI Council on this?" inside delivery commands (/feature-plan, /review-changes, /roadmap-create). Council commands themselves are unaffected.'
|
|
4382
|
-
),
|
|
4383
|
-
post_action_reports: external_exports.enum(["off", "minimal", "full"]).default("minimal").describe(
|
|
4384
|
-
"Status blocks after a successful action. off = errors only; minimal (default) = one-line confirmation; full = bullet list."
|
|
4385
4351
|
)
|
|
4386
|
-
}).default({
|
|
4387
|
-
intent_announcements: false,
|
|
4388
|
-
preview_artifacts: false,
|
|
4389
|
-
routine_confirmations: false,
|
|
4390
|
-
offer_council_in_delivery: false,
|
|
4391
|
-
post_action_reports: "minimal"
|
|
4392
|
-
}),
|
|
4352
|
+
}).default({ offer_council_in_delivery: false }),
|
|
4393
4353
|
code_style: external_exports.object({
|
|
4394
4354
|
docblocks: external_exports.enum(["minimal", "full"]).default("minimal").describe(
|
|
4395
4355
|
"Consumed by the code-comment-discipline rule. minimal (default) = no signature-mirroring docblocks; docblocks only for machine-relevant precision (generics, array shapes) or genuine why-context. full = the exported public surface of a library package may carry one-line summary docblocks; the redundancy ban still holds."
|
|
@@ -4398,44 +4358,9 @@ var settingsSchema = external_exports.object({
|
|
|
4398
4358
|
reasoning: external_exports.object({
|
|
4399
4359
|
enabled: external_exports.boolean().default(true).describe(
|
|
4400
4360
|
"Master switch for the Reasoning Discipline Protocol (RDP). false = the whole layer is inert (zero overhead)."
|
|
4401
|
-
)
|
|
4402
|
-
auto_gate: external_exports.boolean().default(true).describe(
|
|
4403
|
-
"Engage the discipline only where it pays, using table-free signals (task triviality + agent-self-assessed host reasoning strength; no runtime model->band lookup, per ADR-035). false = gate on task-signal + the component toggles only."
|
|
4404
|
-
),
|
|
4405
|
-
components: external_exports.object({
|
|
4406
|
-
orchestrator: external_exports.boolean().default(true).describe(
|
|
4407
|
-
"Sequence the reasoning chain (ground->intent->notes->gather->audit->verify) as one system; the single coordination point."
|
|
4408
|
-
),
|
|
4409
|
-
notes_first: external_exports.boolean().default(true).describe(
|
|
4410
|
-
"Keep hypotheses/predictions/decisions in session notes; the response carries conclusions + evidence only."
|
|
4411
|
-
),
|
|
4412
|
-
grounding: external_exports.boolean().default(true).describe(
|
|
4413
|
-
"Explore the environment / close info-gaps before designing."
|
|
4414
|
-
),
|
|
4415
|
-
intent: external_exports.boolean().default(true).describe(
|
|
4416
|
-
"Infer the underlying goal before solving the literal ask (standard host only)."
|
|
4417
|
-
),
|
|
4418
|
-
complexity_first: external_exports.boolean().default(true).describe(
|
|
4419
|
-
"Risk-first: resolve the load-bearing unknown before the easy parts (RDP derivation, not a Fable-documented behavior)."
|
|
4420
|
-
),
|
|
4421
|
-
verifier_default: external_exports.boolean().default(true).describe(
|
|
4422
|
-
"Run a fresh-context verifier on the structural-complexity gate (branching/constraints/stateful/irreversible + token floor)."
|
|
4423
|
-
),
|
|
4424
|
-
prediction_tracking: external_exports.boolean().default(true).describe(
|
|
4425
|
-
"Log prediction + confidence + outcome + lesson (calibration loop)."
|
|
4426
|
-
),
|
|
4427
|
-
decision_ledger: external_exports.boolean().default(true).describe(
|
|
4428
|
-
"Log decision + alternatives + reason + revisit-if; escalates to decision-record/ADR when durable."
|
|
4429
|
-
),
|
|
4430
|
-
uncertainty_budget: external_exports.boolean().default(true).describe(
|
|
4431
|
-
"Per-dimension uncertainty score that feeds adaptive effort."
|
|
4432
|
-
)
|
|
4433
|
-
}).default({})
|
|
4361
|
+
)
|
|
4434
4362
|
}).default({}),
|
|
4435
4363
|
subagents: external_exports.object({
|
|
4436
|
-
downshift: external_exports.boolean().default(true).describe(
|
|
4437
|
-
"Route delegable sub-tasks to the lowest-capable model tier (cost + speed via model downshift). false = every subagent runs on the session tier."
|
|
4438
|
-
),
|
|
4439
4364
|
quota_arbitrage: external_exports.boolean().default(true).describe(
|
|
4440
4365
|
"Prefer a separate quota-pool model for delegable sub-tasks where the host manifest reports one. Optional bonus only \u2014 identical behaviour (minus the quota win) where unsupported. Never load-bearing."
|
|
4441
4366
|
),
|
|
@@ -4456,7 +4381,7 @@ var settingsSchema = external_exports.object({
|
|
|
4456
4381
|
"Session-wide model CEILING for subagents (spend cap). Empty (default) = no ceiling. When set, suite-owned CLI spawn wrappers export CLAUDE_CODE_SUBAGENT_MODEL to the sessions they launch. Class C: a human sets it; the agent never writes or infers one."
|
|
4457
4382
|
),
|
|
4458
4383
|
max_parallel: external_exports.number().int().min(1).default(3).describe(
|
|
4459
|
-
"
|
|
4384
|
+
"Limit on subagents running in parallel during /do-in-parallel, /do-competitively, and /judge runs \u2014 a value the model reads from settings; no code counts spawns against it. Raise for faster fan-out, lower if you hit rate limits or want lower token spend."
|
|
4460
4385
|
),
|
|
4461
4386
|
adversarial_council: external_exports.enum(["off", "ask", "on"]).default("off").describe(
|
|
4462
4387
|
"Opt-in adversarial-verification-council mode (subagent-orchestration Mode 9, ADR-122). off (default) = never runs; ask = offer it on an explicit high-risk change; on = auto-run on high-risk changes. Advisory only \u2014 a panel of distinct-model skeptics red-teams a real change for defect FINDING coverage and NEVER auto-gates it (Hard Floor). Stays default-off until the adversarial-council-finding-coverage claim is backed."
|
|
@@ -4475,9 +4400,6 @@ var settingsSchema = external_exports.object({
|
|
|
4475
4400
|
max_calls_per_day: external_exports.number().int().min(0).default(50).describe(
|
|
4476
4401
|
"Per-day cap on team calls, read against the EXISTING cli_call_budget openai bucket (~/.event4u/agent-config/cli-calls.json, daily UTC reset) \u2014 one subscription, one counter, never a parallel count. 0 = block all team calls."
|
|
4477
4402
|
),
|
|
4478
|
-
suppress_setup_hint: external_exports.boolean().default(false).describe(
|
|
4479
|
-
"Suppress the one-line wizard/init recommendation to set up the codex plugin on Claude-Code hosts. Cosmetic only \u2014 never changes behavior."
|
|
4480
|
-
),
|
|
4481
4403
|
review_gate: external_exports.object({
|
|
4482
4404
|
managed: external_exports.boolean().default(false).describe(
|
|
4483
4405
|
"Managed governance of the codex plugin's Stop-hook Review Gate (road-to-team-mode Phase 4). false (default) = byte-identical pre-Phase-4 behavior: no counting, no circuit breaker. true = count consecutive BLOCK verdicts per session and trip the circuit breaker at max_consecutive_blocks."
|
|
@@ -4486,7 +4408,7 @@ var settingsSchema = external_exports.object({
|
|
|
4486
4408
|
"Circuit-breaker bound: after this many CONSECUTIVE BLOCK verdicts in one session, a visible notice is injected exactly once and the managed layer stops re-blocking \u2014 the user decides, never an infinite Claude\u2194Codex loop. An ALLOW verdict resets the counter. Positive integer."
|
|
4487
4409
|
)
|
|
4488
4410
|
}).default({ managed: false, max_consecutive_blocks: 3 })
|
|
4489
|
-
}).default({ model: "auto", allow_delegate: false, max_calls_per_day: 50,
|
|
4411
|
+
}).default({ model: "auto", allow_delegate: false, max_calls_per_day: 50, review_gate: { managed: false, max_consecutive_blocks: 3 } }),
|
|
4490
4412
|
emergency: external_exports.object({
|
|
4491
4413
|
orchestration_halt: external_exports.boolean().default(false).describe(
|
|
4492
4414
|
"The one audited incident switch over the always-on orchestration stack (subagents, council, team). NOT an activation gate: false (default) = the stack runs normally. true = halted; arming requires no ceremony. Disarming (returning to false) requires orchestration_halt_justification to be a non-empty string. Both transitions emit one telemetry line."
|
|
@@ -4501,22 +4423,7 @@ var settingsSchema = external_exports.object({
|
|
|
4501
4423
|
)
|
|
4502
4424
|
}),
|
|
4503
4425
|
commands: external_exports.object({
|
|
4504
|
-
auto_detect: external_exports.enum(["enabled", "warn", "disabled"]).default("enabled").describe(
|
|
4505
|
-
"Global kill-switch for orchestrator auto-detection (6.1.0 non-interactive-contract). enabled (default) = /judge, /fix, /analytics, /tests, /override auto-detect their sub-command per a confidence-tiered table; warn = detect but always confirm before routing; disabled = never auto-detect (always show the menu interactively, require an explicit sub-command in CI). Per-orchestrator override: auto_detect:false in front-matter. Per-invocation: --no-auto-detect."
|
|
4506
|
-
),
|
|
4507
4426
|
suggestion: external_exports.object({
|
|
4508
|
-
enabled: external_exports.boolean().default(true).describe(
|
|
4509
|
-
'Master switch for the slash-command suggestion layer. When on, the agent offers numbered options ("did you mean /commit?") instead of guessing. Turn off if you prefer to type every command yourself.'
|
|
4510
|
-
),
|
|
4511
|
-
confidence_floor: external_exports.number().min(0).max(1).default(0.6).describe(
|
|
4512
|
-
"Minimum semantic-match score (0.0\u20131.0) before a command is offered as a suggestion. 0.6 (default) balances precision and recall. Raise toward 0.8 for fewer false positives, lower for broader hints."
|
|
4513
|
-
),
|
|
4514
|
-
cooldown_seconds: external_exports.number().int().min(0).default(600).describe(
|
|
4515
|
-
"How long (seconds) the suggester waits before offering the same command again after you ignored it. Default 600s (10 min) keeps the agent from nagging. Set 0 to disable the cooldown."
|
|
4516
|
-
),
|
|
4517
|
-
max_options: external_exports.number().int().min(0).default(4).describe(
|
|
4518
|
-
'Maximum number of command suggestions shown in a single numbered-options block, before the "Proceed as-is" escape. Lower for terser prompts, raise if you regularly want broader fan-out.'
|
|
4519
|
-
),
|
|
4520
4427
|
blocklist: external_exports.array(external_exports.string()).default([]).describe(
|
|
4521
4428
|
'Slash-command names that should never be suggested, one per line (e.g. "commit", "create-pr"). Useful if a command misfires on your common phrasing.'
|
|
4522
4429
|
)
|
|
@@ -4528,17 +4435,8 @@ var settingsSchema = external_exports.object({
|
|
|
4528
4435
|
detail_level: external_exports.enum(["min", "med", "max"]).default("min").describe(
|
|
4529
4436
|
"Verbosity tier for the generated PR description body. min (default) = title + 2-3 sentence what/why/impact + linked ticket (token-frugal); med = min + grouped changes + tests note; max = med + how-to-test + edge cases + reviewer guidance. Critical info (breaking changes, migrations, security, rollback) is ALWAYS included at every tier \u2014 the tier governs explanatory depth, never whether a critical callout appears."
|
|
4530
4437
|
),
|
|
4531
|
-
api_examples: external_exports.boolean().default(true).describe(
|
|
4532
|
-
"JSON request/response examples for API-endpoint changes. true (default) = include a fenced example ONLY when grounded in a real source (response DTO/resource, OpenAPI/schema, test fixture, or an actual probe); no grounded source \u2192 a one-line pointer, never an invented example. false = never add API examples."
|
|
4533
|
-
),
|
|
4534
4438
|
screenshots: external_exports.boolean().default(false).describe(
|
|
4535
4439
|
"Screenshots for frontend changes. false (default) = never attempt. true = attempt when the host has browser/preview tooling and the diff touches a frontend surface; capability-gated (emits a one-line note and leaves the placeholder when tooling is absent, never fails or blocks the PR). Before/after + changed-region highlighting is best-effort."
|
|
4536
|
-
),
|
|
4537
|
-
ui_paths: external_exports.array(external_exports.string()).default([]).describe(
|
|
4538
|
-
'Optional glob list that makes frontend detection explicit instead of heuristic (e.g. ["resources/views/**", "src/pages/**"]). Empty (default) = a light path/extension heuristic that fails open (no false enrichment when the surface is ambiguous).'
|
|
4539
|
-
),
|
|
4540
|
-
api_paths: external_exports.array(external_exports.string()).default([]).describe(
|
|
4541
|
-
'Optional glob list that makes API-endpoint detection explicit instead of heuristic (e.g. ["app/Http/Controllers/Api/**", "src/pages/api/**"]). Empty (default) = a light path/extension heuristic that fails open.'
|
|
4542
4440
|
)
|
|
4543
4441
|
})
|
|
4544
4442
|
}),
|
|
@@ -4551,12 +4449,6 @@ var settingsSchema = external_exports.object({
|
|
|
4551
4449
|
)
|
|
4552
4450
|
}),
|
|
4553
4451
|
memory: external_exports.object({
|
|
4554
|
-
cadence: memoryCadence.default("always").describe(
|
|
4555
|
-
"Cadence of the \u{1F9E0} memory-visibility line after a memory-consulting step. always (default) = show whenever a memory type was asked; auto = show only when 3+ types were consulted (less noise); never = suppress. Distinct from rule_loading_tier \u2014 owns its own key since the 2026-06-01 untangle."
|
|
4556
|
-
),
|
|
4557
|
-
review_threshold: external_exports.number().int().min(0).default(10).describe(
|
|
4558
|
-
"Maximum number of memory entries /memory:load surfaces inline before falling back to a summary view. Default 10 keeps the chat readable. Raise to see more candidates, lower to keep the context tight."
|
|
4559
|
-
),
|
|
4560
4452
|
redact_patterns: external_exports.array(external_exports.string()).default([]).describe(
|
|
4561
4453
|
"Regex patterns (one per line) that scrub matches from chat-history transcripts and memory before they hit disk. Use for secrets, customer names, internal URLs. Patterns are anchored and case-insensitive."
|
|
4562
4454
|
),
|
|
@@ -4574,38 +4466,13 @@ var settingsSchema = external_exports.object({
|
|
|
4574
4466
|
),
|
|
4575
4467
|
allowed_tiers: external_exports.array(external_exports.string()).default(["public"]).describe(
|
|
4576
4468
|
"Origin tiers auto-eligible to cross a project boundary. proprietary is manual-only regardless (the gate hard-codes it), so an in-house schema never auto-shares."
|
|
4577
|
-
)
|
|
4578
|
-
redaction: external_exports.object({
|
|
4579
|
-
enabled: external_exports.boolean().default(true).describe(
|
|
4580
|
-
"Run the privacy-floor + source-confidentiality scan before any card goes global."
|
|
4581
|
-
),
|
|
4582
|
-
halt_on_trigger: external_exports.boolean().default(true).describe(
|
|
4583
|
-
"Halt-and-surface on a confidential-pattern hit; never silent-share, never auto-rewrite."
|
|
4584
|
-
)
|
|
4585
|
-
}).default({}),
|
|
4586
|
-
auto_promote_threshold: external_exports.number().int().min(1).default(2).describe(
|
|
4587
|
-
"Distinct-repo count at which a public/vendor card triggers a promotion suggestion (never a silent write)."
|
|
4588
|
-
),
|
|
4589
|
-
freshness: external_exports.object({
|
|
4590
|
-
hypothesis_after_days: external_exports.number().int().min(0).default(90).describe(
|
|
4591
|
-
"A global card older than this is lead-only (positive structure must be re-confirmed before use)."
|
|
4592
|
-
),
|
|
4593
|
-
stale_after_days: external_exports.number().int().min(0).default(180).describe(
|
|
4594
|
-
"A global card older than this is skipped until re-verified."
|
|
4595
|
-
)
|
|
4596
|
-
}).default({})
|
|
4469
|
+
)
|
|
4597
4470
|
}).default({})
|
|
4598
4471
|
}).default({}),
|
|
4599
4472
|
hooks: external_exports.object({
|
|
4600
4473
|
concern_budget: external_exports.object({
|
|
4601
|
-
max_per_event: external_exports.number().int().min(1).default(8).describe(
|
|
4602
|
-
"Maximum number of concerns (issues / warnings) a single hook may raise per (platform, event) pair before the hook is rate-limited. Default 8 prevents noisy hooks from drowning out high-signal ones."
|
|
4603
|
-
),
|
|
4604
4474
|
tier1_concerns: external_exports.array(external_exports.string()).default([]).describe(
|
|
4605
4475
|
"Concern IDs (one per line) that are allowed to block the run on failure rather than warn. Reserved for high-confidence guards \u2014 leave empty unless you maintain custom hooks."
|
|
4606
|
-
),
|
|
4607
|
-
hard_fail: external_exports.boolean().default(false).describe(
|
|
4608
|
-
"When a hook exceeds hooks.concern_budget.max_per_event, fail the run (true) instead of warning and continuing (false, default). Turn on in CI when you want hook quality to gate merges."
|
|
4609
4476
|
)
|
|
4610
4477
|
}),
|
|
4611
4478
|
verify_before_complete: external_exports.object({
|
|
@@ -4658,12 +4525,9 @@ var settingsSchema = external_exports.object({
|
|
|
4658
4525
|
// fires is decided by each detector's own trigger conditions, not by a
|
|
4659
4526
|
// flag. A leftover `hooks.turn_end_gate.*` block from an older install
|
|
4660
4527
|
// warns once on stderr and is ignored — see REMOVED_KEYS in
|
|
4661
|
-
// `src/scripts/_lib/
|
|
4528
|
+
// `src/scripts/_lib/settings_removed_keys.ts`.
|
|
4662
4529
|
}),
|
|
4663
4530
|
decision_engine: external_exports.object({
|
|
4664
|
-
surface_traces: external_exports.boolean().default(false).describe(
|
|
4665
|
-
"Emit DecisionTraceHook events that surface why the agent picked one option over another. Useful when debugging unexpected choices; off by default to keep chat noise low."
|
|
4666
|
-
),
|
|
4667
4531
|
min_confidence: confidenceBand.default("off").describe(
|
|
4668
4532
|
"During Phase=Plan, refuse to advance to Phase=Implement if confidence is below this band. off (default) = no gate. low / medium / high = raise the floor; on miss, decision_engine.on_block decides what happens."
|
|
4669
4533
|
),
|
|
@@ -4677,10 +4541,7 @@ var settingsSchema = external_exports.object({
|
|
|
4677
4541
|
"What the decision engine does when a gate (min_confidence / block_on_risk / require_memory_hits) fires. stop (default) = halt and surface the reason. ask = present numbered options. warn = log and continue."
|
|
4678
4542
|
),
|
|
4679
4543
|
ask_timeout_seconds: external_exports.number().int().min(0).default(30).describe(
|
|
4680
|
-
"Non-TTY timeout (seconds) for decision_engine.on_block = ask. After this elapses without input,
|
|
4681
|
-
),
|
|
4682
|
-
on_block_fallback: onBlockFallback.default("stop").describe(
|
|
4683
|
-
"Resolution when decision_engine.on_block = ask times out (see decision_engine.ask_timeout_seconds). stop (default) = halt the run. warn = log and continue with the agent's best guess."
|
|
4544
|
+
"Non-TTY timeout (seconds) for decision_engine.on_block = ask. After this elapses without input, the engine stops (fail-safe). Default 30s; raise for slow human review, 0 = wait forever."
|
|
4684
4545
|
)
|
|
4685
4546
|
}),
|
|
4686
4547
|
update_check: external_exports.object({
|
|
@@ -4688,11 +4549,6 @@ var settingsSchema = external_exports.object({
|
|
|
4688
4549
|
"Once per day the agent checks the npm registry for a newer agent-config release and surfaces a one-line banner if one exists. Turn off in air-gapped environments or to silence the banner."
|
|
4689
4550
|
)
|
|
4690
4551
|
}),
|
|
4691
|
-
explain: external_exports.object({
|
|
4692
|
-
enable_last: external_exports.boolean().default(true).describe(
|
|
4693
|
-
"Enable the `agent-config explain last` command, which prints the reasoning behind the agent's most recent decision (last tool call, last suggestion). Disable if you never use it and want a smaller CLI surface."
|
|
4694
|
-
)
|
|
4695
|
-
}),
|
|
4696
4552
|
legal_review_prep: external_exports.object({
|
|
4697
4553
|
acknowledged: external_exports.boolean().default(false).describe(
|
|
4698
4554
|
"I understand the legal-review-prep pack provides templates and general information ONLY \u2014 it is NOT legal advice, creates no attorney-client relationship, and never replaces a licensed lawyer. Individual cases require an attorney. The pack stays inactive until this is checked."
|