@event4u/agent-config 9.9.0 → 9.11.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 +212 -194
- package/README.md +13 -16
- package/agents/templates/.ai-council.yml.example +481 -0
- package/agents/templates/.ai-video.xml.example +247 -0
- 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/design-fidelity.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 +21 -7
- package/dist/agent-src/skills/fe-design/SKILL.md +10 -0
- 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/apply.ts +30 -30
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
- package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
- package/dist/agent-src/templates/scripts/work_engine/state.ts +21 -4
- 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/initRouting.js +74 -11
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/main.js +14 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/python/workspace_roles.js +2 -2
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/cli-delegate/chunk-4SV3XGFA.js +6910 -0
- package/dist/cli-delegate/chunk-736JCWLM.js +1104 -0
- package/dist/cli-delegate/chunk-7DSAMZFU.js +356 -0
- package/dist/cli-delegate/chunk-7HQ52DHU.js +74 -0
- package/dist/cli-delegate/chunk-BJGXZNPM.js +266 -0
- package/dist/cli-delegate/chunk-FTAISGDQ.js +117 -0
- package/dist/cli-delegate/chunk-GME3Q44L.js +82 -0
- package/dist/cli-delegate/chunk-GRRPEPRN.js +336 -0
- package/dist/cli-delegate/chunk-HJ6DAJHR.js +502 -0
- package/dist/cli-delegate/chunk-IR7P7JWA.js +872 -0
- package/dist/cli-delegate/chunk-J55WI3RR.js +47 -0
- package/dist/cli-delegate/chunk-MCJYCQPF.js +35 -0
- package/dist/cli-delegate/chunk-NDJLNC6Q.js +169 -0
- package/dist/cli-delegate/chunk-OMIVVCG2.js +26 -0
- package/dist/cli-delegate/chunk-OY53J6II.js +7336 -0
- package/dist/cli-delegate/chunk-RDGRHAAB.js +259 -0
- package/dist/cli-delegate/chunk-TFG57JJM.js +1969 -0
- package/dist/cli-delegate/chunk-XX6TOPD7.js +715 -0
- package/dist/cli-delegate/chunk-YMFO6FDN.js +10603 -0
- package/dist/cli-delegate/cmd_analyze_session.js +294 -0
- package/dist/cli-delegate/cmd_conformance.js +646 -0
- package/dist/cli-delegate/cmd_converge.js +326 -0
- package/dist/cli-delegate/cmd_doctor.js +144 -0
- package/dist/cli-delegate/cmd_explain.js +2508 -0
- package/dist/cli-delegate/cmd_export.js +296 -0
- package/dist/cli-delegate/cmd_fleet.js +332 -0
- package/dist/cli-delegate/cmd_memory_get.js +3878 -0
- package/dist/cli-delegate/cmd_migrate.js +11 -0
- package/dist/cli-delegate/cmd_preflight.js +270 -0
- package/dist/cli-delegate/cmd_prune.js +444 -0
- package/dist/cli-delegate/cmd_refresh.js +28 -0
- package/dist/cli-delegate/cmd_settings_check.js +574 -0
- package/dist/cli-delegate/cmd_settings_migrate.js +223 -0
- package/dist/cli-delegate/cmd_sync.js +264 -0
- package/dist/cli-delegate/cmd_uninstall.js +656 -0
- package/dist/cli-delegate/cmd_update.js +425 -0
- package/dist/cli-delegate/cmd_upgrade.js +444 -0
- package/dist/cli-delegate/cmd_validate.js +305 -0
- package/dist/cli-delegate/cmd_versions.js +370 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +100 -67
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +16 -10
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +7 -5
- package/dist/hooks/dispatch.js +186 -12
- package/dist/install/emit_host_rules_cli.js +2 -1
- package/dist/install/emit_host_rules_cli.js.map +1 -1
- package/dist/install/install.mjs +418 -378
- package/dist/install/rule_scope.js +5 -1
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/toolDetection.js +40 -12
- package/dist/install/toolDetection.js.map +1 -1
- package/dist/install/wizard-plan.js +2 -2
- package/dist/install/wizard-plan.js.map +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2194 -1003
- 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 +4 -2
- 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/apply.ts +30 -30
- package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
- package/src/agent-src/templates/scripts/work_engine/state.ts +21 -4
- package/src/config/agent-settings.template.yml +32 -2
- package/src/config/ci-local-parity.yml +142 -0
- package/src/config/discovery/packs.yml +7 -0
- package/src/config/evaluator-budgets.json +1 -1
- package/src/config/gate-coverage.yml +127 -0
- package/src/config/pack-size-budget.json +27 -0
- package/src/config/preamble-payload-budget.json +44 -0
- package/src/install/emit_host_rules_cli.ts +2 -1
- package/src/install/rule_scope.ts +5 -1
- package/src/install/toolDetection.ts +39 -8
- package/src/install/wizard-plan.ts +2 -2
- package/src/scripts/_cli/cmd_conformance.ts +2 -1
- package/src/scripts/_cli/cmd_converge.ts +2 -1
- package/src/scripts/_cli/cmd_doctor.ts +292 -15
- package/src/scripts/_cli/cmd_export.ts +2 -1
- package/src/scripts/_cli/cmd_fleet.ts +2 -1
- package/src/scripts/_cli/cmd_migrate.ts +2 -1
- package/src/scripts/_cli/cmd_preflight.ts +2 -1
- package/src/scripts/_cli/cmd_refresh.ts +2 -1
- package/src/scripts/_cli/cmd_update.ts +2 -1
- package/src/scripts/_cli/cmd_upgrade.ts +2 -1
- package/src/scripts/_cli/cmd_versions.ts +2 -1
- package/src/scripts/_cli/detection_report.ts +480 -0
- package/src/scripts/_dispatch.bash +52 -14
- 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/changelog_eras.ts +103 -9
- 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/environment_detector.ts +441 -0
- package/src/scripts/_lib/managed_agents_folder.ts +181 -0
- package/src/scripts/_lib/package_root.ts +72 -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 +53 -7
- package/src/scripts/ai_council/modes.ts +68 -2
- package/src/scripts/ai_council/orchestrator.ts +54 -9
- package/src/scripts/ai_council/transport_resolver.ts +331 -0
- 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_bundle_path_leakage.ts +10 -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_dependency_floors.ts +153 -0
- 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_pack_size.ts +188 -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 +51 -5
- 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/evaluator_umbrella.sh +34 -1
- 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_eval_fixture_citations.ts +113 -0
- 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/lint_ui_stack_bundles.ts +170 -0
- 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,142 @@
|
|
|
1
|
+
# CI ↔ local parity manifest — the input to `check_ci_local_parity.ts`.
|
|
2
|
+
#
|
|
3
|
+
# WHY THIS EXISTS
|
|
4
|
+
# ---------------
|
|
5
|
+
# The local aggregate (`task ci`) and the CI workflows drifted apart in BOTH
|
|
6
|
+
# directions, and each direction cost real defects:
|
|
7
|
+
#
|
|
8
|
+
# CI-only — a gate CI runs that no local chain reaches. The contributor pushes,
|
|
9
|
+
# CI goes red, and the fix costs a round trip. Measured 2026-07-30:
|
|
10
|
+
# check_portability and check_adr_frontmatter turned a PR red that a
|
|
11
|
+
# local run would have caught, twice in one session.
|
|
12
|
+
#
|
|
13
|
+
# local-only — a gate `task ci` runs that no workflow does. Nothing enforces it
|
|
14
|
+
# remotely, so a defect merges. Measured: check-index had verified the
|
|
15
|
+
# artefact index for a long time and ran in no workflow, which is how
|
|
16
|
+
# 16 stale rows in agents/index.md + docs/catalog.md reached main.
|
|
17
|
+
# check_bridge_derivation is the same shape.
|
|
18
|
+
#
|
|
19
|
+
# A gate that exists on one side only drifts silently on the other. This manifest
|
|
20
|
+
# plus the checker makes each direction a declared, reviewable choice instead of an
|
|
21
|
+
# accident.
|
|
22
|
+
#
|
|
23
|
+
# THE CONTRACT
|
|
24
|
+
# ------------
|
|
25
|
+
# The checker DERIVES both sides — it never trusts a hand-maintained list of gates:
|
|
26
|
+
#
|
|
27
|
+
# CI side parsed from .github/workflows/*.yml — every `./scripts-run
|
|
28
|
+
# src/scripts/<name>`, `npx tsx src/scripts/<name>`, `node <path>` and
|
|
29
|
+
# `task <name>` invocation.
|
|
30
|
+
# local side the transitive closure of the `task ci` / `task consistency` chains
|
|
31
|
+
# plus the pre-push hook, resolved through taskfiles/*.yml.
|
|
32
|
+
#
|
|
33
|
+
# Anything present on one side and absent on the other must appear below with a
|
|
34
|
+
# reason, or the checker fails. That is the whole mechanism: drift is allowed, but
|
|
35
|
+
# only on the record.
|
|
36
|
+
#
|
|
37
|
+
# Parity is by gate ID, not by argv. Three gates run locally in a cheap variant and
|
|
38
|
+
# in CI in a strict one (check_release_published bare vs --strict --check-npm,
|
|
39
|
+
# build_cloud_bundle --check vs --all --clean, build_linear_digest offline vs live).
|
|
40
|
+
# They need no declaration: the parity question is "can a contributor run this before
|
|
41
|
+
# pushing at all", and the answer is yes. Declaring them anyway produced exactly the
|
|
42
|
+
# dead exemption the stale-declaration check exists to catch — it was removed rather
|
|
43
|
+
# than kept, because an exemption nothing needs is one the next reader trusts.
|
|
44
|
+
#
|
|
45
|
+
# WHY NOT JUST "RUN task ci BEFORE EVERY PUSH"
|
|
46
|
+
# --------------------------------------------
|
|
47
|
+
# Because a pre-push gate that is red for a reason the contributor did not cause
|
|
48
|
+
# either blocks every push or trains people to ignore it, and the second is worse
|
|
49
|
+
# than no gate. Two measured bounds from the same sweep:
|
|
50
|
+
#
|
|
51
|
+
# bucket A (repo-content gates) sum to ~14.5s → affordable before a push
|
|
52
|
+
# check_enforcement_coverage alone is 30.7s → belongs in the post-CI loop
|
|
53
|
+
#
|
|
54
|
+
# So `pre_push_budget_seconds` below is a real budget, not a wish. A gate declared
|
|
55
|
+
# `local_only` or `both` that exceeds it is reported, not silently added to the hook.
|
|
56
|
+
|
|
57
|
+
# Wall-clock ceiling for the pre-push gate set, in seconds. Derived from the
|
|
58
|
+
# measured bucket-A sum (14.5s) plus headroom; the existing hook already costs
|
|
59
|
+
# `task consistency` + eslint + tsc, so this is a bounded increase, not a new tax.
|
|
60
|
+
pre_push_budget_seconds: 25
|
|
61
|
+
|
|
62
|
+
# Gates CI runs that no local chain reaches — each needs a reason it cannot or
|
|
63
|
+
# should not run locally. `reason` is free text; `class` is one of:
|
|
64
|
+
# network needs a token, a registry, or a live API
|
|
65
|
+
# release verifies tag / release / published-package state
|
|
66
|
+
# artifact needs something only CI builds (site, tarball, bundle)
|
|
67
|
+
# benchmark it is a measurement, timing-sensitive or paid
|
|
68
|
+
# matrix needs an OS or Node version this machine is not
|
|
69
|
+
ci_only:
|
|
70
|
+
- id: adoption_snapshot
|
|
71
|
+
class: network
|
|
72
|
+
reason: "live api.npmjs.org + api.github.com calls, reads GITHUB_TOKEN"
|
|
73
|
+
- id: sync_github_metadata
|
|
74
|
+
class: network
|
|
75
|
+
reason: "hard-fails without GITHUB_TOKEN; mutates repo topics/description via the API"
|
|
76
|
+
- id: check_release_pr_shape
|
|
77
|
+
class: release
|
|
78
|
+
reason: "shells out to `gh pr diff <n>` — needs a live PR and a token"
|
|
79
|
+
- id: check_release_adjacent_health
|
|
80
|
+
class: release
|
|
81
|
+
reason: "queries GitHub Actions run history via gh"
|
|
82
|
+
- id: bench_drift_check
|
|
83
|
+
class: benchmark
|
|
84
|
+
reason: "consumes rolling bench reports that only a bench run produces"
|
|
85
|
+
- id: bench_baseline_ready
|
|
86
|
+
class: benchmark
|
|
87
|
+
reason: "same — no local baseline to compare against"
|
|
88
|
+
- id: bench_hook_latency
|
|
89
|
+
class: benchmark
|
|
90
|
+
reason: "a latency measurement; 24.0s measured and timing-sensitive on a loaded machine"
|
|
91
|
+
- id: check_site_links
|
|
92
|
+
class: artifact
|
|
93
|
+
reason: "needs the built Starlight site; exits 2 unbuilt or stale (registered in gate-coverage.yml with unavailable_exit: 2)"
|
|
94
|
+
- id: pack_mcp_content
|
|
95
|
+
class: artifact
|
|
96
|
+
reason: "writes the tracked internal/workers/mcp/content.json deploy artifact — a local run dirties the tree"
|
|
97
|
+
- id: consumer_matrix
|
|
98
|
+
class: matrix
|
|
99
|
+
reason: "consumes the npm pack tarball across a Node version matrix"
|
|
100
|
+
- id: cross_model_smoke
|
|
101
|
+
class: network
|
|
102
|
+
reason: "paid cross-model canary calls, secret-gated"
|
|
103
|
+
- id: trigger_eval_rotation
|
|
104
|
+
class: network
|
|
105
|
+
reason: "paid model calls"
|
|
106
|
+
- id: self_review_gate
|
|
107
|
+
class: network
|
|
108
|
+
reason: "--dry-run in the PR job; the live variant is a paid model call on the PR diff"
|
|
109
|
+
- id: bench_run
|
|
110
|
+
class: benchmark
|
|
111
|
+
reason: "paid model calls against a corpus"
|
|
112
|
+
- id: bench_runner
|
|
113
|
+
class: benchmark
|
|
114
|
+
reason: "the runner behind bench_run — same paid calls"
|
|
115
|
+
- id: skill_trigger_eval
|
|
116
|
+
class: benchmark
|
|
117
|
+
reason: "paid cross-model trigger-activation eval; the offline structural half is check_trigger_evals, which IS local"
|
|
118
|
+
- id: evaluator_umbrella
|
|
119
|
+
class: artifact
|
|
120
|
+
reason: "shell umbrella over CI-only evaluator fixtures"
|
|
121
|
+
- id: smoke_host_loadability
|
|
122
|
+
class: artifact
|
|
123
|
+
reason: "temp-HOME install + `claude plugin validate`; measured >100s, did not finish inside a 2-minute budget"
|
|
124
|
+
- id: install
|
|
125
|
+
class: matrix
|
|
126
|
+
reason: "the installer end-to-end against a scratch HOME on the OS matrix; a local run would rewrite this machine's own agent config"
|
|
127
|
+
- id: release
|
|
128
|
+
class: release
|
|
129
|
+
reason: "tags, bumps, publishes, opens the release PR — the release itself"
|
|
130
|
+
|
|
131
|
+
# Gates a local chain runs that no workflow does — each needs a reason it is not
|
|
132
|
+
# worth remote enforcement, OR it should simply be added to a workflow. Prefer
|
|
133
|
+
# adding it: a local-only gate is the direction that let real defects merge.
|
|
134
|
+
local_only:
|
|
135
|
+
- id: check_knowledge_sharing
|
|
136
|
+
class: staging-scoped
|
|
137
|
+
reason: >
|
|
138
|
+
Inspects the STAGED set (a gitignored intake file staged anyway via `git add -f`),
|
|
139
|
+
and CI has no staged set — the commit already happened by the time a workflow
|
|
140
|
+
runs. The committed-tree equivalent ("a file that should be gitignored is
|
|
141
|
+
tracked") is a different invariant and would need its own mode, so this is not
|
|
142
|
+
the local-only-by-neglect case the manifest warns about.
|
|
@@ -62,6 +62,11 @@
|
|
|
62
62
|
description: Laravel framework patterns; depends on PHP at the artefact level.
|
|
63
63
|
workspaces: [engineering]
|
|
64
64
|
requires: [php, engineering-base]
|
|
65
|
+
# The design layer is a companion, not a dependency: this pack ships UI
|
|
66
|
+
# executors (blade-ui, flux, livewire) whose grounded selection lives in
|
|
67
|
+
# frontend-design, but a Laravel API-only project needs none of it. Advisory
|
|
68
|
+
# so the wizard offers it; `requires` would force the weight on every install.
|
|
69
|
+
suggests: [frontend-design]
|
|
65
70
|
cluster: php
|
|
66
71
|
trust_level_default: professional
|
|
67
72
|
domain: engineering
|
|
@@ -98,6 +103,8 @@
|
|
|
98
103
|
description: React framework patterns.
|
|
99
104
|
workspaces: [engineering]
|
|
100
105
|
requires: [javascript, engineering-base]
|
|
106
|
+
# Companion, not dependency — see the note on `laravel`.
|
|
107
|
+
suggests: [frontend-design]
|
|
101
108
|
cluster: typescript
|
|
102
109
|
trust_level_default: professional
|
|
103
110
|
domain: engineering
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"unpacked_size_mb": {
|
|
9
9
|
"max": 28,
|
|
10
10
|
"last_measured": 26.05,
|
|
11
|
-
"method": "npm pack --json → dist.unpackedSize / 1e6 — includes the Phase-1 precompiled bundles (dist/hooks/dispatch.js + dist/mcp/server.mjs, ~2.1 MB) that bought the 23x hook-latency win and the tsx removal"
|
|
11
|
+
"method": "npm pack --json → dist.unpackedSize / 1e6 — includes the Phase-1 precompiled bundles (dist/hooks/dispatch.js + dist/mcp/server.mjs, ~2.1 MB) that bought the 23x hook-latency win and the tsx removal, plus dist/cli-delegate/ (~1.40 MB, ADR-204) which finished that removal for the consumer command surface. This gate is the ONLY size trip-wire on those bundles by design: a dedicated per-bundle budget key would need its own measurement wired into evaluator_umbrella.sh, and an unwired key fails check_evaluator_budgets with 'no measurement supplied' instead of guarding anything. ADR-204 projected 27.45 against max 28 without packing — the next real measurement here is the confirming one, and headroom is thin"
|
|
12
12
|
},
|
|
13
13
|
"node_modules_mb": {
|
|
14
14
|
"max": 140,
|
|
@@ -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,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Payload budget for the published npm tarball (road-to-zero-ceremony-install Phase 4). MEASURED, NEVER INVENTED — the numbers below come from `npm pack --dry-run --json --ignore-scripts` on the tracked tree at 9.9.0 (2026-07-31). Two metrics, both genuinely ungated before this file: COMPRESSED tarball size, and PER-SKILL share of the skills subtree. The UNPACKED size is deliberately absent — it is already owned by src/config/evaluator-budgets.json (unpacked_size_mb), and a second number for one lever is how three conflicting figures start circulating.",
|
|
3
|
+
"schema_version": 1,
|
|
4
|
+
"owner": "maintainer",
|
|
5
|
+
"review_by": "2027-07-31",
|
|
6
|
+
"regression_pct": 10,
|
|
7
|
+
"measurement_conditions": "npm pack --dry-run --json --ignore-scripts, run at the repo root on a clean checkout. `--ignore-scripts` means NO build runs, so dist/cli, dist/ui, dist/mcp and dist/hooks are absent and the figure covers only the TRACKED payload (src/scripts/, dist/agent-src/, dist/install/, docs/guidelines/, templates). That is deliberate: this gate is always-on for every PR, and the tracked content tree is exactly the surface that grows by accretion. The built artifact is ~5.4 MB larger and is gated separately, at release time, by evaluator-budgets.unpacked_size_mb.",
|
|
8
|
+
"budgets": {
|
|
9
|
+
"packed_size_mb": {
|
|
10
|
+
"max": 6.4,
|
|
11
|
+
"last_measured": 5.903,
|
|
12
|
+
"method": "npm pack --dry-run --json --ignore-scripts → dist.size / 1e6 (the compressed tarball a consumer actually downloads)"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"per_skill_share": {
|
|
16
|
+
"max_pct": 5.0,
|
|
17
|
+
"basis": "a single skill's share of the total bytes under dist/agent-src/skills/ in the tarball",
|
|
18
|
+
"rationale": "Measured 2026-07-31: the largest non-excepted skill is corpus-grounding at 2.33%, so a 5% cap is green with better than 2x headroom and red for any skill that doubles. It is a falsifiable gate, not a ritual one.",
|
|
19
|
+
"exceptions": {
|
|
20
|
+
"design-intelligence": {
|
|
21
|
+
"max_pct": 23.0,
|
|
22
|
+
"measured_pct": 22.63,
|
|
23
|
+
"reason": "771 KB of BM25 corpus (27 CSVs + 16 design-language prose specs + manifest.json) consumed at runtime by corpus-grounding's retriever, and referenced by 6 further skills. Moving it behind a lazy fetch would add a network dependency to a skill that works offline today — the same trade-off ADR-061 §8 already REJECTED for a 745 KB font index. The exception is visible debt, not an endorsement: raising max_pct requires a reason in the same commit."
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -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
|
+
}
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
* the Phase-1b rule filter, so scoped installs get scoped host files
|
|
22
22
|
* for free;
|
|
23
23
|
* - re-using the exported emitters keeps consumer output byte-identical
|
|
24
|
-
* to the maintainer projection (
|
|
24
|
+
* to the maintainer projection (the consumer install never drifts from
|
|
25
|
+
* Pipeline A, the source projection into `dist/agent-src/`).
|
|
25
26
|
* The trade-off (node required at install time) matches the rule-scope
|
|
26
27
|
* resolver: no node → install.sh keeps its legacy fallback surfaces.
|
|
27
28
|
*
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Install-time rule scoping
|
|
2
|
+
* Install-time rule scoping for the consumer install
|
|
3
3
|
* (road-to-request-scoped-rule-load Phase 1b).
|
|
4
4
|
*
|
|
5
|
+
* Naming: this is the CONSUMER INSTALL path, not `docs/architecture.md`'s
|
|
6
|
+
* Pipeline B (which is the `.augment/` projection). Earlier drafts called it
|
|
7
|
+
* "Pipeline B" and collided with that name; use "the consumer install" here.
|
|
8
|
+
*
|
|
5
9
|
* The projection filter (`rule_in_scope`, condense.ts) covered only the
|
|
6
10
|
* maintainer projection; the consumer install pipeline shipped rules
|
|
7
11
|
* unfiltered (dead `EXCLUDE_RULES` in install.sh; no exclude at all on the
|
|
@@ -71,6 +71,44 @@ export function knownToolIds(): readonly string[] {
|
|
|
71
71
|
return Object.keys(TOOL_SIGNALS);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
+
/**
|
|
75
|
+
* Executable names declared for `id` on `$PATH`, in table order. Empty for
|
|
76
|
+
* tools detected only by a config dir / app bundle (and for the two
|
|
77
|
+
* signal-less ids). Exposed so callers that need the resolved *path* (not
|
|
78
|
+
* just a boolean) can reuse this table instead of restating the binary names.
|
|
79
|
+
*/
|
|
80
|
+
export function toolBinaries(id: string): readonly string[] {
|
|
81
|
+
return TOOL_SIGNALS[id]?.bins ?? [];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* First declared binary for `id` that resolves on `$PATH`, or `null`. This is
|
|
86
|
+
* the path-returning twin of `detectInstalledTools`, which reports presence as
|
|
87
|
+
* a boolean across all three signal kinds — a tool can be "installed" (config
|
|
88
|
+
* dir present) while this returns `null` (no executable on `$PATH`).
|
|
89
|
+
*/
|
|
90
|
+
export function resolveToolBinary(id: string, pathEnv?: string): string | null {
|
|
91
|
+
const env = pathEnv ?? process.env['PATH'] ?? '';
|
|
92
|
+
for (const bin of toolBinaries(id)) {
|
|
93
|
+
const resolved = resolveBinaryPath(bin, env);
|
|
94
|
+
if (resolved !== null) return resolved;
|
|
95
|
+
}
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** Absolute path of `name` on `pathEnv`, or `null`. Mirrors `binOnPath`'s probe order. */
|
|
100
|
+
function resolveBinaryPath(name: string, pathEnv: string): string | null {
|
|
101
|
+
if (pathEnv.length === 0) return null;
|
|
102
|
+
for (const dir of pathEnv.split(delimiter)) {
|
|
103
|
+
if (dir.length === 0) continue;
|
|
104
|
+
for (const candidate of [name, `${name}.exe`, `${name}.cmd`]) {
|
|
105
|
+
const full = join(dir, candidate);
|
|
106
|
+
if (existsSync(full)) return full;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
|
|
74
112
|
/**
|
|
75
113
|
* Is an executable named `name` resolvable on `$PATH`? Exported for one-off
|
|
76
114
|
* presence checks (e.g. `rtk` on the Editor-and-tooling step). Defaults to
|
|
@@ -81,14 +119,7 @@ export function isBinaryOnPath(name: string, pathEnv?: string): boolean {
|
|
|
81
119
|
}
|
|
82
120
|
|
|
83
121
|
function binOnPath(name: string, pathEnv: string): boolean {
|
|
84
|
-
|
|
85
|
-
for (const dir of pathEnv.split(delimiter)) {
|
|
86
|
-
if (dir.length === 0) continue;
|
|
87
|
-
if (existsSync(join(dir, name))) return true;
|
|
88
|
-
// Windows-style executables.
|
|
89
|
-
if (existsSync(join(dir, `${name}.exe`)) || existsSync(join(dir, `${name}.cmd`))) return true;
|
|
90
|
-
}
|
|
91
|
-
return false;
|
|
122
|
+
return resolveBinaryPath(name, pathEnv) !== null;
|
|
92
123
|
}
|
|
93
124
|
|
|
94
125
|
function isToolInstalled(signal: ToolSignal, home: string, pathEnv: string): boolean {
|
|
@@ -193,8 +193,8 @@ export function expandWizardSources(inputs: WizardExpandInputs): PlanSource[] {
|
|
|
193
193
|
const srcDir = join(packageRoot, srcRel);
|
|
194
194
|
const destDir = destSub.length === 0 ? destRoot : join(destRoot, destSub);
|
|
195
195
|
// Rule sources get the install-time scoping filter — the same
|
|
196
|
-
// predicate the projection path uses (Phase 1b:
|
|
197
|
-
// never drift from Pipeline A).
|
|
196
|
+
// predicate the projection path uses (Phase 1b: the consumer
|
|
197
|
+
// install may never drift from Pipeline A, the source projection).
|
|
198
198
|
const isRuleSource = srcRel === 'dist/agent-src/rules';
|
|
199
199
|
out.push({
|
|
200
200
|
toolId,
|
|
@@ -37,6 +37,7 @@ import * as installed_tools from '../_lib/installed_tools.js';
|
|
|
37
37
|
import { atomicAppendLine } from '../../install/atomic.js';
|
|
38
38
|
import { readRecentEntries } from '../../install/txlog.js';
|
|
39
39
|
import { detectToolPresence } from '../../install/detect.js';
|
|
40
|
+
import { resolvePackageRoot } from '../_lib/package_root.js';
|
|
40
41
|
import {
|
|
41
42
|
_classify,
|
|
42
43
|
_collect_manifest_entries,
|
|
@@ -56,7 +57,7 @@ type Dict = Record<string, unknown>;
|
|
|
56
57
|
const _HERE = fileURLToPath(import.meta.url);
|
|
57
58
|
|
|
58
59
|
/** Package root — two levels above `src/scripts/_cli/`. */
|
|
59
|
-
export const PACKAGE_ROOT =
|
|
60
|
+
export const PACKAGE_ROOT = resolvePackageRoot(import.meta.url);
|
|
60
61
|
|
|
61
62
|
/** Ordered registry of conformance check identifiers. */
|
|
62
63
|
export const CONFORMANCE_CHECK_IDS = [
|
|
@@ -39,6 +39,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
|
39
39
|
import * as YAML from 'yaml';
|
|
40
40
|
|
|
41
41
|
import * as user_global_paths from '../_lib/user_global_paths.js';
|
|
42
|
+
import { resolvePackageRoot } from '../_lib/package_root.js';
|
|
42
43
|
|
|
43
44
|
type Dict = Record<string, unknown>;
|
|
44
45
|
|
|
@@ -67,7 +68,7 @@ const _HERE = fileURLToPath(import.meta.url);
|
|
|
67
68
|
|
|
68
69
|
/** Resolve the @event4u/agent-config package root (this repo). */
|
|
69
70
|
function _package_root(): string {
|
|
70
|
-
return
|
|
71
|
+
return resolvePackageRoot(import.meta.url);
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
const SETTINGS_FILENAME = 'agent-settings.yml';
|