@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
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Positioning consistency lint for event4u/agent-config.
|
|
3
|
+
|
|
4
|
+
Asserts that three public-positioning surfaces agree on the canonical
|
|
5
|
+
phrasing and that every advertised GitHub topic is discoverable in the
|
|
6
|
+
README body (literally or through `equivalents:` paraphrases).
|
|
7
|
+
|
|
8
|
+
Sources:
|
|
9
|
+
- README.md — canonical phrasing (H1 + first blockquote)
|
|
10
|
+
- package.json — `description` field
|
|
11
|
+
- .github/about.yml — `description` field
|
|
12
|
+
- .github/topics.yml — `topics:` + optional `equivalents:` map
|
|
13
|
+
|
|
14
|
+
Failure mode is a diff, not a stack trace. See R5 Phase 3 in
|
|
15
|
+
agents/roadmaps/strategic-visibility-mcp-topics-positioning.md.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
import argparse
|
|
21
|
+
import json
|
|
22
|
+
import re
|
|
23
|
+
import sys
|
|
24
|
+
from pathlib import Path
|
|
25
|
+
|
|
26
|
+
try:
|
|
27
|
+
import yaml
|
|
28
|
+
except ImportError:
|
|
29
|
+
sys.stderr.write("❌ PyYAML is required: pip3 install pyyaml\n")
|
|
30
|
+
sys.exit(2)
|
|
31
|
+
|
|
32
|
+
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
33
|
+
README = REPO_ROOT / "README.md"
|
|
34
|
+
PACKAGE_JSON = REPO_ROOT / "package.json"
|
|
35
|
+
ABOUT_YML = REPO_ROOT / ".github" / "about.yml"
|
|
36
|
+
TOPICS_YML = REPO_ROOT / ".github" / "topics.yml"
|
|
37
|
+
|
|
38
|
+
# Canonical anchor: the right-side phrase of the README H1
|
|
39
|
+
# ("Agent Config — Universal AI Agent OS" → "Universal AI Agent OS").
|
|
40
|
+
# This is the substring that MUST appear in the other two surfaces.
|
|
41
|
+
H1_RE = re.compile(r"^#\s+(.+?)\s*$", re.MULTILINE)
|
|
42
|
+
BLOCKQUOTE_RE = re.compile(r"^>\s+(.+?)\s*$", re.MULTILINE)
|
|
43
|
+
DESCRIPTION_MAX = 200
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _read_readme_anchors() -> tuple[str, str, str]:
|
|
47
|
+
text = README.read_text(encoding="utf-8")
|
|
48
|
+
h1_match = H1_RE.search(text)
|
|
49
|
+
if not h1_match:
|
|
50
|
+
raise SystemExit("❌ README.md has no H1 heading")
|
|
51
|
+
h1 = h1_match.group(1)
|
|
52
|
+
# Anchor = the phrase after the em dash, falling back to the whole H1.
|
|
53
|
+
parts = re.split(r"\s+[—–-]\s+", h1, maxsplit=1)
|
|
54
|
+
anchor = parts[1].strip() if len(parts) == 2 else h1.strip()
|
|
55
|
+
|
|
56
|
+
bq_match = BLOCKQUOTE_RE.search(text)
|
|
57
|
+
blockquote = bq_match.group(1).strip() if bq_match else ""
|
|
58
|
+
return h1, anchor, blockquote
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _read_package_description() -> str:
|
|
62
|
+
data = json.loads(PACKAGE_JSON.read_text(encoding="utf-8"))
|
|
63
|
+
return str(data.get("description", "")).strip()
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def _read_about_description() -> str:
|
|
67
|
+
data = yaml.safe_load(ABOUT_YML.read_text(encoding="utf-8")) or {}
|
|
68
|
+
return str(data.get("description", "")).strip()
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def _read_topics() -> tuple[list[str], dict[str, list[str]]]:
|
|
72
|
+
data = yaml.safe_load(TOPICS_YML.read_text(encoding="utf-8")) or {}
|
|
73
|
+
topics = [str(t) for t in data.get("topics", [])]
|
|
74
|
+
equivalents = {str(k): [str(v) for v in vs] for k, vs in (data.get("equivalents") or {}).items()}
|
|
75
|
+
return topics, equivalents
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def _topic_present(readme_lc: str, topic: str, equivalents: dict[str, list[str]]) -> tuple[bool, str | None]:
|
|
79
|
+
needles = [topic, topic.replace("-", " "), topic.replace("-", "")] + equivalents.get(topic, [])
|
|
80
|
+
for n in needles:
|
|
81
|
+
if n and n.lower() in readme_lc:
|
|
82
|
+
return True, n
|
|
83
|
+
return False, None
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def main() -> int:
|
|
87
|
+
parser = argparse.ArgumentParser(description="Positioning consistency lint.")
|
|
88
|
+
parser.add_argument("--quiet", action="store_true", help="Suppress success output.")
|
|
89
|
+
args = parser.parse_args()
|
|
90
|
+
|
|
91
|
+
h1, anchor, blockquote = _read_readme_anchors()
|
|
92
|
+
pkg_desc = _read_package_description()
|
|
93
|
+
about_desc = _read_about_description()
|
|
94
|
+
topics, equivalents = _read_topics()
|
|
95
|
+
|
|
96
|
+
errors: list[str] = []
|
|
97
|
+
anchor_lc = anchor.lower()
|
|
98
|
+
if anchor_lc not in pkg_desc.lower():
|
|
99
|
+
errors.append("package.json.description missing canonical anchor")
|
|
100
|
+
if anchor_lc not in about_desc.lower():
|
|
101
|
+
errors.append(".github/about.yml description missing canonical anchor")
|
|
102
|
+
if len(pkg_desc) > DESCRIPTION_MAX:
|
|
103
|
+
errors.append(f"package.json.description is {len(pkg_desc)} chars (max {DESCRIPTION_MAX})")
|
|
104
|
+
if len(about_desc) > DESCRIPTION_MAX:
|
|
105
|
+
errors.append(f".github/about.yml description is {len(about_desc)} chars (max {DESCRIPTION_MAX})")
|
|
106
|
+
|
|
107
|
+
readme_lc = README.read_text(encoding="utf-8").lower()
|
|
108
|
+
missing_topics: list[str] = []
|
|
109
|
+
for topic in topics:
|
|
110
|
+
present, _ = _topic_present(readme_lc, topic, equivalents)
|
|
111
|
+
if not present:
|
|
112
|
+
missing_topics.append(topic)
|
|
113
|
+
|
|
114
|
+
if errors or missing_topics:
|
|
115
|
+
sys.stderr.write("❌ positioning drift detected:\n")
|
|
116
|
+
sys.stderr.write(f" README anchor: {anchor}\n")
|
|
117
|
+
sys.stderr.write(f" package.json.desc: {pkg_desc}\n")
|
|
118
|
+
sys.stderr.write(f" .github/about.yml: {about_desc}\n\n")
|
|
119
|
+
for err in errors:
|
|
120
|
+
sys.stderr.write(f" - {err}\n")
|
|
121
|
+
if missing_topics:
|
|
122
|
+
sys.stderr.write("\n topics absent from README (literal + equivalents):\n")
|
|
123
|
+
for t in missing_topics:
|
|
124
|
+
sys.stderr.write(f" - {t}\n")
|
|
125
|
+
sys.stderr.write(
|
|
126
|
+
"\n Resolve by editing all three to share the canonical anchor,\n"
|
|
127
|
+
" or extending .github/topics.yml's `equivalents:` map\n"
|
|
128
|
+
" (or by removing the topic). The README is the canonical phrasing.\n"
|
|
129
|
+
)
|
|
130
|
+
else:
|
|
131
|
+
sys.stderr.write(
|
|
132
|
+
"\n Resolve by editing all three to share the canonical anchor.\n"
|
|
133
|
+
" The README is the canonical phrasing; the other two follow it.\n"
|
|
134
|
+
)
|
|
135
|
+
return 1
|
|
136
|
+
|
|
137
|
+
if not args.quiet:
|
|
138
|
+
sys.stdout.write(f"✅ positioning consistent (anchor: {anchor!r}, topics: {len(topics)})\n")
|
|
139
|
+
return 0
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
if __name__ == "__main__":
|
|
143
|
+
sys.exit(main())
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
Hard-fails CI if any rule under .agent-src.uncompressed/rules/ lacks a
|
|
5
5
|
`tier:` declaration or uses an unknown tier value. The valid tier set is
|
|
6
|
-
locked by agents/contexts/hardening-pattern.md and the matrix in
|
|
7
|
-
agents/contexts/rule-trigger-matrix.md.
|
|
6
|
+
locked by agents/settings/contexts/hardening-pattern.md and the matrix in
|
|
7
|
+
agents/settings/contexts/rule-trigger-matrix.md.
|
|
8
8
|
|
|
9
9
|
Hooked into `task ci` after `task lint-skills`.
|
|
10
10
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"""Block D · D1 — meta-linter for ``scripts/skill_tools/*.py``.
|
|
3
3
|
|
|
4
4
|
Enforces the four pilot-tool invariants locked by the Block D council
|
|
5
|
-
verdict (`agents/council
|
|
5
|
+
verdict (`agents/runtime/council/responses/block-d-python-tools-pilot-verdict.md`):
|
|
6
6
|
|
|
7
7
|
1. **stdlib-only** — no third-party imports. Internal package imports
|
|
8
8
|
(``scripts.*``) are allowed.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Linter for `.github/topics.yml`.
|
|
3
|
+
|
|
4
|
+
Asserts:
|
|
5
|
+
* file exists and parses as YAML
|
|
6
|
+
* `topics:` is a non-empty list
|
|
7
|
+
* every topic matches `^[a-z0-9][a-z0-9-]*$` and is \u2264 50 chars
|
|
8
|
+
* no duplicates
|
|
9
|
+
* `notes:` key exists (may be empty mapping/string), so the
|
|
10
|
+
rationale slot is never silently dropped
|
|
11
|
+
* `equivalents:` (if present) is a mapping whose keys are all
|
|
12
|
+
listed in `topics:`
|
|
13
|
+
|
|
14
|
+
Roadmap: agents/roadmaps/strategic-visibility-mcp-topics-positioning.md Phase 1.3.
|
|
15
|
+
"""
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
import re
|
|
19
|
+
import sys
|
|
20
|
+
from pathlib import Path
|
|
21
|
+
|
|
22
|
+
import yaml
|
|
23
|
+
|
|
24
|
+
ROOT = Path(__file__).resolve().parents[1]
|
|
25
|
+
TOPICS_FILE = ROOT / ".github" / "topics.yml"
|
|
26
|
+
SLUG_RE = re.compile(r"^[a-z0-9][a-z0-9-]*$")
|
|
27
|
+
QUIET = "--quiet" in sys.argv
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _fail(msg: str) -> None:
|
|
31
|
+
print(f"\u274c topics.yml: {msg}", file=sys.stderr)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def main() -> int:
|
|
35
|
+
if not TOPICS_FILE.exists():
|
|
36
|
+
_fail(f"missing file: {TOPICS_FILE.relative_to(ROOT)}")
|
|
37
|
+
return 1
|
|
38
|
+
try:
|
|
39
|
+
doc = yaml.safe_load(TOPICS_FILE.read_text(encoding="utf-8")) or {}
|
|
40
|
+
except yaml.YAMLError as e:
|
|
41
|
+
_fail(f"YAML parse error: {e}")
|
|
42
|
+
return 1
|
|
43
|
+
|
|
44
|
+
errors: list[str] = []
|
|
45
|
+
|
|
46
|
+
topics = doc.get("topics")
|
|
47
|
+
if not isinstance(topics, list) or not topics:
|
|
48
|
+
errors.append("`topics:` must be a non-empty list")
|
|
49
|
+
topics = []
|
|
50
|
+
|
|
51
|
+
seen: set[str] = set()
|
|
52
|
+
for t in topics:
|
|
53
|
+
if not isinstance(t, str):
|
|
54
|
+
errors.append(f"non-string topic entry: {t!r}")
|
|
55
|
+
continue
|
|
56
|
+
if len(t) > 50:
|
|
57
|
+
errors.append(f"topic too long (>50 chars): {t!r}")
|
|
58
|
+
if not SLUG_RE.match(t):
|
|
59
|
+
errors.append(f"invalid slug (expect ^[a-z0-9][a-z0-9-]*$): {t!r}")
|
|
60
|
+
if t in seen:
|
|
61
|
+
errors.append(f"duplicate topic: {t!r}")
|
|
62
|
+
seen.add(t)
|
|
63
|
+
|
|
64
|
+
if "notes" not in doc:
|
|
65
|
+
errors.append("`notes:` key missing (may be empty, but must be present)")
|
|
66
|
+
|
|
67
|
+
equivalents = doc.get("equivalents")
|
|
68
|
+
if equivalents is not None:
|
|
69
|
+
if not isinstance(equivalents, dict):
|
|
70
|
+
errors.append("`equivalents:` must be a mapping")
|
|
71
|
+
else:
|
|
72
|
+
for key, val in equivalents.items():
|
|
73
|
+
if key not in seen:
|
|
74
|
+
errors.append(f"`equivalents:` key {key!r} not in `topics:`")
|
|
75
|
+
if not isinstance(val, list) or not all(isinstance(v, str) for v in val):
|
|
76
|
+
errors.append(f"`equivalents.{key}` must be a list of strings")
|
|
77
|
+
|
|
78
|
+
if errors:
|
|
79
|
+
for e in errors:
|
|
80
|
+
_fail(e)
|
|
81
|
+
return 1
|
|
82
|
+
|
|
83
|
+
if not QUIET:
|
|
84
|
+
print(f"\u2705 topics.yml: {len(topics)} topic(s), all valid")
|
|
85
|
+
return 0
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
if __name__ == "__main__":
|
|
89
|
+
raise SystemExit(main())
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"name": "chat_history_append",
|
|
25
|
-
"description": "Append one entry to the consumer's chat-history JSONL (`agents/.agent-chat-history`). Path-scoped — writes outside the allowlist raise ValueError. Use `dry_run` to preview the payload without touching the filesystem.",
|
|
25
|
+
"description": "Append one entry to the consumer's chat-history JSONL (`agents/runtime/.agent-chat-history`; `agents/.agent-chat-history` and `.agent-chat-history` accepted for back-compat). Path-scoped — writes outside the allowlist raise ValueError. Use `dry_run` to preview the payload without touching the filesystem.",
|
|
26
26
|
"side_effect": "fs-write",
|
|
27
27
|
"implemented_on": ["stdio"],
|
|
28
28
|
"input_schema": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"properties": {
|
|
31
31
|
"text": {"type": "string"},
|
|
32
32
|
"entry_type": {"type": "string", "description": "Short `t` tag (e.g. note, decision). Defaults to `note`."},
|
|
33
|
-
"path": {"type": "string", "description": "Optional path override. Must resolve to `agents/.agent-chat-history` or `.agent-chat-history` under consumer_root."},
|
|
33
|
+
"path": {"type": "string", "description": "Optional path override. Must resolve to `agents/runtime/.agent-chat-history` (current default), `agents/.agent-chat-history`, or `.agent-chat-history` under consumer_root."},
|
|
34
34
|
"session": {"type": "string"},
|
|
35
35
|
"dry_run": {"type": "boolean", "default": false},
|
|
36
36
|
"min_schema_version": {"type": "integer"}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"name": "chat_history_read",
|
|
44
|
-
"description": "Read recent chat-history entries from `agents/.agent-chat-history
|
|
44
|
+
"description": "Read recent chat-history entries from `agents/runtime/.agent-chat-history` (`agents/.agent-chat-history` accepted for back-compat). Filter by session, limit, or entry-type. Read-only.",
|
|
45
45
|
"side_effect": "ro",
|
|
46
46
|
"implemented_on": ["stdio"],
|
|
47
47
|
"input_schema": {
|
|
@@ -14,7 +14,7 @@ Outcomes:
|
|
|
14
14
|
envelope returned.
|
|
15
15
|
- ``latent_demand`` — caller asked for a tool not in the catalog.
|
|
16
16
|
|
|
17
|
-
The sink writes JSONL to ``agents
|
|
17
|
+
The sink writes JSONL to ``agents/runtime/mcp-telemetry/calls.jsonl`` under the
|
|
18
18
|
consumer root. Failure to write must not break the wire surface: the
|
|
19
19
|
``record_call`` helper swallows OSError + ValueError and emits a single
|
|
20
20
|
warning to stderr.
|
|
@@ -33,7 +33,7 @@ Outcome = Literal["implemented", "stub", "latent_demand"]
|
|
|
33
33
|
|
|
34
34
|
# Stable file location relative to consumer_root. Phase 2 K1 routes
|
|
35
35
|
# this into a queryable store; Phase 1 only needs the file to exist.
|
|
36
|
-
TELEMETRY_REL_DIR = "agents
|
|
36
|
+
TELEMETRY_REL_DIR = "agents/runtime/mcp-telemetry"
|
|
37
37
|
TELEMETRY_FILENAME = "calls.jsonl"
|
|
38
38
|
|
|
39
39
|
# Truncation length for the client_id hash. 12 hex chars = 48 bits of
|
|
@@ -12,8 +12,11 @@ Names that are neither implemented nor catalog-listed raise
|
|
|
12
12
|
|
|
13
13
|
Path-scoping is mandatory for any tool that writes: the resolved target
|
|
14
14
|
path must stay under ``<consumer_root>`` and within the allowlist of
|
|
15
|
-
filenames (
|
|
16
|
-
|
|
15
|
+
filenames (`agents/runtime/.agent-chat-history` — current default;
|
|
16
|
+
`agents/.agent-chat-history` and `.agent-chat-history` — kept for
|
|
17
|
+
back-compat with older consumer installs that have not migrated yet).
|
|
18
|
+
Escape attempts surface as ``ValueError`` before the underlying writer
|
|
19
|
+
runs.
|
|
17
20
|
|
|
18
21
|
This module deliberately does **not** import the ``subprocess`` module
|
|
19
22
|
or ``os``-level shell-execution helpers directly. It imports project
|
|
@@ -48,6 +51,12 @@ STDIO_TRANSPORT = "stdio"
|
|
|
48
51
|
# guard before the underlying writer touches the filesystem.
|
|
49
52
|
_ALLOWED_WRITE_REL_PATHS: frozenset[str] = frozenset(
|
|
50
53
|
{
|
|
54
|
+
# Current default (Volatile Runtime policy — agents/runtime/ is
|
|
55
|
+
# local-only and ignored by git).
|
|
56
|
+
"agents/runtime/.agent-chat-history",
|
|
57
|
+
# Back-compat: older consumer installs still write to the flat
|
|
58
|
+
# location. Additive — both paths stay accepted until the next
|
|
59
|
+
# major tool version bump.
|
|
51
60
|
"agents/.agent-chat-history",
|
|
52
61
|
".agent-chat-history",
|
|
53
62
|
}
|
|
@@ -93,7 +102,7 @@ def _validate_in_tree_path(raw: str | None, consumer_root: Path) -> Path:
|
|
|
93
102
|
"""
|
|
94
103
|
root = consumer_root.resolve()
|
|
95
104
|
if raw is None or raw == "":
|
|
96
|
-
target = root / "agents" / ".agent-chat-history"
|
|
105
|
+
target = root / "agents" / "runtime" / ".agent-chat-history"
|
|
97
106
|
else:
|
|
98
107
|
candidate = Path(raw)
|
|
99
108
|
if candidate.is_absolute():
|
|
@@ -178,7 +187,8 @@ async def _chat_history_append_handler(
|
|
|
178
187
|
text: free-form entry text. Stored under the ``text`` field.
|
|
179
188
|
entry_type: short ``t`` tag (e.g. ``note``, ``decision``).
|
|
180
189
|
path: optional override of the target file. Must resolve to one
|
|
181
|
-
of ``agents/.agent-chat-history``
|
|
190
|
+
of ``agents/runtime/.agent-chat-history`` (current default),
|
|
191
|
+
``agents/.agent-chat-history``, or ``.agent-chat-history``
|
|
182
192
|
under ``consumer_root``.
|
|
183
193
|
session: optional 16-char session tag. Falls back to the most
|
|
184
194
|
recent body entry's ``s`` (see ``chat_history.append``).
|
|
@@ -277,7 +287,8 @@ async def _chat_history_read_handler(
|
|
|
277
287
|
session: optional 16-char session id.
|
|
278
288
|
entry_type: optional ``t`` field exact-match filter.
|
|
279
289
|
path: optional override; must resolve under
|
|
280
|
-
``agents/.agent-chat-history``
|
|
290
|
+
``agents/runtime/.agent-chat-history`` (current default),
|
|
291
|
+
``agents/.agent-chat-history``, or ``.agent-chat-history``.
|
|
281
292
|
"""
|
|
282
293
|
from scripts.chat_history import read_entries # noqa: PLC0415
|
|
283
294
|
|
|
@@ -536,9 +547,11 @@ ALLOWLIST: dict[str, BuiltinTool] = {
|
|
|
536
547
|
name="chat_history_append",
|
|
537
548
|
description=(
|
|
538
549
|
"Append one entry to the consumer's chat-history JSONL "
|
|
539
|
-
"(`agents/.agent-chat-history
|
|
540
|
-
"
|
|
541
|
-
"
|
|
550
|
+
"(`agents/runtime/.agent-chat-history`; "
|
|
551
|
+
"`agents/.agent-chat-history` accepted for back-compat). "
|
|
552
|
+
"Path-scoped — writes outside the allowlist raise "
|
|
553
|
+
"ValueError. Use `dry_run` to preview the payload without "
|
|
554
|
+
"touching the filesystem."
|
|
542
555
|
),
|
|
543
556
|
input_schema={
|
|
544
557
|
"type": "object",
|
|
@@ -555,7 +568,9 @@ ALLOWLIST: dict[str, BuiltinTool] = {
|
|
|
555
568
|
"type": "string",
|
|
556
569
|
"description": (
|
|
557
570
|
"Optional path override. Must resolve to "
|
|
558
|
-
"`agents/.agent-chat-history`
|
|
571
|
+
"`agents/runtime/.agent-chat-history` "
|
|
572
|
+
"(current default), "
|
|
573
|
+
"`agents/.agent-chat-history`, or "
|
|
559
574
|
"`.agent-chat-history` under consumer_root."
|
|
560
575
|
),
|
|
561
576
|
},
|
|
@@ -572,8 +587,9 @@ ALLOWLIST: dict[str, BuiltinTool] = {
|
|
|
572
587
|
name="chat_history_read",
|
|
573
588
|
description=(
|
|
574
589
|
"Read recent chat-history entries from "
|
|
575
|
-
"`agents/.agent-chat-history
|
|
576
|
-
"
|
|
590
|
+
"`agents/runtime/.agent-chat-history` "
|
|
591
|
+
"(`agents/.agent-chat-history` accepted for back-compat). "
|
|
592
|
+
"Filter by session, trailing-N, or entry-type. Read-only."
|
|
577
593
|
),
|
|
578
594
|
input_schema={
|
|
579
595
|
"type": "object",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""MCP telemetry healthcheck — Phase 1 J6.
|
|
2
2
|
|
|
3
3
|
Asserts that the per-consumer JSONL sink at
|
|
4
|
-
``<consumer_root>/agents
|
|
4
|
+
``<consumer_root>/agents/runtime/mcp-telemetry/calls.jsonl`` received at least
|
|
5
5
|
one record inside a configurable window (default 24 h). Exits non-zero
|
|
6
6
|
on silence so the caller's alert sink — Sentry, email, GitHub Actions
|
|
7
7
|
failure, cron mailer — fires.
|
|
@@ -166,7 +166,7 @@ def _build_parser() -> argparse.ArgumentParser:
|
|
|
166
166
|
"--consumer-root",
|
|
167
167
|
type=Path,
|
|
168
168
|
default=None,
|
|
169
|
-
help="Root directory containing agents
|
|
169
|
+
help="Root directory containing agents/runtime/mcp-telemetry/ (default: cwd).",
|
|
170
170
|
)
|
|
171
171
|
parser.add_argument(
|
|
172
172
|
"--window-hours",
|
|
@@ -21,7 +21,7 @@ Output:
|
|
|
21
21
|
- Default: stdout summary (totals + per-component breakdown).
|
|
22
22
|
- `--json`: deterministic JSON.
|
|
23
23
|
- `--trend-append`: append a snapshot record to
|
|
24
|
-
`agents/.augment-budget-history.jsonl`.
|
|
24
|
+
`agents/runtime/.augment-budget-history.jsonl`.
|
|
25
25
|
|
|
26
26
|
Exit codes: 0 = under fail threshold, 1 = at/above fail threshold,
|
|
27
27
|
3 = internal error.
|
|
@@ -39,9 +39,15 @@ from pathlib import Path
|
|
|
39
39
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
40
40
|
AGENTS_MD = REPO_ROOT / "AGENTS.md"
|
|
41
41
|
RULES_DIR = REPO_ROOT / ".augment" / "rules"
|
|
42
|
-
TREND_FILE = REPO_ROOT / "agents" / ".augment-budget-history.jsonl"
|
|
42
|
+
TREND_FILE = REPO_ROOT / "agents" / "runtime" / ".augment-budget-history.jsonl"
|
|
43
43
|
|
|
44
44
|
# Augment workspace-guidelines ceiling — empirical 2026-05-08.
|
|
45
|
+
# TOTAL_CAP is the hard ceiling Augment itself enforces. FAIL_THRESHOLD is the
|
|
46
|
+
# soft safety-margin gate (0.95). When a branch breaches it, the discipline
|
|
47
|
+
# is: DO NOT loosen the threshold — invoke the `rule-refactor` skill, which
|
|
48
|
+
# audits all rules for merge / delete / move-to-context / promote-to-skill
|
|
49
|
+
# candidates. Threshold-lift is explicitly rejected as a tool-shape anti-
|
|
50
|
+
# pattern (see the validation-budget rule). Only an ADR may grow the cap.
|
|
45
51
|
TOTAL_CAP = 49_512
|
|
46
52
|
WARN_THRESHOLD = 0.85
|
|
47
53
|
FAIL_THRESHOLD = 0.95
|
|
@@ -164,7 +170,7 @@ def main() -> int:
|
|
|
164
170
|
parser.add_argument(
|
|
165
171
|
"--trend-append",
|
|
166
172
|
action="store_true",
|
|
167
|
-
help="Append a snapshot record to agents/.augment-budget-history.jsonl",
|
|
173
|
+
help="Append a snapshot record to agents/runtime/.augment-budget-history.jsonl",
|
|
168
174
|
)
|
|
169
175
|
parser.add_argument(
|
|
170
176
|
"--check",
|
|
@@ -22,7 +22,7 @@ Companion signals collected per artifact (consumed by Phases 1.2-1.4):
|
|
|
22
22
|
Output:
|
|
23
23
|
- Default stdout: per-type distribution buckets + tail (lowest density).
|
|
24
24
|
- ``--json`` deterministic JSON of every artifact.
|
|
25
|
-
- ``--snapshot`` writes JSONL to ``agents
|
|
25
|
+
- ``--snapshot`` writes JSONL to ``agents/runtime/density/snapshot.jsonl``.
|
|
26
26
|
|
|
27
27
|
Stdlib only; no network. Re-runnable.
|
|
28
28
|
"""
|
|
@@ -44,7 +44,7 @@ from skill_linter import ( # noqa: E402
|
|
|
44
44
|
gather_all_candidate_files,
|
|
45
45
|
)
|
|
46
46
|
|
|
47
|
-
SNAPSHOT_FILE = REPO_ROOT / "agents" / "
|
|
47
|
+
SNAPSHOT_FILE = REPO_ROOT / "agents" / "runtime" / "density" / "snapshot.jsonl"
|
|
48
48
|
|
|
49
49
|
_TABLE_ROW = re.compile(r"^\s*\|.*\|\s*$")
|
|
50
50
|
_BULLET = re.compile(r"^\s*[-*]\s+\S")
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Measures the *current state* of the frugality canon along four
|
|
5
5
|
deterministic axes. Output: JSONL baseline appended to
|
|
6
|
-
agents
|
|
6
|
+
agents/runtime/frugality/baseline.jsonl (gitignored).
|
|
7
7
|
|
|
8
8
|
Metrics:
|
|
9
9
|
A. footprint — per-rule char/token count, kernel/tier breakdown
|
|
@@ -140,7 +140,7 @@ def metric_d_redundancy(root: Path) -> dict:
|
|
|
140
140
|
|
|
141
141
|
def main() -> int:
|
|
142
142
|
root = Path(__file__).resolve().parent.parent
|
|
143
|
-
corpus = root / "agents" / ".agent-chat-history"
|
|
143
|
+
corpus = root / "agents" / "runtime" / ".agent-chat-history"
|
|
144
144
|
|
|
145
145
|
record = {
|
|
146
146
|
"schema_version": 1,
|
|
@@ -152,7 +152,7 @@ def main() -> int:
|
|
|
152
152
|
"metric_d_redundancy": metric_d_redundancy(root),
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
out = root / "agents" / "
|
|
155
|
+
out = root / "agents" / "runtime" / "frugality" / "baseline.jsonl"
|
|
156
156
|
with out.open("a") as fh:
|
|
157
157
|
fh.write(json.dumps(record, ensure_ascii=False) + "\n")
|
|
158
158
|
print(json.dumps(record, indent=2, ensure_ascii=False))
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Walks `agents/roadmaps/archive/` and computes per-roadmap checkbox
|
|
5
5
|
completion ratio at archival time. Output: one-line trajectory metric
|
|
6
|
-
per roadmap, plus an aggregate `agents/reports/roadmap-trajectory.json`.
|
|
6
|
+
per roadmap, plus an aggregate `agents/runtime/reports/roadmap-trajectory.json`.
|
|
7
7
|
|
|
8
8
|
Checkbox grammar (mirrors `scripts/roadmap_progress_check.py`):
|
|
9
9
|
- `[ ]` — open
|
|
@@ -28,7 +28,7 @@ from pathlib import Path
|
|
|
28
28
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
29
29
|
RULES_DIR = REPO_ROOT / ".agent-src.uncompressed" / "rules"
|
|
30
30
|
OVERRIDES_FILE = REPO_ROOT / "docs" / "contracts" / "iron-law-overrides.txt"
|
|
31
|
-
TREND_FILE = REPO_ROOT / "agents" / ".rule-budget-history.jsonl"
|
|
31
|
+
TREND_FILE = REPO_ROOT / "agents" / "runtime" / ".rule-budget-history.jsonl"
|
|
32
32
|
|
|
33
33
|
# Council R2 amendments (2026-05-06) — see docs/contracts/kernel-membership.md § 5.1.
|
|
34
34
|
# Per-rule cap raised 1.5k → 2.5k; warning band raised 1.2k → 2.0k.
|
|
@@ -241,7 +241,7 @@ def kernel_budget_check(
|
|
|
241
241
|
|
|
242
242
|
|
|
243
243
|
def trend_append(agg: dict[str, object]) -> tuple[int, str]:
|
|
244
|
-
"""Append a daily snapshot to agents/.rule-budget-history.jsonl.
|
|
244
|
+
"""Append a daily snapshot to agents/runtime/.rule-budget-history.jsonl.
|
|
245
245
|
|
|
246
246
|
Idempotent per UTC day: if today's date already has a row, the file
|
|
247
247
|
is not modified. Snapshot fields: date, kernel_chars, auto_chars,
|
|
@@ -284,7 +284,7 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
284
284
|
parser.add_argument(
|
|
285
285
|
"--trend-append",
|
|
286
286
|
action="store_true",
|
|
287
|
-
help="append today's snapshot to agents/.rule-budget-history.jsonl (idempotent per UTC day)",
|
|
287
|
+
help="append today's snapshot to agents/runtime/.rule-budget-history.jsonl (idempotent per UTC day)",
|
|
288
288
|
)
|
|
289
289
|
args = parser.parse_args(argv)
|
|
290
290
|
|
package/scripts/memory_report.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"""One-shot migration: inject the `suggestion:` frontmatter block into every
|
|
3
3
|
command under `.agent-src.uncompressed/commands/`.
|
|
4
4
|
|
|
5
|
-
Source-of-truth table: `agents/contexts/command-suggestion-eligibility.md`
|
|
5
|
+
Source-of-truth table: `agents/settings/contexts/command-suggestion-eligibility.md`
|
|
6
6
|
(locked at end of road-to-context-aware-command-suggestion Phase 1).
|
|
7
7
|
|
|
8
8
|
Idempotent: if `suggestion:` is already present for a command, the file is
|
|
@@ -55,8 +55,8 @@ ELIGIBLE: dict[str, tuple[str, str]] = {
|
|
|
55
55
|
"bug-investigate": ("why is this broken, investigate this error, trace the root cause", "Sentry URL, Jira bug ticket key, or stack trace pasted in the prompt"),
|
|
56
56
|
"commit": ("commit my changes, save this to git, create commits for these changes", "git status shows uncommitted changes"),
|
|
57
57
|
"commit-in-chunks": ("commit everything autonomously, split and commit without confirmation", "autonomous mode active and uncommitted changes present"),
|
|
58
|
-
"context-create": ("document this part of the codebase, create a context doc for X", "working in a module without an agents/contexts/ doc"),
|
|
59
|
-
"context-refactor": ("update the context doc, refresh this context document", "existing agents/contexts/*.md referenced in the prompt"),
|
|
58
|
+
"context-create": ("document this part of the codebase, create a context doc for X", "working in a module without an agents/settings/contexts/ doc"),
|
|
59
|
+
"context-refactor": ("update the context doc, refresh this context document", "existing agents/settings/contexts/*.md referenced in the prompt"),
|
|
60
60
|
"create-pr": ("open a PR, create a pull request, make a PR for this branch", "branch is ahead of base and not yet on a PR"),
|
|
61
61
|
"create-pr-description": ("write a PR description, draft the PR text", "PR exists or branch ready for review without description"),
|
|
62
62
|
"e2e-heal": ("fix the failing E2E tests, playwright tests are red", "failing test output from tests/e2e/"),
|
|
@@ -11,7 +11,7 @@ Wired to multiple events via the manifest:
|
|
|
11
11
|
- session_start / user_prompt_submit → reset turn-scoped counters
|
|
12
12
|
- pre_tool_use → record the planned edit's path before execution
|
|
13
13
|
|
|
14
|
-
Output: `agents/state/minimal-safe-diff.json`
|
|
14
|
+
Output: `agents/runtime/state/minimal-safe-diff.json`
|
|
15
15
|
{
|
|
16
16
|
"schema_version": 1,
|
|
17
17
|
"session_id": "<str>",
|
|
@@ -5,7 +5,7 @@ Reads `.agent-settings.yml` from the consumer repo and writes a
|
|
|
5
5
|
deterministic state file the rule body can cite as the source of
|
|
6
6
|
truth for "do I need to prompt the user about /onboard?".
|
|
7
7
|
|
|
8
|
-
Output is written to `agents/state/onboarding-gate.json` with:
|
|
8
|
+
Output is written to `agents/runtime/state/onboarding-gate.json` with:
|
|
9
9
|
{
|
|
10
10
|
"required": <bool>, // true → rule fires on first turn
|
|
11
11
|
"reason": "<string>", // why this state was set
|
|
@@ -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
|
|
@@ -84,9 +84,9 @@ def _read_onboarded(settings_path: Path) -> tuple[bool, str]:
|
|
|
84
84
|
|
|
85
85
|
def _write_state(consumer_root: Path, required: bool, reason: str,
|
|
86
86
|
settings_present: bool) -> None:
|
|
87
|
-
"""Write `agents/state/onboarding-gate.json` atomically.
|
|
87
|
+
"""Write `agents/runtime/state/onboarding-gate.json` atomically.
|
|
88
88
|
|
|
89
|
-
Uses the shared `agents/state/.dispatcher.lock` so concurrent
|
|
89
|
+
Uses the shared `agents/runtime/state/.dispatcher.lock` so concurrent
|
|
90
90
|
dispatcher invocations across platforms cannot tear the file
|
|
91
91
|
(hook-architecture-v1.md § Concurrency, Phase 7.4).
|
|
92
92
|
"""
|