@event4u/agent-config 2.26.0 → 3.1.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/.agent-src/commands/agent-handoff.md +15 -3
- package/.agent-src/commands/agent-status.md +12 -0
- package/.agent-src/commands/agents/audit.md +12 -0
- package/.agent-src/commands/agents/init.md +12 -0
- package/.agent-src/commands/agents/optimize.md +12 -0
- package/.agent-src/commands/agents/user/accept.md +12 -0
- package/.agent-src/commands/agents/user/init.md +12 -0
- package/.agent-src/commands/agents/user/review.md +12 -0
- package/.agent-src/commands/agents/user/show.md +12 -0
- package/.agent-src/commands/agents/user/update.md +12 -0
- package/.agent-src/commands/agents/user.md +12 -0
- package/.agent-src/commands/agents.md +12 -0
- package/.agent-src/commands/analyze-reference-repo.md +15 -3
- package/.agent-src/commands/bug-fix.md +12 -0
- package/.agent-src/commands/bug-investigate.md +13 -1
- package/.agent-src/commands/challenge-me/vision.md +12 -0
- package/.agent-src/commands/challenge-me/with-docs.md +12 -0
- package/.agent-src/commands/challenge-me.md +12 -0
- package/.agent-src/commands/chat-history/import.md +16 -4
- package/.agent-src/commands/chat-history/learn.md +15 -3
- package/.agent-src/commands/chat-history/show.md +17 -5
- package/.agent-src/commands/chat-history.md +14 -2
- package/.agent-src/commands/check-current-md.md +12 -0
- package/.agent-src/commands/commit/in-chunks.md +12 -0
- package/.agent-src/commands/commit.md +12 -0
- package/.agent-src/commands/compress.md +12 -0
- package/.agent-src/commands/context/create.md +17 -5
- package/.agent-src/commands/context/refactor.md +15 -3
- package/.agent-src/commands/context.md +12 -0
- package/.agent-src/commands/cost-report.md +12 -0
- package/.agent-src/commands/council/analysis.md +15 -3
- package/.agent-src/commands/council/debate.md +17 -5
- package/.agent-src/commands/council/default.md +17 -5
- package/.agent-src/commands/council/design.md +12 -0
- package/.agent-src/commands/council/optimize.md +12 -0
- package/.agent-src/commands/council/pr.md +12 -0
- package/.agent-src/commands/council.md +13 -1
- package/.agent-src/commands/create-pr/description-only.md +12 -0
- package/.agent-src/commands/create-pr.md +39 -0
- package/.agent-src/commands/e2e-heal.md +12 -0
- package/.agent-src/commands/e2e-plan.md +12 -0
- package/.agent-src/commands/estimate-ticket.md +12 -0
- package/.agent-src/commands/feature/dev.md +13 -1
- package/.agent-src/commands/feature/explore.md +12 -0
- package/.agent-src/commands/feature/plan.md +14 -2
- package/.agent-src/commands/feature/refactor.md +12 -0
- package/.agent-src/commands/feature/roadmap.md +12 -0
- package/.agent-src/commands/feature.md +12 -0
- package/.agent-src/commands/fix/ci.md +12 -0
- package/.agent-src/commands/fix/portability.md +12 -0
- package/.agent-src/commands/fix/pr-bot-comments.md +12 -0
- package/.agent-src/commands/fix/pr-comments.md +12 -0
- package/.agent-src/commands/fix/pr-developer-comments.md +12 -0
- package/.agent-src/commands/fix/refs.md +12 -0
- package/.agent-src/commands/fix/seeder.md +12 -0
- package/.agent-src/commands/fix.md +12 -0
- package/.agent-src/commands/ghostwriter/delete.md +20 -8
- package/.agent-src/commands/ghostwriter/fetch.md +19 -7
- package/.agent-src/commands/ghostwriter/list.md +19 -7
- package/.agent-src/commands/ghostwriter/show.md +14 -2
- package/.agent-src/commands/ghostwriter/write.md +15 -3
- package/.agent-src/commands/ghostwriter.md +14 -2
- package/.agent-src/commands/grill-me.md +12 -0
- package/.agent-src/commands/implement-ticket.md +12 -0
- package/.agent-src/commands/install-via-agent.md +129 -0
- package/.agent-src/commands/jira-ticket.md +12 -0
- package/.agent-src/commands/judge/on-diff.md +12 -0
- package/.agent-src/commands/judge/solo.md +12 -0
- package/.agent-src/commands/judge/steps.md +12 -0
- package/.agent-src/commands/judge.md +12 -0
- package/.agent-src/commands/memory/add.md +12 -0
- package/.agent-src/commands/memory/learn-low-impact.md +18 -6
- package/.agent-src/commands/memory/load.md +12 -0
- package/.agent-src/commands/memory/mine-session.md +12 -0
- package/.agent-src/commands/memory/promote.md +12 -0
- package/.agent-src/commands/memory/propose.md +12 -0
- package/.agent-src/commands/memory.md +12 -0
- package/.agent-src/commands/mode.md +12 -0
- package/.agent-src/commands/module/create.md +12 -0
- package/.agent-src/commands/module/explore.md +13 -1
- package/.agent-src/commands/module.md +12 -0
- package/.agent-src/commands/optimize/agents-dir.md +14 -2
- package/.agent-src/commands/optimize/augmentignore.md +12 -0
- package/.agent-src/commands/optimize/rtk.md +12 -0
- package/.agent-src/commands/optimize/skills.md +12 -0
- package/.agent-src/commands/optimize-prompt.md +12 -0
- package/.agent-src/commands/optimize.md +12 -0
- package/.agent-src/commands/orchestrate.md +13 -1
- package/.agent-src/commands/override/create.md +12 -0
- package/.agent-src/commands/override/manage.md +12 -0
- package/.agent-src/commands/override.md +12 -0
- package/.agent-src/commands/package-reset.md +12 -0
- package/.agent-src/commands/package-test.md +12 -0
- package/.agent-src/commands/post-as/ghostwriter.md +12 -0
- package/.agent-src/commands/post-as/me.md +13 -1
- package/.agent-src/commands/post-as.md +12 -0
- package/.agent-src/commands/prepare-for-review.md +12 -0
- package/.agent-src/commands/project-analyze.md +27 -15
- package/.agent-src/commands/project-health.md +13 -1
- package/.agent-src/commands/quality-fix.md +12 -0
- package/.agent-src/commands/refine-ticket.md +12 -0
- package/.agent-src/commands/research/deep.md +12 -0
- package/.agent-src/commands/research/report.md +12 -0
- package/.agent-src/commands/research.md +12 -0
- package/.agent-src/commands/review-changes.md +12 -0
- package/.agent-src/commands/review-routing.md +12 -0
- package/.agent-src/commands/roadmap/ai-council.md +15 -3
- package/.agent-src/commands/roadmap/create.md +13 -1
- package/.agent-src/commands/roadmap/process-full.md +12 -0
- package/.agent-src/commands/roadmap/process-phase.md +12 -0
- package/.agent-src/commands/roadmap/process-step.md +12 -0
- package/.agent-src/commands/roadmap.md +12 -0
- package/.agent-src/commands/rule-compliance-audit.md +12 -0
- package/.agent-src/commands/set-cost-profile.md +12 -0
- package/.agent-src/commands/sync-agent-settings.md +12 -0
- package/.agent-src/commands/sync-gitignore/fix.md +32 -13
- package/.agent-src/commands/sync-gitignore.md +13 -1
- package/.agent-src/commands/tests/create.md +12 -0
- package/.agent-src/commands/tests/execute.md +12 -0
- package/.agent-src/commands/tests.md +12 -0
- package/.agent-src/commands/threat-model.md +12 -0
- package/.agent-src/commands/update-form-request-messages.md +12 -0
- package/.agent-src/commands/upstream-contribute.md +12 -0
- package/.agent-src/commands/video/from-script.md +13 -1
- package/.agent-src/commands/video/scene.md +12 -0
- package/.agent-src/commands/video/stitch.md +13 -1
- package/.agent-src/commands/video/storyboard.md +12 -0
- package/.agent-src/commands/video.md +13 -1
- package/.agent-src/commands/work.md +12 -0
- package/.agent-src/contexts/augment-infrastructure.md +2 -2
- package/.agent-src/contexts/authority/scope-mechanics.md +11 -0
- package/.agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/.agent-src/contexts/documentation-hierarchy.md +2 -2
- package/.agent-src/contexts/execution/cheap-question-mechanics.md +81 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +19 -0
- package/.agent-src/ghostwriter/README.md +2 -2
- package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/personas/advisors/contrarian.md +1 -1
- package/.agent-src/personas/advisors/executor.md +1 -1
- package/.agent-src/personas/advisors/expansionist.md +1 -1
- package/.agent-src/personas/advisors/first-principles.md +1 -1
- package/.agent-src/personas/advisors/outsider.md +1 -1
- package/.agent-src/rules/agent-authority.md +12 -0
- package/.agent-src/rules/analysis-skill-routing.md +12 -0
- package/.agent-src/rules/architecture.md +13 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +13 -1
- package/.agent-src/rules/artifact-engagement-recording.md +13 -1
- package/.agent-src/rules/ask-when-uncertain.md +12 -0
- package/.agent-src/rules/augment-edit-discipline.md +13 -1
- package/.agent-src/rules/augment-source-of-truth.md +13 -1
- package/.agent-src/rules/autonomous-execution.md +13 -1
- package/.agent-src/rules/caveman-speak.md +15 -3
- package/.agent-src/rules/cli-output-handling.md +13 -1
- package/.agent-src/rules/command-suggestion-policy.md +13 -1
- package/.agent-src/rules/commit-conventions.md +13 -1
- package/.agent-src/rules/commit-policy.md +12 -0
- package/.agent-src/rules/context-hygiene.md +51 -3
- package/.agent-src/rules/copilot-routing.md +13 -1
- package/.agent-src/rules/devcontainer-routing.md +13 -1
- package/.agent-src/rules/direct-answers.md +12 -0
- package/.agent-src/rules/docker-commands.md +13 -1
- package/.agent-src/rules/domain-adoption-policy.md +17 -5
- package/.agent-src/rules/domain-safety-disclaimer.md +13 -1
- package/.agent-src/rules/domain-safety-pii.md +13 -1
- package/.agent-src/rules/domain-safety-retention.md +13 -1
- package/.agent-src/rules/downstream-changes.md +13 -1
- package/.agent-src/rules/engineering-safety-floor.md +102 -0
- package/.agent-src/rules/external-reference-deep-dive.md +13 -1
- package/.agent-src/rules/fast-path-marker-visibility.md +21 -1
- package/.agent-src/rules/finance-safety-floor.md +114 -0
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +13 -1
- package/.agent-src/rules/git-history-discipline.md +14 -2
- package/.agent-src/rules/guidelines.md +12 -0
- package/.agent-src/rules/improve-before-implement.md +13 -1
- package/.agent-src/rules/invite-challenge.md +13 -1
- package/.agent-src/rules/language-and-tone.md +12 -0
- package/.agent-src/rules/laravel-routing.md +13 -1
- package/.agent-src/rules/laravel-translations.md +13 -1
- package/.agent-src/rules/low-impact-corpus-privacy-floor.md +17 -5
- package/.agent-src/rules/markdown-safe-codeblocks.md +13 -1
- package/.agent-src/rules/media-governance-routing.md +27 -15
- package/.agent-src/rules/minimal-safe-diff.md +13 -1
- package/.agent-src/rules/missing-tool-handling.md +13 -1
- package/.agent-src/rules/model-recommendation.md +13 -1
- package/.agent-src/rules/no-attribution-footers.md +13 -1
- package/.agent-src/rules/no-cheap-questions.md +46 -32
- package/.agent-src/rules/no-roadmap-references.md +28 -16
- package/.agent-src/rules/non-destructive-by-default.md +12 -0
- package/.agent-src/rules/onboarding-gate.md +19 -6
- package/.agent-src/rules/package-ci-checks.md +12 -0
- package/.agent-src/rules/persona-governance.md +13 -1
- package/.agent-src/rules/php-coding.md +13 -1
- package/.agent-src/rules/preservation-guard.md +13 -1
- package/.agent-src/rules/provider-lifecycle-discipline.md +18 -6
- package/.agent-src/rules/reviewer-awareness.md +13 -1
- package/.agent-src/rules/roadmap-ci-steps-policy.md +13 -1
- package/.agent-src/rules/roadmap-progress-sync.md +18 -1
- package/.agent-src/rules/role-mode-adherence.md +13 -1
- package/.agent-src/rules/rule-type-governance.md +13 -1
- package/.agent-src/rules/runtime-safety.md +13 -1
- package/.agent-src/rules/scope-control.md +12 -0
- package/.agent-src/rules/security-sensitive-stop.md +13 -1
- package/.agent-src/rules/size-enforcement.md +12 -0
- package/.agent-src/rules/skill-improvement-trigger.md +13 -1
- package/.agent-src/rules/skill-quality.md +13 -1
- package/.agent-src/rules/slash-command-routing-policy.md +13 -1
- package/.agent-src/rules/strategy-safety-floor.md +114 -0
- package/.agent-src/rules/symfony-routing.md +13 -1
- package/.agent-src/rules/think-before-action.md +13 -1
- package/.agent-src/rules/token-efficiency.md +13 -1
- package/.agent-src/rules/token-optimizer-maintenance.md +12 -0
- package/.agent-src/rules/tool-safety.md +13 -1
- package/.agent-src/rules/ui-audit-gate.md +13 -1
- package/.agent-src/rules/upstream-proposal.md +13 -1
- package/.agent-src/rules/user-interaction.md +13 -1
- package/.agent-src/rules/user-interrupt-priority.md +12 -0
- package/.agent-src/rules/verify-before-complete.md +12 -0
- package/.agent-src/skills/accessibility-auditor/SKILL.md +12 -0
- package/.agent-src/skills/activation-design/SKILL.md +12 -0
- package/.agent-src/skills/adr-create/SKILL.md +12 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +12 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +16 -4
- package/.agent-src/skills/agents-md-thin-root/SKILL.md +28 -10
- package/.agent-src/skills/ai-council/SKILL.md +28 -15
- package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +12 -0
- package/.agent-src/skills/analysis-skill-router/SKILL.md +12 -0
- package/.agent-src/skills/api-design/SKILL.md +13 -3
- package/.agent-src/skills/api-endpoint/SKILL.md +12 -0
- package/.agent-src/skills/api-testing/SKILL.md +12 -0
- package/.agent-src/skills/architecture-review-lens/SKILL.md +12 -0
- package/.agent-src/skills/artisan-commands/SKILL.md +12 -0
- package/.agent-src/skills/async-python-patterns/SKILL.md +13 -1
- package/.agent-src/skills/authz-review/SKILL.md +12 -2
- package/.agent-src/skills/aws-infrastructure/SKILL.md +12 -0
- package/.agent-src/skills/blade-ui/SKILL.md +12 -0
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +12 -0
- package/.agent-src/skills/bug-analyzer/SKILL.md +14 -2
- package/.agent-src/skills/build-buy-partner/SKILL.md +12 -0
- package/.agent-src/skills/canvas-design/SKILL.md +12 -0
- package/.agent-src/skills/character-consistency/SKILL.md +23 -11
- package/.agent-src/skills/check-refs/SKILL.md +12 -0
- package/.agent-src/skills/churn-prevention/SKILL.md +12 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +16 -4
- package/.agent-src/skills/code-review/SKILL.md +12 -0
- package/.agent-src/skills/command-routing/SKILL.md +12 -0
- package/.agent-src/skills/command-writing/SKILL.md +14 -2
- package/.agent-src/skills/comp-banding/SKILL.md +12 -0
- package/.agent-src/skills/competitive-moat-analysis/SKILL.md +12 -2
- package/.agent-src/skills/competitive-positioning/SKILL.md +12 -2
- package/.agent-src/skills/composer-packages/SKILL.md +12 -0
- package/.agent-src/skills/compress-memory/SKILL.md +12 -0
- package/.agent-src/skills/content-funnel-design/SKILL.md +12 -2
- package/.agent-src/skills/context-authoring/SKILL.md +18 -6
- package/.agent-src/skills/context-document/SKILL.md +17 -5
- package/.agent-src/skills/contracts-cognition/SKILL.md +12 -2
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +12 -0
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +13 -1
- package/.agent-src/skills/copilot-config/SKILL.md +12 -0
- package/.agent-src/skills/customer-research/SKILL.md +12 -0
- package/.agent-src/skills/dashboard-design/SKILL.md +12 -0
- package/.agent-src/skills/data-flow-mapper/SKILL.md +12 -0
- package/.agent-src/skills/data-handling-judgment/SKILL.md +12 -2
- package/.agent-src/skills/database/SKILL.md +14 -2
- package/.agent-src/skills/dcf-modeling/SKILL.md +12 -2
- package/.agent-src/skills/deal-qualification-meddic/SKILL.md +12 -2
- package/.agent-src/skills/decision-record/SKILL.md +12 -0
- package/.agent-src/skills/deep-reading-analyst/SKILL.md +12 -0
- package/.agent-src/skills/defense-in-depth/SKILL.md +13 -1
- package/.agent-src/skills/dependency-upgrade/SKILL.md +12 -0
- package/.agent-src/skills/description-assist/SKILL.md +12 -0
- package/.agent-src/skills/design-review/SKILL.md +12 -0
- package/.agent-src/skills/devcontainer/SKILL.md +12 -0
- package/.agent-src/skills/developer-like-execution/SKILL.md +12 -0
- package/.agent-src/skills/discovery-interview/SKILL.md +12 -2
- package/.agent-src/skills/doc-coauthoring/SKILL.md +12 -0
- package/.agent-src/skills/docker/SKILL.md +12 -0
- package/.agent-src/skills/editorial-calendar/SKILL.md +12 -2
- package/.agent-src/skills/eloquent/SKILL.md +12 -0
- package/.agent-src/skills/eloquent/evals/triggers.json +1 -1
- package/.agent-src/skills/error-handling-patterns/SKILL.md +13 -1
- package/.agent-src/skills/estimate-ticket/SKILL.md +12 -0
- package/.agent-src/skills/existing-ui-audit/SKILL.md +12 -0
- package/.agent-src/skills/expansion-playbook/SKILL.md +12 -0
- package/.agent-src/skills/fe-design/SKILL.md +12 -0
- package/.agent-src/skills/feature-planning/SKILL.md +12 -0
- package/.agent-src/skills/file-editor/SKILL.md +12 -0
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +12 -0
- package/.agent-src/skills/flux/SKILL.md +12 -0
- package/.agent-src/skills/forecast-accuracy/SKILL.md +12 -2
- package/.agent-src/skills/forecasting/SKILL.md +12 -2
- package/.agent-src/skills/form-handler/SKILL.md +12 -0
- package/.agent-src/skills/fundraising-narrative/SKILL.md +12 -2
- package/.agent-src/skills/funnel-analysis/SKILL.md +12 -0
- package/.agent-src/skills/git-workflow/SKILL.md +12 -0
- package/.agent-src/skills/github-ci/SKILL.md +12 -0
- package/.agent-src/skills/grafana/SKILL.md +12 -0
- package/.agent-src/skills/gtm-launch/SKILL.md +12 -2
- package/.agent-src/skills/guideline-writing/SKILL.md +12 -0
- package/.agent-src/skills/hiring-loop-design/SKILL.md +12 -0
- package/.agent-src/skills/incident-commander/SKILL.md +12 -2
- package/.agent-src/skills/jira-integration/SKILL.md +12 -0
- package/.agent-src/skills/jobs-events/SKILL.md +12 -0
- package/.agent-src/skills/judge-bug-hunter/SKILL.md +12 -0
- package/.agent-src/skills/judge-code-quality/SKILL.md +12 -0
- package/.agent-src/skills/judge-security-auditor/SKILL.md +12 -0
- package/.agent-src/skills/judge-test-coverage/SKILL.md +12 -0
- package/.agent-src/skills/laravel/SKILL.md +12 -0
- package/.agent-src/skills/laravel-api-endpoint/SKILL.md +15 -3
- package/.agent-src/skills/laravel-dto/SKILL.md +14 -2
- package/.agent-src/skills/laravel-horizon/SKILL.md +12 -0
- package/.agent-src/skills/laravel-mail/SKILL.md +12 -0
- package/.agent-src/skills/laravel-middleware/SKILL.md +12 -0
- package/.agent-src/skills/laravel-migration/SKILL.md +12 -0
- package/.agent-src/skills/laravel-notifications/SKILL.md +12 -0
- package/.agent-src/skills/laravel-pennant/SKILL.md +12 -0
- package/.agent-src/skills/laravel-pulse/SKILL.md +12 -0
- package/.agent-src/skills/laravel-reverb/SKILL.md +12 -0
- package/.agent-src/skills/laravel-scheduling/SKILL.md +12 -0
- package/.agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/.agent-src/skills/laravel-websocket/SKILL.md +12 -0
- package/.agent-src/skills/launch-readiness/SKILL.md +12 -2
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +15 -3
- package/.agent-src/skills/lint-skills/SKILL.md +12 -0
- package/.agent-src/skills/livewire/SKILL.md +12 -0
- package/.agent-src/skills/livewire-architect/SKILL.md +12 -0
- package/.agent-src/skills/logging-monitoring/SKILL.md +12 -0
- package/.agent-src/skills/market-entry-analysis/SKILL.md +12 -0
- package/.agent-src/skills/markitdown/SKILL.md +14 -2
- package/.agent-src/skills/mcp/SKILL.md +12 -0
- package/.agent-src/skills/mcp-builder/SKILL.md +14 -2
- package/.agent-src/skills/md-language-check/SKILL.md +13 -1
- package/.agent-src/skills/memory-consolidation/SKILL.md +12 -0
- package/.agent-src/skills/merge-conflicts/SKILL.md +12 -0
- package/.agent-src/skills/messaging-architecture/SKILL.md +12 -2
- package/.agent-src/skills/migration-architect/SKILL.md +12 -0
- package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +12 -0
- package/.agent-src/skills/module-management/SKILL.md +12 -0
- package/.agent-src/skills/motion-choreographer/SKILL.md +16 -4
- package/.agent-src/skills/multi-tenancy/SKILL.md +14 -2
- package/.agent-src/skills/nextjs-patterns/SKILL.md +12 -0
- package/.agent-src/skills/okr-tree-modeling/SKILL.md +12 -2
- package/.agent-src/skills/onboarding-design/SKILL.md +12 -0
- package/.agent-src/skills/onboarding-program/SKILL.md +12 -0
- package/.agent-src/skills/one-on-one-cadence/SKILL.md +12 -0
- package/.agent-src/skills/openapi/SKILL.md +13 -1
- package/.agent-src/skills/org-design/SKILL.md +12 -0
- package/.agent-src/skills/override-management/SKILL.md +12 -0
- package/.agent-src/skills/perf-feedback-craft/SKILL.md +12 -0
- package/.agent-src/skills/performance/SKILL.md +12 -0
- package/.agent-src/skills/performance-analysis/SKILL.md +12 -0
- package/.agent-src/skills/persona-writing/SKILL.md +12 -0
- package/.agent-src/skills/pest-testing/SKILL.md +12 -0
- package/.agent-src/skills/php-coder/SKILL.md +12 -0
- package/.agent-src/skills/php-debugging/SKILL.md +12 -0
- package/.agent-src/skills/php-service/SKILL.md +12 -0
- package/.agent-src/skills/pipeline-strategy/SKILL.md +12 -2
- package/.agent-src/skills/pixar-storyteller/SKILL.md +17 -5
- package/.agent-src/skills/playwright-architect/SKILL.md +12 -2
- package/.agent-src/skills/playwright-testing/SKILL.md +12 -0
- package/.agent-src/skills/po-discovery/SKILL.md +12 -0
- package/.agent-src/skills/positioning-strategy/SKILL.md +12 -0
- package/.agent-src/skills/privacy-review/SKILL.md +12 -2
- package/.agent-src/skills/project-analysis-core/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-laravel/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-nextjs/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-node-express/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-react/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-symfony/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +12 -0
- package/.agent-src/skills/project-analyzer/SKILL.md +30 -18
- package/.agent-src/skills/project-docs/SKILL.md +25 -13
- package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +13 -1
- package/.agent-src/skills/prompt-optimizer/SKILL.md +13 -1
- package/.agent-src/skills/quality-tools/SKILL.md +12 -2
- package/.agent-src/skills/react-native-setup/SKILL.md +12 -0
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +12 -0
- package/.agent-src/skills/readme-reviewer/SKILL.md +64 -3
- package/.agent-src/skills/readme-writing/SKILL.md +64 -4
- package/.agent-src/skills/readme-writing-package/SKILL.md +60 -5
- package/.agent-src/skills/receiving-code-review/SKILL.md +12 -0
- package/.agent-src/skills/refine-prompt/SKILL.md +13 -1
- package/.agent-src/skills/refine-ticket/SKILL.md +14 -2
- package/.agent-src/skills/refine-ticket/detection-map.yml +2 -2
- package/.agent-src/skills/release-comms/SKILL.md +12 -2
- package/.agent-src/skills/repomix-packer/SKILL.md +13 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +12 -0
- package/.agent-src/skills/retention-loops/SKILL.md +12 -0
- package/.agent-src/skills/review-routing/SKILL.md +12 -0
- package/.agent-src/skills/rice-prioritization/SKILL.md +12 -0
- package/.agent-src/skills/risk-officer/SKILL.md +12 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +12 -0
- package/.agent-src/skills/roadmap-writing/SKILL.md +12 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +12 -0
- package/.agent-src/skills/rule-refactor/SKILL.md +15 -3
- package/.agent-src/skills/rule-writing/SKILL.md +13 -1
- package/.agent-src/skills/runway-cognition/SKILL.md +12 -2
- package/.agent-src/skills/scenario-modeling/SKILL.md +12 -2
- package/.agent-src/skills/scene-expander/SKILL.md +18 -6
- package/.agent-src/skills/script-writing/SKILL.md +13 -1
- package/.agent-src/skills/secrets-management/SKILL.md +13 -3
- package/.agent-src/skills/security/SKILL.md +12 -0
- package/.agent-src/skills/security-audit/SKILL.md +12 -0
- package/.agent-src/skills/sentry-integration/SKILL.md +12 -0
- package/.agent-src/skills/sequential-thinking/SKILL.md +12 -0
- package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +12 -0
- package/.agent-src/skills/skill-management/SKILL.md +12 -0
- package/.agent-src/skills/skill-reviewer/SKILL.md +12 -0
- package/.agent-src/skills/skill-writing/SKILL.md +12 -0
- package/.agent-src/skills/sql-writing/SKILL.md +12 -0
- package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +12 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -1
- package/.agent-src/skills/symfony-workflow/SKILL.md +12 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +53 -0
- package/.agent-src/skills/tailwind-engineer/SKILL.md +12 -0
- package/.agent-src/skills/tech-debt-tracker/SKILL.md +12 -2
- package/.agent-src/skills/technical-specification/SKILL.md +12 -0
- package/.agent-src/skills/terraform/SKILL.md +12 -0
- package/.agent-src/skills/terragrunt/SKILL.md +12 -0
- package/.agent-src/skills/test-driven-development/SKILL.md +12 -0
- package/.agent-src/skills/test-performance/SKILL.md +13 -1
- package/.agent-src/skills/testing-anti-patterns/SKILL.md +13 -1
- package/.agent-src/skills/threat-modeling/SKILL.md +12 -0
- package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +12 -0
- package/.agent-src/skills/token-optimizer/SKILL.md +12 -0
- package/.agent-src/skills/traefik/SKILL.md +12 -0
- package/.agent-src/skills/ui-component-architect/SKILL.md +12 -0
- package/.agent-src/skills/unit-economics-modeling/SKILL.md +12 -2
- package/.agent-src/skills/universal-project-analysis/SKILL.md +12 -0
- package/.agent-src/skills/upstream-contribute/SKILL.md +12 -0
- package/.agent-src/skills/using-git-worktrees/SKILL.md +12 -0
- package/.agent-src/skills/validate-feature-fit/SKILL.md +12 -0
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +12 -0
- package/.agent-src/skills/video-director/SKILL.md +18 -6
- package/.agent-src/skills/vision-articulation/SKILL.md +12 -0
- package/.agent-src/skills/voc-extract/SKILL.md +12 -2
- package/.agent-src/skills/voice-and-tone-design/SKILL.md +12 -2
- package/.agent-src/templates/agent-settings.md +5 -5
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/agents/memory/ownership.example.yml +1 -1
- package/.agent-src/templates/agents/proposal.example.md +12 -0
- package/.agent-src/templates/command.md +1 -1
- package/.agent-src/templates/contexts/auth-model.md +2 -2
- package/.agent-src/templates/contexts/data-sensitivity.md +3 -3
- package/.agent-src/templates/contexts/deployment-order.md +2 -2
- package/.agent-src/templates/contexts/observability.md +3 -3
- package/.agent-src/templates/contexts/tenant-boundaries.md +3 -3
- package/.agent-src/templates/contexts.md +1 -1
- package/.agent-src/templates/hooks/pre-commit-frontmatter +66 -0
- package/.agent-src/templates/hooks/pre-commit-roadmap-progress +78 -39
- package/.agent-src/templates/rule.md +1 -1
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +7 -4
- package/.agent-src/templates/scripts/work_engine/cli.py +6 -6
- package/.agent-src/templates/scripts/work_engine/emitters.py +29 -4
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.py +3 -3
- package/.agent-src/templates/scripts/work_engine/orchestration.py +25 -11
- package/.agent-src/templates/scripts/work_engine/state.py +53 -0
- package/.agent-src/templates/skill-archive-note.md +4 -4
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +12 -9
- package/CHANGELOG.md +268 -90
- package/CONTRIBUTING.md +61 -0
- package/README.md +173 -558
- package/config/agent-settings.template.yml +11 -8
- package/config/discovery/packs.yml +162 -0
- package/config/discovery/unassigned-artefacts.yml +68 -0
- package/config/discovery/workspaces.yml +59 -0
- package/config/gitignore-block.txt +36 -23
- package/dist/cli/agent-config.js +199 -0
- package/dist/cli/agent-config.js.map +1 -0
- package/dist/cli/bash/runBash.js +40 -0
- package/dist/cli/bash/runBash.js.map +1 -0
- package/dist/cli/commands/doctorShell.js +91 -0
- package/dist/cli/commands/doctorShell.js.map +1 -0
- package/dist/cli/commands/packs.js +59 -0
- package/dist/cli/commands/packs.js.map +1 -0
- package/dist/cli/commands/settings.js +35 -0
- package/dist/cli/commands/settings.js.map +1 -0
- package/dist/cli/commands/uiServe.js +119 -0
- package/dist/cli/commands/uiServe.js.map +1 -0
- package/dist/cli/commands/versions.js +64 -0
- package/dist/cli/commands/versions.js.map +1 -0
- package/dist/cli/commands/workspaces.js +58 -0
- package/dist/cli/commands/workspaces.js.map +1 -0
- package/dist/cli/discovery/loadManifest.js +62 -0
- package/dist/cli/discovery/loadManifest.js.map +1 -0
- package/dist/cli/log/logger.js +41 -0
- package/dist/cli/log/logger.js.map +1 -0
- package/dist/cli/paths.js +60 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/python/resolvePython.js +38 -0
- package/dist/cli/python/resolvePython.js.map +1 -0
- package/dist/cli/registry.js +77 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/discovery/deprecation-report.md +7 -0
- package/dist/discovery/discovery-manifest.json +9893 -0
- package/dist/discovery/discovery-manifest.json.sha256 +1 -0
- package/dist/discovery/discovery-manifest.summary.md +93 -0
- package/dist/discovery/orphan-report.md +10 -0
- package/dist/discovery/packs.json +1002 -0
- package/dist/discovery/trust-report.md +26 -0
- package/dist/discovery/workspaces.json +705 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -0
- package/dist/mcp/mcp-cloudflare-catalogue.json +27 -0
- package/dist/mcp/registry-manifest.json +63 -0
- package/dist/router.json +1623 -0
- package/dist/server/app.js +125 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/io/atomicMultiWrite.js +204 -0
- package/dist/server/io/atomicMultiWrite.js.map +1 -0
- package/dist/server/io/atomicWrite.js +79 -0
- package/dist/server/io/atomicWrite.js.map +1 -0
- package/dist/server/io/substituteTemplate.js +87 -0
- package/dist/server/io/substituteTemplate.js.map +1 -0
- package/dist/server/io/yamlIO.js +162 -0
- package/dist/server/io/yamlIO.js.map +1 -0
- package/dist/server/port.js +97 -0
- package/dist/server/port.js.map +1 -0
- package/dist/server/routes/discovery.js +72 -0
- package/dist/server/routes/discovery.js.map +1 -0
- package/dist/server/routes/ping.js +57 -0
- package/dist/server/routes/ping.js.map +1 -0
- package/dist/server/routes/schema.js +41 -0
- package/dist/server/routes/schema.js.map +1 -0
- package/dist/server/routes/settings.js +236 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/userMd.js +127 -0
- package/dist/server/routes/userMd.js.map +1 -0
- package/dist/server/routes/wizard.js +374 -0
- package/dist/server/routes/wizard.js.map +1 -0
- package/dist/server/schemas/settings.js +137 -0
- package/dist/server/schemas/settings.js.map +1 -0
- package/dist/server/token.js +75 -0
- package/dist/server/token.js.map +1 -0
- package/dist/server/writeRoot.js +84 -0
- package/dist/server/writeRoot.js.map +1 -0
- package/dist/server/writeRoot.test.js +91 -0
- package/dist/server/writeRoot.test.js.map +1 -0
- package/dist/shared/userMd/formAdapter.js +83 -0
- package/dist/shared/userMd/formAdapter.js.map +1 -0
- package/dist/shared/userMd/schema.js +46 -0
- package/dist/shared/userMd/schema.js.map +1 -0
- package/dist/shared/userMd/utils.js +88 -0
- package/dist/shared/userMd/utils.js.map +1 -0
- package/dist/ui/assets/index-D-DY1ywI.js +35 -0
- package/dist/ui/assets/index-D-DY1ywI.js.map +1 -0
- package/dist/ui/assets/index-Dqfhmg-d.css +1 -0
- package/dist/ui/index.html +14 -0
- package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
- package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
- package/docs/adrs/router/0001-three-tier-routing.md +5 -5
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +4 -4
- package/docs/adrs/schema/README.md +1 -1
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +3 -3
- package/docs/architecture/setup-vs-settings-shared-surface.md +114 -0
- package/docs/architecture.md +3 -2
- package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
- package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
- package/docs/archive/CHANGELOG-pre-3.1.0.md +167 -0
- package/docs/catalog.md +92 -100
- package/docs/contracts/CHANGELOG-conventions.md +1 -1
- package/docs/contracts/STABILITY.md +1 -1
- package/docs/contracts/adr-architectural-consensus-mechanism.md +5 -5
- package/docs/contracts/adr-chat-history-split.md +1 -1
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -1
- package/docs/contracts/adr-install-user-type-axis.md +1 -1
- package/docs/contracts/adr-mcp-runtime.md +2 -2
- package/docs/contracts/agent-user-schema.md +17 -11
- package/docs/contracts/ai-council-config.md +13 -13
- package/docs/contracts/audit-log-v1.md +2 -2
- package/docs/contracts/command-clusters.md +2 -2
- package/docs/contracts/compression-default-kill-criterion.md +3 -3
- package/docs/contracts/consumer-bridge.md +79 -0
- package/docs/contracts/decision-trace-v1.md +5 -5
- package/docs/contracts/discovery-manifest.md +209 -0
- package/docs/contracts/discovery-manifest.schema.json +219 -0
- package/docs/contracts/explain-trace.schema.json +144 -0
- package/docs/contracts/file-ownership-matrix.json +288 -328
- package/docs/contracts/file-ownership-matrix.md +1 -1
- package/docs/contracts/frontmatter-contract.md +140 -0
- package/docs/contracts/ghostwriter-schema.md +3 -3
- package/docs/contracts/gui-wizard.md +223 -0
- package/docs/contracts/hook-architecture-v1.md +10 -10
- package/docs/contracts/installer-agent-mode.md +137 -0
- package/docs/contracts/kernel-membership.md +5 -5
- package/docs/contracts/linter-structural-model.md +3 -3
- package/docs/contracts/load-context-schema.md +5 -5
- package/docs/contracts/local-server-api.md +134 -0
- package/docs/contracts/low-impact-corpus-format.md +1 -1
- package/docs/contracts/mcp-cloud-scope.md +2 -2
- package/docs/contracts/mcp-discovery-phase-notice.md +1 -1
- package/docs/contracts/mcp-phase-1-scope.md +5 -4
- package/docs/contracts/mcp-registry-manifest.schema.json +129 -0
- package/docs/contracts/mcp-tool-inventory.md +9 -9
- package/docs/contracts/mcp-tool-stub-envelope.md +1 -1
- package/docs/contracts/memory-visibility-v1.md +2 -2
- package/docs/contracts/multi-tool-projection-fidelity.md +3 -3
- package/docs/contracts/namespace.md +7 -7
- package/docs/contracts/one-off-script-lifecycle.md +1 -1
- package/docs/contracts/package-self-orientation.md +1 -1
- package/docs/contracts/provider-lifecycle.md +7 -7
- package/docs/contracts/router-blending.md +1 -1
- package/docs/contracts/rule-classification.md +2 -2
- package/docs/contracts/rule-router.md +4 -4
- package/docs/contracts/settings-api.md +207 -0
- package/docs/contracts/settings-gui-agent-mode.schema.json +128 -0
- package/docs/contracts/smoke-contracts.md +3 -3
- package/docs/contracts/tier-3-contrib-plugin.md +1 -1
- package/docs/contracts/trust-and-safety.md +144 -0
- package/docs/contracts/universal-skills.md +1 -1
- package/docs/contracts/write-engine.md +1 -1
- package/docs/customization.md +139 -13
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +1 -1
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +1 -1
- package/docs/decisions/ADR-004-rule-governance-pruning.md +8 -8
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +5 -5
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +16 -4
- package/docs/decisions/ADR-008-installed-tools-manifest.md +2 -2
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +2 -2
- package/docs/decisions/ADR-011-domain-pack-readiness.md +4 -4
- package/docs/decisions/ADR-012-typescript-cli-shell.md +162 -0
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +234 -0
- package/docs/decisions/ADR-014-gui-framework-choice.md +136 -0
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +146 -0
- package/docs/decisions/ADR-016-installer-architecture.md +189 -0
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +261 -0
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +159 -0
- package/docs/decisions/ADR-019-router-json-dist-location.md +124 -0
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +123 -0
- package/docs/decisions/ADR-021-deployment-shape.md +153 -0
- package/docs/decisions/ADR-rule-kernel-and-router.md +2 -2
- package/docs/decisions/INDEX.md +10 -0
- package/docs/deploy/connector-setup.md +129 -0
- package/docs/deploy/env-vars.md +70 -0
- package/docs/deploy/policy-cookbook.md +130 -0
- package/docs/deploy/quickstart.md +112 -0
- package/docs/distribution/mcp-submission-checklist.md +95 -0
- package/docs/distribution/public-install-smoke.md +68 -0
- package/docs/distribution/registries.md +55 -0
- package/docs/distribution/telemetry-privacy.md +128 -0
- package/docs/distribution/telemetry-schema.md +174 -0
- package/docs/distribution/topics-equivalents-decay-policy.md +51 -0
- package/docs/examples/agent-user.example.md +3 -1
- package/docs/featured-skills.md +95 -0
- package/docs/getting-started-by-role.md +19 -1
- package/docs/getting-started.md +5 -4
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
- package/docs/guidelines/agent-infra/installed-tools-manifest.md +11 -8
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +10 -1
- package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
- package/docs/guidelines/agent-infra/tool-integration.md +1 -1
- package/docs/guidelines/docs/readme-size-and-splitting.md +53 -1
- package/docs/guidelines/php/api-design.md +1 -1
- package/docs/guidelines/prompt-templates.md +2 -2
- package/docs/hook-payload-capture.md +3 -3
- package/docs/installation.md +39 -18
- package/docs/maintainers/dev-mode.md +105 -0
- package/docs/migrations/commands-1.15.0.md +3 -3
- package/docs/parity/bench-ruflo.json +1 -1
- package/docs/parity/ruflo.md +3 -3
- package/docs/profiles.md +1 -1
- package/docs/quality.md +2 -2
- package/docs/recruits/_template.md +3 -3
- package/docs/setup/enterprise-and-offline.md +3 -3
- package/docs/setup/mcp-server-docker.md +5 -3
- package/docs/setup/per-ide/claude-desktop.md +3 -2
- package/docs/skills-catalog.md +62 -18
- package/docs/wizard.md +156 -0
- package/llms.txt +61 -17
- package/package.json +63 -3
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_archive/README.md +2 -2
- package/scripts/_archive/_p4_migrate.py +1 -1
- package/scripts/_cli/cmd_doctor.py +155 -7
- package/scripts/_cli/cmd_explain.py +108 -3
- package/scripts/_cli/cmd_migrate.py +2 -2
- package/scripts/_cli/cmd_migrate_to_global.py +415 -0
- package/scripts/_cli/cmd_settings_migrate.py +146 -0
- package/scripts/_cli/explain_last/__init__.py +122 -0
- package/scripts/_cli/explain_last/assumptions.py +59 -0
- package/scripts/_cli/explain_last/council.py +105 -0
- package/scripts/_cli/explain_last/halt.py +44 -0
- package/scripts/_cli/explain_last/inputs.py +125 -0
- package/scripts/_cli/explain_last/memory.py +94 -0
- package/scripts/_cli/explain_last/provider.py +52 -0
- package/scripts/_cli/explain_last/render.py +52 -0
- package/scripts/_cli/explain_last/route.py +59 -0
- package/scripts/_cli/explain_last/scrubber.py +105 -0
- package/scripts/_cli/explain_last/sections/__init__.py +35 -0
- package/scripts/_cli/explain_last/sections/assumptions.py +21 -0
- package/scripts/_cli/explain_last/sections/council.py +27 -0
- package/scripts/_cli/explain_last/sections/halt.py +31 -0
- package/scripts/_cli/explain_last/sections/header.py +24 -0
- package/scripts/_cli/explain_last/sections/inputs.py +27 -0
- package/scripts/_cli/explain_last/sections/memory.py +21 -0
- package/scripts/_cli/explain_last/sections/pack.py +16 -0
- package/scripts/_cli/explain_last/sections/provider.py +26 -0
- package/scripts/_cli/explain_last/sections/route.py +22 -0
- package/scripts/_cli/explain_last/state_loader.py +76 -0
- package/scripts/_dispatch.bash +987 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/_lib/agent_settings.py +7 -4
- package/scripts/_lib/agent_src.py +157 -0
- package/scripts/_lib/agents_overlay.py +3 -3
- package/scripts/_phase4_bucket.py +210 -0
- package/scripts/agent-config +50 -947
- package/scripts/ai-video/adapters/higgsfield.sh +1 -1
- package/scripts/ai-video/adapters/sora.sh +1 -1
- package/scripts/ai-video/test-pipeline.sh +2 -2
- package/scripts/ai_council/_default_prices.py +5 -5
- package/scripts/ai_council/advisors.py +1 -1
- package/scripts/ai_council/clients.py +2 -2
- package/scripts/ai_council/compile_corpus.py +9 -8
- package/scripts/ai_council/config.py +3 -3
- package/scripts/ai_council/events_log.py +8 -4
- package/scripts/ai_council/low_impact_corpus.py +1 -1
- package/scripts/ai_council/low_impact_intake.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +2 -2
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +3 -3
- package/scripts/ai_council/pricing.py +8 -7
- package/scripts/ai_council/probation_gate.py +1 -1
- package/scripts/ai_council/redact_low_impact_entry.py +1 -1
- package/scripts/ai_council/session.py +13 -13
- package/scripts/ai_council/shadow_dispatch.py +2 -2
- package/scripts/annotate_discovery.py +149 -0
- package/scripts/audit_adr_coverage.py +1 -1
- package/scripts/audit_auto_rules.py +2 -2
- package/scripts/audit_cloud_compatibility.py +1 -1
- package/scripts/audit_command_surface.py +2 -2
- package/scripts/audit_likelihood.py +4 -4
- package/scripts/audit_overlap.py +3 -3
- package/scripts/audit_skill_descriptions.py +18 -6
- package/scripts/audit_user_type_axis.py +1 -1
- package/scripts/build_discovery_manifest.py +658 -0
- package/scripts/build_mcp_registry_manifest.py +181 -0
- package/scripts/build_rule_trigger_matrix.py +2 -2
- package/scripts/capture_showcase_session.py +1 -1
- package/scripts/chat_history.py +5 -5
- package/scripts/check_always_budget.py +7 -2
- package/scripts/check_artefact_checksums.py +104 -0
- package/scripts/check_cluster_patterns.py +20 -4
- package/scripts/check_command_count_messaging.py +33 -14
- package/scripts/check_council_layout.py +26 -20
- package/scripts/check_council_references.py +53 -14
- package/scripts/check_discovery_determinism.py +70 -0
- package/scripts/check_kernel_rule_bundle.py +2 -2
- package/scripts/check_no_roadmap_refs.py +2 -2
- package/scripts/check_one_off_location.py +1 -1
- package/scripts/check_overlay_cascade_subdirs.py +7 -3
- package/scripts/check_public_links.py +2 -2
- package/scripts/check_references.py +19 -23
- package/scripts/check_release_includes_discovery.py +61 -0
- package/scripts/check_reply_consistency.py +32 -9
- package/scripts/check_template_pin_drift.py +24 -7
- package/scripts/check_token_optimizer_freshness.py +18 -3
- package/scripts/ci_summary.py +2 -2
- package/scripts/ci_time_ratio.py +1 -1
- package/scripts/command_suggester/__init__.py +1 -1
- package/scripts/compile_router.py +34 -2
- package/scripts/compress.py +162 -44
- package/scripts/config/presets.py +19 -1
- package/scripts/config/profiles.py +16 -1
- package/scripts/context_hygiene_hook.py +2 -2
- package/scripts/council_cli.py +22 -22
- package/scripts/council_prune.py +3 -3
- package/scripts/discovery_stats.py +70 -0
- package/scripts/expected_perms.json +47 -0
- package/scripts/extract_audit_patterns.py +2 -2
- package/scripts/gen_discovery_baseline.py +127 -0
- package/scripts/generate_index.py +78 -46
- package/scripts/generate_ownership_matrix.py +99 -44
- package/scripts/generate_pack_manifests.py +183 -0
- package/scripts/hook_manifest.yaml +5 -5
- package/scripts/hooks/cline-dispatcher.sh +1 -1
- package/scripts/hooks/cowork-dispatcher.sh +1 -1
- package/scripts/hooks/dispatch_hook.py +3 -3
- package/scripts/hooks/gemini-dispatcher.sh +1 -1
- package/scripts/hooks/replay_hook.py +1 -1
- package/scripts/hooks/state_io.py +5 -5
- package/scripts/hooks_doctor.py +4 -4
- package/scripts/install +18 -1
- package/scripts/install-hooks.sh +2 -2
- package/scripts/install.py +937 -62
- package/scripts/install.sh +147 -27
- package/scripts/inventory_frontmatter.py +1 -1
- package/scripts/lint_agents_layout.py +183 -0
- package/scripts/lint_agents_md.py +1 -1
- package/scripts/lint_archived_skills.py +35 -19
- package/scripts/lint_artefact_frontmatter.py +180 -0
- package/scripts/lint_bench_corpus.py +14 -2
- package/scripts/lint_command_tiers.py +15 -2
- package/scripts/lint_discovery_manifest.py +136 -0
- package/scripts/lint_discovery_vocabulary.py +148 -0
- package/scripts/lint_explain_trace.py +80 -0
- package/scripts/lint_featured_skills.py +139 -0
- package/scripts/lint_framework_leakage.py +33 -6
- package/scripts/lint_framework_leakage_allowlist.json +63 -62
- package/scripts/lint_ghostwriter_source.py +1 -1
- package/scripts/lint_global_paths.py +147 -0
- package/scripts/lint_load_context.py +3 -3
- package/scripts/lint_mcp_registry_manifest.py +69 -0
- package/scripts/lint_media_policy_linkage.py +6 -6
- package/scripts/lint_orchestration_dsl.py +6 -3
- package/scripts/lint_pack_boundaries.py +147 -0
- package/scripts/lint_pack_first_win.py +103 -0
- package/scripts/lint_positioning.py +143 -0
- package/scripts/lint_readme_jargon.py +131 -0
- package/scripts/lint_readme_size.py +33 -0
- package/scripts/lint_rule_interactions.py +23 -5
- package/scripts/lint_rule_tiers.py +14 -5
- package/scripts/lint_skill_tools.py +1 -1
- package/scripts/lint_topics_yaml.py +89 -0
- package/scripts/lint_trust_coherence.py +212 -0
- package/scripts/mcp_server/consumer_tool_catalog.json +3 -3
- package/scripts/mcp_server/telemetry.py +2 -2
- package/scripts/mcp_server/tools.py +27 -11
- package/scripts/mcp_telemetry_health.py +2 -2
- package/scripts/mcp_telemetry_store.py +1 -1
- package/scripts/measure_augment_budget.py +3 -3
- package/scripts/measure_density.py +2 -2
- package/scripts/measure_frugality_savings.py +3 -3
- package/scripts/measure_roadmap_trajectory.py +1 -1
- package/scripts/measure_rule_budget.py +25 -7
- package/scripts/memory_report.py +1 -1
- package/scripts/migrate_command_suggestions.py +3 -3
- package/scripts/minimal_safe_diff_hook.py +1 -1
- package/scripts/move_artefact.py +143 -0
- package/scripts/new_skill.py +148 -0
- package/scripts/onboarding_gate_hook.py +4 -4
- package/scripts/plan_physical_move.py +353 -0
- package/scripts/prepack-check.mjs +62 -0
- package/scripts/probe_projection_fidelity.py +2 -2
- package/scripts/refine_ticket_detect.py +31 -8
- package/scripts/schemas/command.schema.json +45 -1
- package/scripts/schemas/persona.schema.json +1 -1
- package/scripts/schemas/rule.schema.json +44 -4
- package/scripts/schemas/skill.schema.json +41 -1
- package/scripts/score_skill_selection.py +1 -1
- package/scripts/skill_collision_clusters.py +1 -1
- package/scripts/skill_linter.py +250 -120
- package/scripts/skill_overlap.py +1 -1
- package/scripts/skill_tools/run_block_d_eval.py +1 -1
- package/scripts/skill_trigger_eval.py +28 -8
- package/scripts/skill_usage_collect.py +3 -3
- package/scripts/skill_usage_report.py +3 -3
- package/scripts/smoke/kernel.sh +1 -1
- package/scripts/smoke/router.sh +24 -5
- package/scripts/smoke/skills.sh +15 -7
- package/scripts/smoke_quickstart.py +12 -3
- package/scripts/snapshot_agent_outputs.py +144 -0
- package/scripts/spotcheck_thin_root.py +1 -1
- package/scripts/sync_github_metadata.py +147 -0
- package/scripts/sync_gitignore.py +15 -5
- package/scripts/update_counts.py +45 -17
- package/scripts/update_prices.py +4 -3
- package/scripts/validate_decision_engine.py +9 -1
- package/scripts/validate_discovery_manifest.py +94 -0
- package/scripts/validate_frontmatter.py +39 -20
- package/scripts/verify_before_complete_hook.py +1 -1
- package/scripts/verify_physical_move.py +185 -0
- package/scripts/verify_roadmap_closure.py +1 -1
- package/templates/agent-user.md +34 -0
- package/templates/agent-user.yml +21 -0
- package/templates/minimal/agents-overrides-readme.md +46 -0
- package/templates/minimal/overrides-gitkeep +2 -0
- package/.agent-src/commands/onboard.md +0 -467
- package/templates/minimal/agents-gitkeep +0 -2
package/scripts/agent-config
CHANGED
|
@@ -1,954 +1,57 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
#
|
|
2
|
+
# Maintainer / source-checkout entry point.
|
|
3
3
|
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
4
|
+
# Public consumer entry point is `dist/cli/agent-config.js` via
|
|
5
|
+
# `npx @event4u/agent-config` — that's the path documented in README.
|
|
6
|
+
# This shim is the canonical local invocation for maintainers working
|
|
7
|
+
# in a source checkout, where `npx` can't resolve the bin without a
|
|
8
|
+
# prior `npm link` (no `node_modules/.bin/agent-config` symlink).
|
|
8
9
|
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
10
|
+
# Behaviour:
|
|
11
|
+
# - If dist/cli/agent-config.js exists → forward to the TS binary
|
|
12
|
+
# - Else if scripts/_dispatch.bash exists → fall back to the legacy
|
|
13
|
+
# Bash dispatcher (preserves maintainer-internal callers — golden
|
|
14
|
+
# tests, work_engine harness — that pre-date the TS shell).
|
|
15
|
+
# - Else → error with a one-line build hint
|
|
11
16
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
|
|
17
|
+
# Deprecation warning is only emitted when this script is invoked from
|
|
18
|
+
# an installed npm package (i.e. not a source-repo checkout). Source-
|
|
19
|
+
# checkout detection: `$here/../src/cli/registry.ts` exists. Maintainers
|
|
20
|
+
# running `./agent-config` from the repo root see no warning.
|
|
21
|
+
#
|
|
22
|
+
# Set AGENT_CONFIG_QUIET_DEPRECATION=1 to suppress the deprecation
|
|
23
|
+
# warning unconditionally (used by test harnesses that pin the stderr
|
|
24
|
+
# surface).
|
|
19
25
|
set -euo pipefail
|
|
20
26
|
|
|
21
|
-
# Resolve
|
|
22
|
-
#
|
|
23
|
-
#
|
|
24
|
-
|
|
25
|
-
while [ -L "$
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
[[ $
|
|
27
|
+
# Resolve $0 through symlinks (maintainer repo root has a ./agent-config
|
|
28
|
+
# symlink → scripts/agent-config). Portable across macOS and Linux —
|
|
29
|
+
# avoids GNU-only `readlink -f`.
|
|
30
|
+
src="$0"
|
|
31
|
+
while [[ -L "$src" ]]; do
|
|
32
|
+
dir="$(cd -- "$(dirname -- "$src")" && pwd)"
|
|
33
|
+
src="$(readlink "$src")"
|
|
34
|
+
[[ "$src" != /* ]] && src="$dir/$src"
|
|
29
35
|
done
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
init One-shot project install. Forwards to `scripts/install`
|
|
53
|
-
with all args. Entry point for `npx @event4u/agent-config init`.
|
|
54
|
-
Flags: --tools=<list> | --ai=<list> | --yes | --force
|
|
55
|
-
sync Replay agents/installed-tools.lock — re-installs any
|
|
56
|
-
tool whose bridge marker is missing locally (ADR-008).
|
|
57
|
-
Flags: --dry-run | --force | --project=<path>
|
|
58
|
-
validate Read-only drift detection on the manifest
|
|
59
|
-
(marker missing, scope divergence, version drift).
|
|
60
|
-
Exits 1 on drift. Flags: --quiet | --skip-version-check
|
|
61
|
-
work Drive the work_engine Python engine on a free-form prompt
|
|
62
|
-
(Option-A loop; called by the /work command)
|
|
63
|
-
implement-ticket Drive the work_engine Python engine on a ticket envelope
|
|
64
|
-
(Option-A loop; called by the /implement-ticket command)
|
|
65
|
-
help Show this help (default Tier-0; --tier=1|all expands)
|
|
66
|
-
--version, -V Print package version
|
|
67
|
-
EOF
|
|
68
|
-
|
|
69
|
-
if [[ "$tier" == "1" || "$tier" == "all" ]]; then
|
|
70
|
-
cat <<'EOF'
|
|
71
|
-
|
|
72
|
-
Tier 1 — power-user (release shape, audit, migration):
|
|
73
|
-
update Update the agent_config_version pin in .agent-settings.yml
|
|
74
|
-
Flags: --check (read-only) | --to <version> (explicit pin)
|
|
75
|
-
versions List available @event4u/agent-config versions
|
|
76
|
-
on npm. Marks the current pin and latest.
|
|
77
|
-
Flags: --offline | --limit=N | --json
|
|
78
|
-
global Install to user-scope paths (~/.claude/, ~/.cursor/, …)
|
|
79
|
-
Forwards to `scripts/install --global` (ADR-007).
|
|
80
|
-
Flags: --tools=<list> | --ai=<list> | --yes | --force
|
|
81
|
-
export Eject a tool's canonical content into a chosen path
|
|
82
|
-
(real file, no symlink). Idempotent; --force overrides
|
|
83
|
-
content drift. See `./agent-config export --list`.
|
|
84
|
-
Flags: --tool=<id> | --output=<path> | --force | --list
|
|
85
|
-
uninstall Remove bridge markers (project) or lockfile
|
|
86
|
-
entries (global). Idempotent. User-deployed
|
|
87
|
-
content under ~/.<tool>/ is preserved unless
|
|
88
|
-
--purge is passed (destructive).
|
|
89
|
-
Flags: --global | --tools=<list> | --dry-run
|
|
90
|
-
| --purge | --force | --project=<path>
|
|
91
|
-
prune Remove project bridge markers not declared in
|
|
92
|
-
agents/installed-tools.lock (npm-prune style).
|
|
93
|
-
Hard-floors when lockfile is absent.
|
|
94
|
-
Flags: --dry-run | --json | --project=<path>
|
|
95
|
-
| --all-missing-lock
|
|
96
|
-
doctor Read-only drift report: manifest ↔ filesystem.
|
|
97
|
-
Lists missing, modified, and foreign files.
|
|
98
|
-
Exits 1 on drift, 2 on missing lockfile.
|
|
99
|
-
Flags: --json | --project=<path>
|
|
100
|
-
explain Read-only decision-chain trace.
|
|
101
|
-
Usage: explain config | explain rule <name>
|
|
102
|
-
| explain route "<text>"
|
|
103
|
-
Flags: --json | --project=<path>
|
|
104
|
-
migrate One-shot migration off legacy composer / npm install paths
|
|
105
|
-
Flags: --dry-run (detect only)
|
|
106
|
-
first-run Guided first-run setup — cost profile, settings, tooling
|
|
107
|
-
keys:install-anthropic Install the Anthropic API key for the AI Council
|
|
108
|
-
(interactive, /dev/tty only, writes ~/.config/agent-config/anthropic.key 0600)
|
|
109
|
-
keys:install-openai Install the OpenAI API key for the AI Council
|
|
110
|
-
(interactive, /dev/tty only, writes ~/.config/agent-config/openai.key 0600)
|
|
111
|
-
council:estimate Pre-call council cost preview (no API call, no spend)
|
|
112
|
-
Usage: council:estimate <question> [--input-mode prompt|roadmap]
|
|
113
|
-
council:run Run the council. Requires --confirm to spend.
|
|
114
|
-
Usage: council:run <question> --output <path> --confirm
|
|
115
|
-
council:render Re-render a saved council responses JSON to markdown
|
|
116
|
-
Usage: council:render <responses.json>
|
|
117
|
-
EOF
|
|
118
|
-
fi
|
|
119
|
-
|
|
120
|
-
if [[ "$tier" == "all" ]]; then
|
|
121
|
-
cat <<'EOF'
|
|
122
|
-
|
|
123
|
-
Tier 2 — maintenance / internal (hooks, MCP, memory, telemetry):
|
|
124
|
-
mcp:render Render mcp.json → .cursor/mcp.json, .windsurf/mcp.json
|
|
125
|
-
(pass --claude-desktop to also write user-scope config)
|
|
126
|
-
mcp:check Dry-run mcp:render; exit non-zero if targets are stale
|
|
127
|
-
mcp:setup Create .venv-mcp/ and install the mcp SDK
|
|
128
|
-
(one-line MCP server onboarding; idempotent)
|
|
129
|
-
mcp:run Run the built-in MCP server over stdio
|
|
130
|
-
(requires `mcp:setup` first; see docs/mcp-server.md)
|
|
131
|
-
(experimental — beta gates: docs/contracts/mcp-beta-criteria.md)
|
|
132
|
-
roadmap:progress Regenerate agents/roadmaps-progress.md from open roadmaps
|
|
133
|
-
roadmap:progress-check Fail if agents/roadmaps-progress.md is stale (for CI)
|
|
134
|
-
settings:check Validate .agent-settings.yml against the YAML-subset contract
|
|
135
|
-
(docs/contracts/settings-sync-yaml-subset.md). Read-only.
|
|
136
|
-
Exit 0 clean, 1 finding(s), 2 file absent / unreadable.
|
|
137
|
-
hooks:install Install the pre-commit roadmap-progress hook
|
|
138
|
-
(use --print to dump it, --force to overwrite an existing hook)
|
|
139
|
-
hooks:status Print the runtime hook matrix (per-platform install + bindings)
|
|
140
|
-
Flags: --format json|table, --strict (CI), --project-root <path>
|
|
141
|
-
hooks:doctor Diagnose hook health: concerns + fail-open/closed posture,
|
|
142
|
-
last dispatcher feedback per concern, missing trampolines.
|
|
143
|
-
Wraps hooks:status. Read-only.
|
|
144
|
-
Flags: --format json|table, --strict (CI), --project-root <path>
|
|
145
|
-
hooks:replay Replay a fixture through the universal dispatcher with
|
|
146
|
-
AGENT_CONFIG_REPLAY=1 (no writes under agents/state/).
|
|
147
|
-
Usage: hooks:replay --platform <name> --event <event>
|
|
148
|
-
--payload <path|event-name> [--native-event <native>]
|
|
149
|
-
[--manifest <path>] [--json] [--dry-run]
|
|
150
|
-
migrate-state Migrate a legacy .implement-ticket-state.json file
|
|
151
|
-
to the v1 .work-state.json schema (preserves .bak)
|
|
152
|
-
memory:lookup Retrieve memory entries (text or JSON envelope)
|
|
153
|
-
memory:signal Append a provisional intake signal (memory proposal)
|
|
154
|
-
memory:hash Hash a memory entry (YAML or JSON stdin)
|
|
155
|
-
memory:check Validate memory YAML schema + staleness
|
|
156
|
-
memory:check-proposal Run the admission gate on a memory proposal
|
|
157
|
-
proposal:check Validate a learning/skill/rule proposal markdown
|
|
158
|
-
refine-ticket:detect Run the deterministic refine-ticket detection helper
|
|
159
|
-
chat-history:hook Platform hook entry point (read JSON from stdin)
|
|
160
|
-
Usage: chat-history:hook --platform <claude|augment|cursor|cline|windsurf|gemini>
|
|
161
|
-
chat-history:checkpoint Append a phase-boundary entry to agents/.agent-chat-history
|
|
162
|
-
(CHECKPOINT fallback for platforms without native hooks)
|
|
163
|
-
roadmap-progress:hook PostToolUse hook entry point (read JSON from stdin)
|
|
164
|
-
Regenerates roadmaps-progress.md when a tool wrote under agents/roadmaps/
|
|
165
|
-
onboarding-gate:hook Hook entry point (drains stdin)
|
|
166
|
-
Writes .augment/state/onboarding-gate.json from .agent-settings.yml
|
|
167
|
-
context-hygiene:hook PostToolUse hook entry point (read JSON from stdin)
|
|
168
|
-
Maintains .augment/state/context-hygiene.json (turn count, loop, freshness)
|
|
169
|
-
dispatch:hook Universal hook dispatcher (Phase 7, hook-architecture-v1.md)
|
|
170
|
-
Usage: dispatch:hook --platform <name> --event <event> [--native-event <native>]
|
|
171
|
-
Reads scripts/hook_manifest.yaml and runs the resolved concern chain.
|
|
172
|
-
telemetry:record Append one artefact-engagement event (default-off)
|
|
173
|
-
telemetry:status Print artefact-engagement telemetry status (read-only)
|
|
174
|
-
telemetry:report Aggregate the engagement log into a quartile report
|
|
175
|
-
EOF
|
|
176
|
-
fi
|
|
177
|
-
|
|
178
|
-
if [[ "$tier" == "0" ]]; then
|
|
179
|
-
cat <<'EOF'
|
|
180
|
-
|
|
181
|
-
(Hidden: 15 Tier-1 + 26 Tier-2 commands. Run `./agent-config --help --tier=1`
|
|
182
|
-
or `--tier=all` to see them. Tier criteria: docs/contracts/command-surface-tiers.md.)
|
|
183
|
-
EOF
|
|
184
|
-
fi
|
|
185
|
-
|
|
186
|
-
cat <<'EOF'
|
|
187
|
-
|
|
188
|
-
Examples (Tier 0):
|
|
189
|
-
./agent-config init --tools=claude-code,cursor --yes
|
|
190
|
-
./agent-config sync --dry-run
|
|
191
|
-
./agent-config sync
|
|
192
|
-
./agent-config validate
|
|
193
|
-
./agent-config work --state-file .work-state.json --prompt-file prompt.txt
|
|
194
|
-
./agent-config implement-ticket --state-file .work-state.json
|
|
195
|
-
EOF
|
|
196
|
-
|
|
197
|
-
if [[ "$tier" == "1" || "$tier" == "all" ]]; then
|
|
198
|
-
cat <<'EOF'
|
|
199
|
-
|
|
200
|
-
Examples (Tier 1):
|
|
201
|
-
./agent-config global --tools=claude-code --yes
|
|
202
|
-
./agent-config global --ai=cursor,windsurf
|
|
203
|
-
./agent-config export --list
|
|
204
|
-
./agent-config export --tool=agents-md --output=AGENTS.md
|
|
205
|
-
./agent-config export --tool=copilot-instructions --output=.github/copilot-instructions.md
|
|
206
|
-
./agent-config uninstall --tools=cursor --dry-run
|
|
207
|
-
./agent-config uninstall --global --tools=windsurf --purge
|
|
208
|
-
./agent-config prune --dry-run
|
|
209
|
-
./agent-config prune --json
|
|
210
|
-
./agent-config doctor
|
|
211
|
-
./agent-config doctor --json
|
|
212
|
-
./agent-config versions
|
|
213
|
-
./agent-config versions --limit=10
|
|
214
|
-
./agent-config versions --json
|
|
215
|
-
./agent-config init --offline --tools=claude-code,cursor --yes
|
|
216
|
-
./agent-config update --offline --to=2.2.0
|
|
217
|
-
./agent-config first-run
|
|
218
|
-
./agent-config keys:install-anthropic
|
|
219
|
-
./agent-config keys:install-openai
|
|
220
|
-
./agent-config council:estimate prompt.txt
|
|
221
|
-
./agent-config council:run prompt.txt --output agents/council-sessions/out.json --confirm
|
|
222
|
-
./agent-config council:render agents/council-sessions/out.json
|
|
223
|
-
EOF
|
|
224
|
-
fi
|
|
225
|
-
|
|
226
|
-
if [[ "$tier" == "all" ]]; then
|
|
227
|
-
cat <<'EOF'
|
|
228
|
-
|
|
229
|
-
Examples (Tier 2):
|
|
230
|
-
./agent-config mcp:render
|
|
231
|
-
./agent-config mcp:render --claude-desktop
|
|
232
|
-
./agent-config mcp:check
|
|
233
|
-
./agent-config mcp:setup
|
|
234
|
-
./agent-config mcp:run
|
|
235
|
-
./agent-config roadmap:progress
|
|
236
|
-
./agent-config settings:check
|
|
237
|
-
./agent-config hooks:install
|
|
238
|
-
./agent-config hooks:replay --platform augment --event post_tool_use --payload post_tool_use --json
|
|
239
|
-
./agent-config migrate-state
|
|
240
|
-
./agent-config memory:lookup --types domain-invariants --key billing
|
|
241
|
-
./agent-config memory:signal --type architecture-decision --path src/Foo.php --body "…"
|
|
242
|
-
./agent-config memory:check --path agents/memory
|
|
243
|
-
./agent-config refine-ticket:detect ticket-body.txt
|
|
244
|
-
./agent-config telemetry:status
|
|
245
|
-
./agent-config telemetry:status --format json
|
|
246
|
-
./agent-config telemetry:report --since 30d --top 20
|
|
247
|
-
./agent-config telemetry:report --since 7d --format json --top 0
|
|
248
|
-
EOF
|
|
249
|
-
fi
|
|
250
|
-
|
|
251
|
-
cat <<'EOF'
|
|
252
|
-
|
|
253
|
-
All commands operate on the CURRENT DIRECTORY (your project root).
|
|
254
|
-
The CLI is strictly consumer-facing. Maintainer tasks live in Taskfile.yml.
|
|
255
|
-
EOF
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
print_version() {
|
|
259
|
-
if [[ -f "$VERSION_FILE" ]] && command -v python3 >/dev/null 2>&1; then
|
|
260
|
-
python3 -c "import json; print(json.load(open('$VERSION_FILE'))['version'])"
|
|
261
|
-
else
|
|
262
|
-
echo "unknown"
|
|
263
|
-
fi
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
require_python3() {
|
|
267
|
-
if ! command -v python3 >/dev/null 2>&1; then
|
|
268
|
-
echo "❌ agent-config: python3 not found on PATH" >&2
|
|
269
|
-
echo " Install Python 3.10+ and retry." >&2
|
|
270
|
-
exit 127
|
|
271
|
-
fi
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
# Locate a script. First argument is relative to PACKAGE_ROOT, second is
|
|
275
|
-
# an optional fallback relative to CONSUMER_ROOT (for scripts that ship
|
|
276
|
-
# to the consumer via .augment/, e.g. update_roadmap_progress.py).
|
|
277
|
-
resolve_script() {
|
|
278
|
-
local pkg_rel="$1"
|
|
279
|
-
local consumer_rel="${2-}"
|
|
280
|
-
local pkg_abs="$PACKAGE_ROOT/$pkg_rel"
|
|
281
|
-
if [[ -f "$pkg_abs" ]]; then
|
|
282
|
-
printf '%s' "$pkg_abs"
|
|
283
|
-
return 0
|
|
284
|
-
fi
|
|
285
|
-
if [[ -n "$consumer_rel" && -f "$CONSUMER_ROOT/$consumer_rel" ]]; then
|
|
286
|
-
printf '%s' "$CONSUMER_ROOT/$consumer_rel"
|
|
287
|
-
return 0
|
|
288
|
-
fi
|
|
289
|
-
echo "❌ agent-config: script not found: $pkg_rel" >&2
|
|
290
|
-
[[ -n "$consumer_rel" ]] && echo " (also tried: $consumer_rel in $CONSUMER_ROOT)" >&2
|
|
291
|
-
return 1
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
# Resolve a script that ships under templates/scripts/. Tries (in order):
|
|
295
|
-
# 1. CONSUMER_ROOT/scripts/<name> — local copy / customization
|
|
296
|
-
# 2. CONSUMER_ROOT/.augment/templates/scripts/<name> — installer-shipped
|
|
297
|
-
# 3. PACKAGE_ROOT/.agent-src/templates/scripts/<name> — package-internal fallback
|
|
298
|
-
# Consumer customization wins so projects can patch behavior locally
|
|
299
|
-
# without losing the upstream default.
|
|
300
|
-
resolve_template_script() {
|
|
301
|
-
local name="$1"
|
|
302
|
-
local p
|
|
303
|
-
for p in \
|
|
304
|
-
"$CONSUMER_ROOT/scripts/$name" \
|
|
305
|
-
"$CONSUMER_ROOT/.augment/templates/scripts/$name" \
|
|
306
|
-
"$PACKAGE_ROOT/.agent-src/templates/scripts/$name"; do
|
|
307
|
-
if [[ -f "$p" ]]; then
|
|
308
|
-
printf '%s' "$p"
|
|
309
|
-
return 0
|
|
310
|
-
fi
|
|
311
|
-
done
|
|
312
|
-
echo "❌ agent-config: template script not found: $name" >&2
|
|
313
|
-
echo " Searched:" >&2
|
|
314
|
-
echo " - $CONSUMER_ROOT/scripts/$name" >&2
|
|
315
|
-
echo " - $CONSUMER_ROOT/.augment/templates/scripts/$name" >&2
|
|
316
|
-
echo " - $PACKAGE_ROOT/.agent-src/templates/scripts/$name" >&2
|
|
317
|
-
return 1
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
cmd_mcp_render() {
|
|
321
|
-
require_python3
|
|
322
|
-
local script
|
|
323
|
-
script="$(resolve_script "scripts/mcp_render.py")"
|
|
324
|
-
exec python3 "$script" "$@"
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
cmd_mcp_check() {
|
|
328
|
-
require_python3
|
|
329
|
-
local script
|
|
330
|
-
script="$(resolve_script "scripts/mcp_render.py")"
|
|
331
|
-
exec python3 "$script" --check "$@"
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
cmd_mcp_setup() {
|
|
335
|
-
local script
|
|
336
|
-
script="$(resolve_script "scripts/mcp_setup.sh")" || return 1
|
|
337
|
-
exec bash "$script" "$@"
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
# Run the built-in stdio MCP server. The server module ships inside the
|
|
341
|
-
# package (PACKAGE_ROOT/scripts/mcp_server/), but the venv is created by
|
|
342
|
-
# `mcp_setup.sh` at CWD — keeping consumer projects in control of where
|
|
343
|
-
# the SDK install lives. PYTHONPATH points at PACKAGE_ROOT so the
|
|
344
|
-
# `scripts.mcp_server` import resolves regardless of CWD.
|
|
345
|
-
cmd_mcp_run() {
|
|
346
|
-
local venv_py="$CONSUMER_ROOT/.venv-mcp/bin/python"
|
|
347
|
-
if [[ ! -x "$venv_py" ]]; then
|
|
348
|
-
echo "❌ agent-config: .venv-mcp/ not found at $CONSUMER_ROOT/.venv-mcp" >&2
|
|
349
|
-
echo " Run \`./agent-config mcp:setup\` first to create it." >&2
|
|
350
|
-
exit 1
|
|
351
|
-
fi
|
|
352
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" "$venv_py" -m scripts.mcp_server "$@"
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
cmd_roadmap_progress() {
|
|
356
|
-
require_python3
|
|
357
|
-
local script
|
|
358
|
-
script="$(resolve_script ".agent-src/scripts/update_roadmap_progress.py" ".augment/scripts/update_roadmap_progress.py")"
|
|
359
|
-
exec python3 "$script" "$@"
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
cmd_roadmap_progress_check() {
|
|
363
|
-
require_python3
|
|
364
|
-
local script
|
|
365
|
-
script="$(resolve_script ".agent-src/scripts/update_roadmap_progress.py" ".augment/scripts/update_roadmap_progress.py")"
|
|
366
|
-
exec python3 "$script" --check "$@"
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
cmd_first_run() {
|
|
370
|
-
local script
|
|
371
|
-
script="$(resolve_script "scripts/first-run.sh")"
|
|
372
|
-
exec bash "$script" "$@"
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
cmd_implement_ticket() {
|
|
376
|
-
require_python3
|
|
377
|
-
local engine_root="$PACKAGE_ROOT/.agent-src/templates/scripts"
|
|
378
|
-
if [[ ! -d "$engine_root/work_engine" ]]; then
|
|
379
|
-
echo "❌ agent-config: work_engine module not found at $engine_root/work_engine" >&2
|
|
380
|
-
echo " Reinstall the package and retry." >&2
|
|
381
|
-
return 1
|
|
382
|
-
fi
|
|
383
|
-
exec env PYTHONPATH="$engine_root" python3 -m work_engine "$@"
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
cmd_work() {
|
|
387
|
-
# /work shares the engine with /implement-ticket — only the input
|
|
388
|
-
# envelope differs (kind=prompt vs kind=ticket). Keeping a separate
|
|
389
|
-
# subcommand makes the user-facing distinction explicit and lets the
|
|
390
|
-
# two flows diverge later without churn at the wrapper layer.
|
|
391
|
-
require_python3
|
|
392
|
-
local engine_root="$PACKAGE_ROOT/.agent-src/templates/scripts"
|
|
393
|
-
if [[ ! -d "$engine_root/work_engine" ]]; then
|
|
394
|
-
echo "❌ agent-config: work_engine module not found at $engine_root/work_engine" >&2
|
|
395
|
-
echo " Reinstall the package and retry." >&2
|
|
396
|
-
return 1
|
|
397
|
-
fi
|
|
398
|
-
exec env PYTHONPATH="$engine_root" python3 -m work_engine "$@"
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
cmd_migrate_state() {
|
|
402
|
-
require_python3
|
|
403
|
-
local engine_root="$PACKAGE_ROOT/.agent-src/templates/scripts"
|
|
404
|
-
if [[ ! -d "$engine_root/work_engine/migration" ]]; then
|
|
405
|
-
echo "❌ agent-config: work_engine.migration module not found at $engine_root/work_engine/migration" >&2
|
|
406
|
-
echo " Reinstall the package and retry." >&2
|
|
407
|
-
return 1
|
|
408
|
-
fi
|
|
409
|
-
# -W ignore::RuntimeWarning suppresses the known sys.modules notice from
|
|
410
|
-
# `python3 -m pkg.subpkg.module` when the parent package eagerly imports
|
|
411
|
-
# the submodule via its CLI module. The migration is non-invasive and
|
|
412
|
-
# the warning is cosmetic; suppressing here avoids touching the engine.
|
|
413
|
-
exec env PYTHONPATH="$engine_root" python3 -W ignore::RuntimeWarning -m work_engine.migration.v0_to_v1 "$@"
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
cmd_memory_lookup() {
|
|
417
|
-
require_python3
|
|
418
|
-
local script
|
|
419
|
-
script="$(resolve_template_script "memory_lookup.py")" || return 1
|
|
420
|
-
exec python3 "$script" "$@"
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
cmd_memory_signal() {
|
|
424
|
-
require_python3
|
|
425
|
-
local script
|
|
426
|
-
script="$(resolve_template_script "memory_signal.py")" || return 1
|
|
427
|
-
exec python3 "$script" "$@"
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
cmd_memory_hash() {
|
|
431
|
-
require_python3
|
|
432
|
-
local script
|
|
433
|
-
script="$(resolve_template_script "memory_hash.py")" || return 1
|
|
434
|
-
exec python3 "$script" "$@"
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
cmd_telemetry_record() {
|
|
438
|
-
require_python3
|
|
439
|
-
local script
|
|
440
|
-
script="$(resolve_template_script "telemetry_record.py")" || return 1
|
|
441
|
-
exec python3 "$script" "$@"
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
cmd_telemetry_status() {
|
|
445
|
-
require_python3
|
|
446
|
-
local script
|
|
447
|
-
script="$(resolve_template_script "telemetry_status.py")" || return 1
|
|
448
|
-
exec python3 "$script" "$@"
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
cmd_telemetry_report() {
|
|
452
|
-
require_python3
|
|
453
|
-
local script
|
|
454
|
-
script="$(resolve_template_script "telemetry_report.py")" || return 1
|
|
455
|
-
exec python3 "$script" "$@"
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
cmd_memory_check() {
|
|
459
|
-
require_python3
|
|
460
|
-
local script
|
|
461
|
-
script="$(resolve_template_script "check_memory.py")" || return 1
|
|
462
|
-
exec python3 "$script" "$@"
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
cmd_memory_check_proposal() {
|
|
466
|
-
require_python3
|
|
467
|
-
local script
|
|
468
|
-
script="$(resolve_template_script "check_memory_proposal.py")" || return 1
|
|
469
|
-
exec python3 "$script" "$@"
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
cmd_proposal_check() {
|
|
473
|
-
require_python3
|
|
474
|
-
local script
|
|
475
|
-
script="$(resolve_script "scripts/check_proposal.py")" || return 1
|
|
476
|
-
exec python3 "$script" "$@"
|
|
477
|
-
}
|
|
478
|
-
|
|
479
|
-
cmd_refine_ticket_detect() {
|
|
480
|
-
require_python3
|
|
481
|
-
local script
|
|
482
|
-
script="$(resolve_script "scripts/refine_ticket_detect.py")" || return 1
|
|
483
|
-
exec python3 "$script" "$@"
|
|
484
|
-
}
|
|
485
|
-
|
|
486
|
-
cmd_chat_history_hook() {
|
|
487
|
-
require_python3
|
|
488
|
-
local script
|
|
489
|
-
script="$(resolve_script "scripts/chat_history.py")" || return 1
|
|
490
|
-
exec python3 "$script" hook-dispatch "$@"
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
cmd_roadmap_progress_hook() {
|
|
494
|
-
require_python3
|
|
495
|
-
local script
|
|
496
|
-
script="$(resolve_script "scripts/roadmap_progress_hook.py")" || return 1
|
|
497
|
-
exec python3 "$script" "$@"
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
cmd_onboarding_gate_hook() {
|
|
501
|
-
require_python3
|
|
502
|
-
local script
|
|
503
|
-
script="$(resolve_script "scripts/onboarding_gate_hook.py")" || return 1
|
|
504
|
-
exec python3 "$script" "$@"
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
cmd_context_hygiene_hook() {
|
|
508
|
-
require_python3
|
|
509
|
-
local script
|
|
510
|
-
script="$(resolve_script "scripts/context_hygiene_hook.py")" || return 1
|
|
511
|
-
exec python3 "$script" "$@"
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
cmd_dispatch_hook() {
|
|
515
|
-
require_python3
|
|
516
|
-
local script
|
|
517
|
-
script="$(resolve_script "scripts/hooks/dispatch_hook.py")" || return 1
|
|
518
|
-
exec python3 "$script" "$@"
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
cmd_hooks_status() {
|
|
522
|
-
require_python3
|
|
523
|
-
local script
|
|
524
|
-
script="$(resolve_script "scripts/hooks_status.py")" || return 1
|
|
525
|
-
exec python3 "$script" "$@"
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
cmd_hooks_doctor() {
|
|
529
|
-
require_python3
|
|
530
|
-
local script
|
|
531
|
-
script="$(resolve_script "scripts/hooks_doctor.py")" || return 1
|
|
532
|
-
exec python3 "$script" "$@"
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
cmd_hooks_replay() {
|
|
536
|
-
require_python3
|
|
537
|
-
local script
|
|
538
|
-
script="$(resolve_script "scripts/hooks/replay_hook.py")" || return 1
|
|
539
|
-
exec python3 "$script" "$@"
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
cmd_chat_history_checkpoint() {
|
|
543
|
-
require_python3
|
|
544
|
-
local script
|
|
545
|
-
script="$(resolve_script "scripts/chat_history.py")" || return 1
|
|
546
|
-
# Default cadence-bearing event when a user/agent invokes /chat-history-checkpoint:
|
|
547
|
-
# "phase" — explicit phase boundary, lands under per_phase / per_turn cadences.
|
|
548
|
-
exec python3 "$script" hook-append --event phase "$@"
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
cmd_hooks_install() {
|
|
552
|
-
local force=false
|
|
553
|
-
local print_only=false
|
|
554
|
-
for arg in "$@"; do
|
|
555
|
-
case "$arg" in
|
|
556
|
-
--force) force=true ;;
|
|
557
|
-
--print) print_only=true ;;
|
|
558
|
-
-h|--help)
|
|
559
|
-
cat <<'HELP'
|
|
560
|
-
agent-config hooks:install — install the pre-commit roadmap-progress hook.
|
|
561
|
-
|
|
562
|
-
Usage:
|
|
563
|
-
./agent-config hooks:install [--force] [--print]
|
|
564
|
-
|
|
565
|
-
Without flags: copies the hook to .git/hooks/pre-commit. Refuses to
|
|
566
|
-
overwrite an existing pre-commit hook unless --force is given (the
|
|
567
|
-
existing hook may already chain other tooling).
|
|
568
|
-
|
|
569
|
-
--print dump the hook script to stdout (for manual chaining into an
|
|
570
|
-
existing pre-commit script, husky, lefthook, etc.)
|
|
571
|
-
--force overwrite an existing .git/hooks/pre-commit (DESTRUCTIVE)
|
|
572
|
-
HELP
|
|
573
|
-
return 0 ;;
|
|
574
|
-
*)
|
|
575
|
-
echo "❌ hooks:install: unknown argument: $arg" >&2
|
|
576
|
-
echo " Run \`./agent-config hooks:install --help\` for usage." >&2
|
|
577
|
-
return 2 ;;
|
|
578
|
-
esac
|
|
579
|
-
done
|
|
580
|
-
|
|
581
|
-
local hook_src
|
|
582
|
-
hook_src="$(resolve_script ".agent-src/templates/hooks/pre-commit-roadmap-progress" ".augment/templates/hooks/pre-commit-roadmap-progress")" || return 1
|
|
583
|
-
|
|
584
|
-
if $print_only; then
|
|
585
|
-
cat "$hook_src"
|
|
586
|
-
return 0
|
|
587
|
-
fi
|
|
588
|
-
|
|
589
|
-
local git_dir
|
|
590
|
-
git_dir="$(git -C "$CONSUMER_ROOT" rev-parse --git-dir 2>/dev/null || true)"
|
|
591
|
-
if [[ -z "$git_dir" ]]; then
|
|
592
|
-
echo "❌ hooks:install: $CONSUMER_ROOT is not a git repository." >&2
|
|
593
|
-
return 1
|
|
594
|
-
fi
|
|
595
|
-
# Resolve relative git-dir paths (worktrees, submodules) against CONSUMER_ROOT.
|
|
596
|
-
[[ "$git_dir" != /* ]] && git_dir="$CONSUMER_ROOT/$git_dir"
|
|
597
|
-
|
|
598
|
-
local hook_dir="$git_dir/hooks"
|
|
599
|
-
local target="$hook_dir/pre-commit"
|
|
600
|
-
mkdir -p "$hook_dir"
|
|
601
|
-
|
|
602
|
-
if [[ -f "$target" ]] && ! $force; then
|
|
603
|
-
if grep -q "pre-commit-roadmap-progress" "$target" 2>/dev/null; then
|
|
604
|
-
echo "✅ hooks:install: already installed at $target"
|
|
605
|
-
return 0
|
|
606
|
-
fi
|
|
607
|
-
echo "⚠️ hooks:install: $target already exists and looks unrelated." >&2
|
|
608
|
-
echo " Options:" >&2
|
|
609
|
-
echo " 1. Inspect it and append the snippet manually:" >&2
|
|
610
|
-
echo " ./agent-config hooks:install --print >> $target" >&2
|
|
611
|
-
echo " 2. Replace it (destructive):" >&2
|
|
612
|
-
echo " ./agent-config hooks:install --force" >&2
|
|
613
|
-
return 1
|
|
614
|
-
fi
|
|
615
|
-
|
|
616
|
-
cp "$hook_src" "$target"
|
|
617
|
-
chmod +x "$target"
|
|
618
|
-
echo "✅ hooks:install: pre-commit hook installed at $target"
|
|
619
|
-
echo " To uninstall: rm $target"
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
# Wrap the interactive key installers under a stable CLI entry. The shell
|
|
623
|
-
# scripts themselves enforce /dev/tty, 0600, and atomic write — this is
|
|
624
|
-
# pure routing so consumers never have to know the package layout.
|
|
625
|
-
cmd_keys_install_anthropic() {
|
|
626
|
-
local script
|
|
627
|
-
script="$(resolve_script "scripts/install_anthropic_key.sh")" || return 1
|
|
628
|
-
exec bash "$script" "$@"
|
|
629
|
-
}
|
|
630
|
-
|
|
631
|
-
cmd_keys_install_openai() {
|
|
632
|
-
local script
|
|
633
|
-
script="$(resolve_script "scripts/install_openai_key.sh")" || return 1
|
|
634
|
-
exec bash "$script" "$@"
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
# Council CLI — non-interactive wrapper around scripts.ai_council.orchestrator.
|
|
638
|
-
# Three subcommands share one Python entry point; we forward the subcommand
|
|
639
|
-
# verb so `./agent-config council:run --confirm` lands on `council_cli.py run`.
|
|
640
|
-
cmd_council() {
|
|
641
|
-
require_python3
|
|
642
|
-
local sub="$1"; shift || true
|
|
643
|
-
local script
|
|
644
|
-
script="$(resolve_script "scripts/council_cli.py")" || return 1
|
|
645
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 "$script" "$sub" "$@"
|
|
646
|
-
}
|
|
647
|
-
|
|
648
|
-
# `agent-config update` — flip the agent_config_version pin in
|
|
649
|
-
# .agent-settings.yml. See scripts/_cli/cmd_update.py (P3.1 of
|
|
650
|
-
# road-to-portable-runtime-and-update-check.md).
|
|
651
|
-
cmd_update() {
|
|
652
|
-
require_python3
|
|
653
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_update "$@"
|
|
654
|
-
}
|
|
655
|
-
|
|
656
|
-
# `agent-config migrate` — one-shot migration off legacy composer / npm
|
|
657
|
-
# install paths onto the npx-only runtime. See scripts/_cli/cmd_migrate.py
|
|
658
|
-
# (P3.5 of road-to-portable-runtime-and-update-check.md).
|
|
659
|
-
cmd_migrate() {
|
|
660
|
-
require_python3
|
|
661
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_migrate "$@"
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
# `agent-config init` — project-scope install entry point. Forwards
|
|
665
|
-
# unmodified args to the bash installer. This is the canonical
|
|
666
|
-
# `npx @event4u/agent-config init` consumer entry point (replaces the
|
|
667
|
-
# deprecated @event4u/create-agent-config wrapper package).
|
|
668
|
-
cmd_init() {
|
|
669
|
-
local script
|
|
670
|
-
script="$(resolve_script "scripts/install")" || return 1
|
|
671
|
-
exec bash "$script" "$@"
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
# `agent-config global` — user-scope install entry point. Forwards to the
|
|
675
|
-
# bash installer with `--global` set (ADR-007). Phase 1.2 of
|
|
676
|
-
# road-to-global-first-install.md. The bash wrapper handles option parsing
|
|
677
|
-
# and forwards to `scripts/install.py --global`, where `install_global()`
|
|
678
|
-
# currently scaffolds the per-tool anchor paths from USER_SCOPE_PATHS.
|
|
679
|
-
# Concrete writes land in Phase 1.5 (export) and Phase 1.6 (lockfile).
|
|
680
|
-
cmd_global() {
|
|
681
|
-
local script
|
|
682
|
-
script="$(resolve_script "scripts/install")" || return 1
|
|
683
|
-
exec bash "$script" --global "$@"
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
# `agent-config export` — write a tool's canonical content into a
|
|
687
|
-
# user-chosen path. ADR-007 D3 / Phase 1.5 of
|
|
688
|
-
# road-to-global-first-install.md. Replaces the rejected symlink-bridge.
|
|
689
|
-
# See scripts/_cli/cmd_export.py for the registry and idempotency logic.
|
|
690
|
-
cmd_export() {
|
|
691
|
-
require_python3
|
|
692
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_export "$@"
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
# `agent-config sync` — replay agents/installed-tools.lock (ADR-008
|
|
696
|
-
# Phase 3.3). Re-installs any tool whose bridge marker is missing on
|
|
697
|
-
# disk. Typical onboarding flow: clone → `./agent-config sync` → done.
|
|
698
|
-
cmd_sync() {
|
|
699
|
-
require_python3
|
|
700
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_sync "$@"
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
# `agent-config validate` — read-only drift detection (ADR-008 Phase 3.4).
|
|
704
|
-
# Surfaces marker-missing, scope-divergence, and version-drift; exits 1 on
|
|
705
|
-
# any drift. Never edits the manifest or re-runs the installer.
|
|
706
|
-
cmd_validate() {
|
|
707
|
-
require_python3
|
|
708
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_validate "$@"
|
|
709
|
-
}
|
|
710
|
-
|
|
711
|
-
# `agent-config settings:check` — read-only YAML-subset validator for
|
|
712
|
-
# `.agent-settings.yml` (P3.2 of road-to-proof-not-features.md). Contract
|
|
713
|
-
# pinned in docs/contracts/settings-sync-yaml-subset.md. Exit 0 clean,
|
|
714
|
-
# 1 finding(s), 2 file absent / unreadable.
|
|
715
|
-
cmd_settings_check() {
|
|
716
|
-
require_python3
|
|
717
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_settings_check "$@"
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
# `agent-config uninstall` — remove bridge markers (project) or lockfile
|
|
721
|
-
# entries (global). Idempotent. Pass `--purge` to also delete deployed
|
|
722
|
-
# content directories under user-scope anchors (destructive). See
|
|
723
|
-
# scripts/_cli/cmd_uninstall.py.
|
|
724
|
-
cmd_uninstall() {
|
|
725
|
-
require_python3
|
|
726
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_uninstall "$@"
|
|
727
|
-
}
|
|
728
|
-
|
|
729
|
-
# `agent-config prune` — remove orphaned project bridge markers.
|
|
730
|
-
# Drift-cleanup sibling to `uninstall`: compares on-disk markers
|
|
731
|
-
# against agents/installed-tools.lock and unlinks anything not
|
|
732
|
-
# declared. Hard-floors when lockfile is absent. See
|
|
733
|
-
# scripts/_cli/cmd_prune.py.
|
|
734
|
-
cmd_prune() {
|
|
735
|
-
require_python3
|
|
736
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_prune "$@"
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
# `agent-config doctor` — read-only drift report against the manifest.
|
|
740
|
-
# Surfaces missing / modified / foreign files. Exit 0 clean, 1 drift,
|
|
741
|
-
# 2 manifest-absent. See scripts/_cli/cmd_doctor.py.
|
|
742
|
-
cmd_doctor() {
|
|
743
|
-
require_python3
|
|
744
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_doctor "$@"
|
|
745
|
-
}
|
|
746
|
-
|
|
747
|
-
# `agent-config versions` — list available @event4u/agent-config versions
|
|
748
|
-
# on the npm registry. Marks the current pin (from .agent-settings.yml)
|
|
749
|
-
# and the latest published version. Offline-tolerant. See
|
|
750
|
-
# scripts/_cli/cmd_versions.py.
|
|
751
|
-
cmd_versions() {
|
|
752
|
-
require_python3
|
|
753
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_versions "$@"
|
|
754
|
-
}
|
|
755
|
-
|
|
756
|
-
# `agent-config explain <config|rule|route>` — print the decision chain
|
|
757
|
-
# behind a configuration or routing outcome. Read-only diagnostic; never
|
|
758
|
-
# edits state. See scripts/_cli/cmd_explain.py.
|
|
759
|
-
cmd_explain() {
|
|
760
|
-
require_python3
|
|
761
|
-
exec env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._cli.cmd_explain "$@"
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
main() {
|
|
765
|
-
local cmd="${1-}"
|
|
766
|
-
[[ $# -gt 0 ]] && shift || true
|
|
767
|
-
|
|
768
|
-
case "$cmd" in
|
|
769
|
-
mcp:render) cmd_mcp_render "$@" ;;
|
|
770
|
-
mcp:check) cmd_mcp_check "$@" ;;
|
|
771
|
-
mcp:setup) cmd_mcp_setup "$@" ;;
|
|
772
|
-
mcp:run) cmd_mcp_run "$@" ;;
|
|
773
|
-
roadmap:progress) cmd_roadmap_progress "$@" ;;
|
|
774
|
-
roadmap:progress-check) cmd_roadmap_progress_check "$@" ;;
|
|
775
|
-
hooks:install) cmd_hooks_install "$@" ;;
|
|
776
|
-
keys:install-anthropic) cmd_keys_install_anthropic "$@" ;;
|
|
777
|
-
keys:install-openai) cmd_keys_install_openai "$@" ;;
|
|
778
|
-
first-run) cmd_first_run "$@" ;;
|
|
779
|
-
implement-ticket) cmd_implement_ticket "$@" ;;
|
|
780
|
-
work) cmd_work "$@" ;;
|
|
781
|
-
migrate-state) cmd_migrate_state "$@" ;;
|
|
782
|
-
memory:lookup) cmd_memory_lookup "$@" ;;
|
|
783
|
-
memory:signal) cmd_memory_signal "$@" ;;
|
|
784
|
-
memory:hash) cmd_memory_hash "$@" ;;
|
|
785
|
-
memory:check) cmd_memory_check "$@" ;;
|
|
786
|
-
memory:check-proposal) cmd_memory_check_proposal "$@" ;;
|
|
787
|
-
proposal:check) cmd_proposal_check "$@" ;;
|
|
788
|
-
refine-ticket:detect) cmd_refine_ticket_detect "$@" ;;
|
|
789
|
-
chat-history:hook) cmd_chat_history_hook "$@" ;;
|
|
790
|
-
chat-history:checkpoint) cmd_chat_history_checkpoint "$@" ;;
|
|
791
|
-
roadmap-progress:hook) cmd_roadmap_progress_hook "$@" ;;
|
|
792
|
-
onboarding-gate:hook) cmd_onboarding_gate_hook "$@" ;;
|
|
793
|
-
context-hygiene:hook) cmd_context_hygiene_hook "$@" ;;
|
|
794
|
-
dispatch:hook) cmd_dispatch_hook "$@" ;;
|
|
795
|
-
hooks:status) cmd_hooks_status "$@" ;;
|
|
796
|
-
hooks:doctor) cmd_hooks_doctor "$@" ;;
|
|
797
|
-
hooks:replay) cmd_hooks_replay "$@" ;;
|
|
798
|
-
telemetry:record) cmd_telemetry_record "$@" ;;
|
|
799
|
-
telemetry:status) cmd_telemetry_status "$@" ;;
|
|
800
|
-
telemetry:report) cmd_telemetry_report "$@" ;;
|
|
801
|
-
council:estimate) cmd_council estimate "$@" ;;
|
|
802
|
-
council:run) cmd_council run "$@" ;;
|
|
803
|
-
council:render) cmd_council render "$@" ;;
|
|
804
|
-
update) cmd_update "$@" ;;
|
|
805
|
-
migrate) cmd_migrate "$@" ;;
|
|
806
|
-
init) cmd_init "$@" ;;
|
|
807
|
-
global) cmd_global "$@" ;;
|
|
808
|
-
export) cmd_export "$@" ;;
|
|
809
|
-
sync) cmd_sync "$@" ;;
|
|
810
|
-
validate) cmd_validate "$@" ;;
|
|
811
|
-
settings:check) cmd_settings_check "$@" ;;
|
|
812
|
-
uninstall) cmd_uninstall "$@" ;;
|
|
813
|
-
prune) cmd_prune "$@" ;;
|
|
814
|
-
doctor) cmd_doctor "$@" ;;
|
|
815
|
-
versions) cmd_versions "$@" ;;
|
|
816
|
-
explain) cmd_explain "$@" ;;
|
|
817
|
-
help|--help|-h|"")
|
|
818
|
-
# Optional `--tier=0|1|all` filter (default 0).
|
|
819
|
-
local tier_arg="0"
|
|
820
|
-
for arg in "$@"; do
|
|
821
|
-
case "$arg" in
|
|
822
|
-
--tier=0|--tier=1|--tier=all) tier_arg="${arg#--tier=}" ;;
|
|
823
|
-
--tier|-t) ;; # next arg
|
|
824
|
-
0|1|all)
|
|
825
|
-
# Positional after --tier/-t.
|
|
826
|
-
tier_arg="$arg" ;;
|
|
827
|
-
--all) tier_arg="all" ;;
|
|
828
|
-
esac
|
|
829
|
-
done
|
|
830
|
-
usage "$tier_arg" ;;
|
|
831
|
-
--version|-V) print_version ;;
|
|
832
|
-
*)
|
|
833
|
-
echo "❌ agent-config: unknown command: $cmd" >&2
|
|
834
|
-
echo " Run \`./agent-config help\` for the command list." >&2
|
|
835
|
-
exit 2
|
|
836
|
-
;;
|
|
837
|
-
esac
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
# Pre-flight pin resolver: when `.agent-settings.yml` carries a
|
|
841
|
-
# non-empty `agent_config_version` that differs from the running
|
|
842
|
-
# package version, re-exec via `npx @event4u/agent-config@<pin>`.
|
|
843
|
-
# Skipped for `--version`, `help`, `update` and `migrate` (so consumers
|
|
844
|
-
# can escape a bad pin or run the legacy-cleanup before a pin exists),
|
|
845
|
-
# and when `AGENT_CONFIG_NO_PIN_REEXEC=1`. See P3.2 of
|
|
846
|
-
# road-to-portable-runtime-and-update-check.md.
|
|
847
|
-
maybe_pin_reexec() {
|
|
848
|
-
local cmd="${1-}"
|
|
849
|
-
case "$cmd" in
|
|
850
|
-
help|--help|-h|--version|-V|update|migrate|init|"") return 0 ;;
|
|
851
|
-
esac
|
|
852
|
-
if ! command -v python3 >/dev/null 2>&1; then
|
|
853
|
-
return 0
|
|
854
|
-
fi
|
|
855
|
-
local installed
|
|
856
|
-
installed="$(print_version)"
|
|
857
|
-
[[ -z "$installed" || "$installed" == "unknown" ]] && return 0
|
|
858
|
-
env PYTHONPATH="$PACKAGE_ROOT" python3 -m scripts._lib.pin_resolver \
|
|
859
|
-
--cwd "$CONSUMER_ROOT" --installed "$installed" -- "$@" || true
|
|
860
|
-
}
|
|
861
|
-
|
|
862
|
-
# Post-subcommand banner: best-effort daily update-check notice on
|
|
863
|
-
# stderr. Runs after the dispatch returns (subshell wrapper below)
|
|
864
|
-
# so the banner appears post-output and never delays the subcommand.
|
|
865
|
-
# Suppressed in CI, on non-TTY stdout, by AGENT_CONFIG_NO_UPDATE_CHECK=1,
|
|
866
|
-
# or by `update_check.enabled: false` in settings. See P2 of
|
|
867
|
-
# road-to-portable-runtime-and-update-check.md.
|
|
868
|
-
run_update_check_banner() {
|
|
869
|
-
local cmd="${1-}"
|
|
870
|
-
case "$cmd" in
|
|
871
|
-
help|--help|-h|--version|-V|"") return 0 ;;
|
|
872
|
-
esac
|
|
873
|
-
if ! command -v python3 >/dev/null 2>&1; then
|
|
874
|
-
return 0
|
|
875
|
-
fi
|
|
876
|
-
local banner_script="$PACKAGE_ROOT/scripts/check_update_banner.py"
|
|
877
|
-
[[ -f "$banner_script" ]] || return 0
|
|
878
|
-
python3 "$banner_script" --cwd "$CONSUMER_ROOT" 2>/dev/null || true
|
|
879
|
-
}
|
|
880
|
-
|
|
881
|
-
# Global `--root <path>` / `--root=<path>` parsing (Step 8 A3).
|
|
882
|
-
# Strips the flag from $@, validates the path is an existing directory,
|
|
883
|
-
# and exports `AGENT_CONFIG_PROJECT_ROOT` + `AGENT_CONFIG_ROOT_OVERRIDE=1`
|
|
884
|
-
# so the Python resolver picks origin=root-flag with fail-loud semantics.
|
|
885
|
-
# Invalid path → exit 2 immediately, no fallback to anchor walk or CWD.
|
|
886
|
-
parse_global_root_flag() {
|
|
887
|
-
local -a filtered=()
|
|
888
|
-
local root_value=""
|
|
889
|
-
local saw_flag=false
|
|
890
|
-
while [[ $# -gt 0 ]]; do
|
|
891
|
-
case "$1" in
|
|
892
|
-
--root)
|
|
893
|
-
saw_flag=true
|
|
894
|
-
if [[ $# -lt 2 ]]; then
|
|
895
|
-
echo "❌ agent-config: --root requires a path argument" >&2
|
|
896
|
-
exit 2
|
|
897
|
-
fi
|
|
898
|
-
root_value="$2"
|
|
899
|
-
shift 2
|
|
900
|
-
;;
|
|
901
|
-
--root=*)
|
|
902
|
-
saw_flag=true
|
|
903
|
-
root_value="${1#--root=}"
|
|
904
|
-
shift
|
|
905
|
-
;;
|
|
906
|
-
*)
|
|
907
|
-
filtered+=("$1")
|
|
908
|
-
shift
|
|
909
|
-
;;
|
|
910
|
-
esac
|
|
911
|
-
done
|
|
912
|
-
if $saw_flag; then
|
|
913
|
-
if [[ -z "$root_value" ]]; then
|
|
914
|
-
echo "❌ agent-config: --root requires a non-empty path" >&2
|
|
915
|
-
exit 2
|
|
916
|
-
fi
|
|
917
|
-
if [[ ! -e "$root_value" ]]; then
|
|
918
|
-
echo "❌ agent-config: --root points to a path that does not exist: $root_value" >&2
|
|
919
|
-
exit 2
|
|
920
|
-
fi
|
|
921
|
-
if [[ ! -d "$root_value" ]]; then
|
|
922
|
-
echo "❌ agent-config: --root points to a non-directory: $root_value" >&2
|
|
923
|
-
exit 2
|
|
924
|
-
fi
|
|
925
|
-
# Absolutize so downstream Python sees a fully-resolved path.
|
|
926
|
-
root_value="$(cd "$root_value" && pwd)"
|
|
927
|
-
export AGENT_CONFIG_PROJECT_ROOT="$root_value"
|
|
928
|
-
export AGENT_CONFIG_ROOT_OVERRIDE=1
|
|
929
|
-
# Wrapper-coupling guard: when invoked through a consumer-root wrapper
|
|
930
|
-
# (CONSUMER_ROOT != root_value), surface a one-line warning on stderr
|
|
931
|
-
# so the operator notices the divergence. Non-fatal: --root is the
|
|
932
|
-
# deliberate override channel.
|
|
933
|
-
if [[ "$CONSUMER_ROOT" != "$root_value" ]]; then
|
|
934
|
-
echo "⚠️ agent-config: --root ($root_value) differs from wrapper CWD ($CONSUMER_ROOT)" >&2
|
|
935
|
-
fi
|
|
936
|
-
fi
|
|
937
|
-
# Re-emit the filtered argv via a global array consumed by main().
|
|
938
|
-
GLOBAL_FILTERED_ARGS=("${filtered[@]+"${filtered[@]}"}")
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
declare -a GLOBAL_FILTERED_ARGS
|
|
942
|
-
parse_global_root_flag "$@"
|
|
943
|
-
set -- "${GLOBAL_FILTERED_ARGS[@]+"${GLOBAL_FILTERED_ARGS[@]}"}"
|
|
944
|
-
|
|
945
|
-
# Pin re-exec runs before dispatch — if it triggers, the process is
|
|
946
|
-
# replaced and nothing else here matters.
|
|
947
|
-
maybe_pin_reexec "$@"
|
|
948
|
-
|
|
949
|
-
# Dispatch in a subshell so internal ``exec`` calls do not replace this
|
|
950
|
-
# process — we still get to run the post-subcommand banner.
|
|
951
|
-
( main "$@" )
|
|
952
|
-
rc=$?
|
|
953
|
-
run_update_check_banner "${1-}"
|
|
954
|
-
exit "$rc"
|
|
36
|
+
here="$(cd -- "$(dirname -- "$src")" && pwd)"
|
|
37
|
+
ts_entry="$here/../dist/cli/agent-config.js"
|
|
38
|
+
legacy_entry="$here/_dispatch.bash"
|
|
39
|
+
source_marker="$here/../src/cli/registry.ts"
|
|
40
|
+
|
|
41
|
+
# Suppress the deprecation warning when invoked from a source checkout
|
|
42
|
+
# (maintainer path) — `src/` is not shipped in the published tarball.
|
|
43
|
+
if [[ "${AGENT_CONFIG_QUIET_DEPRECATION:-0}" != "1" && ! -f "$source_marker" ]]; then
|
|
44
|
+
echo "warning: scripts/agent-config is deprecated; use 'npx @event4u/agent-config' instead" >&2
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
if [[ -f "$ts_entry" ]]; then
|
|
48
|
+
exec node "$ts_entry" "$@"
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
if [[ -f "$legacy_entry" ]]; then
|
|
52
|
+
exec bash "$legacy_entry" "$@"
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
echo "❌ agent-config: neither dist/cli/agent-config.js nor scripts/_dispatch.bash found" >&2
|
|
56
|
+
echo " Run 'npm run build' in the package root to produce the TS binary." >&2
|
|
57
|
+
exit 1
|