@event4u/agent-config 2.25.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 +13 -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 +14 -2
- 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 +15 -2
- 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 +15 -3
- 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 +13 -0
- package/.agent-src/commands/module/explore.md +23 -7
- 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 +64 -20
- package/.agent-src/commands/optimize/rtk.md +68 -30
- 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 +98 -10
- 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 +61 -27
- 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 +14 -1
- 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 +6 -9
- package/.agent-src/contexts/authority/scope-mechanics.md +11 -0
- package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -1
- package/.agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/.agent-src/contexts/contracts/research-schema.md +1 -1
- package/.agent-src/contexts/documentation-hierarchy.md +2 -2
- package/.agent-src/contexts/execution/interrupt-examples.md +34 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +19 -0
- package/.agent-src/contexts/skills-and-commands.md +2 -2
- 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 +37 -11
- package/.agent-src/rules/artifact-drafting-protocol.md +19 -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 +40 -0
- package/.agent-src/rules/augment-source-of-truth.md +15 -3
- package/.agent-src/rules/autonomous-execution.md +44 -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 +16 -4
- 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 +21 -10
- package/.agent-src/rules/domain-safety-disclaimer.md +126 -0
- package/.agent-src/rules/domain-safety-pii.md +154 -0
- package/.agent-src/rules/domain-safety-retention.md +98 -0
- package/.agent-src/rules/downstream-changes.md +17 -5
- 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 +142 -0
- package/.agent-src/rules/git-history-discipline.md +111 -0
- 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 +19 -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 +32 -18
- 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 +58 -0
- package/.agent-src/rules/verify-before-complete.md +23 -2
- 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 +13 -1
- 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 +29 -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 +70 -154
- package/.agent-src/skills/api-testing/SKILL.md +23 -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 +52 -34
- package/.agent-src/skills/code-review/SKILL.md +53 -36
- 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 +19 -7
- 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 +13 -2
- 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 +22 -5
- 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 +77 -19
- 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 +37 -14
- 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 +13 -1
- 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 +13 -1
- package/.agent-src/skills/file-editor/SKILL.md +57 -19
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +14 -2
- 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 +16 -4
- 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 +199 -0
- package/.agent-src/skills/{dto-creator → laravel-dto}/SKILL.md +19 -6
- 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/{migration-creator → laravel-migration}/SKILL.md +23 -10
- 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 +15 -3
- package/.agent-src/skills/laravel-scheduling/SKILL.md +12 -0
- package/.agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/.agent-src/skills/{websocket → laravel-websocket}/SKILL.md +16 -3
- package/.agent-src/skills/launch-readiness/SKILL.md +12 -2
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +16 -4
- 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 +61 -17
- package/.agent-src/skills/messaging-architecture/SKILL.md +12 -2
- package/.agent-src/skills/migration-architect/SKILL.md +18 -6
- package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +12 -0
- package/.agent-src/skills/module-management/SKILL.md +13 -0
- package/.agent-src/skills/motion-choreographer/SKILL.md +16 -4
- package/.agent-src/skills/multi-tenancy/SKILL.md +29 -10
- 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 +30 -0
- package/.agent-src/skills/php-coder/SKILL.md +12 -0
- package/.agent-src/skills/php-debugging/SKILL.md +40 -0
- package/.agent-src/skills/php-service/SKILL.md +15 -3
- 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 +28 -1
- 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 +98 -60
- 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 +106 -23
- 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 +13 -1
- package/.agent-src/skills/roadmap-writing/SKILL.md +12 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +35 -8
- package/.agent-src/skills/rule-refactor/SKILL.md +157 -0
- package/.agent-src/skills/rule-writing/SKILL.md +46 -8
- 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 +50 -29
- 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 +13 -1
- 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 +16 -4
- package/.agent-src/skills/test-performance/SKILL.md +19 -6
- 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 +36 -27
- 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/copilot-instructions.md +2 -2
- package/.agent-src/templates/rule.md +3 -3
- 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 +6 -5
- package/AGENTS.md +5 -4
- package/CHANGELOG.md +178 -194
- 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 +4 -3
- package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
- package/docs/archive/CHANGELOG-pre-2.25.0.md +191 -0
- package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
- package/docs/catalog.md +77 -84
- 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 +515 -309
- 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 +21 -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/smoke-contracts.md +8 -8
- 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 +6 -5
- 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 +2 -2
- package/docs/guidelines/php/controllers.md +1 -1
- package/docs/guidelines/php/resources.md +1 -1
- package/docs/guidelines/php/validations.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_linear_digest.py +0 -1
- 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.py +348 -0
- package/scripts/lint_framework_leakage_allowlist.json +477 -0
- 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 +9 -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 +46 -1
- package/scripts/schemas/persona.schema.json +1 -1
- package/scripts/schemas/rule.schema.json +44 -4
- package/scripts/schemas/skill.schema.json +46 -1
- package/scripts/score_skill_selection.py +1 -1
- package/scripts/skill_collision_clusters.py +1 -1
- package/scripts/skill_linter.py +62 -9
- 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/kernel.sh +4 -4
- package/scripts/smoke/router.sh +2 -2
- 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 -459
- package/.agent-src/rules/agent-docs.md +0 -20
- package/.agent-src/rules/augment-portability.md +0 -23
- package/.agent-src/rules/capture-learnings.md +0 -19
- package/.agent-src/rules/docs-sync.md +0 -20
- package/.agent-src/rules/domain-safety-disclaimer-consulting.md +0 -52
- package/.agent-src/rules/domain-safety-disclaimer-financial.md +0 -54
- package/.agent-src/rules/domain-safety-disclaimer-legal.md +0 -49
- package/.agent-src/rules/domain-safety-disclaimer-medical.md +0 -56
- package/.agent-src/rules/domain-safety-export-redact.md +0 -65
- package/.agent-src/rules/domain-safety-logging-pii-floor.md +0 -55
- package/.agent-src/rules/domain-safety-pii-finance.md +0 -57
- package/.agent-src/rules/domain-safety-pii-marketing.md +0 -60
- package/.agent-src/rules/domain-safety-pii-recruiting.md +0 -56
- package/.agent-src/rules/domain-safety-pii-support.md +0 -57
- package/.agent-src/rules/domain-safety-retention-finance.md +0 -48
- package/.agent-src/rules/domain-safety-retention-support.md +0 -55
- package/.agent-src/rules/e2e-testing.md +0 -19
- package/.agent-src/rules/no-unsolicited-rebase.md +0 -107
- package/.agent-src/rules/post-push-rewrite-discipline.md +0 -70
|
@@ -4,21 +4,23 @@
|
|
|
4
4
|
Council artefacts (questions, responses, sessions) belong in three
|
|
5
5
|
canonical directories under `agents/`:
|
|
6
6
|
|
|
7
|
-
- agents/council
|
|
8
|
-
- agents/council
|
|
9
|
-
- agents/council
|
|
7
|
+
- agents/runtime/council/questions/<topic-slug>.md (paired with roadmap/ADR)
|
|
8
|
+
- agents/runtime/council/responses/<topic-slug>.json (paired with question)
|
|
9
|
+
- agents/runtime/council/sessions/<UTC-timestamp>.json (ad-hoc sessions)
|
|
10
10
|
|
|
11
11
|
The three canonical dirs are gitignored — the linter therefore only
|
|
12
12
|
catches **misplacement**, not naming-conventions inside the dirs:
|
|
13
13
|
|
|
14
14
|
- Files at agents/ root with a council-* or .council-* prefix
|
|
15
|
-
(e.g. agents/council-
|
|
15
|
+
(e.g. agents/council-foo.md, agents/.council-foo.md).
|
|
16
16
|
- council-* files under any other subdirectory of agents/.
|
|
17
17
|
|
|
18
|
-
`agents/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
`agents/evidence/audits/` is exempt — historical audit bundles are cohesive,
|
|
19
|
+
checked-in narratives (the canonical council dirs are gitignored)
|
|
20
|
+
and may legitimately include council-* artefacts as part of the
|
|
21
|
+
audit's evidence trail. `agents/runtime/` is exempt too — the
|
|
22
|
+
canonical council dirs live at `agents/runtime/council/{questions,
|
|
23
|
+
responses,sessions}/` and the whole `runtime/` tree is gitignored.
|
|
22
24
|
|
|
23
25
|
Failure modes are enforced by `.agent-src.uncompressed/skills/ai-council/SKILL.md`
|
|
24
26
|
§ "Output path convention".
|
|
@@ -40,15 +42,17 @@ from pathlib import Path
|
|
|
40
42
|
QUIET = "--quiet" in sys.argv
|
|
41
43
|
|
|
42
44
|
AGENTS_ROOT = Path("agents")
|
|
45
|
+
# Canonical council dirs now live under agents/runtime/council/.
|
|
46
|
+
# Stored as relative POSIX paths from AGENTS_ROOT.
|
|
43
47
|
CANONICAL_DIRS = {
|
|
44
|
-
"council
|
|
45
|
-
"council
|
|
46
|
-
"council
|
|
48
|
+
"runtime/council/questions": ".md",
|
|
49
|
+
"runtime/council/responses": ".json",
|
|
50
|
+
"runtime/council/sessions": ".json",
|
|
47
51
|
}
|
|
48
|
-
#
|
|
49
|
-
# `
|
|
50
|
-
#
|
|
51
|
-
EXEMPT_DIR_PREFIXES = ("
|
|
52
|
+
# Top-level subdirectories whose contents are exempt from the layout
|
|
53
|
+
# check. `audits/` covers historical audit bundles. `runtime/` is the
|
|
54
|
+
# gitignored volatile tree (canonical council dirs live there).
|
|
55
|
+
EXEMPT_DIR_PREFIXES = ("audits", "runtime")
|
|
52
56
|
# A council artefact is a file whose name starts with `council-` or
|
|
53
57
|
# `.council-`. This intentionally excludes roadmaps like
|
|
54
58
|
# `road-to-ai-council.md` whose stem only contains the word "council".
|
|
@@ -71,8 +75,8 @@ def find_violations(root: Path) -> list[str]:
|
|
|
71
75
|
if is_council_artefact(path):
|
|
72
76
|
findings.append(
|
|
73
77
|
f"{path}: council artefact at agents/ root — move to "
|
|
74
|
-
f"agents/council
|
|
75
|
-
f"or agents/council
|
|
78
|
+
f"agents/runtime/council/questions/, agents/runtime/council/responses/, "
|
|
79
|
+
f"or agents/runtime/council/sessions/ per ai-council § Output path "
|
|
76
80
|
f"convention."
|
|
77
81
|
)
|
|
78
82
|
|
|
@@ -86,14 +90,16 @@ def find_violations(root: Path) -> list[str]:
|
|
|
86
90
|
continue
|
|
87
91
|
if len(rel.parts) == 1:
|
|
88
92
|
continue # already handled above
|
|
89
|
-
|
|
93
|
+
rel_posix = rel.as_posix()
|
|
94
|
+
if any(rel_posix.startswith(d + "/") for d in CANONICAL_DIRS):
|
|
90
95
|
continue
|
|
91
96
|
if rel.parts[0].startswith(EXEMPT_DIR_PREFIXES):
|
|
92
97
|
continue
|
|
93
98
|
findings.append(
|
|
94
99
|
f"{path}: council artefact in non-canonical directory "
|
|
95
|
-
f"agents/{rel.parts[0]}/ — only
|
|
96
|
-
f"council
|
|
100
|
+
f"agents/{rel.parts[0]}/ — only "
|
|
101
|
+
f"agents/runtime/council/{{questions,responses,sessions}}/ "
|
|
102
|
+
f"are allowed."
|
|
97
103
|
)
|
|
98
104
|
|
|
99
105
|
return findings
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""CI guard for the council clause of the `no-roadmap-references` rule.
|
|
3
3
|
|
|
4
|
-
Council artefacts under `agents/council
|
|
4
|
+
Council artefacts under `agents/runtime/council/{questions,responses,sessions}/`
|
|
5
5
|
are gitignored, local-only, and auto-pruned. A link to a specific
|
|
6
6
|
council file rots three ways: gitignored (not in cloned repo),
|
|
7
7
|
pruned after the retention window (gone even locally), and the
|
|
@@ -19,7 +19,7 @@ are exempt structurally — see STRUCTURAL_CARVEOUTS below — because
|
|
|
19
19
|
they encode immutable decision provenance, not transient drafting
|
|
20
20
|
state. Anything else needs an inline pragma at the end of the line:
|
|
21
21
|
|
|
22
|
-
`agents/council
|
|
22
|
+
`agents/runtime/council/sessions/...json` <!-- council-ref-allowed: <reason> -->
|
|
23
23
|
|
|
24
24
|
Exit codes:
|
|
25
25
|
0 — no forbidden references.
|
|
@@ -44,7 +44,7 @@ ROOT = Path(".")
|
|
|
44
44
|
# must NOT contain `<` or `>` (placeholders), must NOT contain backticks
|
|
45
45
|
# or quotes (those are line delimiters, not path content).
|
|
46
46
|
PATTERN = re.compile(
|
|
47
|
-
r"agents/council
|
|
47
|
+
r"agents/runtime/council/(?:questions|responses|sessions)/"
|
|
48
48
|
r"([^\s\"'<>)\]`]+\.(?:md|json))"
|
|
49
49
|
)
|
|
50
50
|
|
|
@@ -53,8 +53,8 @@ PATTERN = re.compile(
|
|
|
53
53
|
SCAN_ROOTS = (
|
|
54
54
|
".agent-src.uncompressed",
|
|
55
55
|
"agents/roadmaps",
|
|
56
|
-
"agents/contexts",
|
|
57
|
-
"agents/docs",
|
|
56
|
+
"agents/settings/contexts",
|
|
57
|
+
"agents/reference/docs",
|
|
58
58
|
"docs/contracts",
|
|
59
59
|
"docs/decisions",
|
|
60
60
|
"docs/guidelines",
|
|
@@ -68,7 +68,7 @@ ALLOWLIST_PREFIXES: tuple[str, ...] = (
|
|
|
68
68
|
"agents/roadmaps/archive/",
|
|
69
69
|
# Working comparison docs — forward-refs to planned artefacts (mirrors
|
|
70
70
|
# the SKIP_DIRS contract in scripts/check_references.py).
|
|
71
|
-
"agents/analysis/",
|
|
71
|
+
"agents/evidence/analysis/",
|
|
72
72
|
# The rule itself documents forbidden vs. allowed forms.
|
|
73
73
|
".agent-src.uncompressed/rules/no-roadmap-references.md",
|
|
74
74
|
# ai-council skill documents the output-path schema.
|
|
@@ -87,7 +87,7 @@ INLINE_PRAGMA = re.compile(r"<!--\s*council-ref-allowed:[^>]*-->")
|
|
|
87
87
|
# Structural carve-outs — (source_pattern, target_pattern) pairs where
|
|
88
88
|
# the reference is immutable decision provenance rather than transient
|
|
89
89
|
# drafting state. Driven by the 2026-05-14 P3.4 council round
|
|
90
|
-
# (agents/council
|
|
90
|
+
# (agents/runtime/council/sessions/2026-05-14-p3-4-references/synthesis.md).
|
|
91
91
|
#
|
|
92
92
|
# Each entry: source file matches `source` regex AND the captured
|
|
93
93
|
# reference path matches `target` regex → reference is allowed without
|
|
@@ -97,15 +97,15 @@ STRUCTURAL_CARVEOUTS: tuple[tuple[re.Pattern[str], re.Pattern[str]], ...] = (
|
|
|
97
97
|
# the question file is a frozen function-parameter / spend-gate
|
|
98
98
|
# input, not a documentation link.
|
|
99
99
|
(
|
|
100
|
-
re.compile(r"^agents/contexts/evaluation-[^/]+\.md$"),
|
|
101
|
-
re.compile(r"^agents/council
|
|
100
|
+
re.compile(r"^agents/settings/contexts/evaluation-[^/]+\.md$"),
|
|
101
|
+
re.compile(r"^agents/runtime/council/questions/[^/]+\.md$"),
|
|
102
102
|
),
|
|
103
103
|
# (b) contract → council-session-synthesis:
|
|
104
104
|
# the synthesis file is the audit-trail receipt the contract cites
|
|
105
105
|
# as decision provenance; the contract inlines the decision body.
|
|
106
106
|
(
|
|
107
107
|
re.compile(r"^docs/contracts/[^/]+\.md$"),
|
|
108
|
-
re.compile(r"^agents/council
|
|
108
|
+
re.compile(r"^agents/runtime/council/sessions/[^/]+/synthesis\.md$"),
|
|
109
109
|
),
|
|
110
110
|
)
|
|
111
111
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Determinism check — runs the discovery scanner twice and diffs the output.
|
|
3
|
+
|
|
4
|
+
The `generated_at` field is normalised because it intentionally captures
|
|
5
|
+
wall-clock time. Everything else (artefact order, unassigned order,
|
|
6
|
+
checksum) MUST be byte-identical between runs.
|
|
7
|
+
|
|
8
|
+
CLI:
|
|
9
|
+
python scripts/check_discovery_determinism.py
|
|
10
|
+
|
|
11
|
+
Exit codes:
|
|
12
|
+
0 byte-identical (apart from generated_at)
|
|
13
|
+
1 drift detected
|
|
14
|
+
"""
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
import json
|
|
18
|
+
import subprocess
|
|
19
|
+
import sys
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
|
|
22
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
23
|
+
SCANNER = ROOT / "scripts" / "build_discovery_manifest.py"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _run() -> dict:
|
|
27
|
+
proc = subprocess.run(
|
|
28
|
+
[sys.executable, str(SCANNER)],
|
|
29
|
+
capture_output=True,
|
|
30
|
+
text=True,
|
|
31
|
+
check=False,
|
|
32
|
+
cwd=str(ROOT),
|
|
33
|
+
)
|
|
34
|
+
if proc.returncode != 0:
|
|
35
|
+
print(proc.stderr, file=sys.stderr)
|
|
36
|
+
raise SystemExit(f"scanner failed: exit {proc.returncode}")
|
|
37
|
+
return json.loads(proc.stdout)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _normalise(manifest: dict) -> dict:
|
|
41
|
+
out = dict(manifest)
|
|
42
|
+
out["generated_at"] = "<normalised>"
|
|
43
|
+
return out
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def main() -> int:
|
|
47
|
+
a = _normalise(_run())
|
|
48
|
+
b = _normalise(_run())
|
|
49
|
+
sa = json.dumps(a, indent=2, sort_keys=True, ensure_ascii=False)
|
|
50
|
+
sb = json.dumps(b, indent=2, sort_keys=True, ensure_ascii=False)
|
|
51
|
+
if sa != sb:
|
|
52
|
+
print("DRIFT: scanner produced different output across two runs", file=sys.stderr)
|
|
53
|
+
# show first divergence
|
|
54
|
+
for i, (la, lb) in enumerate(zip(sa.splitlines(), sb.splitlines()), 1):
|
|
55
|
+
if la != lb:
|
|
56
|
+
print(f" line {i}:", file=sys.stderr)
|
|
57
|
+
print(f" run1: {la}", file=sys.stderr)
|
|
58
|
+
print(f" run2: {lb}", file=sys.stderr)
|
|
59
|
+
break
|
|
60
|
+
return 1
|
|
61
|
+
# also assert the checksum survives the round-trip
|
|
62
|
+
if a["checksum"] != b["checksum"]:
|
|
63
|
+
print(f"DRIFT: checksum changed ({a['checksum']} vs {b['checksum']})", file=sys.stderr)
|
|
64
|
+
return 1
|
|
65
|
+
print(f"OK: deterministic across 2 runs, checksum {a['checksum'][:24]}...")
|
|
66
|
+
return 0
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
if __name__ == "__main__":
|
|
70
|
+
sys.exit(main())
|
|
@@ -20,7 +20,7 @@ Inputs:
|
|
|
20
20
|
Exit codes: 0 = pass · 1 = fail (> 1 kernel rule, no override) ·
|
|
21
21
|
3 = internal error.
|
|
22
22
|
|
|
23
|
-
Source: `agents/contexts/adr-always-budget-relief-strategy.md`.
|
|
23
|
+
Source: `agents/settings/contexts/adr-always-budget-relief-strategy.md`.
|
|
24
24
|
"""
|
|
25
25
|
from __future__ import annotations
|
|
26
26
|
|
|
@@ -140,7 +140,7 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
140
140
|
file=sys.stderr,
|
|
141
141
|
)
|
|
142
142
|
print(
|
|
143
|
-
" Source: agents/contexts/adr-always-budget-relief-strategy.md "
|
|
143
|
+
" Source: agents/settings/contexts/adr-always-budget-relief-strategy.md "
|
|
144
144
|
"(Phase 4.2).",
|
|
145
145
|
file=sys.stderr,
|
|
146
146
|
)
|
|
@@ -34,7 +34,7 @@ STABLE_TREES = (
|
|
|
34
34
|
".agent-src.uncompressed/contexts",
|
|
35
35
|
".agent-src.uncompressed/templates",
|
|
36
36
|
".agent-src.uncompressed/personas",
|
|
37
|
-
"agents/contexts",
|
|
37
|
+
"agents/settings/contexts",
|
|
38
38
|
"docs/guidelines",
|
|
39
39
|
"docs/contracts",
|
|
40
40
|
)
|
|
@@ -128,7 +128,7 @@ def format_text(violations: list[Violation]) -> str:
|
|
|
128
128
|
for v in violations:
|
|
129
129
|
lines.append(f" 🔴 {v.file}:{v.line} → {v.match}")
|
|
130
130
|
lines.append(
|
|
131
|
-
"\nPromote the durable conclusion to agents/contexts/ and cite that "
|
|
131
|
+
"\nPromote the durable conclusion to agents/settings/contexts/ and cite that "
|
|
132
132
|
"instead. See .agent-src.uncompressed/rules/no-roadmap-references.md."
|
|
133
133
|
)
|
|
134
134
|
return "\n".join(lines)
|
|
@@ -7,7 +7,7 @@ guard fails CI if a new probe lands anywhere else in the tree.
|
|
|
7
7
|
|
|
8
8
|
Rationale: one-off council probes / phase-specific measurements are
|
|
9
9
|
inherently single-purpose; their durable artefact is the council
|
|
10
|
-
session under ``agents/council
|
|
10
|
+
session under ``agents/runtime/council/sessions/``. Keeping them in the
|
|
11
11
|
archive prevents the ``scripts/`` root from accumulating noise and
|
|
12
12
|
makes their lifecycle visible (folder == month archived).
|
|
13
13
|
|
|
@@ -14,7 +14,7 @@ Rules:
|
|
|
14
14
|
- target stability=experimental → ERROR. Public surface MUST NOT link
|
|
15
15
|
to experimental contracts.
|
|
16
16
|
- target outside docs/contracts/ but referenced for contract-shaped
|
|
17
|
-
intent (links into agents/contexts/*.md from public files) → ERROR.
|
|
17
|
+
intent (links into agents/settings/contexts/*.md from public files) → ERROR.
|
|
18
18
|
- target file missing → ERROR.
|
|
19
19
|
- target file under docs/contracts/ without `stability:` frontmatter
|
|
20
20
|
(except STABILITY.md itself) → ERROR.
|
|
@@ -100,7 +100,7 @@ def scan_file(public_file: Path, contracts: dict[Path, str | None]) -> list[Viol
|
|
|
100
100
|
continue
|
|
101
101
|
if target.parts[:2] == ("agents", "contexts") and target.suffix == ".md":
|
|
102
102
|
violations.append(Violation(str(public_file), lineno, href,
|
|
103
|
-
"public surface MUST NOT link into agents/contexts/ — move target to docs/contracts/",
|
|
103
|
+
"public surface MUST NOT link into agents/settings/contexts/ — move target to docs/contracts/",
|
|
104
104
|
"error"))
|
|
105
105
|
continue
|
|
106
106
|
if target.parts[:2] != ("docs", "contracts") or target.suffix != ".md":
|
|
@@ -34,10 +34,11 @@ class BrokenRef:
|
|
|
34
34
|
SCAN_DIRS = [".agent-src", "agents"]
|
|
35
35
|
SKIP_DIRS = [
|
|
36
36
|
"agents/roadmaps/archive", # archived roadmaps have historical refs
|
|
37
|
-
"agents/council
|
|
38
|
-
"agents/council
|
|
39
|
-
"agents/council
|
|
40
|
-
"agents/analysis", # plate-comparison working docs — forward-refs to planned artifacts
|
|
37
|
+
"agents/runtime/council/sessions", # per-user audit trail (gitignored), captured provider output
|
|
38
|
+
"agents/runtime/council/responses", # paired council output (gitignored), captured provider output
|
|
39
|
+
"agents/runtime/council/questions", # design Q&A trail — forward-refs to planned artifacts
|
|
40
|
+
"agents/evidence/analysis", # plate-comparison working docs — forward-refs to planned artifacts
|
|
41
|
+
"agents/runtime", # volatile / machine-generated artefacts (gitignored)
|
|
41
42
|
]
|
|
42
43
|
|
|
43
44
|
# Per-file opt-out marker. When present in the first 10 lines of a .md
|
|
@@ -90,14 +91,14 @@ _SKIP_NAMES = {"the", "a", "an", "this", "that", "your", "my", "no", "any", "eac
|
|
|
90
91
|
|
|
91
92
|
# Paths that are clearly example/template placeholders (not real references)
|
|
92
93
|
EXAMPLE_PATH_PATTERNS = [
|
|
93
|
-
re.compile(r"agents/analysis/"), # project-analyze output template
|
|
94
|
+
re.compile(r"agents/evidence/analysis/"), # project-analyze output template
|
|
94
95
|
re.compile(r"agents/roadmaps/template"), # template reference
|
|
95
96
|
re.compile(r"agents/overrides/"), # override examples
|
|
96
97
|
re.compile(r"commands/old-cmd"), # example placeholder
|
|
97
98
|
re.compile(r"agents/README"), # README reference (may not exist in package)
|
|
98
99
|
re.compile(r"agents/index[\w.-]*\.md"), # planned auto-generated artefact index (F5)
|
|
99
|
-
re.compile(r"agents/docs/"), # project-specific docs (not in package)
|
|
100
|
-
re.compile(r"agents/contexts/"), # project-specific contexts (not in package)
|
|
100
|
+
re.compile(r"agents/reference/docs/"), # project-specific docs (not in package)
|
|
101
|
+
re.compile(r"agents/settings/contexts/"), # project-specific contexts (not in package)
|
|
101
102
|
re.compile(r"agents/gates"), # project-specific policy docs
|
|
102
103
|
re.compile(r"agents/features/"), # project-specific feature docs
|
|
103
104
|
re.compile(r"agents/authentication"), # project-specific auth docs
|
|
@@ -324,20 +325,12 @@ def check_file(filepath: Path, artifacts: dict[str, set[str]], root: Path) -> Li
|
|
|
324
325
|
if (prefix / rel).exists():
|
|
325
326
|
resolved = True
|
|
326
327
|
break
|
|
327
|
-
# `agents/state/*.json` are runtime hook state files
|
|
328
|
-
#
|
|
329
|
-
#
|
|
330
|
-
#
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
# `agents/.agent-prices.md` is a runtime-bootstrapped pricing
|
|
334
|
-
# cache — gitignored (.gitignore:/agents/.agent-prices.md),
|
|
335
|
-
# auto-generated by scripts/ai_council/pricing.py from
|
|
336
|
-
# _default_prices.py if missing. Same class as agents/state/*
|
|
337
|
-
# but a single named file, not a directory pattern, so the
|
|
338
|
-
# carve-out stays narrow.
|
|
339
|
-
if not resolved and raw_ref == "agents/.agent-prices.md":
|
|
340
|
-
resolved = True
|
|
328
|
+
# `agents/runtime/state/*.json` are runtime hook state files
|
|
329
|
+
# under the gitignored runtime tree. `agents/runtime/.agent-prices.md`
|
|
330
|
+
# is the runtime-bootstrapped pricing cache, auto-generated by
|
|
331
|
+
# scripts/ai_council/pricing.py from _default_prices.py if
|
|
332
|
+
# missing. The SKIP_DIRS check above already swallows refs
|
|
333
|
+
# into `agents/runtime/`, so no extra carve-out is needed.
|
|
341
334
|
if not resolved:
|
|
342
335
|
broken.append(BrokenRef(
|
|
343
336
|
file=str(filepath), line=i, ref=m.group(1),
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Assert dist/discovery/discovery-manifest.json ships with the package.
|
|
3
|
+
|
|
4
|
+
Phase 5.3 of R3 — wired as a `prepublishOnly` hook in package.json and
|
|
5
|
+
re-used by the publish workflow. Fails loudly when:
|
|
6
|
+
- dist/discovery/discovery-manifest.json is missing
|
|
7
|
+
- the file is empty or not valid JSON
|
|
8
|
+
- the artefacts array is empty
|
|
9
|
+
- the summary sibling is missing (release tarball ships both)
|
|
10
|
+
|
|
11
|
+
The intent is that `npm publish` (and `npm pack`) refuse to produce a
|
|
12
|
+
silently-broken artifact where the discovery contract surface
|
|
13
|
+
(ADR-013) is absent from the consumer install path.
|
|
14
|
+
"""
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
import json
|
|
18
|
+
import sys
|
|
19
|
+
from pathlib import Path
|
|
20
|
+
|
|
21
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
22
|
+
MANIFEST = ROOT / "dist" / "discovery" / "discovery-manifest.json"
|
|
23
|
+
SUMMARY = ROOT / "dist" / "discovery" / "discovery-manifest.summary.md"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _die(msg: str) -> int:
|
|
27
|
+
sys.stderr.write(f"check-release-discovery: {msg}\n")
|
|
28
|
+
sys.stderr.write(
|
|
29
|
+
" hint: run `python3 scripts/build_discovery_manifest.py --write --strict`"
|
|
30
|
+
" before `npm pack` / `npm publish`.\n"
|
|
31
|
+
)
|
|
32
|
+
return 1
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def main() -> int:
|
|
36
|
+
if not MANIFEST.is_file():
|
|
37
|
+
return _die(f"{MANIFEST.relative_to(ROOT)} is missing.")
|
|
38
|
+
raw = MANIFEST.read_text(encoding="utf-8").strip()
|
|
39
|
+
if not raw:
|
|
40
|
+
return _die(f"{MANIFEST.relative_to(ROOT)} is empty.")
|
|
41
|
+
try:
|
|
42
|
+
data = json.loads(raw)
|
|
43
|
+
except json.JSONDecodeError as exc:
|
|
44
|
+
return _die(f"{MANIFEST.relative_to(ROOT)} is not valid JSON: {exc}.")
|
|
45
|
+
artefacts = data.get("artefacts")
|
|
46
|
+
if not isinstance(artefacts, list) or not artefacts:
|
|
47
|
+
return _die(
|
|
48
|
+
f"{MANIFEST.relative_to(ROOT)} carries no artefacts — discovery"
|
|
49
|
+
" scanner produced an empty manifest."
|
|
50
|
+
)
|
|
51
|
+
if not SUMMARY.is_file():
|
|
52
|
+
return _die(f"{SUMMARY.relative_to(ROOT)} is missing.")
|
|
53
|
+
sys.stdout.write(
|
|
54
|
+
f"check-release-discovery: OK ({len(artefacts)} artefacts in"
|
|
55
|
+
f" {MANIFEST.relative_to(ROOT)})\n"
|
|
56
|
+
)
|
|
57
|
+
return 0
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
if __name__ == "__main__":
|
|
61
|
+
raise SystemExit(main())
|
package/scripts/ci_summary.py
CHANGED
|
@@ -6,7 +6,7 @@ Consumes JSON files produced by `scripts/runtime_dispatcher.py run
|
|
|
6
6
|
--output FILE`. Each file is an ExecutionResult dump (see runtime_handler).
|
|
7
7
|
|
|
8
8
|
Usage:
|
|
9
|
-
python3 scripts/ci_summary.py --runs agents/reports/runs [--title TITLE]
|
|
9
|
+
python3 scripts/ci_summary.py --runs agents/runtime/reports/runs [--title TITLE]
|
|
10
10
|
|
|
11
11
|
Writes to $GITHUB_STEP_SUMMARY if the environment variable is set,
|
|
12
12
|
otherwise prints the markdown to stdout. Missing or empty run
|
|
@@ -110,7 +110,7 @@ def write_output(summary: str) -> bool:
|
|
|
110
110
|
def main() -> int:
|
|
111
111
|
parser = argparse.ArgumentParser(description="Render CI summary from dispatcher runs")
|
|
112
112
|
parser.add_argument(
|
|
113
|
-
"--runs", type=Path, default=Path("agents/reports/runs"),
|
|
113
|
+
"--runs", type=Path, default=Path("agents/runtime/reports/runs"),
|
|
114
114
|
help="Directory containing ExecutionResult JSON files",
|
|
115
115
|
)
|
|
116
116
|
parser.add_argument(
|
package/scripts/ci_time_ratio.py
CHANGED
|
@@ -17,7 +17,7 @@ Threshold rule (Round-3 Sonnet protocol):
|
|
|
17
17
|
- Median ratio < 3× across all classes → structural overhead acceptable
|
|
18
18
|
|
|
19
19
|
Output: human-readable table on stdout + JSON to
|
|
20
|
-
`agents/reports/ci-time-ratio.json`.
|
|
20
|
+
`agents/runtime/reports/ci-time-ratio.json`.
|
|
21
21
|
|
|
22
22
|
Usage:
|
|
23
23
|
python3 scripts/ci_time_ratio.py --limit 30
|
|
@@ -7,7 +7,7 @@ ranking, suppresses cooled-down suggestions, and renders a numbered
|
|
|
7
7
|
options block. It never executes a command — the user pick is what
|
|
8
8
|
triggers the standard slash flow.
|
|
9
9
|
|
|
10
|
-
See `agents/contexts/command-suggestion-eligibility.md` for the
|
|
10
|
+
See `agents/settings/contexts/command-suggestion-eligibility.md` for the
|
|
11
11
|
locked eligibility table and `road-to-context-aware-command-suggestion`
|
|
12
12
|
for the full design.
|
|
13
13
|
"""
|
|
@@ -6,7 +6,7 @@ freshness threshold, the 3-failure stop, and tool-loop detection. The
|
|
|
6
6
|
agent's job shrinks from "remember three counters" to "read this file
|
|
7
7
|
before responding".
|
|
8
8
|
|
|
9
|
-
Output: `agents/state/context-hygiene.json`
|
|
9
|
+
Output: `agents/runtime/state/context-hygiene.json`
|
|
10
10
|
{
|
|
11
11
|
"tool_calls": <int>, // running PostToolUse count
|
|
12
12
|
"consecutive_same_tool": <int>, // includes the latest call
|
|
@@ -31,7 +31,7 @@ import sys
|
|
|
31
31
|
from pathlib import Path
|
|
32
32
|
|
|
33
33
|
# Re-use the shared atomic-write helper so concerns honour the single
|
|
34
|
-
# `agents/state/.dispatcher.lock` discipline (hook-architecture-v1.md
|
|
34
|
+
# `agents/runtime/state/.dispatcher.lock` discipline (hook-architecture-v1.md
|
|
35
35
|
# § Concurrency, Phase 7.4).
|
|
36
36
|
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
|
37
37
|
from hooks.state_io import atomic_write_json # noqa: E402
|