@event4u/agent-config 16.4.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/skills/install-agent-config/SKILL.md +4 -4
- package/CHANGELOG.md +483 -669
- package/CONTRIBUTING.md +47 -0
- package/README.md +25 -25
- package/dist/agent-src/commands/{design.md → agent-design.md} +11 -7
- package/dist/agent-src/commands/agents/init.md +66 -3
- package/dist/agent-src/commands/agents/user/init.md +3 -0
- package/dist/agent-src/commands/{optimize/deep.md → analyze/and-optimize.md} +72 -33
- package/dist/agent-src/commands/analyze/inbox.md +168 -37
- package/dist/agent-src/commands/analyze/pr.md +144 -0
- package/dist/agent-src/commands/analyze/{repo.md → reference.md} +85 -14
- package/dist/agent-src/commands/analyze/roadmap-repos.md +19 -10
- package/dist/agent-src/commands/analyze.md +28 -12
- package/dist/agent-src/commands/audit.md +115 -0
- package/dist/agent-src/commands/brand/review.md +13 -2
- package/dist/agent-src/commands/brand/tokens.md +3 -3
- package/dist/agent-src/commands/brand/voice.md +8 -5
- package/dist/agent-src/commands/brand.md +2 -2
- package/dist/agent-src/commands/challenge-me/closure.md +25 -0
- package/dist/agent-src/commands/design-system/import.md +8 -3
- package/dist/agent-src/commands/design-system/sync.md +98 -0
- package/dist/agent-src/commands/design-system.md +6 -1
- package/dist/agent-src/commands/evals/analyze.json +44 -0
- package/dist/agent-src/commands/evals/audit.json +12 -0
- package/dist/agent-src/commands/evals/retro.json +12 -0
- package/dist/agent-src/commands/fix/ci.md +10 -8
- package/dist/agent-src/commands/ghostwriter/write.md +22 -0
- package/dist/agent-src/commands/memory/learn-low-impact.md +70 -83
- package/dist/agent-src/commands/memory/propose.md +12 -0
- package/dist/agent-src/commands/memory.md +1 -1
- package/dist/agent-src/commands/optimize.md +4 -3
- package/dist/agent-src/commands/post-as/me.md +18 -0
- package/dist/agent-src/commands/pr/create.md +17 -342
- package/dist/agent-src/commands/pr/merge.md +129 -368
- package/dist/agent-src/commands/retro.md +121 -0
- package/dist/agent-src/commands/review/routing.md +1 -1
- package/dist/agent-src/commands/roadmap/next.md +4 -1
- package/dist/agent-src/commands/roadmap/process-full.md +46 -333
- package/dist/agent-src/commands/roadmap/triage-parked.md +6 -2
- package/dist/agent-src/commands/team-knowledge/consolidate.md +2 -2
- package/dist/agent-src/commands/team-knowledge.md +1 -1
- package/dist/agent-src/commands/threat-model.md +1 -1
- package/dist/agent-src/commands/upstream-contribute.md +91 -101
- package/dist/agent-src/commands/worktree/cleanup.md +18 -11
- package/dist/agent-src/contexts/contracts/consumer-agents-md-guide.md +54 -0
- package/dist/agent-src/contexts/execution/analysis-loop.md +137 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +3 -3
- package/dist/agent-src/contexts/execution/decision-closure-execution.md +1 -1
- package/dist/agent-src/contexts/execution/host-capability-manifest.md +6 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +11 -4
- package/dist/agent-src/contexts/execution/pr-create-branches-content.md +250 -0
- package/dist/agent-src/contexts/execution/pr-create-branches-freshness.md +150 -0
- package/dist/agent-src/contexts/execution/pr-merge-queue.md +287 -0
- package/dist/agent-src/contexts/execution/pr-merge-sync.md +276 -0
- package/dist/agent-src/contexts/execution/pr-merge-trust-boundary.md +69 -0
- package/dist/agent-src/contexts/execution/process-full-all.md +233 -0
- package/dist/agent-src/contexts/execution/process-full-delivery.md +231 -0
- package/dist/agent-src/contexts/execution/roadmap-execution-contract-branches.md +42 -0
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +1 -35
- package/dist/agent-src/contexts/execution/roadmap-process-loop-close.md +235 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop-prescan.md +216 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop-run.md +253 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop-set.md +212 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +25 -864
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +14 -2
- package/dist/agent-src/contexts/execution/subagent-steering.md +65 -8
- package/dist/agent-src/contexts/model-recommendations.md +5 -5
- package/dist/agent-src/contexts/subagent-configuration.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/api-cost-levers.md +4 -3
- package/dist/agent-src/guidelines/agent-infra/model-recommendation.md +11 -5
- package/dist/agent-src/guidelines/agent-infra/rule-body-migration-inventory.md +1 -1
- package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +47 -24
- package/dist/agent-src/guidelines/design-antipatterns.md +6 -1
- package/dist/agent-src/guidelines/design-asset-discipline.md +17 -0
- package/dist/agent-src/guidelines/design-fidelity-routing.md +1 -0
- package/dist/agent-src/guidelines/php/api-design.md +10 -1
- package/dist/agent-src/rules/brand-source-of-truth.md +7 -6
- package/dist/agent-src/rules/code-provenance.md +1 -1
- package/dist/agent-src/rules/context-hygiene.md +0 -1
- package/dist/agent-src/rules/design-fidelity.md +12 -13
- package/dist/agent-src/rules/external-reference-deep-dive.md +2 -2
- package/dist/agent-src/rules/fix-what-you-see.md +1 -1
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +14 -15
- package/dist/agent-src/rules/missing-skill-recovery.md +12 -11
- package/dist/agent-src/rules/neighbour-precedence.md +1 -1
- package/dist/agent-src/rules/recurring-criticism.md +1 -1
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -2
- package/dist/agent-src/rules/self-repair-loop.md +2 -2
- package/dist/agent-src/rules/token-budget-discipline.md +2 -2
- package/dist/agent-src/scripts/dashboard_mode.ts +4 -1
- package/dist/agent-src/scripts/roadmap_age.ts +175 -0
- package/dist/agent-src/scripts/update_roadmap_progress.ts +10 -2
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -3
- package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +2 -0
- package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +3 -3
- package/dist/agent-src/skills/agent-security-review/SKILL.md +2 -2
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +12 -4
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +7 -0
- package/dist/agent-src/skills/ai-council/references/advanced-modes.md +11 -1
- package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +7 -0
- package/dist/agent-src/skills/ai-council/references/execution-modes.md +7 -0
- package/dist/agent-src/skills/ai-council/references/output-and-synthesis.md +19 -0
- package/dist/agent-src/skills/ai-council/references/procedure.md +7 -0
- package/dist/agent-src/skills/api-design/SKILL.md +2 -2
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/authz-review/SKILL.md +5 -3
- package/dist/agent-src/skills/blade-ui/SKILL.md +2 -2
- package/dist/agent-src/skills/brand/SKILL.md +7 -3
- package/dist/agent-src/skills/brand-asset-generation/SKILL.md +13 -6
- package/dist/agent-src/skills/brand-audit/SKILL.md +2 -1
- package/dist/agent-src/skills/brand-identity/SKILL.md +5 -4
- package/dist/agent-src/skills/brand-strategy/SKILL.md +5 -4
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +18 -39
- package/dist/agent-src/skills/brand-to-tokens/templates/marp-brand-deck.md.example +2 -2
- package/dist/agent-src/skills/brand-to-tokens/templates/reveal-brand-deck.yaml +2 -2
- package/dist/agent-src/skills/canvas-design/SKILL.md +16 -4
- package/dist/agent-src/skills/competitive-positioning/SKILL.md +2 -2
- package/dist/agent-src/skills/composer-packages/SKILL.md +18 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/content-funnel-design/SKILL.md +8 -1
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/context-document/SKILL.md +2 -2
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +6 -6
- package/dist/agent-src/skills/corpus-grounding/scripts/decision_engine.ts +13 -11
- package/dist/agent-src/skills/corpus-grounding/scripts/ground.mjs +1706 -0
- package/dist/agent-src/skills/corpus-grounding/scripts/schema_validator.ts +7 -1
- package/dist/agent-src/skills/dashboard-design/SKILL.md +1 -1
- package/dist/agent-src/skills/data-flow-mapper/SKILL.md +5 -2
- package/dist/agent-src/skills/database/SKILL.md +5 -4
- package/dist/agent-src/skills/decision-record/references/weighted-matrix.md +12 -0
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +1 -1
- package/dist/agent-src/skills/dependency-upgrade/SKILL.md +61 -11
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/data/landing.csv +1 -1
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +10 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-intelligence/references/design-rules-checklist.md +4 -3
- package/dist/agent-src/skills/design-intelligence/references/integration-mapping.md +25 -22
- package/dist/agent-src/skills/{wireframe → design-review}/references/story-beat-ledger.schema.json +1 -1
- package/dist/agent-src/skills/design-review/references/verification-automation.md +11 -3
- package/dist/agent-src/skills/design-system-capture/SKILL.md +15 -10
- package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +20 -5
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +2 -2
- package/dist/agent-src/skills/design-tokens/SKILL.md +23 -23
- package/dist/agent-src/skills/design-tokens/scripts/tokens.mjs +1037 -0
- package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +336 -13
- package/dist/agent-src/skills/design-tokens/templates/design-tokens-starter.json +52 -53
- package/dist/agent-src/skills/docker/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +14 -276
- package/dist/agent-src/skills/existing-ui-audit/procedure.yaml +44 -0
- package/dist/agent-src/skills/existing-ui-audit/references/anti-slop-cross-reference.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/references/steps/00-inspect-stack-and-input.md +4 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/01-enumerate-components.md +26 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/01b-detect-component-taxonomy.md +7 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/02-identify-design-system.md +12 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/03-detect-design-tokens.md +35 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/04-detect-shadcn-inventory.md +13 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/04b-live-storybook-read.md +26 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/05-list-reusable-patterns.md +14 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/06-match-candidates.md +52 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/07-greenfield-branch.md +29 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/08-a11y-baseline.md +40 -0
- package/dist/agent-src/skills/existing-ui-audit/references/steps/09-validate-and-write.md +5 -0
- package/dist/agent-src/skills/experiment-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +65 -4
- package/dist/agent-src/skills/fe-design/references/design-read-and-memory.md +1 -1
- package/dist/agent-src/skills/fe-design/references/source-led-port.md +1 -1
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +6 -6
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/form-handler/SKILL.md +15 -2
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +9 -0
- package/dist/agent-src/skills/git-workflow/SKILL.md +2 -2
- package/dist/agent-src/skills/git-workflow/references/branch-update.md +7 -0
- package/dist/agent-src/skills/git-workflow/references/commit-subject.md +12 -0
- package/dist/agent-src/skills/git-workflow/references/push-closes-its-loop.md +10 -0
- package/dist/agent-src/skills/gtm-launch/SKILL.md +8 -1
- package/dist/agent-src/skills/html-deck/SKILL.md +7 -2
- package/dist/agent-src/skills/humanizer/SKILL.md +16 -3
- package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +13 -1
- package/dist/agent-src/skills/humanizer/references/fixtures.md +8 -0
- package/dist/agent-src/skills/iconography/SKILL.md +4 -2
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +16 -5
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +5 -4
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.mjs +197 -0
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +18 -22
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +5 -5
- package/dist/agent-src/skills/livewire/SKILL.md +1 -1
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +18 -0
- package/dist/agent-src/skills/logo-generation/SKILL.md +21 -11
- package/dist/agent-src/skills/market-entry-analysis/SKILL.md +6 -1
- package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
- package/dist/agent-src/skills/messaging-architecture/SKILL.md +8 -1
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +2 -2
- package/dist/agent-src/skills/playwright-testing/SKILL.md +2 -0
- package/dist/agent-src/skills/positioning-strategy/SKILL.md +10 -2
- package/dist/agent-src/skills/prediction-pool-optimizer/references/ev-fixtures.md +13 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/references/odds-and-bonus.md +7 -0
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analyzer/SKILL.md +14 -75
- package/dist/agent-src/skills/project-analyzer/procedure.yaml +39 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/01-project-overview.md +9 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/02-architecture.md +7 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/03-data-layer.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/04-business-domains.md +7 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/05-api-surface.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/06-service-map.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/07-module-inventory.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/08-infrastructure-and-testing.md +5 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/09-agent-docs-audit.md +6 -0
- package/dist/agent-src/skills/project-analyzer/references/steps/10-gap-analysis.md +6 -0
- package/dist/agent-src/skills/quality-tools/references/js-ts-tools.md +10 -0
- package/dist/agent-src/skills/quality-tools/references/php-tools.md +13 -0
- package/dist/agent-src/skills/quality-tools/references/python-tools.md +11 -0
- package/dist/agent-src/skills/react-native-setup/SKILL.md +7 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +5 -1
- package/dist/agent-src/skills/react-shadcn-ui/references/registry.md +13 -0
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.mjs +315 -0
- package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +6 -6
- package/dist/agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/release-comms/SKILL.md +2 -1
- package/dist/agent-src/skills/repomix-packer/SKILL.md +2 -2
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +3 -3
- package/dist/agent-src/skills/roadmap-management/references/archival.md +3 -3
- package/dist/agent-src/skills/roadmap-management/references/authoring.md +9 -2
- package/dist/agent-src/skills/roadmap-management/references/dashboard.md +3 -3
- package/dist/agent-src/skills/roadmap-management/references/lifecycle.md +3 -3
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -4
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +1 -1
- package/dist/agent-src/skills/rule-writing/SKILL.md +1 -2
- package/dist/agent-src/skills/security/SKILL.md +41 -5
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +5 -3
- package/dist/agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-writing/SKILL.md +23 -8
- package/dist/agent-src/skills/skill-writing/references/section-patterns.md +19 -1
- package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/standards-from-config/SKILL.md +2 -2
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +5 -0
- package/dist/agent-src/skills/storybook-workshop/scripts/story_contrast_floor.mjs +99 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +13 -13
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +4 -3
- package/dist/agent-src/skills/svg-authoring/SKILL.md +324 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +8 -3
- package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.mjs +482 -0
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +8 -1
- package/dist/agent-src/skills/threat-modeling/data/manifest.json +5 -2
- package/dist/agent-src/skills/threat-modeling/data/reasoning.csv +10 -10
- package/dist/agent-src/skills/threat-modeling/data/surfaces.csv +11 -10
- package/dist/agent-src/skills/threat-modeling/data/threats.csv +34 -20
- package/dist/agent-src/skills/type-design/SKILL.md +196 -0
- package/dist/agent-src/skills/type-design/references/font-spec.md +90 -0
- package/dist/agent-src/skills/type-design/references/gates.md +113 -0
- package/dist/agent-src/skills/type-design/references/toolchain.md +66 -0
- package/dist/agent-src/skills/typography-system/SKILL.md +21 -11
- package/dist/agent-src/skills/typography-system/references/worked-scales.md +85 -0
- package/dist/agent-src/skills/ui-apply-generic/SKILL.md +1 -1
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +120 -125
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -0
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +1 -1
- package/dist/agent-src/skills/voice-and-tone-design/SKILL.md +71 -2
- package/dist/agent-src/skills/wireframe/SKILL.md +5 -2
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +16 -14
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/agents/proposal.example.md +1 -1
- package/dist/agent-src/templates/github-workflows/advisories-daily.yml +85 -0
- package/dist/agent-src/templates/roadmaps.md +39 -1
- package/dist/agent-src/templates/scripts/check_memory.ts +2 -2
- package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +13 -1
- package/dist/agent-src/templates/scripts/work_engine/cli.ts +17 -0
- package/dist/agent-src/templates/scripts/work_engine/cli_args.ts +10 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +22 -13
- package/dist/agent-src/templates/scripts/work_engine/dispatcher.ts +18 -4
- package/dist/agent-src/templates/scripts/work_engine/procedure/checks.ts +283 -0
- package/dist/agent-src/templates/scripts/work_engine/procedure/run.ts +432 -0
- package/dist/agent-src/templates/scripts/work_engine/procedure/sidecar.ts +185 -0
- package/dist/agent-src/templates/scripts/work_engine/state.ts +3 -0
- package/dist/cli/commands/uiRender.js +265 -13
- package/dist/cli/commands/uiRenderAsset.js +1316 -0
- package/dist/cli/commands/uiRenderAssetCompare.js +752 -0
- package/dist/cli/commands/uiRenderAssetFonts.js +158 -0
- package/dist/cli/commands/uiRenderAssetGrid.js +265 -0
- package/dist/cli/commands/uiRenderAssetGrounds.js +323 -0
- package/dist/cli/commands/uiRenderAssetIsolation.js +85 -0
- package/dist/cli/commands/uiRenderAssetTypes.js +133 -0
- package/dist/cli/initRouting.js +1 -1
- package/dist/cli/main.js +47 -1
- package/dist/cli/mcp/dispatch.js +31 -9
- package/dist/cli/python/knowledge_ingest.js +7 -39
- package/dist/cli/python/workspace_secrets.js +4 -177
- package/dist/cli/registry.js +5 -2
- package/dist/cli-delegate/archive_completed_roadmaps.js +3 -2
- package/dist/cli-delegate/check_update_banner.js +635 -266
- package/dist/cli-delegate/{chunk-AED2VQGM.js → chunk-2CX7NWRB.js} +233 -437
- package/dist/cli-delegate/{chunk-F3QDG2GT.js → chunk-2SFOOFJJ.js} +259 -159
- package/dist/cli-delegate/chunk-2Y5AMLMY.js +136 -0
- package/dist/cli-delegate/{chunk-OKJUIAPS.js → chunk-4E2W63DA.js} +1 -62
- package/dist/cli-delegate/{chunk-6SRJTYJS.js → chunk-4SHNERBL.js} +37 -16
- package/dist/cli-delegate/chunk-5VO3RTMV.js +208 -0
- package/dist/cli-delegate/chunk-6E2LDY4F.js +27 -0
- package/dist/cli-delegate/{chunk-XQTPXKFA.js → chunk-6ZD2QZMN.js} +8 -17
- package/dist/cli-delegate/{chunk-6V5FMA3P.js → chunk-7CEI2YPS.js} +1 -1
- package/dist/cli-delegate/{chunk-DMSZHXZS.js → chunk-7DRWULEQ.js} +80 -7
- package/dist/cli-delegate/chunk-7NXCZSDL.js +54 -0
- package/dist/cli-delegate/chunk-AX3U3UWJ.js +328 -0
- package/dist/cli-delegate/{chunk-WOKWX5PL.js → chunk-BKALSTBZ.js} +18 -3
- package/dist/cli-delegate/chunk-BMGUGSY6.js +103 -0
- package/dist/cli-delegate/chunk-BYV46VRM.js +3309 -0
- package/dist/cli-delegate/{chunk-5GPULQBE.js → chunk-CAL76ADI.js} +4215 -682
- package/dist/cli-delegate/chunk-DSY6LLCQ.js +127 -0
- package/dist/cli-delegate/chunk-E6XNBVE4.js +581 -0
- package/dist/cli-delegate/{chunk-ZUZKZYCN.js → chunk-ESUNQ5XR.js} +46 -10
- package/dist/cli-delegate/{chunk-G5VVIZRC.js → chunk-F7HLSW6P.js} +1 -1
- package/dist/cli-delegate/chunk-FIEEOH5C.js +133 -0
- package/dist/cli-delegate/chunk-FKYZOWVD.js +719 -0
- package/dist/cli-delegate/chunk-GOMILC3O.js +918 -0
- package/dist/cli-delegate/chunk-I4KJYVPB.js +69 -0
- package/dist/cli-delegate/{chunk-JQOM7TTM.js → chunk-IDAOTDPE.js} +1 -100
- package/dist/cli-delegate/chunk-IROAQ77A.js +137 -0
- package/dist/cli-delegate/chunk-J2SJZICO.js +698 -0
- package/dist/cli-delegate/{chunk-6YQC2HLF.js → chunk-JHMMWNJ2.js} +54 -40
- package/dist/cli-delegate/{chunk-WQWXGIWB.js → chunk-M6CRG5O6.js} +165 -15
- package/dist/cli-delegate/{chunk-PHD7OOLE.js → chunk-MQ2UDEGV.js} +14 -3
- package/dist/cli-delegate/chunk-NTM7G2V4.js +220 -0
- package/dist/cli-delegate/chunk-PV7S5DPJ.js +175 -0
- package/dist/cli-delegate/{chunk-F7DQWYR5.js → chunk-RAXQOETZ.js} +6 -2
- package/dist/cli-delegate/{chunk-T7XSJSUQ.js → chunk-SIOMDAKL.js} +980 -784
- package/dist/cli-delegate/{chunk-KR6EM23A.js → chunk-TULVDQ4L.js} +3 -48
- package/dist/cli-delegate/chunk-UUYEKXKR.js +20 -0
- package/dist/cli-delegate/{chunk-7XGD2OEU.js → chunk-UXWHY6CQ.js} +2 -1
- package/dist/cli-delegate/{chunk-PWX7CKMD.js → chunk-VC3ECUEK.js} +1 -1
- package/dist/cli-delegate/{chunk-KXXWJTDO.js → chunk-WMNYVIYX.js} +1 -1
- package/dist/cli-delegate/chunk-XCY5KKUC.js +181 -0
- package/dist/cli-delegate/{chunk-H76PHZBI.js → chunk-XLY5G3CM.js} +14 -19
- package/dist/cli-delegate/cmd_adr_effective.js +41 -2
- package/dist/cli-delegate/cmd_analyze_session.js +7 -7
- package/dist/cli-delegate/cmd_brand_status.js +1287 -10
- package/dist/cli-delegate/cmd_ci_settle.js +330 -0
- package/dist/cli-delegate/cmd_conformance.js +669 -822
- package/dist/cli-delegate/cmd_doctor.js +26 -16
- package/dist/cli-delegate/cmd_doctor_neighbours.js +10 -7
- package/dist/cli-delegate/cmd_explain.js +9 -24
- package/dist/cli-delegate/cmd_export.js +14 -11
- package/dist/cli-delegate/cmd_fleet.js +5 -3
- package/dist/cli-delegate/cmd_git_convention.js +8 -4
- package/dist/cli-delegate/cmd_handoff.js +79 -242
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_memory_get.js +4 -2
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +2 -2
- package/dist/cli-delegate/cmd_preflight.js +7 -5
- package/dist/cli-delegate/cmd_prune.js +16 -13
- package/dist/cli-delegate/cmd_route_audit.js +11 -8
- package/dist/cli-delegate/cmd_route_explain.js +649 -16
- package/dist/cli-delegate/cmd_session_recycle.js +15 -6
- package/dist/cli-delegate/cmd_settings_check.js +2 -2
- package/dist/cli-delegate/cmd_settings_get.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +14 -11
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +16 -13
- package/dist/cli-delegate/cmd_uninstall.js +185 -31
- package/dist/cli-delegate/cmd_update.js +67 -3
- package/dist/cli-delegate/cmd_upgrade.js +38 -7
- package/dist/cli-delegate/cmd_validate.js +16 -13
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/cli-delegate/dashboard_mode.js +1 -1
- package/dist/cli-delegate/gate_execute.js +4 -3
- package/dist/cli-delegate/roadmap_age.js +22 -0
- package/dist/cli-delegate/roadmap_gates.js +4 -3
- package/dist/cli-delegate/update_roadmap_progress.js +3 -2
- package/dist/cli-delegate/upgrade_unattended-VVL6JLSX.js +541 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +409 -201
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +36 -27
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +25 -16
- package/dist/hooks/chat_history.chunk.cjs +6852 -0
- package/dist/hooks/chat_history.chunk.cjs.sha256 +1 -0
- package/dist/hooks/dispatch.js +17706 -18627
- package/dist/hooks/dispatch.sha256 +1 -1
- package/dist/hooks/egress_engine.chunk.cjs +915 -0
- package/dist/hooks/egress_engine.chunk.cjs.sha256 +1 -0
- package/dist/hooks/svg_rules.chunk.cjs +1858 -0
- package/dist/hooks/svg_rules.chunk.cjs.sha256 +1 -0
- package/dist/install/conflict.js +36 -6
- package/dist/install/conflictTracker.js +81 -7
- package/dist/install/detect.js +3 -3
- package/dist/install/hostPermissionsAdapter.js +106 -0
- package/dist/install/install.mjs +3117 -1949
- package/dist/install/installThinLayer.js +1 -1
- package/dist/install/manifestFiles.js +21 -0
- package/dist/install/noGoDenyRows.js +300 -0
- package/dist/install/noGoRules.js +368 -0
- package/dist/install/ownershipLedger.js +133 -0
- package/dist/install/plan.js +1 -1
- package/dist/install/preflight.js +39 -8
- package/dist/install/preserve.js +74 -12
- package/dist/install/recordedOwnership.js +88 -5
- package/dist/install/rule_scope.js +20 -3
- package/dist/install/stagedRuntime.js +455 -0
- package/dist/install/toolsArg.js +19 -0
- package/dist/install/userPin.js +47 -0
- package/dist/install/wizard-plan.js +26 -4
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +3 -2
- package/dist/mcp/registry-manifest.json +6 -5
- package/dist/mcp/server.json +3 -3
- package/dist/mcp/server.mjs +9814 -5333
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/agent_settings.js +7 -12
- package/dist/scripts/_lib/asset_render_record.js +219 -0
- package/dist/scripts/_lib/claude_builtin_names.js +9 -4
- package/dist/scripts/_lib/claude_settings_hooks.js +102 -34
- package/dist/scripts/_lib/egress_rules.js +766 -0
- package/dist/scripts/_lib/environment_detector.js +24 -33
- package/dist/scripts/_lib/global_deploy_inventory.js +146 -9
- package/dist/scripts/_lib/guidelines_lane.js +10 -1
- package/dist/scripts/_lib/identifier_redaction.js +24 -0
- package/dist/scripts/_lib/installed_layer.js +17 -0
- package/dist/scripts/_lib/installed_layer_normalise.js +72 -0
- package/dist/scripts/_lib/lean_projection_mode.js +34 -152
- package/dist/scripts/_lib/project_tree_form.js +118 -0
- package/dist/scripts/_lib/scan_scope.js +105 -0
- package/dist/scripts/_lib/scoped_projection.js +133 -3
- package/dist/scripts/_lib/settings_removed_keys.js +29 -0
- package/dist/scripts/_lib/settings_renamed_keys.js +17 -5
- package/dist/scripts/_lib/subagent_native_fields.js +35 -0
- package/dist/scripts/_lib/svg_dom.js +284 -0
- package/dist/scripts/_lib/svg_filled_counter.js +285 -0
- package/dist/scripts/_lib/svg_geometry.js +477 -0
- package/dist/scripts/_lib/svg_motion.js +179 -0
- package/dist/scripts/_lib/svg_rules.js +1339 -0
- package/dist/scripts/_lib/svg_urls.js +67 -0
- package/dist/scripts/_lib/ui_surface.js +19 -0
- package/dist/scripts/_lib/verification_command.js +364 -0
- package/dist/scripts/_lib/workspace_secrets.js +229 -0
- package/dist/scripts/ai_council/seat_policy.js +27 -0
- package/dist/scripts/ai_council/transport_resolver.js +9 -10
- package/dist/scripts/condense.js +25 -29
- package/dist/scripts/lint_svg_asset.js +324 -0
- package/dist/server/io/substituteTemplate.js +2 -2
- package/dist/server/io/yamlIO.js +2 -2
- package/dist/server/routes/install.js +5 -1
- package/dist/server/routes/settings.js +2 -2
- package/dist/server/routes/wizard.js +1 -1
- package/dist/server/schemas/settings.js +22 -16
- package/dist/server/serverInfo.js +1 -1
- package/dist/shared/brandTokenDocument.js +47 -0
- package/dist/shared/brandTokenPaths.js +43 -0
- package/dist/shared/settingsCarveOut.js +0 -7
- package/dist/shared/skillRanking.js +103 -5
- package/dist/shared/userMd/formAdapter.js +16 -0
- package/dist/shared/userMd/schema.js +17 -0
- package/dist/ui/assets/index-w70Ado09.js +23 -0
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +89 -2
- package/docs/THIRD-PARTY-NOTICES.md +27 -0
- package/docs/contracts/settings-classes.md +27 -9
- package/docs/guidelines/agent-infra/api-cost-levers.md +4 -3
- package/docs/guidelines/agent-infra/model-recommendation.md +11 -5
- package/docs/guidelines/agent-infra/rule-body-migration-inventory.md +1 -1
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +47 -24
- package/docs/guidelines/design-antipatterns.md +6 -1
- package/docs/guidelines/design-asset-discipline.md +17 -0
- package/docs/guidelines/design-fidelity-routing.md +1 -0
- package/docs/guidelines/php/api-design.md +10 -1
- package/llms.txt +12 -10
- package/package.json +15 -5
- package/src/agent-src/scripts/dashboard_mode.ts +4 -1
- package/src/agent-src/scripts/roadmap_age.ts +175 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +10 -2
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/check_memory.ts +2 -2
- package/src/agent-src/templates/scripts/historical-bug-patterns.example.yml +13 -1
- package/src/agent-src/templates/scripts/work_engine/cli.ts +17 -0
- package/src/agent-src/templates/scripts/work_engine/cli_args.ts +10 -0
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +22 -13
- package/src/agent-src/templates/scripts/work_engine/dispatcher.ts +18 -4
- package/src/agent-src/templates/scripts/work_engine/procedure/checks.ts +283 -0
- package/src/agent-src/templates/scripts/work_engine/procedure/run.ts +432 -0
- package/src/agent-src/templates/scripts/work_engine/procedure/sidecar.ts +185 -0
- package/src/agent-src/templates/scripts/work_engine/state.ts +3 -0
- package/src/config/agent-settings.template.yml +120 -57
- package/src/config/agents-paths.yml +13 -7
- package/src/config/ci-local-parity.yml +44 -0
- package/src/config/continuity-surface.json +51 -2
- package/src/config/depth-audit-samples.json +5 -0
- package/src/config/discovery/command-verbs.yml +1 -0
- package/src/config/dispatch-economy-metrics.json +1 -0
- package/src/config/egress-mutations/class-precedence-swapped.json +7 -0
- package/src/config/egress-mutations/credential-token-restores.json +7 -0
- package/src/config/egress-mutations/iban-checksum-disabled.json +7 -0
- package/src/config/egress-mutations/raw-value-in-the-count-record.json +7 -0
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +149 -3
- package/src/config/gate-reachability-exemptions.json +3 -5
- package/src/config/gate-violation-baselines.json +29 -25
- package/src/config/gitignore-block.txt +6 -3
- package/src/config/hook-bundle-budget.json +34 -3
- package/src/config/hook-carrier-probes.json +30 -0
- package/src/config/hook-latency-budget.json +4 -2
- package/src/config/host-injection-effect.json +8 -1
- package/src/config/host-skill-frontmatter-keys.json +56 -0
- package/src/config/layer-form-brakes.json +4 -0
- package/src/config/layer-form-comparison-corpus.json +42 -0
- package/src/config/loop-surfaces.yaml +28 -47
- package/src/config/memory-twin-verdicts.yml +9 -1
- package/src/config/metric-registry.yml +40 -3
- package/src/config/pack-size-budget.json +15 -0
- package/src/config/procedure-core-budget.json +21 -0
- package/src/config/profiles/minimal.ini +1 -1
- package/src/config/project-tree-form.json +24 -0
- package/src/config/reach-channels.yml +3 -3
- package/src/config/reach-prescriptions-intake.yml +1 -1
- package/src/config/roadmap-step-size-baseline.json +118 -0
- package/src/config/routing-coverage-seed.json +100 -2
- package/src/config/skill-body-budget.json +686 -0
- package/src/config/skill-fork-pilot.json +17 -0
- package/src/config/skill-lifecycle-probes-codex.json +57 -0
- package/src/config/skill-lifecycle-probes.json +57 -0
- package/src/config/skill-output-shape.json +316 -0
- package/src/config/step-depth-table.json +58 -0
- package/src/config/turnaround-budget.json +90 -0
- package/src/install/conflict.ts +38 -6
- package/src/install/conflictTracker.ts +126 -8
- package/src/install/detect.ts +3 -3
- package/src/install/hostPermissionsAdapter.ts +136 -0
- package/src/install/installThinLayer.ts +6 -1
- package/src/install/manifestFiles.ts +24 -0
- package/src/install/noGoDenyRows.ts +368 -0
- package/src/install/noGoRules.ts +438 -0
- package/src/install/ownershipLedger.ts +180 -0
- package/src/install/plan.ts +1 -1
- package/src/install/preflight.ts +42 -10
- package/src/install/preserve.ts +94 -12
- package/src/install/recordedOwnership.ts +121 -3
- package/src/install/rule_scope.ts +20 -3
- package/src/install/stagedRuntime.ts +528 -0
- package/src/install/toolsArg.ts +16 -0
- package/src/install/types.ts +23 -2
- package/src/install/userPin.ts +54 -0
- package/src/install/wizard-plan.ts +25 -4
- package/src/scripts/_cli/_doctor_emit.ts +24 -0
- package/src/scripts/_cli/cmd_brand_status.ts +223 -12
- package/src/scripts/_cli/cmd_ci_settle.ts +32 -0
- package/src/scripts/_cli/cmd_doctor.ts +23 -44
- package/src/scripts/_cli/cmd_route_explain.ts +176 -2
- package/src/scripts/_cli/cmd_uninstall.ts +270 -26
- package/src/scripts/_cli/cmd_update.ts +34 -1
- package/src/scripts/_cli/cmd_upgrade.ts +38 -2
- package/src/scripts/_cli/detection_report.ts +7 -0
- package/src/scripts/_cli/doctor_execution.ts +1 -2
- package/src/scripts/_cli/doctor_install_mode.ts +39 -0
- package/src/scripts/_cli/doctor_network_posture.ts +3 -3
- package/src/scripts/_cli/doctor_ownership_ledger.ts +126 -0
- package/src/scripts/_cli/doctor_update_verdict.ts +104 -0
- package/src/scripts/_cli/explain_last/scrubber.ts +9 -21
- package/src/scripts/_cli/upgrade_unattended.ts +548 -0
- package/src/scripts/_dispatch.bash +42 -9
- package/src/scripts/_lib/activation_ladder.ts +1 -1
- package/src/scripts/_lib/advisory_inventory.ts +405 -0
- package/src/scripts/_lib/advisory_notice.ts +270 -0
- package/src/scripts/_lib/advisory_sources.ts +752 -0
- package/src/scripts/_lib/advisory_verdicts.ts +363 -0
- package/src/scripts/_lib/agent_artifact_location.ts +177 -0
- package/src/scripts/_lib/agent_settings.ts +7 -12
- package/src/scripts/_lib/arrival_record.ts +217 -0
- package/src/scripts/_lib/asset_render_record.ts +247 -0
- package/src/scripts/_lib/billing_grant.ts +4 -2
- package/src/scripts/_lib/brand_voice_slot.ts +258 -0
- package/src/scripts/_lib/canary_status.ts +24 -0
- package/src/scripts/_lib/cc_transcript.ts +276 -0
- package/src/scripts/_lib/changelog_eras.ts +83 -0
- package/src/scripts/_lib/claim_phrases.ts +71 -0
- package/src/scripts/_lib/classify_update.ts +171 -0
- package/src/scripts/_lib/claude_builtin_names.ts +9 -4
- package/src/scripts/_lib/claude_hook_scope.ts +195 -0
- package/src/scripts/_lib/claude_settings_hooks.ts +118 -34
- package/src/scripts/_lib/codex_resident_set.ts +460 -0
- package/src/scripts/_lib/codex_skill_finder.ts +225 -0
- package/src/scripts/_lib/confusables.ts +19 -0
- package/src/scripts/_lib/consumer_impact.ts +199 -0
- package/src/scripts/_lib/content_class.ts +127 -0
- package/src/scripts/_lib/counted_probe.ts +68 -1
- package/src/scripts/_lib/credential_deny_rows.ts +151 -0
- package/src/scripts/_lib/credential_files.ts +367 -0
- package/src/scripts/_lib/delivery_arm_experiment.ts +2 -2
- package/src/scripts/_lib/depth_flip.ts +141 -0
- package/src/scripts/_lib/design_lock.ts +117 -0
- package/src/scripts/_lib/design_sync_ledger.ts +142 -0
- package/src/scripts/_lib/design_sync_plan.ts +177 -0
- package/src/scripts/_lib/design_sync_reconcile.ts +159 -0
- package/src/scripts/_lib/design_sync_verify.ts +99 -0
- package/src/scripts/_lib/design_system_claude_design.ts +323 -0
- package/src/scripts/_lib/design_system_import.ts +84 -6
- package/src/scripts/_lib/dispatch_import_closure.ts +42 -11
- package/src/scripts/_lib/egress_credential_env.ts +35 -0
- package/src/scripts/_lib/egress_engine.ts +22 -0
- package/src/scripts/_lib/egress_known_values.ts +223 -0
- package/src/scripts/_lib/egress_normalize.ts +67 -0
- package/src/scripts/_lib/egress_prefixes.ts +42 -0
- package/src/scripts/_lib/egress_rules.ts +896 -0
- package/src/scripts/_lib/egress_rules_linearity.ts +56 -0
- package/src/scripts/_lib/egress_sender_scan.ts +290 -0
- package/src/scripts/_lib/egress_session_table.ts +510 -0
- package/src/scripts/_lib/egress_text.ts +63 -0
- package/src/scripts/_lib/egress_token.ts +252 -0
- package/src/scripts/_lib/empty_cycles.ts +1 -1
- package/src/scripts/_lib/environment_detector.ts +45 -30
- package/src/scripts/_lib/exemption_shape.ts +75 -1
- package/src/scripts/_lib/floor_posture.ts +185 -0
- package/src/scripts/_lib/forge_protection.ts +140 -2
- package/src/scripts/_lib/global_deploy_inventory.ts +159 -6
- package/src/scripts/_lib/guidelines_lane.ts +12 -1
- package/src/scripts/_lib/hand_kinds.ts +65 -0
- package/src/scripts/_lib/headless_invocation.ts +3 -3
- package/src/scripts/_lib/host_capability.ts +34 -2
- package/src/scripts/_lib/host_env_write.ts +39 -18
- package/src/scripts/_lib/host_listing_model.ts +14 -7
- package/src/scripts/_lib/identifier_redaction.ts +26 -0
- package/src/scripts/_lib/impact_bump.ts +70 -0
- package/src/scripts/_lib/install_reach_checks.ts +53 -1
- package/src/scripts/_lib/installed_layer.ts +31 -0
- package/src/scripts/_lib/installed_layer_normalise.ts +75 -0
- package/src/scripts/_lib/instructions_loaded_classify.ts +75 -0
- package/src/scripts/_lib/instructions_loaded_event.ts +53 -0
- package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
- package/src/scripts/_lib/layer_form_corpus.ts +165 -0
- package/src/scripts/_lib/layer_form_decision.ts +248 -0
- package/src/scripts/_lib/layer_form_evidence.ts +112 -0
- package/src/scripts/_lib/lean_projection_mode.ts +32 -161
- package/src/scripts/_lib/llm_proposer_transport.ts +1 -0
- package/src/scripts/_lib/loop_guards.ts +8 -120
- package/src/scripts/_lib/major_surface.ts +207 -0
- package/src/scripts/_lib/mcp_bridge.ts +30 -69
- package/src/scripts/_lib/merge_clearance_record.ts +384 -0
- package/src/scripts/_lib/neighbour_census.ts +18 -1
- package/src/scripts/_lib/orchestration_record.ts +61 -0
- package/src/scripts/_lib/outcome_vocabularies.ts +15 -23
- package/src/scripts/_lib/pin_advice.ts +49 -0
- package/src/scripts/_lib/platform_anchor.ts +222 -0
- package/src/scripts/_lib/procedure_checks.ts +5 -0
- package/src/scripts/_lib/project_tree_form.ts +134 -0
- package/src/scripts/_lib/projection_key_migration.ts +122 -0
- package/src/scripts/_lib/prompt_shape.ts +13 -2
- package/src/scripts/_lib/provenance_verify.ts +272 -0
- package/src/scripts/_lib/quota_parked.ts +27 -1
- package/src/scripts/_lib/ratification_artifact.ts +64 -1
- package/src/scripts/_lib/ratification_subject.ts +508 -46
- package/src/scripts/_lib/release_findings_ingest.ts +52 -5
- package/src/scripts/_lib/release_highlights.ts +72 -2
- package/src/scripts/_lib/release_settings_surface.ts +392 -0
- package/src/scripts/_lib/review_round.ts +134 -0
- package/src/scripts/_lib/roadmap_checkboxes.ts +1 -1
- package/src/scripts/_lib/roadmap_slug_lock.ts +254 -0
- package/src/scripts/_lib/roadmap_step_size.ts +75 -0
- package/src/scripts/_lib/run_checkpoint.ts +60 -3
- package/src/scripts/_lib/runtime_wiring_checks.ts +15 -1
- package/src/scripts/_lib/scope_guard.sh +64 -5
- package/src/scripts/_lib/scoped_projection.ts +136 -3
- package/src/scripts/_lib/secret_detector.ts +24 -103
- package/src/scripts/_lib/security_fix.ts +429 -0
- package/src/scripts/_lib/security_fix_context.ts +133 -0
- package/src/scripts/_lib/self_repair.ts +69 -39
- package/src/scripts/_lib/self_repair_outgoing.ts +209 -0
- package/src/scripts/_lib/self_repair_payload.ts +86 -0
- package/src/scripts/_lib/session_eol.ts +3 -0
- package/src/scripts/_lib/session_pr_watch.ts +207 -0
- package/src/scripts/_lib/session_register.ts +51 -1
- package/src/scripts/_lib/session_tag.ts +51 -0
- package/src/scripts/_lib/settings_removed_keys.ts +30 -0
- package/src/scripts/_lib/settings_renamed_keys.ts +19 -5
- package/src/scripts/_lib/skill_catalogue.ts +66 -25
- package/src/scripts/_lib/skill_fork_pilot.ts +121 -0
- package/src/scripts/_lib/skill_leases.ts +203 -0
- package/src/scripts/_lib/skill_listing_overrides.ts +294 -0
- package/src/scripts/_lib/skill_materialisation.ts +388 -0
- package/src/scripts/_lib/skill_materialisation_gate.ts +210 -0
- package/src/scripts/_lib/skill_materialisation_lock.ts +149 -0
- package/src/scripts/_lib/skill_materialisation_triggers.ts +96 -0
- package/src/scripts/_lib/skill_origin.ts +21 -1
- package/src/scripts/_lib/skill_reach.ts +342 -0
- package/src/scripts/_lib/source_shape.ts +7 -2
- package/src/scripts/_lib/sqlite_guard.ts +1 -1
- package/src/scripts/_lib/step_anatomy.ts +330 -0
- package/src/scripts/_lib/subagent_capsule.ts +8 -2
- package/src/scripts/_lib/subagent_native_fields.ts +30 -0
- package/src/scripts/_lib/subagent_spawn.ts +36 -0
- package/src/scripts/_lib/subagent_steering.ts +367 -0
- package/src/scripts/_lib/svg_dom.ts +318 -0
- package/src/scripts/_lib/svg_filled_counter.ts +287 -0
- package/src/scripts/_lib/svg_geometry.ts +480 -0
- package/src/scripts/_lib/svg_motion.ts +208 -0
- package/src/scripts/_lib/svg_rules.ts +1455 -0
- package/src/scripts/_lib/svg_urls.ts +72 -0
- package/src/scripts/_lib/test_delta.ts +89 -6
- package/src/scripts/_lib/tier_downshift_verdict.ts +222 -0
- package/src/scripts/_lib/tool_result_census.ts +62 -0
- package/src/scripts/_lib/trigger_routers.ts +1 -0
- package/src/scripts/_lib/turnaround_throughput.ts +378 -0
- package/src/scripts/_lib/ui_surface.ts +22 -0
- package/src/scripts/_lib/unattended_gates.ts +100 -0
- package/src/scripts/_lib/undeployed_fixes.ts +34 -0
- package/src/scripts/_lib/update_check.ts +143 -12
- package/src/scripts/_lib/update_invite.ts +116 -0
- package/src/scripts/_lib/update_notice.ts +259 -0
- package/src/scripts/_lib/verification_command.ts +59 -0
- package/src/scripts/_lib/verify_clause.ts +31 -19
- package/src/scripts/_lib/version_order.ts +146 -0
- package/src/scripts/_lib/worker_reuse.ts +191 -0
- package/src/scripts/_lib/workspace_secrets.ts +273 -0
- package/src/scripts/_lib/worktree_git.ts +67 -0
- package/src/scripts/_lib/worktree_ignored.ts +116 -0
- package/src/scripts/adoption_status.ts +330 -3
- package/src/scripts/adr_cite_check.ts +93 -0
- package/src/scripts/advisories.ts +803 -0
- package/src/scripts/ai-image/adapters/flux.sh +1 -0
- package/src/scripts/ai-image/adapters/gemini-image.sh +1 -0
- package/src/scripts/ai-image/adapters/ideogram.sh +1 -0
- package/src/scripts/ai-image/adapters/recraft.sh +1 -0
- package/src/scripts/ai-video/adapters/comfyui.sh +1 -0
- package/src/scripts/ai-video/adapters/fal.sh +1 -0
- package/src/scripts/ai-video/adapters/gemini-veo.sh +1 -0
- package/src/scripts/ai-video/adapters/higgsfield.sh +1 -0
- package/src/scripts/ai-video/adapters/kling.sh +1 -0
- package/src/scripts/ai-video/adapters/musetalk.sh +1 -0
- package/src/scripts/ai-video/adapters/openai-images.sh +1 -0
- package/src/scripts/ai-video/adapters/replicate.sh +1 -0
- package/src/scripts/ai-video/adapters/sora.sh +1 -0
- package/src/scripts/ai-video/adapters/syncso.sh +1 -0
- package/src/scripts/ai-video/stitch.sh +115 -2
- package/src/scripts/ai_council/airgap.ts +1 -0
- package/src/scripts/ai_council/api_transport.ts +27 -4
- package/src/scripts/ai_council/budget_guard.ts +300 -11
- package/src/scripts/ai_council/bundler.ts +20 -29
- package/src/scripts/ai_council/chairman.ts +17 -2
- package/src/scripts/ai_council/cli_agency_bounds.ts +158 -0
- package/src/scripts/ai_council/cli_launch_env.ts +54 -0
- package/src/scripts/ai_council/cli_least_agency_canary.ts +18 -2
- package/src/scripts/ai_council/clients.ts +55 -73
- package/src/scripts/ai_council/config.ts +16 -22
- package/src/scripts/ai_council/council_egress.ts +167 -0
- package/src/scripts/ai_council/exposure_ledger.ts +117 -0
- package/src/scripts/ai_council/free_hand_shadow.ts +276 -0
- package/src/scripts/ai_council/free_route.ts +216 -0
- package/src/scripts/ai_council/free_route_catalog.ts +173 -0
- package/src/scripts/ai_council/free_route_client.ts +95 -0
- package/src/scripts/ai_council/free_rung.ts +61 -0
- package/src/scripts/ai_council/hand_payload.ts +230 -0
- package/src/scripts/ai_council/hand_schemas.ts +123 -0
- package/src/scripts/ai_council/jury_aggregate.ts +155 -1
- package/src/scripts/ai_council/kind_flip.ts +221 -0
- package/src/scripts/ai_council/kind_flip_state.ts +19 -0
- package/src/scripts/ai_council/learn_low_impact_preview.ts +50 -22
- package/src/scripts/ai_council/modification_review.ts +98 -5
- package/src/scripts/ai_council/necessity.ts +7 -0
- package/src/scripts/ai_council/orchestrator.ts +16 -16
- package/src/scripts/ai_council/pricing.ts +10 -0
- package/src/scripts/ai_council/redact_low_impact_entry.ts +5 -2
- package/src/scripts/ai_council/response_render.ts +27 -4
- package/src/scripts/ai_council/round_reservations.ts +119 -0
- package/src/scripts/ai_council/route_chooser.ts +161 -0
- package/src/scripts/ai_council/route_liveness.ts +152 -0
- package/src/scripts/ai_council/route_member.ts +52 -0
- package/src/scripts/ai_council/seat_policy.ts +40 -0
- package/src/scripts/ai_council/seat_resume.ts +40 -0
- package/src/scripts/ai_council/shadow_dispatch.ts +13 -3
- package/src/scripts/ai_council/spend_gate.ts +18 -2
- package/src/scripts/ai_council/status_surface.ts +37 -0
- package/src/scripts/ai_council/transport_resolver.ts +15 -18
- package/src/scripts/analysis_analysts.ts +226 -0
- package/src/scripts/analysis_anchors.ts +140 -0
- package/src/scripts/analysis_and_optimize.ts +44 -0
- package/src/scripts/analysis_emit.ts +150 -0
- package/src/scripts/analysis_exchange.ts +186 -0
- package/src/scripts/analysis_gate.ts +158 -0
- package/src/scripts/analysis_inbox_final.ts +173 -0
- package/src/scripts/analysis_ledger.ts +119 -0
- package/src/scripts/analysis_pr_optimize.ts +219 -0
- package/src/scripts/analysis_pr_review.ts +240 -0
- package/src/scripts/analysis_pr_target.ts +121 -0
- package/src/scripts/analysis_prompts.ts +130 -0
- package/src/scripts/analysis_publish.ts +358 -0
- package/src/scripts/analysis_questions.ts +78 -0
- package/src/scripts/analysis_run.ts +248 -0
- package/src/scripts/analysis_run_record.ts +210 -0
- package/src/scripts/analysis_target.ts +343 -0
- package/src/scripts/analysis_validate.ts +161 -0
- package/src/scripts/anchor_eval_falsify.ts +1 -1
- package/src/scripts/arrival_report.ts +115 -0
- package/src/scripts/ask_transport.ts +284 -35
- package/src/scripts/backfill_model_tier.ts +4 -5
- package/src/scripts/before_complete_hook.ts +48 -2
- package/src/scripts/bench_hook_latency.ts +3 -3
- package/src/scripts/bench_procedure_cursor.ts +440 -0
- package/src/scripts/bootstrap.sh +3 -3
- package/src/scripts/build_exit_code_register.ts +440 -0
- package/src/scripts/build_proof.ts +23 -1
- package/src/scripts/cache_realization_report.ts +155 -14
- package/src/scripts/canary_liveness.ts +117 -0
- package/src/scripts/chat_history.ts +12 -15
- package/src/scripts/check_account_surface.ts +318 -0
- package/src/scripts/check_agent_artifact_location.ts +17 -160
- package/src/scripts/check_bundle_path_leakage.ts +6 -0
- package/src/scripts/check_ci_local_parity.ts +21 -13
- package/src/scripts/check_claims.ts +77 -2
- package/src/scripts/check_completion_review.ts +34 -1
- package/src/scripts/check_concern_admissions.ts +41 -5
- package/src/scripts/check_consumer_scope_flip.ts +1 -1
- package/src/scripts/check_context_paths.ts +2 -0
- package/src/scripts/check_council_layout.ts +9 -0
- package/src/scripts/check_credential_spelling.ts +267 -0
- package/src/scripts/check_egress_mutations.ts +239 -0
- package/src/scripts/check_enforcement_coverage.ts +16 -3
- package/src/scripts/check_estate_count.ts +16 -1
- package/src/scripts/check_finding_dispositions.ts +147 -0
- package/src/scripts/check_gate_coverage.ts +123 -21
- package/src/scripts/check_gate_reachability.ts +16 -2
- package/src/scripts/check_generator_sync.ts +46 -0
- package/src/scripts/check_hook_bundle_composition.ts +139 -1
- package/src/scripts/check_host_docs_digest.ts +142 -5
- package/src/scripts/check_kernel_edit_ratified.ts +301 -76
- package/src/scripts/check_kernel_rule_bundle.ts +14 -10
- package/src/scripts/check_knowledge_cards.ts +83 -3
- package/src/scripts/check_memory.ts +13 -3
- package/src/scripts/check_pack_size.ts +1 -1
- package/src/scripts/check_permission_deny_syntax.ts +247 -0
- package/src/scripts/check_platform_anchor.ts +243 -0
- package/src/scripts/check_proposal.ts +183 -1
- package/src/scripts/check_reach_channels.ts +5 -3
- package/src/scripts/check_references.ts +5 -2
- package/src/scripts/check_release_manifest_content.ts +33 -0
- package/src/scripts/check_release_pr_shape.ts +5 -0
- package/src/scripts/check_rule_invariants.ts +9 -1
- package/src/scripts/check_skill_body_budget.ts +343 -0
- package/src/scripts/check_skill_requires.ts +137 -1
- package/src/scripts/check_step_receipts.ts +246 -0
- package/src/scripts/check_structural_breaking.ts +7 -1
- package/src/scripts/check_suppression_hygiene.ts +8 -0
- package/src/scripts/check_test_weakening.ts +14 -0
- package/src/scripts/check_token_quality_golden.ts +5 -1
- package/src/scripts/check_update_banner.ts +50 -3
- package/src/scripts/check_verify_expectation_delta.ts +2 -1
- package/src/scripts/check_voice_lexicon.ts +531 -0
- package/src/scripts/ci_os_attribution.ts +327 -0
- package/src/scripts/ci_platform_scope.ts +69 -0
- package/src/scripts/ci_settle.ts +4 -1
- package/src/scripts/ci_status.ts +0 -1
- package/src/scripts/ci_time_to_green.ts +748 -0
- package/src/scripts/classify_merge_risk.ts +407 -19
- package/src/scripts/code_graph/sqlite_store.ts +1 -1
- package/src/scripts/compile_trigger_evals.ts +353 -0
- package/src/scripts/condense.ts +25 -31
- package/src/scripts/consumer_matrix.ts +61 -3
- package/src/scripts/council_availability_hook.ts +12 -4
- package/src/scripts/council_cli.ts +48 -38
- package/src/scripts/cross_repo_retrieve.ts +9 -72
- package/src/scripts/design_lock.ts +106 -0
- package/src/scripts/design_slop_rules.ts +30 -0
- package/src/scripts/design_sync.ts +264 -0
- package/src/scripts/design_system_import.ts +30 -13
- package/src/scripts/dispatch_economy_report.ts +46 -1
- package/src/scripts/dispatch_r2_reviewer.ts +41 -5
- package/src/scripts/egress_canary.ts +166 -0
- package/src/scripts/egress_sender_census.ts +101 -0
- package/src/scripts/external_sources_denylist.json +94 -12
- package/src/scripts/generate_catalog.ts +6 -2
- package/src/scripts/generate_owned_digest.ts +163 -0
- package/src/scripts/generate_reference_toc.ts +143 -0
- package/src/scripts/generate_subagent_floor.ts +11 -1
- package/src/scripts/handoff_context_hook.ts +34 -0
- package/src/scripts/hook_carrier_census.ts +263 -0
- package/src/scripts/hook_chunks.d.mts +12 -0
- package/src/scripts/hook_chunks.mjs +114 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +65 -42
- package/src/scripts/hooks/block_config_weakening.ts +127 -3
- package/src/scripts/hooks/block_credential_reads.ts +165 -0
- package/src/scripts/hooks/block_no_verify.ts +47 -23
- package/src/scripts/hooks/block_speaking_inbox_dir.ts +54 -8
- package/src/scripts/hooks/category_a.ts +202 -25
- package/src/scripts/hooks/concern_failure_policy.ts +6 -6
- package/src/scripts/hooks/concern_registry.ts +31 -6
- package/src/scripts/hooks/concern_registry_types.ts +11 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +105 -15
- package/src/scripts/hooks/design_pass_hook.ts +199 -13
- package/src/scripts/hooks/dispatch_hook.ts +13 -12
- package/src/scripts/hooks/egress_engine_loader.ts +125 -0
- package/src/scripts/hooks/egress_stage.ts +440 -0
- package/src/scripts/hooks/hook_stdin.ts +29 -4
- package/src/scripts/hooks/host_docs_pages.ts +194 -0
- package/src/scripts/hooks/host_docs_pages.yaml +75 -0
- package/src/scripts/hooks/host_lowering.json +1 -1
- package/src/scripts/hooks/host_lowering.yaml +22 -21
- package/src/scripts/hooks/host_rate_marker_hook.ts +73 -0
- package/src/scripts/hooks/instructions_observer_hook.ts +170 -0
- package/src/scripts/hooks/interruption_ledger_hook.ts +1 -1
- package/src/scripts/hooks/lazy_concern.ts +148 -0
- package/src/scripts/hooks/orchestration_record_hook.ts +80 -2
- package/src/scripts/hooks/payload_stub.ts +16 -6
- package/src/scripts/hooks/permission_gate.ts +7 -7
- package/src/scripts/hooks/push_settle_hook.ts +32 -3
- package/src/scripts/hooks/replay_hook.ts +43 -0
- package/src/scripts/hooks/reread_guard_hook.ts +87 -10
- package/src/scripts/hooks/rtk_wrap_hook.ts +4 -3
- package/src/scripts/hooks/rule_inject_hook.ts +8 -1
- package/src/scripts/hooks/session_eol_hook.ts +48 -1
- package/src/scripts/hooks/source_first_gate_hook.ts +6 -8
- package/src/scripts/hooks/spawn_guard_shadow_hook.ts +203 -10
- package/src/scripts/hooks/state_io.ts +2 -2
- package/src/scripts/hooks/svg_obligation.ts +553 -0
- package/src/scripts/hooks/svg_rules_loader.ts +133 -0
- package/src/scripts/hooks/tool_result_bytes_hook.ts +14 -5
- package/src/scripts/hooks/turn_end_gate_hook.ts +5 -3
- package/src/scripts/hooks/ui_route_nudge_hook.ts +2 -12
- package/src/scripts/hooks_doctor.ts +31 -0
- package/src/scripts/hooks_status.ts +58 -3
- package/src/scripts/inbox_source_census.ts +74 -13
- package/src/scripts/install +25 -3
- package/src/scripts/install.ts +60 -91
- package/src/scripts/interruption_report.ts +11 -1
- package/src/scripts/layer_baseline_report.ts +267 -0
- package/src/scripts/learning_sidecar.ts +1 -1
- package/src/scripts/lint_agents_layout.ts +3 -0
- package/src/scripts/lint_blocker_citations.ts +104 -0
- package/src/scripts/lint_breaking_changes_index.ts +40 -7
- package/src/scripts/lint_consolidation_lineage.ts +150 -19
- package/src/scripts/lint_consumer_internal_refs.ts +90 -42
- package/src/scripts/lint_context_spine_usage.ts +21 -0
- package/src/scripts/lint_design_antipattern_parity.ts +39 -7
- package/src/scripts/lint_design_quality.ts +60 -12
- package/src/scripts/lint_evidence_artifacts.ts +31 -0
- package/src/scripts/lint_example_fences.ts +11 -2
- package/src/scripts/lint_ghostwriter_source.ts +42 -10
- package/src/scripts/lint_hook_manifest.ts +94 -0
- package/src/scripts/lint_marketplace_install_completeness.ts +4 -0
- package/src/scripts/lint_mcp_config_security.ts +9 -11
- package/src/scripts/lint_motion_authority_drift.ts +27 -0
- package/src/scripts/lint_plan_risk_register.ts +28 -1
- package/src/scripts/lint_positioning.ts +4 -4
- package/src/scripts/lint_provenance.ts +1 -0
- package/src/scripts/lint_roadmap_blockers.ts +65 -4
- package/src/scripts/lint_roadmap_complexity.ts +98 -0
- package/src/scripts/lint_skill_link_reach.ts +251 -9
- package/src/scripts/lint_skill_procedures.ts +252 -0
- package/src/scripts/lint_skill_scripts_readonly.ts +12 -1
- package/src/scripts/lint_subagent_determinism.ts +14 -1
- package/src/scripts/lint_svg_asset.ts +365 -0
- package/src/scripts/lint_ticked_unmet_criteria.ts +300 -21
- package/src/scripts/mcp_registry_submit.sh +2 -2
- package/src/scripts/mcp_server/consumer_tool_catalog.json +4 -4
- package/src/scripts/mcp_server/suggest_skill.ts +89 -4
- package/src/scripts/mcp_server/tools.ts +2 -33
- package/src/scripts/measure_skill_ranker_baseline.ts +203 -5
- package/src/scripts/measure_turn_end_gate.ts +61 -1
- package/src/scripts/merge_clearance.ts +225 -0
- package/src/scripts/migrate_command_suggestions.ts +1 -1
- package/src/scripts/network_sources.ts +236 -0
- package/src/scripts/no_go_deny_rows.ts +225 -0
- package/src/scripts/orchestration_record.ts +15 -2
- package/src/scripts/plan_test_shards.ts +103 -0
- package/src/scripts/pr_url_reminder_hook.ts +10 -0
- package/src/scripts/print_required_checks.ts +5 -5
- package/src/scripts/probe_depth_shadow.ts +406 -0
- package/src/scripts/probe_turnaround.ts +342 -10
- package/src/scripts/ratification_subject.ts +176 -0
- package/src/scripts/rdp_gate_classify.ts +1 -0
- package/src/scripts/rdp_quality_eval.ts +1 -0
- package/src/scripts/release.ts +26 -55
- package/src/scripts/release_drill.ts +52 -23
- package/src/scripts/release_env.ts +37 -0
- package/src/scripts/release_publication.ts +11 -1
- package/src/scripts/report_consumer_gate_reach.ts +233 -0
- package/src/scripts/report_merge_gate_load.ts +295 -0
- package/src/scripts/report_project_contract.ts +123 -0
- package/src/scripts/report_reducible_classes.ts +342 -0
- package/src/scripts/report_required_checks_drift.ts +5 -3
- package/src/scripts/report_skill_host_census.ts +199 -0
- package/src/scripts/report_standing_payload_by_host.ts +7 -7
- package/src/scripts/retro.ts +758 -0
- package/src/scripts/retro_facts.ts +575 -0
- package/src/scripts/retro_queue.ts +739 -0
- package/src/scripts/retro_session_facts.ts +218 -0
- package/src/scripts/retro_sweep.ts +493 -0
- package/src/scripts/retro_triage.ts +126 -0
- package/src/scripts/roadmap_context.ts +2 -2
- package/src/scripts/roadmap_drain_queue.ts +601 -0
- package/src/scripts/run_supervise.ts +24 -2
- package/src/scripts/schemas/agent-settings.schema.json +0 -16
- package/src/scripts/schemas/command.schema.json +3 -3
- package/src/scripts/schemas/review-findings.schema.json +8 -0
- package/src/scripts/schemas/skill.schema.json +7 -6
- package/src/scripts/schemas/subagent.schema.json +33 -2
- package/src/scripts/score_skill_selection.ts +5 -2
- package/src/scripts/second_brain_retrieval.ts +1 -0
- package/src/scripts/second_brain_run.ts +1 -0
- package/src/scripts/self_repair_cli.ts +563 -87
- package/src/scripts/self_review_gate.ts +59 -4
- package/src/scripts/session_register_hook.ts +91 -4
- package/src/scripts/sessions_cli.ts +100 -5
- package/src/scripts/skill_collision_clusters.ts +1 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +31 -2
- package/src/scripts/skill_trigger_eval.ts +4 -2
- package/src/scripts/source_adapters.ts +183 -0
- package/src/scripts/step_receipt.ts +100 -0
- package/src/scripts/sync_pr_branch.ts +4 -0
- package/src/scripts/test_council_qualification.ts +1 -1
- package/src/scripts/trigger_eval_grandfather.json +3 -49
- package/src/scripts/trigger_eval_rotation.ts +31 -3
- package/src/scripts/ui_conformance_probe.ts +405 -1
- package/src/scripts/update_counts.ts +230 -11
- package/src/scripts/update_invite_hook.ts +245 -0
- package/src/scripts/update_notice_hook.ts +298 -0
- package/src/scripts/validate_frontmatter.ts +85 -0
- package/src/scripts/worker_reuse_shadow_report.ts +121 -0
- package/src/scripts/worktree_cleanup_check.ts +915 -121
- package/src/server/io/yamlIO.ts +2 -2
- package/src/server/schemas/settings.ts +37 -23
- package/src/shared/brandTokenDocument.ts +46 -0
- package/src/shared/brandTokenPaths.ts +43 -0
- package/src/shared/settingsCarveOut.ts +0 -8
- package/src/shared/skillRanking.ts +106 -5
- package/src/shared/userMd/formAdapter.ts +15 -1
- package/src/shared/userMd/schema.ts +22 -0
- package/src/templates/agent-user.md +4 -0
- package/src/templates/agent-user.yml +4 -0
- package/dist/cli-delegate/chunk-523HCFYO.js +0 -90
- package/dist/cli-delegate/chunk-AL3RZ22D.js +0 -74
- package/dist/cli-delegate/chunk-KB5FZ655.js +0 -208
- package/dist/cli-delegate/chunk-MDPPKQCQ.js +0 -875
- package/dist/cli-delegate/chunk-MSUL5NYP.js +0 -1123
- package/dist/cli-delegate/chunk-OAFSJBHH.js +0 -272
- package/dist/ui/assets/index-C3djEJah.js +0 -23
- package/src/scripts/_lib/continuation_ladder.ts +0 -335
- package/src/scripts/hooks/run_continuation_hook.ts +0 -1524
|
@@ -9,13 +9,60 @@
|
|
|
9
9
|
*
|
|
10
10
|
* The criterion's text is the bullet line plus its indented continuation lines,
|
|
11
11
|
* up to a blank line, a less-indented line or the next checkbox. Fenced code is
|
|
12
|
-
* skipped, so a quoted example is not a
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* skipped and inline code spans are masked, so a quoted example is not a
|
|
13
|
+
* finding — a roadmap that writes ABOUT this lint quotes the phrase it hunts,
|
|
14
|
+
* and reporting the quoter is the detector reading its own name. The match is
|
|
15
|
+
* the literal `NOT met` — upper-case on purpose, because that is how an author
|
|
16
|
+
* marks the unmet half, and a lower-case "not met" inside an explanation is
|
|
17
|
+
* prose.
|
|
18
|
+
*
|
|
19
|
+
* HTML comments are masked for the same reason, one step further out: the
|
|
20
|
+
* premise above is "a contradiction a READER OF THE CHECKBOX never sees", and
|
|
21
|
+
* a comment is invisible on the rendered page, so it cannot be the text that
|
|
22
|
+
* misleads that reader. The hit this removes said "One clause of the GOAL is
|
|
23
|
+
* NOT met" — a statement about a different proposition, parked in a comment
|
|
24
|
+
* beside a criterion it does not describe.
|
|
25
|
+
*
|
|
26
|
+
* Two archived criteria preserve a dated audit of what WAS missing before the
|
|
27
|
+
* same block records its closure, which is not the glyph lying about what IS.
|
|
28
|
+
* They are exempt — through {@link HISTORICAL}, a FROZEN list in this file
|
|
29
|
+
* pinning each one by path, criterion id AND the SHA-256 of the criterion block
|
|
30
|
+
* itself. Editing an exempt block changes its digest, the entry stops matching,
|
|
31
|
+
* and the criterion is reported again.
|
|
32
|
+
*
|
|
33
|
+
* It is a frozen list rather than a marker an author types, and that is a
|
|
34
|
+
* REFUSAL honoured rather than a design preference. The first version of this
|
|
35
|
+
* exemption keyed on a `MET YYYY-MM-DD` / `CLOSED YYYY-MM-DD` marker anywhere
|
|
36
|
+
* in the block. The ratification review refused it, 1 seat of 2, and named the
|
|
37
|
+
* defect exactly: the marker is "an author-controlled suppression" — the same
|
|
38
|
+
* author whose change is under review types their own pass token, the regex
|
|
39
|
+
* accepted impossible dates, and wiring a dormant lint into CI with a bypass
|
|
40
|
+
* attached narrows the control it is supposed to add. Its own alternative is
|
|
41
|
+
* what ships here: grandfather the legitimate cases through a checked-in
|
|
42
|
+
* baseline keyed by path, criterion and content hash, and let a new or
|
|
43
|
+
* modified exception fail.
|
|
44
|
+
*
|
|
45
|
+
* An entry that matches NO criterion in the scanned tree is itself an error,
|
|
46
|
+
* so the list cannot rot into a set of dead permissions nobody reviews. That
|
|
47
|
+
* check runs only on the repository's own tree: a `--root` fixture has no
|
|
48
|
+
* archived roadmaps and would red every self-test case.
|
|
49
|
+
*
|
|
50
|
+
* What the masks still cost, stated rather than discovered later, and pinned
|
|
51
|
+
* by tests: an author who writes the unmet half inside backticks, or inside an
|
|
52
|
+
* HTML comment, escapes this lint. The bare phrase with no masking still
|
|
53
|
+
* fails, which is the case the lint exists for.
|
|
54
|
+
*
|
|
55
|
+
* On the DISPOSITION of the three archived hits the detector refinement was
|
|
56
|
+
* decided on: AI council, 2026-10-13, ONE seat of two (the second returned
|
|
57
|
+
* `os_error: ENOBUFS` and answered nothing — a one-seat reading, not
|
|
58
|
+
* convergence). Refine the detector rather than edit the archived prose,
|
|
59
|
+
* because the roadmap step's "no criterion text is reworded to clear the lint"
|
|
60
|
+
* carries no exception for a case change.
|
|
15
61
|
*
|
|
16
62
|
* Usage:
|
|
17
63
|
* ./scripts-run src/scripts/lint_ticked_unmet_criteria
|
|
18
64
|
* ./scripts-run src/scripts/lint_ticked_unmet_criteria --root <repo>
|
|
65
|
+
* ./scripts-run src/scripts/lint_ticked_unmet_criteria --self-test
|
|
19
66
|
*
|
|
20
67
|
* Scans every `*.md` under the roadmap tree, archive included: an archived
|
|
21
68
|
* roadmap is exactly where a contradictory tick outlives the session that
|
|
@@ -23,10 +70,13 @@
|
|
|
23
70
|
*
|
|
24
71
|
* Exit codes: 0 no hit · 1 at least one hit · 2 usage error.
|
|
25
72
|
*/
|
|
73
|
+
import { createHash } from 'node:crypto';
|
|
26
74
|
import * as fs from 'node:fs';
|
|
75
|
+
import * as os from 'node:os';
|
|
27
76
|
import * as path from 'node:path';
|
|
28
77
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
29
78
|
|
|
79
|
+
import { runGateCli, runSelfTest } from './_lib/gate_self_test.js';
|
|
30
80
|
import { reportScanned } from './_lib/scan_scope.js';
|
|
31
81
|
|
|
32
82
|
interface Hit {
|
|
@@ -44,7 +94,97 @@ function _indent(line: string): number {
|
|
|
44
94
|
return (/^[ \t]*/.exec(line)?.[0] ?? '').length;
|
|
45
95
|
}
|
|
46
96
|
|
|
47
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Blanks the contents of every inline code span, keeping the delimiters and
|
|
99
|
+
* every newline so offsets and line structure survive.
|
|
100
|
+
*
|
|
101
|
+
* A run of N backticks opens a span that closes at the next run of exactly N.
|
|
102
|
+
* An unterminated run is literal text in markdown and masks nothing here, so a
|
|
103
|
+
* stray backtick cannot blind the scanner for the rest of a criterion.
|
|
104
|
+
*/
|
|
105
|
+
function maskHtmlComments(text: string): string {
|
|
106
|
+
return text.replace(/<!--[\s\S]*?-->/gu, (m) => m.replace(/[^\n]/gu, ' '));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** One grandfathered criterion, pinned by content so an edit un-grandfathers it. */
|
|
110
|
+
interface Historical {
|
|
111
|
+
file: string;
|
|
112
|
+
criterion: string;
|
|
113
|
+
/** SHA-256 of the criterion block, exactly as {@link scanText} joins it. */
|
|
114
|
+
sha256: string;
|
|
115
|
+
why: string;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* The frozen exemption list. Add nothing here without a review that reads the
|
|
120
|
+
* block — this is the baseline the ratification review asked for in place of a
|
|
121
|
+
* marker, and a list that grows on an author's own say-so is the marker again.
|
|
122
|
+
*/
|
|
123
|
+
const HISTORICAL: readonly Historical[] = [
|
|
124
|
+
{
|
|
125
|
+
file: 'agents/roadmaps/archive/road-to-governed-harness-evolution.md',
|
|
126
|
+
criterion: 'AC-1',
|
|
127
|
+
sha256: '7746f218f52621c771b05696fdf56b240c6afc435618923e703dcf98d34c9d25',
|
|
128
|
+
why: 'Reads "MET 2026-08-31, and it was NOT met when this audit started" — a dated closure whose own sentence puts the unmet state in the past.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
file: 'agents/roadmaps/archive/road-to-governed-harness-evolution.md',
|
|
132
|
+
criterion: 'AC-5',
|
|
133
|
+
sha256: 'f78a74e4a7a3e30b81f33cc59a53c0e01f147d6ed3d7d7bcbbfc47a76e13c2fd',
|
|
134
|
+
why: 'Reads "CLOSED 2026-08-31 … The audit below is preserved"; the phrase sits 29 lines down inside that preserved audit.',
|
|
135
|
+
},
|
|
136
|
+
];
|
|
137
|
+
|
|
138
|
+
function blockDigest(text: string): string {
|
|
139
|
+
return createHash('sha256').update(text, 'utf8').digest('hex');
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function maskInlineCode(text: string): string {
|
|
143
|
+
let out = '';
|
|
144
|
+
let i = 0;
|
|
145
|
+
while (i < text.length) {
|
|
146
|
+
if (text[i] !== '`') {
|
|
147
|
+
out += text[i];
|
|
148
|
+
i += 1;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
let n = 0;
|
|
152
|
+
while (text[i + n] === '`') {
|
|
153
|
+
n += 1;
|
|
154
|
+
}
|
|
155
|
+
let j = i + n;
|
|
156
|
+
let close = -1;
|
|
157
|
+
while (j < text.length) {
|
|
158
|
+
if (text[j] === '`') {
|
|
159
|
+
let m = 0;
|
|
160
|
+
while (text[j + m] === '`') {
|
|
161
|
+
m += 1;
|
|
162
|
+
}
|
|
163
|
+
if (m === n) {
|
|
164
|
+
close = j;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
j += m;
|
|
168
|
+
} else {
|
|
169
|
+
j += 1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (close === -1) {
|
|
173
|
+
out += text.slice(i, i + n);
|
|
174
|
+
i += n;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
out += text.slice(i, i + n);
|
|
178
|
+
out += text
|
|
179
|
+
.slice(i + n, close)
|
|
180
|
+
.replace(/[^\n]/gu, ' ');
|
|
181
|
+
out += text.slice(close, close + n);
|
|
182
|
+
i = close + n;
|
|
183
|
+
}
|
|
184
|
+
return out;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function scanText(text: string, file: string, historical: Hit[] = []): Hit[] {
|
|
48
188
|
const lines = text.split('\n');
|
|
49
189
|
const hits: Hit[] = [];
|
|
50
190
|
let inFence = false;
|
|
@@ -70,8 +210,15 @@ function scanText(text: string, file: string): Hit[] {
|
|
|
70
210
|
}
|
|
71
211
|
block.push(next);
|
|
72
212
|
}
|
|
73
|
-
|
|
74
|
-
|
|
213
|
+
const raw = block.join('\n');
|
|
214
|
+
const visible = maskHtmlComments(maskInlineCode(raw));
|
|
215
|
+
if (visible.includes(UNMET)) {
|
|
216
|
+
const criterion = m[2] as string;
|
|
217
|
+
const digest = blockDigest(raw);
|
|
218
|
+
const exempt = HISTORICAL.some(
|
|
219
|
+
(h) => h.file === file && h.criterion === criterion && h.sha256 === digest,
|
|
220
|
+
);
|
|
221
|
+
(exempt ? historical : hits).push({ file, line: i + 1, criterion });
|
|
75
222
|
}
|
|
76
223
|
}
|
|
77
224
|
return hits;
|
|
@@ -96,22 +243,97 @@ function _walk(dir: string): string[] {
|
|
|
96
243
|
return out;
|
|
97
244
|
}
|
|
98
245
|
|
|
99
|
-
function scanTree(root: string): { hits: Hit[]; scanned: number } {
|
|
246
|
+
function scanTree(root: string): { hits: Hit[]; historical: Hit[]; scanned: number } {
|
|
100
247
|
const files = _walk(path.join(root, 'agents', 'roadmaps'));
|
|
101
248
|
const hits: Hit[] = [];
|
|
249
|
+
const historical: Hit[] = [];
|
|
102
250
|
for (const abs of files) {
|
|
103
251
|
const rel = path.relative(root, abs).split(path.sep).join('/');
|
|
104
|
-
hits.push(...scanText(fs.readFileSync(abs, 'utf8'), rel));
|
|
252
|
+
hits.push(...scanText(fs.readFileSync(abs, 'utf8'), rel, historical));
|
|
105
253
|
}
|
|
106
|
-
return { hits, scanned: files.length };
|
|
254
|
+
return { hits, historical, scanned: files.length };
|
|
107
255
|
}
|
|
108
256
|
|
|
109
257
|
const _DEFAULT_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
110
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Four fixtures over a temporary roadmap tree, driven through the real CLI.
|
|
261
|
+
*
|
|
262
|
+
* Three of them are the three masks the detector grew, each paired with the
|
|
263
|
+
* bare case it must still reject — a suite that only proved the masks would
|
|
264
|
+
* certify a scanner that had stopped matching anything at all.
|
|
265
|
+
*/
|
|
266
|
+
function selfTest(): number {
|
|
267
|
+
const repoRoot = _DEFAULT_ROOT;
|
|
268
|
+
const rel = 'src/scripts/lint_ticked_unmet_criteria.ts';
|
|
269
|
+
|
|
270
|
+
const over = (body: string): (() => number) => (): number => {
|
|
271
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'ticked-unmet-self-'));
|
|
272
|
+
try {
|
|
273
|
+
const roadmaps = path.join(dir, 'agents', 'roadmaps');
|
|
274
|
+
fs.mkdirSync(roadmaps, { recursive: true });
|
|
275
|
+
fs.writeFileSync(path.join(roadmaps, 'road-to-fixture.md'), body);
|
|
276
|
+
return runGateCli(repoRoot, rel, ['--root', dir], repoRoot);
|
|
277
|
+
} finally {
|
|
278
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
return runSelfTest({
|
|
283
|
+
gate: 'lint_ticked_unmet_criteria',
|
|
284
|
+
minCases: 6,
|
|
285
|
+
minRejectCases: 4,
|
|
286
|
+
cases: [
|
|
287
|
+
{
|
|
288
|
+
name: 'a bare NOT met under a tick is rejected',
|
|
289
|
+
expect: 'reject',
|
|
290
|
+
run: over('- [x] AC-1 — One half lands. The other half is NOT met.\n'),
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
name: 'the same phrase inside backticks is accepted',
|
|
294
|
+
expect: 'accept',
|
|
295
|
+
run: over('- [x] AC-1 — The lint reports a criterion saying `NOT met`.\n'),
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: 'an unterminated backtick does not mask, so the bare phrase is rejected',
|
|
299
|
+
expect: 'reject',
|
|
300
|
+
run: over('- [x] AC-1 — an opening ` and then NOT met in the clear.\n'),
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
name: 'the same phrase inside an HTML comment is accepted',
|
|
304
|
+
expect: 'accept',
|
|
305
|
+
run: over('- [x] AC-1 — The gate ships.\n <!-- the Goal clause is NOT met -->\n'),
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
name: 'a dated closure marker does NOT exempt — the exemption is a frozen digest list',
|
|
309
|
+
expect: 'reject',
|
|
310
|
+
run: over('- [x] AC-1 — Both halves land.\n **CLOSED 2026-08-31.** First conjunct — NOT met.\n'),
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
name: 'a MET marker does not exempt either',
|
|
314
|
+
expect: 'reject',
|
|
315
|
+
run: over('- [x] AC-1 — Both halves land.\n **MET 2026-08-31.** First conjunct — NOT met.\n'),
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
name: 'a roadmap tree with no criterion at all is accepted',
|
|
319
|
+
expect: 'accept',
|
|
320
|
+
run: over('# Road to nothing\n\nNo criteria here.\n'),
|
|
321
|
+
},
|
|
322
|
+
],
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
|
|
111
326
|
function main(argv: string[] = process.argv.slice(2)): number {
|
|
112
327
|
let root = _DEFAULT_ROOT;
|
|
113
328
|
for (let i = 0; i < argv.length; i += 1) {
|
|
114
329
|
const arg = argv[i];
|
|
330
|
+
if (arg === '--self-test') {
|
|
331
|
+
if (process.env['GATE_SELF_TEST_CHILD'] === '1') {
|
|
332
|
+
process.stderr.write('lint_ticked_unmet_criteria: --self-test does not recurse\n');
|
|
333
|
+
return 2;
|
|
334
|
+
}
|
|
335
|
+
return selfTest();
|
|
336
|
+
}
|
|
115
337
|
if (arg === '--root') {
|
|
116
338
|
const v = argv[i + 1];
|
|
117
339
|
if (v === undefined) {
|
|
@@ -125,7 +347,7 @@ function main(argv: string[] = process.argv.slice(2)): number {
|
|
|
125
347
|
return 2;
|
|
126
348
|
}
|
|
127
349
|
}
|
|
128
|
-
const { hits, scanned } = scanTree(root);
|
|
350
|
+
const { hits, historical, scanned } = scanTree(root);
|
|
129
351
|
reportScanned({
|
|
130
352
|
gate: 'lint_ticked_unmet_criteria',
|
|
131
353
|
scanned,
|
|
@@ -133,18 +355,75 @@ function main(argv: string[] = process.argv.slice(2)): number {
|
|
|
133
355
|
roots: ['agents/roadmaps'],
|
|
134
356
|
allowEmpty: 'EMPTY_VALID: a checkout with no roadmap has no criterion to tick',
|
|
135
357
|
});
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
358
|
+
// Named, not merely counted: an exemption nobody can enumerate is a
|
|
359
|
+
// suppression surface however narrow its key is.
|
|
360
|
+
for (const h of historical) {
|
|
361
|
+
process.stdout.write(` exempt (grandfathered): ${h.file}:${String(h.line)} · ${h.criterion}\n`);
|
|
139
362
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
363
|
+
// A frozen list has one failure mode a marker does not: an entry that
|
|
364
|
+
// matches nothing is a dead permission nobody re-reads. Checked on the
|
|
365
|
+
// repository's own tree only — a `--root` fixture carries none of these
|
|
366
|
+
// files and would red every self-test case.
|
|
367
|
+
//
|
|
368
|
+
// Reported ALONGSIDE the hits rather than instead of them: an entry goes
|
|
369
|
+
// stale exactly when its block was edited, and an edited block is usually
|
|
370
|
+
// also a new hit. Returning early here would print the bookkeeping failure
|
|
371
|
+
// and hide the criterion it was covering.
|
|
372
|
+
const key = (h: { file: string; criterion: string }): string => `${h.file}\u0000${h.criterion}`;
|
|
373
|
+
const matched = new Set(historical.map(key));
|
|
374
|
+
const stale = root === _DEFAULT_ROOT ? HISTORICAL.filter((h) => !matched.has(key(h))) : [];
|
|
375
|
+
|
|
376
|
+
// Uniqueness, checked rather than assumed. The stale scan above collapses
|
|
377
|
+
// entries into a Set keyed by file and criterion, so two entries for one
|
|
378
|
+
// criterion — the second with a wrong digest, say — would both read as
|
|
379
|
+
// matched the moment either one did. Not a bypass today, because a
|
|
380
|
+
// criterion is exempt only on its own digest; it is a way the list could
|
|
381
|
+
// stop meaning what it reads as, which is the property the list exists for.
|
|
382
|
+
const seen = new Set<string>();
|
|
383
|
+
const duplicates = HISTORICAL.filter((h) => {
|
|
384
|
+
const k = key(h);
|
|
385
|
+
if (seen.has(k)) return true;
|
|
386
|
+
seen.add(k);
|
|
387
|
+
return false;
|
|
388
|
+
});
|
|
389
|
+
if (duplicates.length > 0) {
|
|
390
|
+
process.stderr.write(
|
|
391
|
+
`❌ lint_ticked_unmet_criteria: ${String(duplicates.length)} duplicate grandfathered key(s). ` +
|
|
392
|
+
'One criterion carries at most one entry — two entries for one key make the second unreadable:\n',
|
|
393
|
+
);
|
|
394
|
+
for (const h of duplicates) {
|
|
395
|
+
process.stderr.write(` ${h.file} · ${h.criterion}\n`);
|
|
396
|
+
}
|
|
397
|
+
return 1;
|
|
145
398
|
}
|
|
146
|
-
|
|
147
|
-
|
|
399
|
+
|
|
400
|
+
if (hits.length > 0) {
|
|
401
|
+
process.stderr.write(
|
|
402
|
+
`❌ lint_ticked_unmet_criteria: ${String(hits.length)} criterion/criteria ticked [x] over their own "${UNMET}":\n`,
|
|
403
|
+
);
|
|
404
|
+
for (const h of hits) {
|
|
405
|
+
process.stderr.write(` ${h.file}:${String(h.line)} · ${h.criterion}\n`);
|
|
406
|
+
}
|
|
407
|
+
process.stderr.write('\n The unmet half is a deferral: use `[~]` and carry it, or meet it.\n');
|
|
408
|
+
}
|
|
409
|
+
if (stale.length > 0) {
|
|
410
|
+
process.stderr.write(
|
|
411
|
+
`❌ lint_ticked_unmet_criteria: ${String(stale.length)} grandfathered entry/entries matched nothing. ` +
|
|
412
|
+
'The block was edited, moved or deleted, so the exemption no longer describes it — ' +
|
|
413
|
+
'remove the entry, or re-read the block and re-pin its digest:\n',
|
|
414
|
+
);
|
|
415
|
+
for (const h of stale) {
|
|
416
|
+
process.stderr.write(` ${h.file} · ${h.criterion} · ${h.sha256}\n`);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
if (hits.length > 0 || stale.length > 0) {
|
|
420
|
+
return 1;
|
|
421
|
+
}
|
|
422
|
+
process.stdout.write(
|
|
423
|
+
`✅ lint_ticked_unmet_criteria: ${String(scanned)} roadmap file(s), ` +
|
|
424
|
+
`no criterion ticked over "${UNMET}" (${String(historical.length)} grandfathered by digest).\n`,
|
|
425
|
+
);
|
|
426
|
+
return 0;
|
|
148
427
|
}
|
|
149
428
|
|
|
150
429
|
if (process.argv[1] !== undefined) {
|
|
@@ -161,5 +440,5 @@ if (process.argv[1] !== undefined) {
|
|
|
161
440
|
}
|
|
162
441
|
}
|
|
163
442
|
|
|
164
|
-
export { scanText, scanTree, main };
|
|
443
|
+
export { HISTORICAL, maskHtmlComments, maskInlineCode, scanText, scanTree, main };
|
|
165
444
|
export type { Hit };
|
|
@@ -191,8 +191,8 @@ EOF
|
|
|
191
191
|
echo ""
|
|
192
192
|
echo "✅ PR opened: $PR_URL"
|
|
193
193
|
echo ""
|
|
194
|
-
echo "Next step:
|
|
195
|
-
echo " → status:
|
|
194
|
+
echo "Next step: add a new attempt row (1c, 1d, ...) to docs/distribution/registry-submissions.md"
|
|
195
|
+
echo " → status: submitted, upstream kind: github-pr, last read: today"
|
|
196
196
|
echo " → PR link: $PR_URL"
|
|
197
197
|
|
|
198
198
|
exit 0
|
|
@@ -747,7 +747,7 @@
|
|
|
747
747
|
},
|
|
748
748
|
{
|
|
749
749
|
"name": "suggest_skill_for_task",
|
|
750
|
-
"description": "
|
|
750
|
+
"description": "Rank skills against a free-form task by deterministic keyword scoring over SKILL.md frontmatter. Use when the skill you need is absent from the host's catalogue — one measured host dropped 402 entries from its model-visible list — so asking by name is impossible and asking by task is not. Each row gives a name, score, personas and the skill's own description, its routing criteria including any clause pointing elsewhere. Choose by reading the rows, then open at most two bodies with read_skill. Read-only: no shell, no writes, no bodies.",
|
|
751
751
|
"side_effect": "ro",
|
|
752
752
|
"implemented_on": [
|
|
753
753
|
"stdio"
|
|
@@ -760,13 +760,13 @@
|
|
|
760
760
|
"properties": {
|
|
761
761
|
"task": {
|
|
762
762
|
"type": "string",
|
|
763
|
-
"description": "
|
|
763
|
+
"description": "The task to match skills against."
|
|
764
764
|
},
|
|
765
765
|
"limit": {
|
|
766
766
|
"type": "integer",
|
|
767
767
|
"minimum": 1,
|
|
768
|
-
"default":
|
|
769
|
-
"description": "Maximum
|
|
768
|
+
"default": 8,
|
|
769
|
+
"description": "Maximum skills to return; the default is a pre-registered recall depth, not a round number."
|
|
770
770
|
}
|
|
771
771
|
},
|
|
772
772
|
"additionalProperties": false
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
* of the skill-catalogue resolver on the server side.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
+
import { DEFAULT_SUGGEST_LIMIT } from '../../shared/skillRanking.js';
|
|
16
|
+
// TYPE-only, so the `tools.ts` <-> this cycle is erased at runtime: the
|
|
17
|
+
// allowlist spreads the entry below in, and the entry names the shape the
|
|
18
|
+
// allowlist declares. A value import either way would be a real cycle.
|
|
19
|
+
import type { BuiltinTool } from './tools.js';
|
|
20
|
+
|
|
15
21
|
/**
|
|
16
22
|
* `suggest_skill_for_task` — the recovery path for a truncated catalogue.
|
|
17
23
|
*
|
|
@@ -42,7 +48,9 @@ export async function suggestSkillForTask(
|
|
|
42
48
|
// caller for cosmetic reasons.
|
|
43
49
|
const limitRaw = args['limit'];
|
|
44
50
|
const limit =
|
|
45
|
-
typeof limitRaw === 'number' && Number.isFinite(limitRaw)
|
|
51
|
+
typeof limitRaw === 'number' && Number.isFinite(limitRaw)
|
|
52
|
+
? Math.floor(limitRaw)
|
|
53
|
+
: DEFAULT_SUGGEST_LIMIT;
|
|
46
54
|
|
|
47
55
|
const catalogue = await import('../_lib/skill_catalogue.js');
|
|
48
56
|
// EVERY readable root — see `resolveSkillCatalogueRoots` on why not the first.
|
|
@@ -59,14 +67,91 @@ export async function suggestSkillForTask(
|
|
|
59
67
|
};
|
|
60
68
|
}
|
|
61
69
|
|
|
62
|
-
const {
|
|
63
|
-
const rows =
|
|
70
|
+
const { rankDetailed } = await import('../skill_tools/score_skill_relevance.js');
|
|
71
|
+
const { rows, descriptions } = rankDetailed(task, roots);
|
|
64
72
|
return {
|
|
65
73
|
status: 'ok',
|
|
66
74
|
// `skills_root` kept verbatim (a consumer may read it); `skills_roots` is
|
|
67
75
|
// the additive truth about what was actually ranked.
|
|
68
76
|
skills_root: roots[0] as string,
|
|
69
77
|
skills_roots: roots,
|
|
70
|
-
|
|
78
|
+
// `description` rides with the row because a NAME is not a choosing
|
|
79
|
+
// criterion. A caller handed five names either guesses or opens five
|
|
80
|
+
// bodies; handed five descriptions it reads the one text each skill
|
|
81
|
+
// wrote as its routing criteria — including the handoff clauses that
|
|
82
|
+
// say when NOT to use it, which only act on a reader. Each is capped at
|
|
83
|
+
// 200 characters by `skill.schema.json`, so the envelope grows by a
|
|
84
|
+
// bounded amount per row and no body is returned at any depth.
|
|
85
|
+
suggestions: rows
|
|
86
|
+
.slice(0, Math.max(1, limit))
|
|
87
|
+
.map(([name, score, personas]) => ({
|
|
88
|
+
skill: name,
|
|
89
|
+
score,
|
|
90
|
+
personas,
|
|
91
|
+
description: descriptions.get(name) ?? '',
|
|
92
|
+
})),
|
|
71
93
|
};
|
|
72
94
|
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The allowlist ENTRY, declared here rather than in `tools.ts`.
|
|
98
|
+
*
|
|
99
|
+
* Same argument the handler was extracted on, applied to its metadata. `tools.ts`
|
|
100
|
+
* sits far past the 1,500-line ceiling `check_source_size_budget` enforces as a
|
|
101
|
+
* shrink-only ratchet, so every line there costs one unit of excess and the gate
|
|
102
|
+
* names re-pinning the baseline a defect rather than a fix. Describing this tool
|
|
103
|
+
* properly — what a row now carries, and why the default depth is 8 — cost six
|
|
104
|
+
* lines there and reddened the ratchet; moving the whole entry across returns
|
|
105
|
+
* thirty-seven and puts the prose in the file that already owns the behaviour it
|
|
106
|
+
* describes.
|
|
107
|
+
*
|
|
108
|
+
* The prose below is DEDUPLICATED rather than shortened, and the distinction is
|
|
109
|
+
* worth keeping because the obvious edit is to put the words back. `mcp_schemas`
|
|
110
|
+
* is a 5%-relative ratchet against a committed baseline, and this entry read 17
|
|
111
|
+
* tokens past it. Three statements were each made twice and now are made once:
|
|
112
|
+
* the return shape (named in its own sentence AND in the read-only clause), the
|
|
113
|
+
* default depth (`default:` below AND spelled out in that field's prose), and
|
|
114
|
+
* the task's free-form-ness (the first sentence AND the `task` field). Every
|
|
115
|
+
* FACT the longer version carried is still here — the 402-entry measurement, the
|
|
116
|
+
* routing-criteria reading, the open-at-most-two rule, the read-only guarantee.
|
|
117
|
+
*/
|
|
118
|
+
export const SUGGEST_SKILL_TOOL: BuiltinTool = {
|
|
119
|
+
name: 'suggest_skill_for_task',
|
|
120
|
+
side_effect: 'ro',
|
|
121
|
+
description:
|
|
122
|
+
'Rank skills against a free-form task by deterministic keyword ' +
|
|
123
|
+
'scoring over SKILL.md frontmatter. Use when the skill you need ' +
|
|
124
|
+
"is absent from the host's catalogue — one measured host dropped " +
|
|
125
|
+
'402 entries from its model-visible list — so asking by name is ' +
|
|
126
|
+
'impossible and asking by task is not. ' +
|
|
127
|
+
"Each row gives a name, score, personas and the skill's own " +
|
|
128
|
+
'description, its routing criteria including any clause pointing ' +
|
|
129
|
+
// "Choose by reading the rows" rather than "Read the rows to choose":
|
|
130
|
+
// `mcp_server_tools.test.ts` pins this clause, and the gerund is what it
|
|
131
|
+
// pins. The two phrasings carry the same instruction, so the text bends
|
|
132
|
+
// to the assertion rather than the assertion to the text — an evaluator
|
|
133
|
+
// is not something the code it checks gets to edit for its own
|
|
134
|
+
// convenience. Costs one token against eight of headroom.
|
|
135
|
+
'elsewhere. Choose by reading the rows, then open at most two bodies ' +
|
|
136
|
+
'with read_skill. Read-only: no shell, no writes, no bodies.',
|
|
137
|
+
input_schema: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
required: ['task'],
|
|
140
|
+
properties: {
|
|
141
|
+
task: {
|
|
142
|
+
type: 'string',
|
|
143
|
+
description: 'The task to match skills against.',
|
|
144
|
+
},
|
|
145
|
+
limit: {
|
|
146
|
+
type: 'integer',
|
|
147
|
+
minimum: 1,
|
|
148
|
+
default: DEFAULT_SUGGEST_LIMIT,
|
|
149
|
+
description:
|
|
150
|
+
'Maximum skills to return; the default is a pre-registered ' +
|
|
151
|
+
'recall depth, not a round number.',
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
additionalProperties: false,
|
|
155
|
+
},
|
|
156
|
+
handler: suggestSkillForTask,
|
|
157
|
+
};
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
slice_around as _chSliceAround,
|
|
48
48
|
read_header as _chReadHeaderImpl,
|
|
49
49
|
} from '../chat_history.js';
|
|
50
|
-
import {
|
|
50
|
+
import { SUGGEST_SKILL_TOOL } from './suggest_skill.js';
|
|
51
51
|
import {
|
|
52
52
|
type CatalogEntry,
|
|
53
53
|
install_hint as _catalog_install_hint,
|
|
@@ -1202,38 +1202,7 @@ async function _readResourceBodyHandler(
|
|
|
1202
1202
|
|
|
1203
1203
|
export const ALLOWLIST: Record<string, BuiltinTool> = {
|
|
1204
1204
|
...GRAPH_TOOLS,
|
|
1205
|
-
suggest_skill_for_task:
|
|
1206
|
-
name: 'suggest_skill_for_task',
|
|
1207
|
-
side_effect: 'ro',
|
|
1208
|
-
description:
|
|
1209
|
-
'Match a free-form task description to the most relevant skills, ' +
|
|
1210
|
-
'ranked by a deterministic keyword scorer over SKILL.md ' +
|
|
1211
|
-
'frontmatter. Use when a skill you need is not in the catalogue ' +
|
|
1212
|
-
'the host delivered — a measured host dropped 402 entries from ' +
|
|
1213
|
-
'its model-visible list — so asking by name is impossible while ' +
|
|
1214
|
-
'asking by task is not. ' +
|
|
1215
|
-
'Read-only: no shell, no writes, and no skill bodies are returned, ' +
|
|
1216
|
-
'only names, scores and declared personas.',
|
|
1217
|
-
input_schema: {
|
|
1218
|
-
type: 'object',
|
|
1219
|
-
required: ['task'],
|
|
1220
|
-
properties: {
|
|
1221
|
-
task: {
|
|
1222
|
-
type: 'string',
|
|
1223
|
-
description:
|
|
1224
|
-
'Free-form description of the task to match skills against.',
|
|
1225
|
-
},
|
|
1226
|
-
limit: {
|
|
1227
|
-
type: 'integer',
|
|
1228
|
-
minimum: 1,
|
|
1229
|
-
default: 5,
|
|
1230
|
-
description: 'Maximum number of skills to return. Defaults to 5.',
|
|
1231
|
-
},
|
|
1232
|
-
},
|
|
1233
|
-
additionalProperties: false,
|
|
1234
|
-
},
|
|
1235
|
-
handler: suggestSkillForTask,
|
|
1236
|
-
},
|
|
1205
|
+
suggest_skill_for_task: SUGGEST_SKILL_TOOL,
|
|
1237
1206
|
lint_skills: {
|
|
1238
1207
|
name: 'lint_skills',
|
|
1239
1208
|
side_effect: 'ro',
|