@event4u/agent-config 9.9.0 → 9.10.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 +153 -194
- package/README.md +1 -1
- package/dist/agent-src/commands/agent-status.md +12 -11
- package/dist/agent-src/commands/agents/user/accept.md +115 -30
- package/dist/agent-src/commands/agents/user/delete.md +147 -0
- package/dist/agent-src/commands/agents/user/review.md +65 -28
- package/dist/agent-src/commands/agents/user/show.md +82 -29
- package/dist/agent-src/commands/agents/user/update.md +2 -2
- package/dist/agent-src/commands/agents/user.md +16 -3
- package/dist/agent-src/commands/check-current-md.md +0 -10
- package/dist/agent-src/commands/condense.md +28 -97
- package/dist/agent-src/commands/cost/report.md +7 -0
- package/dist/agent-src/commands/fix/portability.md +0 -8
- package/dist/agent-src/commands/fix/refs.md +0 -8
- package/dist/agent-src/commands/humanize.md +2 -2
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/memory/load.md +11 -0
- package/dist/agent-src/commands/optimize/skills.md +1 -1
- package/dist/agent-src/commands/pr/create.md +4 -4
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
- package/dist/agent-src/commands/tdd.md +21 -0
- package/dist/agent-src/commands/team/delegate.md +2 -2
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
- package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
- package/dist/agent-src/commands/team.md +4 -1
- package/dist/agent-src/commands/upstream-contribute.md +0 -1
- package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
- package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
- package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
- package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
- package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
- package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
- package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
- package/dist/agent-src/contexts/model-recommendations.md +3 -2
- package/dist/agent-src/contexts/subagent-configuration.md +3 -3
- package/dist/agent-src/ghostwriter/README.md +2 -2
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/personas/README.md +5 -5
- package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
- package/dist/agent-src/personas/backend-architect.md +24 -23
- package/dist/agent-src/personas/eloquent-tamer.md +30 -30
- package/dist/agent-src/personas/frontend-engineer.md +30 -30
- package/dist/agent-src/personas/product-owner.md +41 -38
- package/dist/agent-src/personas/qa.md +13 -13
- package/dist/agent-src/personas/security-engineer.md +22 -22
- package/dist/agent-src/presets/README.md +3 -3
- package/dist/agent-src/profiles/README.md +3 -3
- package/dist/agent-src/rules/active-remediation.md +2 -2
- package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
- package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
- package/dist/agent-src/rules/broken-access-control.md +4 -4
- package/dist/agent-src/rules/code-comment-discipline.md +1 -1
- package/dist/agent-src/rules/code-provenance.md +2 -2
- package/dist/agent-src/rules/commit-policy.md +4 -9
- package/dist/agent-src/rules/communication-through-line.md +5 -5
- package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
- package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
- package/dist/agent-src/rules/finance-safety-floor.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
- package/dist/agent-src/rules/history-discipline.md +1 -1
- package/dist/agent-src/rules/legal-safety-floor.md +1 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
- package/dist/agent-src/rules/media-governance-routing.md +13 -13
- package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
- package/dist/agent-src/rules/no-cheap-questions.md +7 -7
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
- package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
- package/dist/agent-src/rules/onboarding-gate.md +14 -4
- package/dist/agent-src/rules/persona-governance.md +2 -2
- package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
- package/dist/agent-src/rules/preservation-guard.md +10 -2
- package/dist/agent-src/rules/question-not-instruction.md +1 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
- package/dist/agent-src/rules/rule-type-governance.md +1 -1
- package/dist/agent-src/rules/scale-discipline.md +1 -1
- package/dist/agent-src/rules/scope-control.md +1 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
- package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
- package/dist/agent-src/rules/session-canary.md +1 -1
- package/dist/agent-src/rules/skill-quality.md +1 -1
- package/dist/agent-src/rules/source-confidentiality.md +21 -19
- package/dist/agent-src/rules/source-of-truth.md +6 -5
- package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
- package/dist/agent-src/rules/think-before-action.md +5 -5
- package/dist/agent-src/rules/token-budget-discipline.md +5 -3
- package/dist/agent-src/rules/token-efficiency.md +2 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
- package/dist/agent-src/rules/user-interaction.md +12 -0
- package/dist/agent-src/rules/verify-before-complete.md +4 -24
- package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
- package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
- package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
- package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
- package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
- package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
- package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
- package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
- package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
- package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
- package/dist/agent-src/skills/code-review/SKILL.md +6 -6
- package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
- package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
- package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
- package/dist/agent-src/skills/context-document/SKILL.md +23 -21
- package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
- package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
- package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
- package/dist/agent-src/skills/design-review/SKILL.md +15 -14
- package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
- package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
- package/dist/agent-src/skills/docker/SKILL.md +1 -1
- package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
- package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
- package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +6 -5
- package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
- package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
- package/dist/agent-src/skills/grafana/SKILL.md +5 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
- package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
- package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
- package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
- package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
- package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
- package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
- package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
- package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
- package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
- package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
- package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
- package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
- package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
- package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
- package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
- package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
- package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
- package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
- package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
- package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
- package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
- package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
- package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
- package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
- package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
- package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
- package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
- package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
- package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
- package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
- package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
- package/dist/agent-src/skills/terraform/SKILL.md +2 -2
- package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
- package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
- package/dist/agent-src/skills/video-director/SKILL.md +7 -7
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
- package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
- package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
- package/dist/agent-src/templates/contexts.md +1 -1
- package/dist/agent-src/templates/features.md +1 -1
- package/dist/agent-src/templates/roadmaps.md +125 -116
- package/dist/agent-src/templates/rule.md +2 -1
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- package/dist/agent-src/user-types/README.md +8 -8
- package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
- package/dist/agent-src/user-types/metalworking-shop.md +35 -34
- package/dist/agent-src/user-types/truck-driver.md +22 -20
- package/dist/cli/python/workspace_roles.js +2 -2
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +88 -62
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +6 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +5 -4
- package/dist/hooks/dispatch.js +186 -12
- package/dist/install/install.mjs +8 -0
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +1199 -857
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/compile_time_toggles.js +48 -0
- package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
- package/dist/scripts/condense.js +234 -217
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/schemas/settings.js +4 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/shared/userMd/utils.js +30 -0
- package/dist/shared/userMd/utils.js.map +1 -1
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
- package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
- package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
- package/package.json +1 -1
- package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- package/src/config/agent-settings.template.yml +32 -2
- package/src/config/ci-local-parity.yml +142 -0
- package/src/config/gate-coverage.yml +127 -0
- package/src/config/preamble-payload-budget.json +44 -0
- package/src/scripts/_cli/cmd_doctor.ts +78 -2
- package/src/scripts/_lib/agent_user_profile.ts +381 -0
- package/src/scripts/_lib/agents_overlay.ts +9 -0
- package/src/scripts/_lib/anchor_eval.ts +311 -0
- package/src/scripts/_lib/cc_transcript.ts +316 -0
- package/src/scripts/_lib/compile_time_toggles.ts +79 -0
- package/src/scripts/_lib/confusables.ts +101 -0
- package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
- package/src/scripts/_lib/managed_agents_folder.ts +181 -0
- package/src/scripts/_lib/payload_hash_drift.ts +126 -0
- package/src/scripts/_lib/preservation_migration.ts +291 -0
- package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
- package/src/scripts/_lib/scan_scope.ts +115 -0
- package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
- package/src/scripts/_lib/user_global_observations.ts +830 -0
- package/src/scripts/_lib/user_global_revocations.ts +110 -0
- package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/budget_guard.ts +90 -11
- package/src/scripts/ai_council/bundler.ts +2 -2
- package/src/scripts/ai_council/clients.ts +59 -3
- package/src/scripts/ai_council/config.ts +38 -0
- package/src/scripts/ai_council/orchestrator.ts +54 -9
- package/src/scripts/ai_team/team_dispatch.ts +17 -6
- package/src/scripts/anchor_eval_falsify.ts +198 -0
- package/src/scripts/anchor_scoring_run.ts +239 -0
- package/src/scripts/annotate_discovery.ts +1 -65
- package/src/scripts/bench_quality_run.ts +168 -4
- package/src/scripts/cache_realization_report.ts +782 -0
- package/src/scripts/check_artefact_count_messaging.ts +5 -1
- package/src/scripts/check_augment_description_cap.ts +15 -4
- package/src/scripts/check_ci_local_parity.ts +317 -0
- package/src/scripts/check_condensation.ts +96 -191
- package/src/scripts/check_context_paths.ts +38 -9
- package/src/scripts/check_gate_coverage.ts +299 -0
- package/src/scripts/check_iron_law_prominence.ts +22 -1
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_no_new_legacy_path.ts +16 -6
- package/src/scripts/check_no_roadmap_refs.ts +22 -9
- package/src/scripts/check_originality_freshness.ts +167 -0
- package/src/scripts/check_preamble_payload_budget.ts +130 -0
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_references.ts +0 -1
- package/src/scripts/check_safety_floor_untouched.ts +171 -24
- package/src/scripts/check_site_links.ts +62 -3
- package/src/scripts/ci_status.ts +0 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/command_suggester/types.ts +0 -0
- package/src/scripts/compile_router.ts +10 -14
- package/src/scripts/condense.sh +3 -4
- package/src/scripts/condense.ts +247 -228
- package/src/scripts/cost/track.mjs +168 -33
- package/src/scripts/cost_summary.ts +33 -1
- package/src/scripts/council_cli.ts +45 -3
- package/src/scripts/discovery_graph.ts +0 -0
- package/src/scripts/encoding_corpus.ts +500 -0
- package/src/scripts/encoding_corpus_report.ts +216 -0
- package/src/scripts/generate_index.ts +19 -2
- package/src/scripts/install-hooks.sh +2 -2
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_confusables.ts +10 -72
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_hidden_unicode.ts +208 -0
- package/src/scripts/lint_load_context.ts +17 -5
- package/src/scripts/lint_new_skill_gate.ts +9 -3
- package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
- package/src/scripts/lint_originality.ts +1 -1
- package/src/scripts/lint_skill_originality.ts +1 -1
- package/src/scripts/lint_ticket_buildable.ts +1 -1
- package/src/scripts/mcp_server/tools.ts +4 -4
- package/src/scripts/measure_scope_dedup.ts +224 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/mine_session.ts +98 -0
- package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
- package/src/scripts/preamble_byte_census.ts +574 -0
- package/src/scripts/probe_skill_registration.ts +2 -2
- package/src/scripts/redact_hook_capture.ts +13 -0
- package/src/scripts/release.ts +65 -10
- package/src/scripts/router_telemetry.ts +1 -1
- package/src/scripts/second_brain_retrieval.ts +14 -4
- package/src/scripts/skill_linter.ts +5 -0
- package/src/scripts/surface-tiers.yml +2 -0
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/server/schemas/settings.ts +8 -0
- package/src/shared/userMd/utils.ts +31 -0
- package/dist/agent-src/rules/telegraph-speak.md +0 -87
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Gate coverage manifest — the input to `check_gate_coverage.ts`.
|
|
2
|
+
#
|
|
3
|
+
# WHY THIS EXISTS
|
|
4
|
+
# ---------------
|
|
5
|
+
# On 2026-07-29 a sweep found gates that scanned a tree emptied by the ADR-051
|
|
6
|
+
# flat-`src/` migration, reported success, and were wired into CI. One printed
|
|
7
|
+
# `TOTAL | 0 | 0 | 0 | 0%`; another printed "All 0 auto-rule descriptions ≤ 150
|
|
8
|
+
# chars"; a third "clean (0 declarer(s))". Each exited 0. A gate that inspects
|
|
9
|
+
# nothing does not pass — it certifies coverage that does not exist, which is
|
|
10
|
+
# worse than having no gate, because the green is believed.
|
|
11
|
+
#
|
|
12
|
+
# Per-case retargeting does not close this: the next migration recreates it. This
|
|
13
|
+
# manifest plus the guard closes it structurally.
|
|
14
|
+
#
|
|
15
|
+
# THE CONTRACT (three rules, each from a real failure)
|
|
16
|
+
# ----------------------------------------------------
|
|
17
|
+
# 1. MACHINE-READABLE COUNT. Every listed gate emits exactly one line
|
|
18
|
+
# `scanned: <N>` (stdout or stderr), N = artefacts it actually inspected. The
|
|
19
|
+
# guard never parses a gate's human output — that would make the guard itself
|
|
20
|
+
# fragile, and a fragile guard is the thing being replaced.
|
|
21
|
+
#
|
|
22
|
+
# 2. CI-IDENTICAL INVOCATION. `argv` MUST match how CI/Taskfile calls the gate.
|
|
23
|
+
# A bare probe produced a false alarm during the sweep: `skill_linter` looked
|
|
24
|
+
# blind when called with no arguments, but CI passes `--all` and it scans 429
|
|
25
|
+
# artefacts. The guard must reproduce the real call or it invents defects.
|
|
26
|
+
#
|
|
27
|
+
# 3. BASELINE, NOT `> 0`. `min_scanned` is a floor, not a zero-check. A gate that
|
|
28
|
+
# drops from 428 artefacts to 3 is as broken as one that drops to 0, and `> 0`
|
|
29
|
+
# cannot see it. Set the floor below the true corpus (room for legitimate
|
|
30
|
+
# deletions) but far above a collapse.
|
|
31
|
+
#
|
|
32
|
+
# FIELDS
|
|
33
|
+
# id script stem under src/scripts/
|
|
34
|
+
# argv CI-identical arguments (list; empty list = bare call)
|
|
35
|
+
# min_scanned hard floor; guard fails when the reported count is below it
|
|
36
|
+
# corpus what the count means — so a future reader can re-derive the floor
|
|
37
|
+
# status enforced | pending
|
|
38
|
+
# pending = not yet emitting `scanned:`. The guard REPORTS these
|
|
39
|
+
# rather than skipping silently: its own partial coverage must be
|
|
40
|
+
# visible, or it repeats the sin it exists to catch.
|
|
41
|
+
gates:
|
|
42
|
+
- id: check_condensation
|
|
43
|
+
argv: []
|
|
44
|
+
min_scanned: 380
|
|
45
|
+
corpus: "src/ ↔ dist/agent-src/ .md pairs (429 at baseline: 111 rules + 318 skills)"
|
|
46
|
+
status: enforced
|
|
47
|
+
|
|
48
|
+
- id: check_augment_description_cap
|
|
49
|
+
argv: []
|
|
50
|
+
min_scanned: 80
|
|
51
|
+
corpus: "auto-type rules carrying a description (98 at baseline)"
|
|
52
|
+
status: enforced
|
|
53
|
+
note: >
|
|
54
|
+
Retargeted 2026-07-29 from the ADR-051-emptied tree (0 -> 98). It printed
|
|
55
|
+
"All 0 auto-rule descriptions" and exited 0 in CI. Retargeting surfaced 16
|
|
56
|
+
real violations (max 189 chars); all 16 were shortened under explicit
|
|
57
|
+
operator review, with every matching term programmatically verified as
|
|
58
|
+
preserved. The cap was deliberately NOT raised to fit the violations —
|
|
59
|
+
letting a gate adapt to the as-is state is the inversion that produced three
|
|
60
|
+
blind gates in the first place.
|
|
61
|
+
|
|
62
|
+
- id: lint_load_context
|
|
63
|
+
argv: []
|
|
64
|
+
min_scanned: 180
|
|
65
|
+
corpus: "md files inspected for a load_context block: src/rules + src/agent-src/contexts + agents/settings/contexts (231 at baseline, 17 declarers)"
|
|
66
|
+
status: enforced
|
|
67
|
+
note: >
|
|
68
|
+
Retargeted 2026-07-29 from the ADR-051-emptied tree: 0 -> 231 files, and it
|
|
69
|
+
immediately found a real violation the blindness had hidden
|
|
70
|
+
(src/rules/model-recommendation.md declared `../contexts/…`, a disallowed
|
|
71
|
+
relative root; normalised to the canonical `contexts/…` the rule's own prose
|
|
72
|
+
already used). The count is FILES INSPECTED, not declarers — "0 declarers"
|
|
73
|
+
over 400 files is legitimate, "0 files" is blindness, and reporting declarers
|
|
74
|
+
would have hidden exactly this dead root. LEGACY_PREFIX was deliberately NOT
|
|
75
|
+
retargeted: it detects stale pre-relocation entries and must keep
|
|
76
|
+
pointing at the old form.
|
|
77
|
+
|
|
78
|
+
- id: skill_linter
|
|
79
|
+
argv: ["--all"]
|
|
80
|
+
min_scanned: 380
|
|
81
|
+
corpus: "skills + rules under artefact_roots() (429 at baseline)"
|
|
82
|
+
status: enforced
|
|
83
|
+
note: >
|
|
84
|
+
NOT blind — the manifest's regression case for rule 2. The sweep's bare
|
|
85
|
+
probe made it look blind; `--all` scans 429. Enforced precisely so that
|
|
86
|
+
changing `argv` to a bare call fails the guard instead of silently
|
|
87
|
+
reproducing the false alarm.
|
|
88
|
+
|
|
89
|
+
- id: check_no_roadmap_refs
|
|
90
|
+
argv: []
|
|
91
|
+
min_scanned: 700
|
|
92
|
+
corpus: "stable artefacts across src/{rules,skills,agent-src/*} + docs/ + agents/settings/contexts (872 at baseline)"
|
|
93
|
+
status: enforced
|
|
94
|
+
note: >
|
|
95
|
+
Retargeted 2026-07-29 from the ADR-051-emptied tree. It had been enforcing the
|
|
96
|
+
no-roadmap-references rule for docs/ only while the rule + skill layer went
|
|
97
|
+
unscanned — 0 -> 872 artefacts. No violation had slipped through (verified),
|
|
98
|
+
so this closed a latent gap, not a live breach.
|
|
99
|
+
|
|
100
|
+
- id: check_context_paths
|
|
101
|
+
argv: []
|
|
102
|
+
min_scanned: 900
|
|
103
|
+
corpus: "reference corpus: src/{rules,skills,agent-src/commands,agent-src/contexts,domains} + agents/roadmaps (1170 at baseline)"
|
|
104
|
+
status: enforced
|
|
105
|
+
note: >
|
|
106
|
+
Retargeted 2026-07-29. An empty reference corpus makes every "unreferenced
|
|
107
|
+
context" verdict vacuous, which is how the dead root stayed invisible.
|
|
108
|
+
|
|
109
|
+
- id: check_site_links
|
|
110
|
+
argv: []
|
|
111
|
+
min_scanned: 20
|
|
112
|
+
unavailable_exit: 2
|
|
113
|
+
corpus: "built HTML pages under site/dist (25 content sources at baseline)"
|
|
114
|
+
status: enforced
|
|
115
|
+
note: >
|
|
116
|
+
Registered 2026-07-30 after it was caught reporting green over a stale build —
|
|
117
|
+
6 pages against 25 content sources, every source newer than the newest page.
|
|
118
|
+
The missing-dist path already exited 2; the stale path did not, so the gate
|
|
119
|
+
could pass while inspecting a build that did not contain the pages under test.
|
|
120
|
+
It now exits 2 on stale, and the floor here catches the partial-build case the
|
|
121
|
+
guard exists for. The lesson of the find is the manifest, not the gate: the
|
|
122
|
+
guard never flagged this because the gate was never listed. A sibling
|
|
123
|
+
silent-green found in the same sweep — the per-pack lint matrix, whose path was
|
|
124
|
+
a double ADR-051 casualty and which exited 0 on an empty match across 17 CI
|
|
125
|
+
shards — is NOT listed here because it was deleted rather than repaired
|
|
126
|
+
(skill_linter --all already covers all 429 artefacts in 0.5s).
|
|
127
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Per-spawn preamble payload ceiling (road-to-cache-economy Phase 3), unblocked by C-3 measuring 38.0% against a 15% bar. This is a RATCHET, not the roadmap's literal candidate numbers: those (median 40k / p95 50k) were anchored to an upstream ~37k baseline, while this package's own deterministic in-repo payload is ~102.5k tokens — a hard 40k gate would be red on the day it lands and would teach the reader to ignore it. The ratchet fails on GROWTH instead, so the number can only walk down, and the 40k/50k target stays recorded as the destination. Only the deterministic, in-repo buckets are gated: user-scope rules depend on what the developer happens to have installed globally and are therefore not CI-checkable.",
|
|
3
|
+
"schema_version": 1,
|
|
4
|
+
"registered_at": "2026-07-30",
|
|
5
|
+
"owner": "maintainer",
|
|
6
|
+
"review_by": "2027-07-30",
|
|
7
|
+
"metric": {
|
|
8
|
+
"basis": "chars/4 token estimate over the projected tree, produced by src/scripts/preamble_byte_census.ts",
|
|
9
|
+
"gated_buckets": [
|
|
10
|
+
"project-scope rules (dist/agent-src/rules/*.md)",
|
|
11
|
+
"preloaded skills catalog (name + description, dist/agent-src/skills)",
|
|
12
|
+
"CLAUDE.md hierarchy (project + project-local)"
|
|
13
|
+
],
|
|
14
|
+
"excluded_buckets": [
|
|
15
|
+
"user-scope rules (~/.claude/rules/*.md) — machine-dependent, not CI-checkable",
|
|
16
|
+
"tool definitions + dispatch prompt — no local source carries the request payload; the census reports it as an explicit residual"
|
|
17
|
+
]
|
|
18
|
+
},
|
|
19
|
+
"baseline_tokens": 102520,
|
|
20
|
+
"baseline_history": [
|
|
21
|
+
{
|
|
22
|
+
"tokens": 102599,
|
|
23
|
+
"at": "2026-07-30",
|
|
24
|
+
"why": "registered with the gate"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"tokens": 102520,
|
|
28
|
+
"at": "2026-07-31",
|
|
29
|
+
"why": "free tightening: the measured tree came in 79 tok under the registered baseline, so the ratchet walks down to meet it. Not a claimed reduction — nothing was optimised; the point of a ratchet is that a lower measurement becomes the new ceiling instead of becoming unused headroom."
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"headroom_pct": 5,
|
|
33
|
+
"target_tokens": {
|
|
34
|
+
"median": 40000,
|
|
35
|
+
"p95": 50000,
|
|
36
|
+
"_comment": "The roadmap's candidate numbers, kept as the destination. Reaching them needs reductions this package has not built yet; scope-dedup (C-3) removes a redundant COPY at the consumer, it does not shrink the suite itself."
|
|
37
|
+
},
|
|
38
|
+
"reference_measurements": {
|
|
39
|
+
"measured_cold_start_median_tokens": 230930,
|
|
40
|
+
"c3_scope_dedup_reduction_pct": 38,
|
|
41
|
+
"c3_condition": "FIXTURE-ONLY as of 2026-07-31: the 38% was measured on a byte-identical two-scope fixture, and that condition is currently unreachable for every consumer because install.ts:2723/2725 stamp package:/source_path: into every installed rule while the in-repo projection stamps nothing. Aligning versions yields 0/110 twins, not 110/110. The figure is the mechanism's ceiling, NOT a realised saving, and this baseline therefore assumes no dedup. Reachability is the subject of road-to-dedup-reachability; run measure_scope_dedup for the live split.",
|
|
42
|
+
"_comment": "The measured median comes from Claude Code transcripts (deduped by message.id + requestId) and is context for the ratchet, never the gated number — it moves with the developer's own session history."
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* offline-readiness · python-runtime · humanizer-runtime · tier-usage-readiness ·
|
|
32
32
|
* council-cli · team ·
|
|
33
33
|
* unsupported-combos · wizard-state · settings-review-pending ·
|
|
34
|
-
* memory-merge-union.
|
|
34
|
+
* memory-merge-union · duplicate-scope-rules.
|
|
35
35
|
* Each emits a structured `{id, status, message, remedy}` record with
|
|
36
36
|
* `status` ∈ `ok` / `warn` / `fail` / `skipped` (rendered
|
|
37
37
|
* `✅` / `⚠️` / `❌` / `⏭️`). `--check <id>` runs a single check.
|
|
@@ -89,6 +89,7 @@ import * as installed_lock from '../_lib/installed_lock.js';
|
|
|
89
89
|
import * as installed_tools from '../_lib/installed_tools.js';
|
|
90
90
|
import * as user_global_paths from '../_lib/user_global_paths.js';
|
|
91
91
|
import * as global_deploy_inventory from '../_lib/global_deploy_inventory.js';
|
|
92
|
+
import { censusDuplicateScope } from '../_lib/duplicate_scope_census.js';
|
|
92
93
|
import * as sync_gitattributes from '../sync_gitattributes.js';
|
|
93
94
|
import {
|
|
94
95
|
PROJECT_ROOT_ENV,
|
|
@@ -511,7 +512,7 @@ function splitlines(text: string): string[] {
|
|
|
511
512
|
|
|
512
513
|
/** Python `str.rstrip()` (default whitespace, ASCII+Unicode). */
|
|
513
514
|
function rstrip(s: string): string {
|
|
514
|
-
return s.replace(/[\s
|
|
515
|
+
return s.replace(/[\s\u0085 ]+$/u, '');
|
|
515
516
|
}
|
|
516
517
|
|
|
517
518
|
/** Python `value.strip().strip("'\"")` tail (after `.strip()` already done). */
|
|
@@ -762,6 +763,7 @@ const CHECK_IDS = [
|
|
|
762
763
|
'wizard-state',
|
|
763
764
|
'settings-review-pending',
|
|
764
765
|
'memory-merge-union',
|
|
766
|
+
'duplicate-scope-rules',
|
|
765
767
|
] as const;
|
|
766
768
|
|
|
767
769
|
/** Checks that need only the project root and run regardless of a lockfile. */
|
|
@@ -786,6 +788,7 @@ const GLOBAL_CHECK_IDS: ReadonlySet<string> = new Set([
|
|
|
786
788
|
'wizard-state',
|
|
787
789
|
'settings-review-pending',
|
|
788
790
|
'memory-merge-union',
|
|
791
|
+
'duplicate-scope-rules',
|
|
789
792
|
]);
|
|
790
793
|
|
|
791
794
|
/** Checks that genuinely cannot run without the project manifest. */
|
|
@@ -1739,6 +1742,76 @@ function _check_rule_scope_drift(project_root: string): Dict {
|
|
|
1739
1742
|
};
|
|
1740
1743
|
}
|
|
1741
1744
|
|
|
1745
|
+
/**
|
|
1746
|
+
* Duplicate-scope rule detection (road-to-cache-economy Phase 3, C-2 —
|
|
1747
|
+
* confirmed at 38.5% of subagent write volume on this maintainer's own
|
|
1748
|
+
* checkout). When the same `.md` rule filenames are installed at BOTH the
|
|
1749
|
+
* user-scope Claude Code config (`~/.claude/rules`) and the project scope,
|
|
1750
|
+
* every session AND every subagent spawn injects two near-identical copies
|
|
1751
|
+
* of the same rule set. This check is DETECTION ONLY: it reports the
|
|
1752
|
+
* measured redundant-token estimate and names which copy is authoritative —
|
|
1753
|
+
* it never deletes, rewrites, or otherwise touches a user's files (per
|
|
1754
|
+
* `non-destructive-by-default`).
|
|
1755
|
+
*
|
|
1756
|
+
* Project scope resolves the same way the census in
|
|
1757
|
+
* `cache_realization_report.ts` does: `dist/agent-src/rules` in this
|
|
1758
|
+
* source repo itself (the only place the ~37% finding was measured), or the
|
|
1759
|
+
* first populated {@link _RULE_PROJECTION_DIRS} entry in a consumer install.
|
|
1760
|
+
* `userRulesDirOverride` exists solely so tests never touch the real
|
|
1761
|
+
* `~/.claude/rules` on the machine running the suite.
|
|
1762
|
+
*/
|
|
1763
|
+
function _check_duplicate_scope_rules(project_root: string, userRulesDirOverride?: string): Dict {
|
|
1764
|
+
const user_rules_dir = userRulesDirOverride ?? path.join(os.homedir(), '.claude', 'rules');
|
|
1765
|
+
|
|
1766
|
+
let project_rules_dir: string | null = null;
|
|
1767
|
+
if (_is_source_repo(project_root)) {
|
|
1768
|
+
const cand = path.join(project_root, 'dist', 'agent-src', 'rules');
|
|
1769
|
+
if (isDir(cand)) project_rules_dir = cand;
|
|
1770
|
+
} else {
|
|
1771
|
+
for (const rel of _RULE_PROJECTION_DIRS) {
|
|
1772
|
+
const cand = path.join(project_root, rel);
|
|
1773
|
+
if (isDir(cand)) {
|
|
1774
|
+
project_rules_dir = cand;
|
|
1775
|
+
break;
|
|
1776
|
+
}
|
|
1777
|
+
}
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1780
|
+
if (project_rules_dir === null) {
|
|
1781
|
+
return {
|
|
1782
|
+
id: 'duplicate-scope-rules',
|
|
1783
|
+
status: 'skipped',
|
|
1784
|
+
message: 'no project-scope rule tree found (dist/agent-src/rules, .augment/rules, …) — nothing to compare against the user-scope copy',
|
|
1785
|
+
remedy: '',
|
|
1786
|
+
};
|
|
1787
|
+
}
|
|
1788
|
+
|
|
1789
|
+
const census = censusDuplicateScope(user_rules_dir, project_rules_dir);
|
|
1790
|
+
if (!census.evaluable) {
|
|
1791
|
+
return {
|
|
1792
|
+
id: 'duplicate-scope-rules',
|
|
1793
|
+
status: 'ok',
|
|
1794
|
+
message: census.reason ?? 'no duplicate-scope rule install detected',
|
|
1795
|
+
remedy: '',
|
|
1796
|
+
};
|
|
1797
|
+
}
|
|
1798
|
+
|
|
1799
|
+
const tokens = Math.round(census.duplicate_chars / 4);
|
|
1800
|
+
const rel_project = relativeTo(project_rules_dir, project_root) ?? project_rules_dir;
|
|
1801
|
+
return {
|
|
1802
|
+
id: 'duplicate-scope-rules',
|
|
1803
|
+
status: 'warn',
|
|
1804
|
+
message:
|
|
1805
|
+
`${census.shared_filenames.length} rule(s) installed at BOTH user scope (${user_rules_dir}) and ` +
|
|
1806
|
+
`project scope (${rel_project}) — an estimated ${tokens} redundant tokens are injected on every ` +
|
|
1807
|
+
'session AND every subagent spawn (both copies are always-loaded). Project scope is authoritative ' +
|
|
1808
|
+
'for this checkout.',
|
|
1809
|
+
remedy:
|
|
1810
|
+
'detection only — no file is modified. If the duplication is unwanted, refresh the user-scope copy ' +
|
|
1811
|
+
'(e.g. `agent-config global`) to re-sync it with the project-scope version.',
|
|
1812
|
+
};
|
|
1813
|
+
}
|
|
1814
|
+
|
|
1742
1815
|
function _check_python_runtime(): Dict {
|
|
1743
1816
|
// Post-teardown: the package runtime is TypeScript-on-`tsx`. python3 is no
|
|
1744
1817
|
// longer a runtime dependency, so this check no longer probes for an
|
|
@@ -2751,6 +2824,7 @@ function _run_checks(
|
|
|
2751
2824
|
'wizard-state': _check_wizard_state,
|
|
2752
2825
|
'settings-review-pending': _check_settings_review_pending,
|
|
2753
2826
|
'memory-merge-union': () => _check_memory_merge_union(project_root),
|
|
2827
|
+
'duplicate-scope-rules': () => _check_duplicate_scope_rules(project_root),
|
|
2754
2828
|
};
|
|
2755
2829
|
const out: Dict[] = [];
|
|
2756
2830
|
for (const cid of CHECK_IDS) {
|
|
@@ -2826,6 +2900,7 @@ function _run_checks_no_manifest(
|
|
|
2826
2900
|
'wizard-state': _check_wizard_state,
|
|
2827
2901
|
'settings-review-pending': _check_settings_review_pending,
|
|
2828
2902
|
'memory-merge-union': () => _check_memory_merge_union(project_root),
|
|
2903
|
+
'duplicate-scope-rules': () => _check_duplicate_scope_rules(project_root),
|
|
2829
2904
|
};
|
|
2830
2905
|
const out: Dict[] = [];
|
|
2831
2906
|
for (const cid of CHECK_IDS) {
|
|
@@ -3308,6 +3383,7 @@ export {
|
|
|
3308
3383
|
_check_offline_readiness,
|
|
3309
3384
|
_check_stale_orphans,
|
|
3310
3385
|
_check_rule_scope_drift,
|
|
3386
|
+
_check_duplicate_scope_rules,
|
|
3311
3387
|
_check_python_runtime,
|
|
3312
3388
|
_check_humanizer_runtime,
|
|
3313
3389
|
_check_mcp_beta_readiness,
|