@event4u/agent-config 2.26.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.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/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 +12 -0
- 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 +12 -0
- 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/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 +13 -1
- 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 +15 -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/external-reference-deep-dive.md +13 -1
- package/.agent-src/rules/fast-path-marker-visibility.md +21 -1
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +13 -1
- package/.agent-src/rules/git-history-discipline.md +13 -1
- 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 +12 -0
- 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 +14 -2
- 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/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 +14 -2
- 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 +12 -0
- package/.agent-src/skills/readme-writing/SKILL.md +12 -0
- package/.agent-src/skills/readme-writing-package/SKILL.md +12 -0
- 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 +12 -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/rule.md +1 -1
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +3 -3
- 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/state.py +53 -0
- package/.agent-src/templates/skill-archive-note.md +4 -4
- package/.claude-plugin/marketplace.json +1 -2
- package/AGENTS.md +5 -4
- package/CHANGELOG.md +170 -90
- package/CONTRIBUTING.md +61 -0
- package/README.md +23 -20
- package/config/agent-settings.template.yml +11 -1
- package/config/discovery/packs.yml +142 -0
- package/config/discovery/unassigned-artefacts.yml +66 -0
- package/config/discovery/workspaces.yml +59 -0
- package/config/gitignore-block.txt +17 -20
- 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 +110 -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 +75 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/discovery/discovery-manifest.json +9195 -0
- package/dist/discovery/discovery-manifest.json.sha256 +1 -0
- package/dist/discovery/discovery-manifest.summary.md +93 -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/server/app.js +117 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/io/atomicMultiWrite.js +202 -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 +140 -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 +49 -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 +155 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/userMd.js +117 -0
- package/dist/server/routes/userMd.js.map +1 -0
- package/dist/server/routes/wizard.js +138 -0
- package/dist/server/routes/wizard.js.map +1 -0
- package/dist/server/schemas/settings.js +138 -0
- package/dist/server/schemas/settings.js.map +1 -0
- package/dist/server/token.js +68 -0
- package/dist/server/token.js.map +1 -0
- package/dist/server/writeRoot.js +67 -0
- package/dist/server/writeRoot.js.map +1 -0
- package/dist/server/writeRoot.test.js +73 -0
- package/dist/server/writeRoot.test.js.map +1 -0
- package/dist/shared/userMd/formAdapter.js +105 -0
- package/dist/shared/userMd/formAdapter.js.map +1 -0
- package/dist/shared/userMd/schema.js +118 -0
- package/dist/shared/userMd/schema.js.map +1 -0
- package/dist/shared/userMd/utils.js +74 -0
- package/dist/shared/userMd/utils.js.map +1 -0
- package/dist/ui/assets/index-BTRcKDlB.js +39 -0
- package/dist/ui/assets/index-BTRcKDlB.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/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 +2 -2
- package/docs/architecture/setup-vs-settings-shared-surface.md +114 -0
- package/docs/architecture.md +2 -1
- package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
- package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
- package/docs/catalog.md +66 -78
- 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 +11 -2
- 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/decision-trace-v1.md +5 -5
- package/docs/contracts/discovery-manifest.schema.json +146 -0
- package/docs/contracts/explain-trace.schema.json +144 -0
- package/docs/contracts/file-ownership-matrix.json +117 -341
- package/docs/contracts/file-ownership-matrix.md +1 -1
- package/docs/contracts/ghostwriter-schema.md +3 -3
- package/docs/contracts/hook-architecture-v1.md +10 -10
- package/docs/contracts/kernel-membership.md +4 -4
- 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-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 +1 -1
- 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 +2 -2
- package/docs/contracts/router-blending.md +1 -1
- package/docs/contracts/rule-classification.md +2 -2
- package/docs/contracts/settings-api.md +160 -0
- package/docs/contracts/settings-gui-agent-mode.schema.json +128 -0
- package/docs/contracts/tier-3-contrib-plugin.md +1 -1
- package/docs/contracts/universal-skills.md +1 -1
- package/docs/contracts/write-engine.md +1 -1
- package/docs/customization.md +137 -11
- 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 +4 -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 +210 -0
- package/docs/decisions/ADR-014-gui-framework-choice.md +136 -0
- package/docs/decisions/ADR-rule-kernel-and-router.md +2 -2
- package/docs/decisions/INDEX.md +3 -0
- package/docs/distribution/mcp-submission-checklist.md +95 -0
- package/docs/distribution/topics-equivalents-decay-policy.md +51 -0
- package/docs/examples/agent-user.example.md +3 -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/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/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 +12 -4
- 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/skills-catalog.md +62 -18
- package/docs/wizard.md +121 -0
- package/llms.txt +61 -17
- package/package.json +46 -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 +5 -5
- package/scripts/_cli/cmd_explain.py +106 -2
- package/scripts/_cli/cmd_migrate.py +2 -2
- 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 +58 -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 +954 -0
- package/scripts/_lib/agent_settings.py +3 -3
- package/scripts/_lib/agents_overlay.py +3 -3
- package/scripts/_phase4_bucket.py +210 -0
- package/scripts/agent-config +35 -943
- 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_user_type_axis.py +1 -1
- package/scripts/build_discovery_manifest.py +302 -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_council_layout.py +26 -20
- package/scripts/check_council_references.py +10 -10
- 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_public_links.py +2 -2
- package/scripts/check_references.py +14 -21
- package/scripts/check_release_includes_discovery.py +61 -0
- 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/context_hygiene_hook.py +2 -2
- package/scripts/council_cli.py +22 -22
- package/scripts/council_prune.py +3 -3
- package/scripts/extract_audit_patterns.py +2 -2
- package/scripts/gen_discovery_baseline.py +127 -0
- package/scripts/generate_ownership_matrix.py +1 -1
- 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-hooks.sh +2 -2
- package/scripts/install.py +3 -3
- package/scripts/install.sh +120 -18
- package/scripts/inventory_frontmatter.py +1 -1
- package/scripts/lint_agents_layout.py +103 -0
- package/scripts/lint_archived_skills.py +3 -3
- package/scripts/lint_artefact_frontmatter.py +180 -0
- 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_framework_leakage_allowlist.json +63 -62
- package/scripts/lint_ghostwriter_source.py +1 -1
- 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_positioning.py +143 -0
- package/scripts/lint_rule_tiers.py +2 -2
- package/scripts/lint_skill_tools.py +1 -1
- package/scripts/lint_topics_yaml.py +89 -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 +3 -3
- 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/onboarding_gate_hook.py +4 -4
- package/scripts/prepack-check.mjs +62 -0
- package/scripts/probe_projection_fidelity.py +2 -2
- package/scripts/refine_ticket_detect.py +1 -1
- package/scripts/schemas/command.schema.json +41 -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 +2 -2
- package/scripts/skill_overlap.py +1 -1
- package/scripts/skill_tools/run_block_d_eval.py +1 -1
- package/scripts/skill_usage_collect.py +3 -3
- package/scripts/skill_usage_report.py +3 -3
- package/scripts/smoke_quickstart.py +1 -1
- 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_prices.py +4 -3
- package/scripts/verify_before_complete_hook.py +1 -1
- package/scripts/verify_roadmap_closure.py +1 -1
- package/templates/agent-user.md +35 -0
- package/.agent-src/commands/onboard.md +0 -467
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* prepack-check.mjs — guard the published artifact.
|
|
4
|
+
*
|
|
5
|
+
* Runs during `npm pack` and `npm publish`. Asserts the compiled TS
|
|
6
|
+
* CLI binary exists, is executable, and carries the Node shebang
|
|
7
|
+
* before the tarball is built. Otherwise a silently-broken `dist/`
|
|
8
|
+
* ships and every `npx @event4u/agent-config` greets the consumer
|
|
9
|
+
* with a cryptic `Cannot find module` panic.
|
|
10
|
+
*
|
|
11
|
+
* Folded from external council pass 2026-05-18 (Phase 1.3 acceptance).
|
|
12
|
+
*
|
|
13
|
+
* Skip with PREPACK_SKIP_BUILD_CHECK=1 only for local `npm pack` dry-runs
|
|
14
|
+
* that intentionally test the failure mode.
|
|
15
|
+
*/
|
|
16
|
+
import { readFileSync, statSync } from 'node:fs';
|
|
17
|
+
import { resolve } from 'node:path';
|
|
18
|
+
import { argv, env, exit } from 'node:process';
|
|
19
|
+
|
|
20
|
+
const BIN = resolve('dist/cli/agent-config.js');
|
|
21
|
+
const SHEBANG = '#!/usr/bin/env node';
|
|
22
|
+
|
|
23
|
+
function die(msg) {
|
|
24
|
+
process.stderr.write(`prepack-check: ${msg}\n`);
|
|
25
|
+
exit(1);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (env.PREPACK_SKIP_BUILD_CHECK === '1') {
|
|
29
|
+
process.stderr.write('prepack-check: skipped (PREPACK_SKIP_BUILD_CHECK=1)\n');
|
|
30
|
+
exit(0);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let st;
|
|
34
|
+
try {
|
|
35
|
+
st = statSync(BIN);
|
|
36
|
+
} catch {
|
|
37
|
+
die(`compiled CLI binary missing at ${BIN}. Run \`npm run build\` before \`npm pack\`.`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!st.isFile()) {
|
|
41
|
+
die(`${BIN} is not a regular file.`);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Executable bit check (skip on Windows where mode bits are unreliable).
|
|
45
|
+
if (process.platform !== 'win32') {
|
|
46
|
+
// 0o111 = any executable bit set
|
|
47
|
+
if ((st.mode & 0o111) === 0) {
|
|
48
|
+
die(`${BIN} is not executable. Build step must chmod +x the bin entry.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const head = readFileSync(BIN, 'utf8').slice(0, SHEBANG.length);
|
|
53
|
+
if (head !== SHEBANG) {
|
|
54
|
+
die(`${BIN} missing Node shebang. Expected "${SHEBANG}" as first line.`);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
process.stderr.write(`prepack-check: ${BIN} OK\n`);
|
|
58
|
+
|
|
59
|
+
// Optional: invoked with --verbose dumps the size for tarball-budget bookkeeping.
|
|
60
|
+
if (argv.includes('--verbose')) {
|
|
61
|
+
process.stderr.write(`prepack-check: size=${st.size} bytes\n`);
|
|
62
|
+
}
|
|
@@ -5,7 +5,7 @@ Reads tests/fixtures/projection_fidelity/fixtures.yml, walks the
|
|
|
5
5
|
projected trees (.augment/, .claude/, .cursor/, .clinerules/,
|
|
6
6
|
.windsurfrules, .windsurf/), and records pass/fail/partial per check.
|
|
7
7
|
|
|
8
|
-
Output: agents/reports/projection-fidelity.json + stdout summary.
|
|
8
|
+
Output: agents/runtime/reports/projection-fidelity.json + stdout summary.
|
|
9
9
|
|
|
10
10
|
Pure stdlib (PyYAML reuse from scripts/_lib if installed; otherwise
|
|
11
11
|
inline minimal YAML loader for the fixture's restricted shape).
|
|
@@ -172,7 +172,7 @@ def check_entry(entry: dict) -> dict:
|
|
|
172
172
|
def main() -> int:
|
|
173
173
|
ap = argparse.ArgumentParser()
|
|
174
174
|
ap.add_argument("--fixture", default="tests/fixtures/projection_fidelity/fixtures.yml")
|
|
175
|
-
ap.add_argument("--report", default="agents/reports/projection-fidelity.json")
|
|
175
|
+
ap.add_argument("--report", default="agents/runtime/reports/projection-fidelity.json")
|
|
176
176
|
args = ap.parse_args()
|
|
177
177
|
|
|
178
178
|
fixture = yaml.safe_load((ROOT / args.fixture).read_text(encoding="utf-8"))
|
|
@@ -94,7 +94,7 @@ class RepoContext:
|
|
|
94
94
|
|
|
95
95
|
Feeds the skill's Top-5 risks with project-specific vocabulary —
|
|
96
96
|
recent branch names (naming-convention signal), recent commit
|
|
97
|
-
subjects (active modules signal), and on-disk `agents/contexts/`
|
|
97
|
+
subjects (active modules signal), and on-disk `agents/settings/contexts/`
|
|
98
98
|
documents (domain-vocabulary signal).
|
|
99
99
|
|
|
100
100
|
Empty when `repo_aware=False` — the skill still produces the same
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://github.com/event4u-app/agent-config/scripts/schemas/command.schema.json",
|
|
4
4
|
"title": "Command frontmatter",
|
|
5
|
-
"$comment": "Source: agents/docs/frontmatter-contract.md#commands. `description` is required at schema level because 66/67 commands declare it — the one exception is a known gap, not a supported shape.",
|
|
5
|
+
"$comment": "Source: agents/reference/docs/frontmatter-contract.md#commands. `description` is required at schema level because 66/67 commands declare it — the one exception is a known gap, not a supported shape.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": ["name", "description", "disable-model-invocation"],
|
|
@@ -117,6 +117,46 @@
|
|
|
117
117
|
"description": "Optional per-command override of the global cooldown duration (e.g. '10m'). Defaults to settings."
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
+
},
|
|
121
|
+
"workspaces": {
|
|
122
|
+
"type": "array",
|
|
123
|
+
"minItems": 1,
|
|
124
|
+
"uniqueItems": true,
|
|
125
|
+
"items": {"type": "string", "pattern": "^[a-z][a-z0-9-]*$"},
|
|
126
|
+
"description": "ADR-013 workspace ids (additive discovery axis). Closed vocabulary enforced by scripts/lint_artefact_frontmatter.py against config/discovery/workspaces.yml."
|
|
127
|
+
},
|
|
128
|
+
"packs": {
|
|
129
|
+
"type": "array",
|
|
130
|
+
"minItems": 1,
|
|
131
|
+
"uniqueItems": true,
|
|
132
|
+
"items": {"type": "string", "pattern": "^[a-z][a-z0-9-]*$"},
|
|
133
|
+
"description": "ADR-013 pack ids (additive discovery axis). Closed vocabulary enforced by scripts/lint_artefact_frontmatter.py against config/discovery/packs.yml."
|
|
134
|
+
},
|
|
135
|
+
"lifecycle": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"enum": ["active", "deprecated", "experimental", "archived"],
|
|
138
|
+
"description": "ADR-013 lifecycle state."
|
|
139
|
+
},
|
|
140
|
+
"trust": {
|
|
141
|
+
"type": "object",
|
|
142
|
+
"additionalProperties": false,
|
|
143
|
+
"required": ["level", "confidence", "human_review_required"],
|
|
144
|
+
"properties": {
|
|
145
|
+
"level": {"type": "string", "enum": ["core", "professional", "experimental", "advisory", "restricted"]},
|
|
146
|
+
"confidence": {"type": "string", "enum": ["high", "medium", "low"]},
|
|
147
|
+
"human_review_required": {"type": "boolean"}
|
|
148
|
+
},
|
|
149
|
+
"description": "ADR-013 trust block. Vocabulary mirrored by scripts/lint_artefact_frontmatter.py."
|
|
150
|
+
},
|
|
151
|
+
"install": {
|
|
152
|
+
"type": "object",
|
|
153
|
+
"additionalProperties": false,
|
|
154
|
+
"required": ["default", "removable"],
|
|
155
|
+
"properties": {
|
|
156
|
+
"default": {"type": "boolean"},
|
|
157
|
+
"removable": {"type": "boolean"}
|
|
158
|
+
},
|
|
159
|
+
"description": "ADR-013 install hints (default-on at consumer install; user-removable)."
|
|
120
160
|
}
|
|
121
161
|
}
|
|
122
162
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://github.com/event4u-app/agent-config/scripts/schemas/persona.schema.json",
|
|
4
4
|
"title": "Persona frontmatter",
|
|
5
|
-
"$comment": "Source: agents/docs/frontmatter-contract.md#personas. `mode` enum mirrors the values declared in personas/*.md plus the additional `incident` value from templates/persona.md.",
|
|
5
|
+
"$comment": "Source: agents/reference/docs/frontmatter-contract.md#personas. `mode` enum mirrors the values declared in personas/*.md plus the additional `incident` value from templates/persona.md.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": ["id", "role", "description", "tier", "mode", "version", "source"],
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://github.com/event4u-app/agent-config/scripts/schemas/rule.schema.json",
|
|
4
4
|
"title": "Rule frontmatter",
|
|
5
|
-
"$comment": "Source: agents/docs/frontmatter-contract.md#rules. `type` is authoritative; `alwaysApply` is a Cursor/Cline sidecar and accepted but not enforced.",
|
|
5
|
+
"$comment": "Source: agents/reference/docs/frontmatter-contract.md#rules. `type` is authoritative; `alwaysApply` is a Cursor/Cline sidecar and accepted but not enforced.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": ["type", "source", "description"],
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"type": "array",
|
|
30
30
|
"items": {
|
|
31
31
|
"type": "string",
|
|
32
|
-
"pattern": "^((\\.\\./)*contexts/|agents/contexts/|\\.agent-src/contexts/)[^\\s]+\\.md$",
|
|
33
|
-
"description": "Logical name (preferred — `contexts/<area>/<file>.md`) or project-local (`agents/contexts/<file>.md`). The `.agent-src.uncompressed/` prefix is rejected by the regex; the rewriter (`scripts/compress.py::_rewrite_paths`) resolves logical names at compress time. Rewritten relative forms (`../contexts/...`, `../../contexts/...`) are accepted so the linter passes on the compressed mirror in CI."
|
|
32
|
+
"pattern": "^((\\.\\./)*contexts/|agents/settings/contexts/|\\.agent-src/contexts/)[^\\s]+\\.md$",
|
|
33
|
+
"description": "Logical name (preferred — `contexts/<area>/<file>.md`) or project-local (`agents/settings/contexts/<file>.md`). The `.agent-src.uncompressed/` prefix is rejected by the regex; the rewriter (`scripts/compress.py::_rewrite_paths`) resolves logical names at compress time. Rewritten relative forms (`../contexts/...`, `../../contexts/...`) are accepted so the linter passes on the compressed mirror in CI."
|
|
34
34
|
},
|
|
35
35
|
"description": "Lazy on-demand context references. Use logical names rooted at the source (e.g. `contexts/execution/foo.md`); the `.agent-src.uncompressed/` prefix is forbidden by the regex (road-to-path-fixes.md P5.3). Path rules and budget caps enforced by scripts/lint_load_context.py. Contract: docs/contracts/load-context-schema.md."
|
|
36
36
|
},
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"type": "array",
|
|
39
39
|
"items": {
|
|
40
40
|
"type": "string",
|
|
41
|
-
"pattern": "^((\\.\\./)*contexts/|agents/contexts/|\\.agent-src/contexts/)[^\\s]+\\.md$",
|
|
41
|
+
"pattern": "^((\\.\\./)*contexts/|agents/settings/contexts/|\\.agent-src/contexts/)[^\\s]+\\.md$",
|
|
42
42
|
"description": "Same logical-name rule as `load_context`."
|
|
43
43
|
},
|
|
44
44
|
"description": "Eager auto-loaded context references. Same logical-name rule as `load_context`. Counts against the per-rule char budget; enforced by scripts/lint_load_context.py."
|
|
@@ -98,6 +98,46 @@
|
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
100
|
"description": "Per-rule allowlist consumed by the post-compression validator (scripts/check_compressed_paths.py). Rules that document forbidden path substrings as their subject matter (e.g. augment-portability, no-roadmap-references) declare the literal strings here so the gate does not flag itself. road-to-path-fixes.md P5.1."
|
|
101
|
+
},
|
|
102
|
+
"workspaces": {
|
|
103
|
+
"type": "array",
|
|
104
|
+
"minItems": 1,
|
|
105
|
+
"uniqueItems": true,
|
|
106
|
+
"items": {"type": "string", "pattern": "^[a-z][a-z0-9-]*$"},
|
|
107
|
+
"description": "ADR-013 workspace ids (additive discovery axis). Closed vocabulary enforced by scripts/lint_artefact_frontmatter.py against config/discovery/workspaces.yml."
|
|
108
|
+
},
|
|
109
|
+
"packs": {
|
|
110
|
+
"type": "array",
|
|
111
|
+
"minItems": 1,
|
|
112
|
+
"uniqueItems": true,
|
|
113
|
+
"items": {"type": "string", "pattern": "^[a-z][a-z0-9-]*$"},
|
|
114
|
+
"description": "ADR-013 pack ids (additive discovery axis). Closed vocabulary enforced by scripts/lint_artefact_frontmatter.py against config/discovery/packs.yml."
|
|
115
|
+
},
|
|
116
|
+
"lifecycle": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"enum": ["active", "deprecated", "experimental", "archived"],
|
|
119
|
+
"description": "ADR-013 lifecycle state."
|
|
120
|
+
},
|
|
121
|
+
"trust": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"additionalProperties": false,
|
|
124
|
+
"required": ["level", "confidence", "human_review_required"],
|
|
125
|
+
"properties": {
|
|
126
|
+
"level": {"type": "string", "enum": ["core", "professional", "experimental", "advisory", "restricted"]},
|
|
127
|
+
"confidence": {"type": "string", "enum": ["high", "medium", "low"]},
|
|
128
|
+
"human_review_required": {"type": "boolean"}
|
|
129
|
+
},
|
|
130
|
+
"description": "ADR-013 trust block. Vocabulary mirrored by scripts/lint_artefact_frontmatter.py."
|
|
131
|
+
},
|
|
132
|
+
"install": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"additionalProperties": false,
|
|
135
|
+
"required": ["default", "removable"],
|
|
136
|
+
"properties": {
|
|
137
|
+
"default": {"type": "boolean"},
|
|
138
|
+
"removable": {"type": "boolean"}
|
|
139
|
+
},
|
|
140
|
+
"description": "ADR-013 install hints (default-on at consumer install; user-removable)."
|
|
101
141
|
}
|
|
102
142
|
}
|
|
103
143
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://github.com/event4u-app/agent-config/scripts/schemas/skill.schema.json",
|
|
4
4
|
"title": "Skill frontmatter",
|
|
5
|
-
"$comment": "Source: agents/docs/frontmatter-contract.md#skills. Keep in sync with inventory_frontmatter.py and the linter's lint_skill().",
|
|
5
|
+
"$comment": "Source: agents/reference/docs/frontmatter-contract.md#skills. Keep in sync with inventory_frontmatter.py and the linter's lint_skill().",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"additionalProperties": false,
|
|
8
8
|
"required": ["name", "description", "source", "domain"],
|
|
@@ -122,6 +122,46 @@
|
|
|
122
122
|
"items": { "type": "string" }
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
+
},
|
|
126
|
+
"workspaces": {
|
|
127
|
+
"type": "array",
|
|
128
|
+
"minItems": 1,
|
|
129
|
+
"uniqueItems": true,
|
|
130
|
+
"items": {"type": "string", "pattern": "^[a-z][a-z0-9-]*$"},
|
|
131
|
+
"description": "ADR-013 workspace ids (additive discovery axis). Closed vocabulary enforced by scripts/lint_artefact_frontmatter.py against config/discovery/workspaces.yml."
|
|
132
|
+
},
|
|
133
|
+
"packs": {
|
|
134
|
+
"type": "array",
|
|
135
|
+
"minItems": 1,
|
|
136
|
+
"uniqueItems": true,
|
|
137
|
+
"items": {"type": "string", "pattern": "^[a-z][a-z0-9-]*$"},
|
|
138
|
+
"description": "ADR-013 pack ids (additive discovery axis). Closed vocabulary enforced by scripts/lint_artefact_frontmatter.py against config/discovery/packs.yml."
|
|
139
|
+
},
|
|
140
|
+
"lifecycle": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"enum": ["active", "deprecated", "experimental", "archived"],
|
|
143
|
+
"description": "ADR-013 lifecycle state."
|
|
144
|
+
},
|
|
145
|
+
"trust": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"additionalProperties": false,
|
|
148
|
+
"required": ["level", "confidence", "human_review_required"],
|
|
149
|
+
"properties": {
|
|
150
|
+
"level": {"type": "string", "enum": ["core", "professional", "experimental", "advisory", "restricted"]},
|
|
151
|
+
"confidence": {"type": "string", "enum": ["high", "medium", "low"]},
|
|
152
|
+
"human_review_required": {"type": "boolean"}
|
|
153
|
+
},
|
|
154
|
+
"description": "ADR-013 trust block. Vocabulary mirrored by scripts/lint_artefact_frontmatter.py."
|
|
155
|
+
},
|
|
156
|
+
"install": {
|
|
157
|
+
"type": "object",
|
|
158
|
+
"additionalProperties": false,
|
|
159
|
+
"required": ["default", "removable"],
|
|
160
|
+
"properties": {
|
|
161
|
+
"default": {"type": "boolean"},
|
|
162
|
+
"removable": {"type": "boolean"}
|
|
163
|
+
},
|
|
164
|
+
"description": "ADR-013 install hints (default-on at consumer install; user-removable)."
|
|
125
165
|
}
|
|
126
166
|
}
|
|
127
167
|
}
|
|
@@ -18,7 +18,7 @@ Predictions source:
|
|
|
18
18
|
pure description-matching would do and provides a numeric floor.
|
|
19
19
|
|
|
20
20
|
Output: human-readable summary on stdout + machine JSON to
|
|
21
|
-
`agents/reports/skill-selection-accuracy.json` (or `--out`).
|
|
21
|
+
`agents/runtime/reports/skill-selection-accuracy.json` (or `--out`).
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
24
|
from __future__ import annotations
|
|
@@ -7,7 +7,7 @@ high-overlap skill pairs into clusters. The output drives the
|
|
|
7
7
|
selection-accuracy fixture set defined by council file 05 (Round-3
|
|
8
8
|
protocol — ≥ 3 shared significant terms → collision cluster).
|
|
9
9
|
|
|
10
|
-
Output: `agents/reports/skill-collision-clusters.json`
|
|
10
|
+
Output: `agents/runtime/reports/skill-collision-clusters.json`
|
|
11
11
|
|
|
12
12
|
Schema:
|
|
13
13
|
{
|
package/scripts/skill_linter.py
CHANGED
|
@@ -403,7 +403,7 @@ def _fenced_content_ratio(text: str) -> float:
|
|
|
403
403
|
# --- Structural-density model (docs/contracts/linter-structural-model.md) ---
|
|
404
404
|
# Replaces the raw line/word/fenced-ratio gates with four primitives that
|
|
405
405
|
# distinguish complexity from bloat. Calibrated 2026-05-08 against the full
|
|
406
|
-
# 310-artefact corpus (agents
|
|
406
|
+
# 310-artefact corpus (agents/runtime/density/snapshot.jsonl).
|
|
407
407
|
|
|
408
408
|
PROCEDURE_HEADING_PATTERN = re.compile(
|
|
409
409
|
r"^##\s+Procedure(\s*[:\u2014\-].*)?\s*$", re.MULTILINE
|
|
@@ -2972,7 +2972,7 @@ def lint_frontmatter_schema(path: Path, text: str, artifact_type: str) -> List[I
|
|
|
2972
2972
|
"""Validate the frontmatter of an artefact against its JSON-Schema.
|
|
2973
2973
|
|
|
2974
2974
|
Schemas live in ``scripts/schemas/``. One schema per artefact type;
|
|
2975
|
-
see ``agents/docs/frontmatter-contract.md`` for the human-readable
|
|
2975
|
+
see ``agents/reference/docs/frontmatter-contract.md`` for the human-readable
|
|
2976
2976
|
contract the schemas encode. Guidelines have no frontmatter and are
|
|
2977
2977
|
skipped.
|
|
2978
2978
|
"""
|
package/scripts/skill_overlap.py
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Implements step-2-skill-inventory-rationalization.md Phase 2 Step 2.
|
|
5
5
|
Mirrors `scripts/audit_overlap.py` (the rule-side analog) but reads
|
|
6
6
|
`.agent-src.uncompressed/skills/<slug>/SKILL.md` frontmatter directly
|
|
7
|
-
and emits `agents/metrics/skill-overlap.md` listing pairs scoring
|
|
7
|
+
and emits `agents/runtime/metrics/skill-overlap.md` listing pairs scoring
|
|
8
8
|
≥ 0.6 on either:
|
|
9
9
|
|
|
10
10
|
- description-trigger Jaccard (tokenized union of `description` +
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Runs D2 (`score_skill_relevance`), D3 (`audit_persona_coverage`), and
|
|
5
5
|
D4 (`suggest_skill_for_task`) against the corpora in
|
|
6
|
-
`agents/eval-corpora/block-d/` and emits a pass/fail summary per the
|
|
6
|
+
`agents/evidence/eval-corpora/block-d/` and emits a pass/fail summary per the
|
|
7
7
|
council verdict targets:
|
|
8
8
|
|
|
9
9
|
- **D2**: ≥ 85 % of corpus tasks have an `expected_top3` skill in
|
|
@@ -14,12 +14,12 @@ parses each turn for two signals:
|
|
|
14
14
|
`.agent-src/skills/<slug>/`.
|
|
15
15
|
|
|
16
16
|
Emits one JSONL record per (session, turn, slug, kind) to
|
|
17
|
-
`agents/metrics/skill-usage.jsonl` (append-only, deduped on the
|
|
17
|
+
`agents/runtime/metrics/skill-usage.jsonl` (append-only, deduped on the
|
|
18
18
|
(session_id, turn_idx, slug, kind) tuple).
|
|
19
19
|
|
|
20
20
|
Privacy: `prompt_excerpt_hash` = SHA-256 of the first 200 chars of the
|
|
21
21
|
user prompt that opened the turn. No raw user or assistant bodies are
|
|
22
|
-
persisted. See `agents/
|
|
22
|
+
persisted. See `agents/evidence/audits/2026-05-14-north-star/skill-usage-sources.md`.
|
|
23
23
|
"""
|
|
24
24
|
from __future__ import annotations
|
|
25
25
|
|
|
@@ -153,7 +153,7 @@ def dedup_key(rec: dict) -> tuple:
|
|
|
153
153
|
def main() -> int:
|
|
154
154
|
ap = argparse.ArgumentParser(description=__doc__.splitlines()[0])
|
|
155
155
|
ap.add_argument("--project-slug", help="Override the ~/.claude/projects slug (defaults to current repo)")
|
|
156
|
-
ap.add_argument("--out", type=Path, default=OUT, help="Output jsonl (default: agents/metrics/skill-usage.jsonl)")
|
|
156
|
+
ap.add_argument("--out", type=Path, default=OUT, help="Output jsonl (default: agents/runtime/metrics/skill-usage.jsonl)")
|
|
157
157
|
ap.add_argument("--quiet", action="store_true", help="Suppress non-error output")
|
|
158
158
|
args = ap.parse_args()
|
|
159
159
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""Aggregate `agents/metrics/skill-usage.jsonl` into a per-skill report.
|
|
2
|
+
"""Aggregate `agents/runtime/metrics/skill-usage.jsonl` into a per-skill report.
|
|
3
3
|
|
|
4
4
|
Implements step-2-skill-inventory-rationalization.md Phase 1 Step 3.
|
|
5
|
-
Groups records by slug; emits `agents/metrics/skill-usage-report.md`
|
|
5
|
+
Groups records by slug; emits `agents/runtime/metrics/skill-usage-report.md`
|
|
6
6
|
with columns:
|
|
7
7
|
|
|
8
8
|
slug · exposures_total · mentions_total · exposures_30d · mentions_30d
|
|
@@ -112,7 +112,7 @@ def render(per: dict[str, dict], known: set[str]) -> str:
|
|
|
112
112
|
"# Skill Usage Report (baseline)",
|
|
113
113
|
"",
|
|
114
114
|
"> Generated by `scripts/skill_usage_report.py`. Source:",
|
|
115
|
-
"> `agents/metrics/skill-usage.jsonl` (collector emits per-turn",
|
|
115
|
+
"> `agents/runtime/metrics/skill-usage.jsonl` (collector emits per-turn",
|
|
116
116
|
"> exposure/mention records). See",
|
|
117
117
|
"> [`step-2-skill-inventory-rationalization.md`](../roadmaps/step-2-skill-inventory-rationalization.md)",
|
|
118
118
|
"> Phase 1.",
|
|
@@ -7,7 +7,7 @@ Verifies the 3-step Quickstart from a fresh-project perspective:
|
|
|
7
7
|
`.agent-settings.yml` with the documented default `cost_profile`.
|
|
8
8
|
2. The decision_engine block (P2.x of road-to-productization) parses
|
|
9
9
|
cleanly through the same engine parser the runtime uses.
|
|
10
|
-
3. The work-engine state-file format (`agents/state/<id>.json`) is
|
|
10
|
+
3. The work-engine state-file format (`agents/runtime/state/<id>.json`) is
|
|
11
11
|
emit-ready — schema for `decision_result` matches the contract.
|
|
12
12
|
|
|
13
13
|
What it does NOT do:
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
Sends the refactored package-root AGENTS.md and the consumer template
|
|
5
5
|
to Sonnet 4.5 + gpt-4o, asks each member to answer five questions
|
|
6
6
|
that simulate a fresh agent landing on the file. Records qualitative
|
|
7
|
-
verdicts in agents/reports/thin-root-platform-spotcheck.md.
|
|
7
|
+
verdicts in agents/runtime/reports/thin-root-platform-spotcheck.md.
|
|
8
8
|
"""
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Sync `.github/topics.yml` + `.github/about.yml` to the GitHub repo.
|
|
3
|
+
|
|
4
|
+
Reads two on-disk manifests and pushes them via the REST API:
|
|
5
|
+
* `PUT /repos/{owner}/{repo}/topics` \u2014 topics list
|
|
6
|
+
* `PATCH /repos/{owner}/{repo}` \u2014 description + homepage
|
|
7
|
+
|
|
8
|
+
Default mode is `--dry-run`: fetches remote state, prints a unified
|
|
9
|
+
diff (remote \u2192 desired), exits 0 (or 2 if drift exists when
|
|
10
|
+
`--strict` is passed). `--apply` is required to mutate; it also
|
|
11
|
+
appends an audit row to `agents/evidence/notes/visibility-sync-audit.md`.
|
|
12
|
+
|
|
13
|
+
Auth: `GITHUB_TOKEN` env var. The repo slug is taken from
|
|
14
|
+
`package.json` `repository.url` (parsed) or `--repo owner/name`.
|
|
15
|
+
|
|
16
|
+
Stdlib only \u2014 `urllib.request` matches the convention in
|
|
17
|
+
`scripts/_lib/update_check.py`.
|
|
18
|
+
|
|
19
|
+
Roadmap: agents/roadmaps/strategic-visibility-mcp-topics-positioning.md Phase 1.
|
|
20
|
+
"""
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
import argparse
|
|
24
|
+
import datetime as _dt
|
|
25
|
+
import difflib
|
|
26
|
+
import json
|
|
27
|
+
import os
|
|
28
|
+
import re
|
|
29
|
+
import sys
|
|
30
|
+
import urllib.error
|
|
31
|
+
import urllib.request
|
|
32
|
+
from pathlib import Path
|
|
33
|
+
|
|
34
|
+
import yaml
|
|
35
|
+
|
|
36
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
37
|
+
TOPICS_FILE = ROOT / ".github" / "topics.yml"
|
|
38
|
+
ABOUT_FILE = ROOT / ".github" / "about.yml"
|
|
39
|
+
AUDIT_FILE = ROOT / "agents" / "notes" / "visibility-sync-audit.md"
|
|
40
|
+
API = "https://api.github.com"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _load_yaml(path: Path) -> dict:
|
|
44
|
+
return yaml.safe_load(path.read_text(encoding="utf-8")) or {}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _resolve_repo(explicit: str | None) -> str:
|
|
48
|
+
if explicit:
|
|
49
|
+
return explicit
|
|
50
|
+
pkg = json.loads((ROOT / "package.json").read_text(encoding="utf-8"))
|
|
51
|
+
url = (pkg.get("repository") or {}).get("url") or ""
|
|
52
|
+
m = re.search(r"github\.com[:/]+([^/]+/[^/.]+)", url)
|
|
53
|
+
if not m:
|
|
54
|
+
sys.exit("ERROR: cannot resolve owner/repo from package.json; pass --repo")
|
|
55
|
+
return m.group(1)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def _request(method: str, url: str, token: str, body: dict | None = None) -> dict:
|
|
59
|
+
data = json.dumps(body).encode("utf-8") if body is not None else None
|
|
60
|
+
req = urllib.request.Request(url, data=data, method=method)
|
|
61
|
+
req.add_header("Authorization", f"Bearer {token}")
|
|
62
|
+
req.add_header("Accept", "application/vnd.github+json")
|
|
63
|
+
req.add_header("X-GitHub-Api-Version", "2022-11-28")
|
|
64
|
+
req.add_header("User-Agent", "event4u-agent-config-sync")
|
|
65
|
+
if body is not None:
|
|
66
|
+
req.add_header("Content-Type", "application/json")
|
|
67
|
+
try:
|
|
68
|
+
with urllib.request.urlopen(req, timeout=20) as resp: # noqa: S310
|
|
69
|
+
return json.loads(resp.read() or b"{}")
|
|
70
|
+
except urllib.error.HTTPError as e:
|
|
71
|
+
sys.exit(f"ERROR: {method} {url} \u2192 HTTP {e.code}: {e.read().decode('utf-8', 'replace')[:300]}")
|
|
72
|
+
except urllib.error.URLError as e:
|
|
73
|
+
sys.exit(f"ERROR: {method} {url} \u2192 {e.reason}")
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
def _diff(label: str, remote, desired) -> list[str]:
|
|
77
|
+
a = json.dumps(remote, indent=2, sort_keys=True).splitlines()
|
|
78
|
+
b = json.dumps(desired, indent=2, sort_keys=True).splitlines()
|
|
79
|
+
return list(difflib.unified_diff(a, b, fromfile=f"remote/{label}", tofile=f"desired/{label}", lineterm=""))
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def _audit(repo: str, mutations: list[str]) -> None:
|
|
83
|
+
AUDIT_FILE.parent.mkdir(parents=True, exist_ok=True)
|
|
84
|
+
if not AUDIT_FILE.exists():
|
|
85
|
+
AUDIT_FILE.write_text("# Visibility sync audit log\n\nAppend-only. Every `--apply` run logs one block.\n", encoding="utf-8")
|
|
86
|
+
ts = _dt.datetime.now(_dt.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
87
|
+
block = [f"\n## {ts} \u2014 {repo}\n"]
|
|
88
|
+
block.extend(f"- {m}\n" for m in mutations)
|
|
89
|
+
with AUDIT_FILE.open("a", encoding="utf-8") as f:
|
|
90
|
+
f.writelines(block)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def main() -> int:
|
|
94
|
+
ap = argparse.ArgumentParser(description=__doc__.splitlines()[0])
|
|
95
|
+
ap.add_argument("--apply", action="store_true", help="actually mutate the remote (default: dry-run)")
|
|
96
|
+
ap.add_argument("--strict", action="store_true", help="exit 2 if drift exists (dry-run only)")
|
|
97
|
+
ap.add_argument("--quiet", action="store_true")
|
|
98
|
+
ap.add_argument("--repo", help="owner/name (default: parsed from package.json)")
|
|
99
|
+
args = ap.parse_args()
|
|
100
|
+
|
|
101
|
+
repo = _resolve_repo(args.repo)
|
|
102
|
+
token = os.environ.get("GITHUB_TOKEN")
|
|
103
|
+
if not token:
|
|
104
|
+
sys.exit("ERROR: GITHUB_TOKEN not set")
|
|
105
|
+
|
|
106
|
+
topics_doc = _load_yaml(TOPICS_FILE)
|
|
107
|
+
about_doc = _load_yaml(ABOUT_FILE)
|
|
108
|
+
desired_topics = sorted(topics_doc.get("topics") or [])
|
|
109
|
+
desired_about = {"description": about_doc.get("description", ""), "homepage": about_doc.get("homepage", "")}
|
|
110
|
+
|
|
111
|
+
remote_topics = sorted((_request("GET", f"{API}/repos/{repo}/topics", token).get("names") or []))
|
|
112
|
+
repo_payload = _request("GET", f"{API}/repos/{repo}", token)
|
|
113
|
+
remote_about = {"description": repo_payload.get("description") or "", "homepage": repo_payload.get("homepage") or ""}
|
|
114
|
+
|
|
115
|
+
topic_diff = _diff("topics", remote_topics, desired_topics)
|
|
116
|
+
about_diff = _diff("about", remote_about, desired_about)
|
|
117
|
+
has_drift = bool(topic_diff or about_diff)
|
|
118
|
+
|
|
119
|
+
if not args.quiet:
|
|
120
|
+
if topic_diff:
|
|
121
|
+
print("\n".join(topic_diff))
|
|
122
|
+
if about_diff:
|
|
123
|
+
print("\n".join(about_diff))
|
|
124
|
+
if not has_drift:
|
|
125
|
+
print(f"\u2705 {repo}: topics + about already in sync")
|
|
126
|
+
|
|
127
|
+
if not args.apply:
|
|
128
|
+
return 2 if (has_drift and args.strict) else 0
|
|
129
|
+
|
|
130
|
+
mutations: list[str] = []
|
|
131
|
+
if topic_diff:
|
|
132
|
+
_request("PUT", f"{API}/repos/{repo}/topics", token, {"names": desired_topics})
|
|
133
|
+
mutations.append(f"topics \u2192 {desired_topics}")
|
|
134
|
+
if about_diff:
|
|
135
|
+
_request("PATCH", f"{API}/repos/{repo}", token, desired_about)
|
|
136
|
+
mutations.append(f"about \u2192 {desired_about}")
|
|
137
|
+
if mutations:
|
|
138
|
+
_audit(repo, mutations)
|
|
139
|
+
if not args.quiet:
|
|
140
|
+
print(f"\u2705 {repo}: applied {len(mutations)} mutation(s); audit appended")
|
|
141
|
+
elif not args.quiet:
|
|
142
|
+
print(f"\u2705 {repo}: nothing to apply")
|
|
143
|
+
return 0
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
if __name__ == "__main__":
|
|
147
|
+
raise SystemExit(main())
|
|
@@ -41,17 +41,27 @@ DEFAULT_GITIGNORE = ".gitignore"
|
|
|
41
41
|
DEFAULT_TEMPLATE = Path(__file__).resolve().parent.parent / "config" / "gitignore-block.txt"
|
|
42
42
|
|
|
43
43
|
# Legacy patterns that lived in older versions of config/gitignore-block.txt
|
|
44
|
-
# before runtime artefacts moved under /agents/ (May 2026). They get
|
|
45
|
-
# wherever they appear in the consumer's .gitignore — inside the
|
|
46
|
-
# or outside (older installers / hand-edits). Current canonical
|
|
47
|
-
# (e.g. /agents/.agent-
|
|
48
|
-
# affected. Leading-slash variants are matched defensively.
|
|
44
|
+
# before runtime artefacts moved under /agents/runtime/ (May 2026). They get
|
|
45
|
+
# stripped wherever they appear in the consumer's .gitignore — inside the
|
|
46
|
+
# managed block or outside (older installers / hand-edits). Current canonical
|
|
47
|
+
# equivalents (e.g. /agents/runtime/.agent-prices.md) come from the template
|
|
48
|
+
# and are NOT affected. Leading-slash variants are matched defensively.
|
|
49
49
|
LEGACY_PATTERNS: tuple[str, ...] = (
|
|
50
50
|
".agent-chat-history",
|
|
51
51
|
".agent-chat-history.bak",
|
|
52
52
|
".agent-chat-history.*.bak",
|
|
53
53
|
".agent-prices.md",
|
|
54
54
|
".council-tmp/",
|
|
55
|
+
# 2.x intermediate: prices cache lived directly under agents/ before
|
|
56
|
+
# consolidating under agents/runtime/.
|
|
57
|
+
"agents/.agent-prices.md",
|
|
58
|
+
# Budget history JSONLs — previously listed explicitly at project
|
|
59
|
+
# root or under agents/; now covered by the /agents/runtime/
|
|
60
|
+
# catch-all in the managed block.
|
|
61
|
+
".augment-budget-history.jsonl",
|
|
62
|
+
".rule-budget-history.jsonl",
|
|
63
|
+
"agents/.augment-budget-history.jsonl",
|
|
64
|
+
"agents/.rule-budget-history.jsonl",
|
|
55
65
|
)
|
|
56
66
|
|
|
57
67
|
|
package/scripts/update_prices.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
"""Refresh `agents/.agent-prices.md` from the LiteLLM model-prices feed.
|
|
2
|
+
"""Refresh `agents/runtime/.agent-prices.md` from the LiteLLM model-prices feed.
|
|
3
3
|
|
|
4
4
|
Source: https://raw.githubusercontent.com/BerriAI/litellm/main/
|
|
5
5
|
model_prices_and_context_window.json
|
|
@@ -9,7 +9,7 @@ Network failure or invalid response → fall back to
|
|
|
9
9
|
always written. Stdlib only; no extra dependency.
|
|
10
10
|
|
|
11
11
|
Usage:
|
|
12
|
-
python3 scripts/update_prices.py # writes agents/.agent-prices.md
|
|
12
|
+
python3 scripts/update_prices.py # writes agents/runtime/.agent-prices.md
|
|
13
13
|
python3 scripts/update_prices.py --check # exit 1 if file is stale
|
|
14
14
|
"""
|
|
15
15
|
|
|
@@ -81,7 +81,8 @@ def _to_rows_from_litellm(payload: dict[str, dict[str, object]]) -> list[tuple[s
|
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
def refresh(path: Path = PRICES_FILE) -> str:
|
|
84
|
-
"""Write a fresh `agents/.agent-prices.md`. Returns the source label used."""
|
|
84
|
+
"""Write a fresh `agents/runtime/.agent-prices.md`. Returns the source label used."""
|
|
85
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
85
86
|
payload = _fetch_litellm()
|
|
86
87
|
if payload is not None:
|
|
87
88
|
rows = _to_rows_from_litellm(payload)
|
|
@@ -11,7 +11,7 @@ Wired to multiple events via the manifest:
|
|
|
11
11
|
- post_tool_use → inspect tool + command, record verifications
|
|
12
12
|
- stop → record stop fired (claim-done window)
|
|
13
13
|
|
|
14
|
-
Output: `agents/state/verify-before-complete.json`
|
|
14
|
+
Output: `agents/runtime/state/verify-before-complete.json`
|
|
15
15
|
{
|
|
16
16
|
"schema_version": 1,
|
|
17
17
|
"session_id": "<str>",
|
|
@@ -219,7 +219,7 @@ def verify_concept(name: str) -> bool:
|
|
|
219
219
|
try:
|
|
220
220
|
r = subprocess.run(
|
|
221
221
|
["git", "grep", "-l", "-w", name, "--",
|
|
222
|
-
".agent-src.uncompressed/", "docs/", "scripts/", "agents/contexts/"],
|
|
222
|
+
".agent-src.uncompressed/", "docs/", "scripts/", "agents/settings/contexts/"],
|
|
223
223
|
cwd=REPO, capture_output=True, text=True, timeout=15,
|
|
224
224
|
)
|
|
225
225
|
return bool(r.stdout.strip())
|