@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
|
@@ -35,6 +35,7 @@ import path from 'node:path';
|
|
|
35
35
|
import { fileURLToPath } from 'node:url';
|
|
36
36
|
|
|
37
37
|
import { CLI_CONSUMER_SELF_REVIEW } from './ai_council/cli_call_budget.js';
|
|
38
|
+
import { councilEgress } from './ai_council/council_egress.js';
|
|
38
39
|
import {
|
|
39
40
|
AnthropicClient,
|
|
40
41
|
AnthropicCliClient,
|
|
@@ -664,6 +665,22 @@ export const PROMPT_BUDGET_CHARS = Math.floor(180_000 * BUDGET_CHARS_PER_TOKEN);
|
|
|
664
665
|
*/
|
|
665
666
|
export const MAX_REVIEW_CHUNKS = 6;
|
|
666
667
|
|
|
668
|
+
/**
|
|
669
|
+
* `--redact-egress`: a chunk carrying a credential-shaped fixture is refused by
|
|
670
|
+
* the egress guard before it is sent, so a test of the secret detector could
|
|
671
|
+
* never be reviewed. With the flag, every detected value is replaced by a typed
|
|
672
|
+
* token through the same engine that later checks the payload, and the
|
|
673
|
+
* reviewer is told what the tokens are (AI council 2026-10-22, 2/2).
|
|
674
|
+
*/
|
|
675
|
+
export const REDACTION_NOTE =
|
|
676
|
+
'NOTE: credential-shaped literals in this diff were replaced by typed placeholder tokens before sending, ' +
|
|
677
|
+
'because they are test fixtures the egress guard does not let leave the machine. Review the logic around them; ' +
|
|
678
|
+
'do not report the placeholders themselves as findings.\n\n';
|
|
679
|
+
|
|
680
|
+
export function redactEgress(text: string): string {
|
|
681
|
+
return councilEgress().replace(text);
|
|
682
|
+
}
|
|
683
|
+
|
|
667
684
|
/** How many unreviewed paths `--dry-run` names before collapsing to a count. */
|
|
668
685
|
export const DRY_RUN_UNREVIEWED_SAMPLE = 5;
|
|
669
686
|
|
|
@@ -786,7 +803,23 @@ export interface ReviewPlan {
|
|
|
786
803
|
release?: ReleaseInfo;
|
|
787
804
|
}
|
|
788
805
|
|
|
789
|
-
|
|
806
|
+
/**
|
|
807
|
+
* A run narrowed to part of the span, for a local review driven to completion.
|
|
808
|
+
* `scope` keeps only changed files under one of the given path prefixes, and
|
|
809
|
+
* names itself in the coverage record so a reader sees what was out of reach;
|
|
810
|
+
* `maxChunks` lifts the per-run ceiling for a run that is meant to finish. CI
|
|
811
|
+
* passes neither and keeps the ceiling.
|
|
812
|
+
*/
|
|
813
|
+
export interface PlanOptions {
|
|
814
|
+
scope?: readonly string[];
|
|
815
|
+
maxChunks?: number;
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
export function inScope(file: string, scope: readonly string[] | undefined): boolean {
|
|
819
|
+
return scope === undefined || scope.some((prefix) => file === prefix || file.startsWith(prefix.endsWith('/') ? prefix : `${prefix}/`));
|
|
820
|
+
}
|
|
821
|
+
|
|
822
|
+
export function buildPlan(baseRef: string, cwd: string = REPO_ROOT, opts: PlanOptions = {}): ReviewPlan {
|
|
790
823
|
const packagingFiles = changedFiles(baseRef, cwd);
|
|
791
824
|
const releaseVersion = detectReleaseVersionFromGit(baseRef, cwd);
|
|
792
825
|
|
|
@@ -805,7 +838,9 @@ export function buildPlan(baseRef: string, cwd: string = REPO_ROOT): ReviewPlan
|
|
|
805
838
|
}
|
|
806
839
|
}
|
|
807
840
|
|
|
808
|
-
const files = analysisBase === baseRef ? packagingFiles : changedFiles(analysisBase, cwd)
|
|
841
|
+
const files = (analysisBase === baseRef ? packagingFiles : changedFiles(analysisBase, cwd)).filter((f) =>
|
|
842
|
+
inScope(f, opts.scope),
|
|
843
|
+
);
|
|
809
844
|
const reviewCopies = allChangedFiles(analysisBase, cwd).filter(isReviewCopyPath);
|
|
810
845
|
const diff = diffText(analysisBase, files, cwd);
|
|
811
846
|
const escalation = escalationReasons(files, changedLineCount(analysisBase, files, cwd));
|
|
@@ -824,6 +859,7 @@ export function buildPlan(baseRef: string, cwd: string = REPO_ROOT): ReviewPlan
|
|
|
824
859
|
const partition = partitionDiff(
|
|
825
860
|
perFileDiffs(analysisBase, files, cwd),
|
|
826
861
|
Math.max(1, PROMPT_BUDGET_CHARS - facts.length),
|
|
862
|
+
opts.maxChunks ?? MAX_REVIEW_CHUNKS,
|
|
827
863
|
);
|
|
828
864
|
return {
|
|
829
865
|
partition,
|
|
@@ -925,6 +961,12 @@ export function coverageBlock(coverage?: ReviewCoverage): string {
|
|
|
925
961
|
`\n\n**Coverage.** ${String(coverage.chunks)} request(s) over ` +
|
|
926
962
|
`${String(coverage.filesReviewed)} of ${String(coverage.filesTotal)} changed file(s).`,
|
|
927
963
|
];
|
|
964
|
+
if (coverage.scope && coverage.scope.length > 0) {
|
|
965
|
+
parts.push(
|
|
966
|
+
` Scoped to ${coverage.scope.map((s) => `\`${s}\``).join(', ')}: changed files outside ` +
|
|
967
|
+
'these prefixes were not part of this run and are not counted above.',
|
|
968
|
+
);
|
|
969
|
+
}
|
|
928
970
|
if ((coverage.reviewCopies ?? 0) > 0) {
|
|
929
971
|
parts.push(
|
|
930
972
|
` ${String(coverage.reviewCopies)} further path(s) under \`${REVIEW_COPY_PREFIX}\` are ` +
|
|
@@ -960,6 +1002,8 @@ export interface ReviewCoverage {
|
|
|
960
1002
|
* in `filesTotal`. Optional: a record written before this field has none.
|
|
961
1003
|
*/
|
|
962
1004
|
reviewCopies?: number;
|
|
1005
|
+
/** The path prefixes a scoped run was narrowed to; absent for a whole-span run. */
|
|
1006
|
+
scope?: readonly string[];
|
|
963
1007
|
}
|
|
964
1008
|
|
|
965
1009
|
export function renderReview(findings: Finding[], enforce: boolean, escalation: readonly string[] = [], coverage?: ReviewCoverage): string {
|
|
@@ -1100,8 +1144,17 @@ export function main(argv: string[]): 0 | 2 {
|
|
|
1100
1144
|
const enforce = argv.includes('--enforce');
|
|
1101
1145
|
const baseIdx = argv.indexOf('--base');
|
|
1102
1146
|
const baseRef = (baseIdx >= 0 ? argv[baseIdx + 1] : undefined) ?? 'origin/main';
|
|
1147
|
+
const scopeIdx = argv.indexOf('--scope');
|
|
1148
|
+
const scope = scopeIdx >= 0 ? (argv[scopeIdx + 1] ?? '').split(',').map((p) => p.trim()).filter((p) => p !== '') : undefined;
|
|
1149
|
+
const maxIdx = argv.indexOf('--max-chunks');
|
|
1150
|
+
const maxChunks = maxIdx >= 0 ? Number(argv[maxIdx + 1]) : undefined;
|
|
1151
|
+
if (maxChunks !== undefined && !(Number.isInteger(maxChunks) && maxChunks > 0)) {
|
|
1152
|
+
process.stderr.write('self-review-gate: --max-chunks takes a positive integer\n');
|
|
1153
|
+
return 2;
|
|
1154
|
+
}
|
|
1103
1155
|
|
|
1104
|
-
const plan = buildPlan(baseRef);
|
|
1156
|
+
const plan = buildPlan(baseRef, REPO_ROOT, { ...(scope ? { scope } : {}), ...(maxChunks ? { maxChunks } : {}) });
|
|
1157
|
+
const redact = argv.includes('--redact-egress');
|
|
1105
1158
|
|
|
1106
1159
|
// The request the live run would send, verbatim and unspent. A summary
|
|
1107
1160
|
// would be this script's description of the request rather than the
|
|
@@ -1237,7 +1290,8 @@ export function main(argv: string[]): 0 | 2 {
|
|
|
1237
1290
|
// Facts FIRST, then the partition. The reviewer reads what the
|
|
1238
1291
|
// range did before it reads the fragment it was given, so "absent
|
|
1239
1292
|
// from my chunk" can no longer be mistaken for "deleted".
|
|
1240
|
-
const
|
|
1293
|
+
const body = redact ? `${REDACTION_NOTE}${redactEgress(plan.facts + chunk.text)}` : plan.facts + chunk.text;
|
|
1294
|
+
const resp = client.ask(systemPrompt, body, 4096);
|
|
1241
1295
|
if (resp.error) {
|
|
1242
1296
|
process.stdout.write(
|
|
1243
1297
|
`::warning::self-review-gate — chunk ${String(i + 1)}/` +
|
|
@@ -1279,6 +1333,7 @@ export function main(argv: string[]): 0 | 2 {
|
|
|
1279
1333
|
filesTotal: plan.files.length,
|
|
1280
1334
|
unreviewed,
|
|
1281
1335
|
reviewCopies: plan.reviewCopies.length,
|
|
1336
|
+
...(scope ? { scope } : {}),
|
|
1282
1337
|
};
|
|
1283
1338
|
// Ground-truth pass, ONCE, before anything reads the finding set. A
|
|
1284
1339
|
// deletion claim the range and the tree both disprove is annotated
|
|
@@ -61,6 +61,7 @@ import {
|
|
|
61
61
|
foreign_live_records,
|
|
62
62
|
iso_now,
|
|
63
63
|
read_own_record,
|
|
64
|
+
global_register_dir,
|
|
64
65
|
register_dir,
|
|
65
66
|
safe_stem,
|
|
66
67
|
stop_means_session_end,
|
|
@@ -68,8 +69,17 @@ import {
|
|
|
68
69
|
ttl_seconds_for,
|
|
69
70
|
write_record,
|
|
70
71
|
} from './_lib/session_register.js';
|
|
72
|
+
import { pr_watch_block } from './_lib/session_pr_watch.js';
|
|
71
73
|
import { pruneAgedRefusalState, readSessionCounts } from './_lib/turn_end_refusals.js';
|
|
72
74
|
import { readHookStdin } from './hooks/hook_stdin.js';
|
|
75
|
+
import { probeRanToday, stampProbeRun } from './hooks/probe_throttle.js';
|
|
76
|
+
import { retroDailyProbe } from './retro_sweep.js';
|
|
77
|
+
import { dailyCleanup } from './worktree_cleanup_check.js';
|
|
78
|
+
import { sessionNotice } from './_lib/advisory_notice.js';
|
|
79
|
+
|
|
80
|
+
/** The `probe_throttle` stamp of the retro's daily probe. */
|
|
81
|
+
const RETRO_PROBE_STAMP = 'retro-sweep';
|
|
82
|
+
const WORKTREE_PROBE_STAMP = 'worktree-cleanup';
|
|
73
83
|
|
|
74
84
|
/** Replay-fixture runs must never mutate state (same contract as chat_history). */
|
|
75
85
|
const REPLAY_ENV_VAR = 'AGENT_CONFIG_REPLAY';
|
|
@@ -597,7 +607,29 @@ export function touch(
|
|
|
597
607
|
// Preserve the original started_at across beats; first beat sets it.
|
|
598
608
|
const existing = read_own_record(dir, session_id);
|
|
599
609
|
const started_at = existing?.started_at ?? iso_now(now);
|
|
600
|
-
|
|
610
|
+
const rec = build_record(workspace_root, session_id, platform, started_at, now);
|
|
611
|
+
// road-to-an-update-that-installs-itself-only-when-it-is-safe 1.4 — the
|
|
612
|
+
// same record, a second time, in the MACHINE-wide register. Two writes
|
|
613
|
+
// rather than one register because the two answer different questions: the
|
|
614
|
+
// repo register drives the collision block, which is meaningless across
|
|
615
|
+
// repositories, while `upgrade --unattended` has to know whether ANY
|
|
616
|
+
// session is live before it swaps a binary every session's hooks run.
|
|
617
|
+
//
|
|
618
|
+
// Best-effort by construction: `write_record` creates its directory and
|
|
619
|
+
// swallows every write error, and its result never decides this function's
|
|
620
|
+
// return value, so a read-only or absent global root leaves session
|
|
621
|
+
// registration working exactly as it did. The try covers the one call that
|
|
622
|
+
// can still throw — resolving the home directory. The cost of best-effort is
|
|
623
|
+
// stated where it matters: `any_live_session` reads a missing record as "no
|
|
624
|
+
// session", so the unattended run leans on its lock and age gates too.
|
|
625
|
+
// Written as compactly as it is because the hook bundle is byte-budgeted:
|
|
626
|
+
// the first version (a separate mkdir and a second try) put the bundle over.
|
|
627
|
+
try {
|
|
628
|
+
write_record(global_register_dir(), rec);
|
|
629
|
+
} catch {
|
|
630
|
+
/* a session that cannot reach the global root still starts */
|
|
631
|
+
}
|
|
632
|
+
return write_record(dir, rec);
|
|
601
633
|
}
|
|
602
634
|
|
|
603
635
|
/**
|
|
@@ -821,6 +853,15 @@ export function main(): number {
|
|
|
821
853
|
if (event === 'session_end' || (event === 'stop' && stop_means_session_end(platform))) {
|
|
822
854
|
const dir = register_dir(root);
|
|
823
855
|
if (dir !== null) delete_record(dir, session_id);
|
|
856
|
+
// 1.4 — the global mirror dies with the session on the same beat.
|
|
857
|
+
// Without this the machine-wide register would only ever shrink by
|
|
858
|
+
// TTL expiry, so a clean exit would still block an unattended
|
|
859
|
+
// upgrade for the whole TTL window of its platform.
|
|
860
|
+
try {
|
|
861
|
+
delete_record(global_register_dir(), session_id);
|
|
862
|
+
} catch {
|
|
863
|
+
/* unreachable global root is not a reason to fail session end */
|
|
864
|
+
}
|
|
824
865
|
// The claim file dies with the session too. Keyed on a session id it is
|
|
825
866
|
// never read again once that session ends, so leaving it behind grows one
|
|
826
867
|
// file per session forever — the same unbounded-growth defect the register
|
|
@@ -880,13 +921,59 @@ export function main(): number {
|
|
|
880
921
|
/* an unprunable directory keeps its files; it is not an error */
|
|
881
922
|
}
|
|
882
923
|
}
|
|
924
|
+
if (event === 'user_prompt_submit') {
|
|
925
|
+
// The live state of PRs this session opened. `warn` is the one
|
|
926
|
+
// decision whose context reaches the model on this slot; the
|
|
927
|
+
// dispatcher turns it into a host-facing exit 0, so it never blocks.
|
|
928
|
+
const prs = pr_watch_block(root, session_id, new Date());
|
|
929
|
+
if (prs !== null) {
|
|
930
|
+
process.stdout.write(
|
|
931
|
+
JSON.stringify({ decision: 'warn', reason: 'session PR state', additional_context: prs }) + '\n',
|
|
932
|
+
);
|
|
933
|
+
return 2;
|
|
934
|
+
}
|
|
935
|
+
}
|
|
883
936
|
if (event === 'session_start') {
|
|
884
|
-
|
|
885
|
-
|
|
937
|
+
// The retro's daily probe (docs/contracts/retro-v1.md, path C)
|
|
938
|
+
// rides this slot rather than a concern of its own: it fires once
|
|
939
|
+
// per session, the concern count is ratcheted, and it never throws.
|
|
940
|
+
const retro = retroDailyProbe(root, {
|
|
941
|
+
ranToday: (r) => probeRanToday(r, RETRO_PROBE_STAMP),
|
|
942
|
+
stamp: (r) => stampProbeRun(r, RETRO_PROBE_STAMP),
|
|
943
|
+
});
|
|
944
|
+
// The worktree pass rides the same slot on the same terms
|
|
945
|
+
// (worktrees roadmap 3.3, council 2026-10-21 Q1): once a day,
|
|
946
|
+
// a 3 s subprocess deadline, never throws. Under
|
|
947
|
+
// `worktrees.cleanup: auto` it removes the proven set — a
|
|
948
|
+
// declared authority expansion the user-owned key arms (ADR-295).
|
|
949
|
+
const worktrees =
|
|
950
|
+
dailyCleanup(root, {
|
|
951
|
+
ranToday: (r) => probeRanToday(r, WORKTREE_PROBE_STAMP),
|
|
952
|
+
stamp: (r) => stampProbeRun(r, WORKTREE_PROBE_STAMP),
|
|
953
|
+
})?.line ?? null;
|
|
954
|
+
// The advisory notice (advisories roadmap 4.2): read-only — one
|
|
955
|
+
// cache file read, one "shown today" stamp written, no network
|
|
956
|
+
// and no action. `advisories.mode: off` silences it.
|
|
957
|
+
let advisories: string | null = null;
|
|
958
|
+
try {
|
|
959
|
+
advisories = sessionNotice(root);
|
|
960
|
+
} catch {
|
|
961
|
+
advisories = null;
|
|
962
|
+
}
|
|
963
|
+
const foreign = foreign_sessions_block(root, session_id, new Date());
|
|
964
|
+
const block = [foreign, retro, worktrees, advisories].filter((b): b is string => b !== null).join('\n\n');
|
|
965
|
+
if (block !== '') {
|
|
886
966
|
process.stdout.write(
|
|
887
967
|
JSON.stringify({
|
|
888
968
|
decision: 'allow',
|
|
889
|
-
reason:
|
|
969
|
+
reason: [
|
|
970
|
+
foreign !== null ? 'live foreign sessions on this repository' : null,
|
|
971
|
+
retro !== null ? 'retro queue' : null,
|
|
972
|
+
worktrees !== null ? 'worktree cleanup' : null,
|
|
973
|
+
advisories !== null ? 'advisories' : null,
|
|
974
|
+
]
|
|
975
|
+
.filter((r): r is string => r !== null)
|
|
976
|
+
.join(', '),
|
|
890
977
|
context: block,
|
|
891
978
|
}) + '\n',
|
|
892
979
|
);
|
|
@@ -26,7 +26,16 @@
|
|
|
26
26
|
* - `claim <slug>` — record that THIS SESSION has taken a roadmap. Writes the
|
|
27
27
|
* bridge file the next heartbeat lifts into the register, keyed on the host
|
|
28
28
|
* session id where one exists.
|
|
29
|
-
* - `claim --
|
|
29
|
+
* - `claim <slug> --lane [--worktree P] [--branch B]` — take a roadmap for a
|
|
30
|
+
* subagent lane of this session. Takes the per-slug lock only, so the
|
|
31
|
+
* session's own claim is untouched and each lane keeps its roadmap.
|
|
32
|
+
* - `claim --release [<slug>]` — clear the claim and this session's locks, or
|
|
33
|
+
* one slug's lock.
|
|
34
|
+
*
|
|
35
|
+
* Every claim also takes the per-slug lock (`_lib/roadmap_slug_lock.ts`): an
|
|
36
|
+
* exclusive create in the git common dir that a peer in any worktree sees at
|
|
37
|
+
* once, and that refuses a second live holder. The lock records the worktree
|
|
38
|
+
* and branch, so a holder killed mid-run leaves the place its work sits.
|
|
30
39
|
*
|
|
31
40
|
* ## Why two axes and not one
|
|
32
41
|
*
|
|
@@ -44,6 +53,14 @@ import process from 'node:process';
|
|
|
44
53
|
import { fileURLToPath } from 'node:url';
|
|
45
54
|
|
|
46
55
|
import { write_atomic } from './_lib/fs_atomic.js';
|
|
56
|
+
import { current_branch } from './_lib/git_common_dir.js';
|
|
57
|
+
import {
|
|
58
|
+
acquire_lock,
|
|
59
|
+
holder_is_live,
|
|
60
|
+
read_holders,
|
|
61
|
+
read_locks,
|
|
62
|
+
release_locks,
|
|
63
|
+
} from './_lib/roadmap_slug_lock.js';
|
|
47
64
|
import {
|
|
48
65
|
classify_collisions,
|
|
49
66
|
iso_now,
|
|
@@ -66,7 +83,9 @@ function usage(): number {
|
|
|
66
83
|
' that axis to the JSON form)',
|
|
67
84
|
' agent-config sessions:claim <slug> [--paths <a,b,…>] claim a roadmap for this session',
|
|
68
85
|
' agent-config sessions:claim <slug> --force claim it even though a peer holds it',
|
|
69
|
-
' agent-config sessions:claim --
|
|
86
|
+
' agent-config sessions:claim <slug> --lane [--worktree P] [--branch B]',
|
|
87
|
+
' claim a roadmap for a subagent lane of this session',
|
|
88
|
+
' agent-config sessions:claim --release [<slug>] drop this session\'s claim and locks, or one slug',
|
|
70
89
|
'',
|
|
71
90
|
].join('\n'),
|
|
72
91
|
);
|
|
@@ -422,6 +441,18 @@ export function claim_conflicts(
|
|
|
422
441
|
}
|
|
423
442
|
}
|
|
424
443
|
}
|
|
444
|
+
// The lock is written at claim time, so it is the half of a peer's claim that
|
|
445
|
+
// a same-turn screen can see; the register record above arrives a heartbeat late.
|
|
446
|
+
const holders = read_holders(root);
|
|
447
|
+
for (const l of read_locks(root)) {
|
|
448
|
+
if (l.slug !== slug || !holder_is_live(l, holders)) continue;
|
|
449
|
+
if (sid !== null && l.session_id !== null && safe_stem(l.session_id) === safe_stem(sid)) continue;
|
|
450
|
+
if (sid === null && l.session_id === null && _same_path(l.worktree, root)) continue;
|
|
451
|
+
out.push({
|
|
452
|
+
kind: 'session',
|
|
453
|
+
detail: `${l.lane ? 'lane of a ' : ''}session on branch \`${l.branch ?? 'detached'}\` in ${l.worktree}`,
|
|
454
|
+
});
|
|
455
|
+
}
|
|
425
456
|
for (const b of branch_name_hits(root, slug)) {
|
|
426
457
|
out.push({ kind: 'branch', detail: `branch \`${b.branch}\` in ${b.worktree}` });
|
|
427
458
|
}
|
|
@@ -450,6 +481,29 @@ function cmd_claim(argv: string[], root: string): number {
|
|
|
450
481
|
// `claim_dir` in session_register_hook.ts for the full account.
|
|
451
482
|
const target = claim_file(root, sid);
|
|
452
483
|
if (argv.includes('--release')) {
|
|
484
|
+
const one = argv.find((a) => !a.startsWith('-')) ?? null;
|
|
485
|
+
const released = release_locks(root, sid, one);
|
|
486
|
+
if (one !== null) {
|
|
487
|
+
// One slug: the session's own claim file goes only if it names that slug.
|
|
488
|
+
const own = claim_read_paths(root, sid).find((p) => {
|
|
489
|
+
try {
|
|
490
|
+
return (JSON.parse(fs.readFileSync(p, 'utf-8')) as { slug?: string }).slug === one;
|
|
491
|
+
} catch {
|
|
492
|
+
return false;
|
|
493
|
+
}
|
|
494
|
+
});
|
|
495
|
+
if (own !== undefined && path.basename(own) === path.basename(target)) {
|
|
496
|
+
try {
|
|
497
|
+
fs.unlinkSync(own);
|
|
498
|
+
} catch {
|
|
499
|
+
/* already gone */
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
process.stdout.write(
|
|
503
|
+
released.length > 0 ? `Released "${one}".\n` : `No lock of this session on "${one}".\n`,
|
|
504
|
+
);
|
|
505
|
+
return 0;
|
|
506
|
+
}
|
|
453
507
|
// Release only what this session could have written. An identified session
|
|
454
508
|
// never writes the legacy file, so unlinking it would delete a PEER's claim
|
|
455
509
|
// in a mixed-host checkout and leave that peer reporting nothing, with no
|
|
@@ -475,13 +529,17 @@ function cmd_claim(argv: string[], root: string): number {
|
|
|
475
529
|
}
|
|
476
530
|
const paths_idx = argv.indexOf('--paths');
|
|
477
531
|
const paths_arg = paths_idx >= 0 ? (argv[paths_idx + 1] ?? '') : '';
|
|
532
|
+
const wt_idx = argv.indexOf('--worktree');
|
|
533
|
+
const br_idx = argv.indexOf('--branch');
|
|
534
|
+
const lane = argv.includes('--lane');
|
|
478
535
|
const owned_paths = paths_arg
|
|
479
536
|
.split(',')
|
|
480
537
|
.map((x) => x.trim())
|
|
481
538
|
.filter((x) => x !== '');
|
|
482
539
|
// The slug is the first bare token that is not the VALUE of --paths; without
|
|
483
540
|
// this the comma list would be read as the slug on `claim --paths a,b road-to-x`.
|
|
484
|
-
const
|
|
541
|
+
const value_at = new Set([paths_idx, wt_idx, br_idx].filter((i) => i >= 0).map((i) => i + 1));
|
|
542
|
+
const slug = argv.find((a, i) => !a.startsWith('-') && !value_at.has(i));
|
|
485
543
|
if (slug === undefined || slug.trim() === '') {
|
|
486
544
|
return usage();
|
|
487
545
|
}
|
|
@@ -522,6 +580,40 @@ function cmd_claim(argv: string[], root: string): number {
|
|
|
522
580
|
return 1;
|
|
523
581
|
}
|
|
524
582
|
|
|
583
|
+
const worktree = wt_idx >= 0 ? path.resolve(argv[wt_idx + 1] ?? root) : root;
|
|
584
|
+
const branch = br_idx >= 0 ? (argv[br_idx + 1] ?? null) : current_branch(worktree);
|
|
585
|
+
let took_over_from: string | null = null;
|
|
586
|
+
try {
|
|
587
|
+
const got = acquire_lock(
|
|
588
|
+
root,
|
|
589
|
+
{ slug: slug.trim(), session_id: sid, lane, worktree, branch, written_at: iso_now() },
|
|
590
|
+
read_holders(root),
|
|
591
|
+
{ force: forced },
|
|
592
|
+
);
|
|
593
|
+
if (!got.ok) {
|
|
594
|
+
process.stderr.write(
|
|
595
|
+
`sessions:claim: REFUSED — "${slug.trim()}" is locked by a live ${got.holder.lane ? 'lane' : 'session'}\n` +
|
|
596
|
+
` on branch \`${got.holder.branch ?? 'detached'}\` in ${got.holder.worktree}.\n` +
|
|
597
|
+
'Pick another roadmap, or coordinate with that session first.\n',
|
|
598
|
+
);
|
|
599
|
+
return 1;
|
|
600
|
+
}
|
|
601
|
+
if (got.took_over !== null) {
|
|
602
|
+
took_over_from = `${got.took_over.worktree} (${got.took_over.branch ?? 'no branch'})`;
|
|
603
|
+
}
|
|
604
|
+
} catch (exc) {
|
|
605
|
+
process.stderr.write(`sessions:claim: could not take the lock — ${String(exc)}\n`);
|
|
606
|
+
return 1;
|
|
607
|
+
}
|
|
608
|
+
if (lane) {
|
|
609
|
+
process.stdout.write(
|
|
610
|
+
`Locked "${slug.trim()}" for a lane in ${worktree} (${branch ?? 'no branch'}).\n` +
|
|
611
|
+
(took_over_from !== null
|
|
612
|
+
? `Its previous holder is dead; its work sits in ${took_over_from} — continue there.\n`
|
|
613
|
+
: ''),
|
|
614
|
+
);
|
|
615
|
+
return 0;
|
|
616
|
+
}
|
|
525
617
|
try {
|
|
526
618
|
write_atomic(
|
|
527
619
|
target,
|
|
@@ -544,11 +636,14 @@ function cmd_claim(argv: string[], root: string): number {
|
|
|
544
636
|
return 1; // the claim is the whole point of this verb; a silent no-op would lie
|
|
545
637
|
}
|
|
546
638
|
process.stdout.write(
|
|
547
|
-
|
|
639
|
+
(took_over_from !== null
|
|
640
|
+
? `Its previous holder is dead; its work sits in ${took_over_from} — continue there.\n`
|
|
641
|
+
: '') +
|
|
642
|
+
`Claimed "${slug.trim()}" for this session. The lock is visible to every\n` +
|
|
643
|
+
'session at once; the register record follows on the next heartbeat.\n' +
|
|
548
644
|
(owned_paths.length > 0
|
|
549
645
|
? `Declared ${owned_paths.length} owned path(s); peers sharing one are labelled PATH OVERLAP.\n`
|
|
550
646
|
: '') +
|
|
551
|
-
'sessions on the next turn, when the heartbeat lifts it into the register.\n' +
|
|
552
647
|
(sid === null
|
|
553
648
|
? 'NOTE: this host exports no session id, so the claim is scoped to this\n' +
|
|
554
649
|
'WORKTREE — a second session in the same checkout will overwrite it.\n'
|
|
@@ -37,7 +37,7 @@ const SKILLS_DIR = SRC_SKILLS();
|
|
|
37
37
|
// `agents/runtime/reports/`, as this file's own header has always declared. The
|
|
38
38
|
// code said `agents/reports/` (tracked) — harmless while the gate read a dead
|
|
39
39
|
// root and never got far enough to write, load-bearing the moment it did.
|
|
40
|
-
const OUT_JSON = path.join(REPO_ROOT, 'agents', 'runtime', 'reports', 'skill-collision-clusters.json');
|
|
40
|
+
export const OUT_JSON = path.join(REPO_ROOT, 'agents', 'runtime', 'reports', 'skill-collision-clusters.json');
|
|
41
41
|
|
|
42
42
|
const KEYWORD_OVERLAP_THRESHOLD = 0.4;
|
|
43
43
|
const MIN_SHARED_KEYWORDS = 3;
|
|
@@ -51,6 +51,8 @@ import {
|
|
|
51
51
|
type TermStats,
|
|
52
52
|
} from '../../shared/skillRanking.js';
|
|
53
53
|
|
|
54
|
+
declare const __AGENT_CONFIG_CLI_DELEGATE__: boolean | undefined;
|
|
55
|
+
|
|
54
56
|
const _HERE = fileURLToPath(import.meta.url);
|
|
55
57
|
// src/scripts/skill_tools/score_skill_relevance.ts → parents[3] of the .py
|
|
56
58
|
// (skill_tools → scripts → src → repo root) is the package root.
|
|
@@ -553,7 +555,7 @@ export function rankDetailed(
|
|
|
553
555
|
skillsDir: string | readonly string[],
|
|
554
556
|
opts: RankOptions = {},
|
|
555
557
|
ctx?: NeighbourContext,
|
|
556
|
-
): { rows: RankRow[]; raw: ReadonlyMap<string, number> } {
|
|
558
|
+
): { rows: RankRow[]; raw: ReadonlyMap<string, number>; descriptions: ReadonlyMap<string, string> } {
|
|
557
559
|
const taskTerms = _tokenize(task);
|
|
558
560
|
const skills = _load_skills_across(
|
|
559
561
|
typeof skillsDir === 'string' ? [skillsDir] : skillsDir,
|
|
@@ -566,6 +568,12 @@ export function rankDetailed(
|
|
|
566
568
|
const stats = opts.idfWeighting ? buildTermStats(skills.map(_rankable), termSets) : undefined;
|
|
567
569
|
const rows: RankRow[] = [];
|
|
568
570
|
const raw = new Map<string, number>();
|
|
571
|
+
// The description is carried OUT of the loop rather than added to `RankRow`:
|
|
572
|
+
// the tuple shape is the Python-parity one and several callers destructure
|
|
573
|
+
// it positionally, so widening it would break them for a field most of them
|
|
574
|
+
// do not want. A caller that needs the choosing text reads this map by the
|
|
575
|
+
// same qualified name the row carries.
|
|
576
|
+
const descriptions = new Map<string, string>();
|
|
569
577
|
for (let i = 0; i < skills.length; i += 1) {
|
|
570
578
|
const s = skills[i] as Skill;
|
|
571
579
|
const unrounded = _rawScore(taskTerms, s, termSets[i] as ReadonlySet<string>, opts, stats);
|
|
@@ -573,12 +581,13 @@ export function rankDetailed(
|
|
|
573
581
|
if (score > 0) {
|
|
574
582
|
rows.push([s.qualified, score, [...s.personas]]);
|
|
575
583
|
raw.set(s.qualified, unrounded);
|
|
584
|
+
descriptions.set(s.qualified, s.description);
|
|
576
585
|
}
|
|
577
586
|
}
|
|
578
587
|
// rows.sort(key=lambda r: (-r[1], r[0])) — Python stable tuple sort, with
|
|
579
588
|
// the opt-in unrounded tie-break between the two keys.
|
|
580
589
|
rows.sort((a, b) => compareRanked(a[0], a[1], b[0], b[1], opts, raw));
|
|
581
|
-
return { rows, raw };
|
|
590
|
+
return { rows, raw, descriptions };
|
|
582
591
|
}
|
|
583
592
|
|
|
584
593
|
/** Mirror Python `f"{s:<{w}}"` (left-justify) over code-point width. */
|
|
@@ -872,6 +881,26 @@ export function main(argv: string[] | null = null): number {
|
|
|
872
881
|
}
|
|
873
882
|
|
|
874
883
|
function _isCliEntry(): boolean {
|
|
884
|
+
// INSIDE A CLI-DELEGATE BUNDLE THIS MODULE IS NEVER THE ENTRY.
|
|
885
|
+
//
|
|
886
|
+
// esbuild bundles every import of a `cmd_*.ts` into ONE file, and in that
|
|
887
|
+
// file `import.meta.url` is the BUNDLE's url for every inlined module. So
|
|
888
|
+
// the comparisons below see argv[1] and `import.meta.url` as the same path
|
|
889
|
+
// and fire — running this CLI's argparse over the HOST command's argv.
|
|
890
|
+
//
|
|
891
|
+
// Measured, not predicted: `route:explain "commit this and push to main"`
|
|
892
|
+
// answered `score_skill_relevance.py: error: unrecognized arguments` the
|
|
893
|
+
// moment `cmd_route_explain.ts` imported this module, and only through the
|
|
894
|
+
// bundle — the tsc path was green.
|
|
895
|
+
//
|
|
896
|
+
// The define is the right discriminator rather than a heuristic: the
|
|
897
|
+
// delegate bundles are built from `src/scripts/_cli/cmd_*.ts`,
|
|
898
|
+
// `src/agent-src/scripts/*.ts` and two named aux entries, and this file is
|
|
899
|
+
// none of them. It can be a LIBRARY in such a bundle; it can never be the
|
|
900
|
+
// entry.
|
|
901
|
+
if (typeof __AGENT_CONFIG_CLI_DELEGATE__ !== 'undefined' && __AGENT_CONFIG_CLI_DELEGATE__) {
|
|
902
|
+
return false;
|
|
903
|
+
}
|
|
875
904
|
if (process.argv[1] === undefined) {
|
|
876
905
|
return false;
|
|
877
906
|
}
|
|
@@ -22,6 +22,7 @@ import * as path from 'node:path';
|
|
|
22
22
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
23
23
|
|
|
24
24
|
import { artefact_roots, resolve_logical } from './_lib/agent_src.js';
|
|
25
|
+
import { vendorPrefix } from './_lib/egress_rules.js';
|
|
25
26
|
import { assertScanned, DeadScopeError } from './_lib/scan_scope.js';
|
|
26
27
|
import * as user_global_paths from './_lib/user_global_paths.js';
|
|
27
28
|
|
|
@@ -414,9 +415,10 @@ export function load_anthropic_key(p: string = ANTHROPIC_KEY_PATH): string {
|
|
|
414
415
|
if (!key) {
|
|
415
416
|
throw new KeyGateError(`${p} is empty.`);
|
|
416
417
|
}
|
|
417
|
-
|
|
418
|
+
const prefix = vendorPrefix('anthropic-api-key');
|
|
419
|
+
if (!key.startsWith(prefix)) {
|
|
418
420
|
throw new KeyGateError(
|
|
419
|
-
`${p} does not contain an Anthropic key (expected '
|
|
421
|
+
`${p} does not contain an Anthropic key (expected '${prefix}' prefix).`,
|
|
420
422
|
);
|
|
421
423
|
}
|
|
422
424
|
return key;
|