@event4u/agent-config 2.26.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent-src/commands/agent-handoff.md +15 -3
- package/.agent-src/commands/agent-status.md +12 -0
- package/.agent-src/commands/agents/audit.md +12 -0
- package/.agent-src/commands/agents/init.md +12 -0
- package/.agent-src/commands/agents/optimize.md +12 -0
- package/.agent-src/commands/agents/user/accept.md +12 -0
- package/.agent-src/commands/agents/user/init.md +12 -0
- package/.agent-src/commands/agents/user/review.md +12 -0
- package/.agent-src/commands/agents/user/show.md +12 -0
- package/.agent-src/commands/agents/user/update.md +12 -0
- package/.agent-src/commands/agents/user.md +12 -0
- package/.agent-src/commands/agents.md +12 -0
- package/.agent-src/commands/analyze-reference-repo.md +15 -3
- package/.agent-src/commands/bug-fix.md +12 -0
- package/.agent-src/commands/bug-investigate.md +13 -1
- package/.agent-src/commands/challenge-me/vision.md +12 -0
- package/.agent-src/commands/challenge-me/with-docs.md +12 -0
- package/.agent-src/commands/challenge-me.md +12 -0
- package/.agent-src/commands/chat-history/import.md +16 -4
- package/.agent-src/commands/chat-history/learn.md +15 -3
- package/.agent-src/commands/chat-history/show.md +17 -5
- package/.agent-src/commands/chat-history.md +14 -2
- package/.agent-src/commands/check-current-md.md +12 -0
- package/.agent-src/commands/commit/in-chunks.md +12 -0
- package/.agent-src/commands/commit.md +12 -0
- package/.agent-src/commands/compress.md +12 -0
- package/.agent-src/commands/context/create.md +17 -5
- package/.agent-src/commands/context/refactor.md +15 -3
- package/.agent-src/commands/context.md +12 -0
- package/.agent-src/commands/cost-report.md +12 -0
- package/.agent-src/commands/council/analysis.md +15 -3
- package/.agent-src/commands/council/debate.md +17 -5
- package/.agent-src/commands/council/default.md +17 -5
- package/.agent-src/commands/council/design.md +12 -0
- package/.agent-src/commands/council/optimize.md +12 -0
- package/.agent-src/commands/council/pr.md +12 -0
- package/.agent-src/commands/council.md +13 -1
- package/.agent-src/commands/create-pr/description-only.md +12 -0
- package/.agent-src/commands/create-pr.md +39 -0
- package/.agent-src/commands/e2e-heal.md +12 -0
- package/.agent-src/commands/e2e-plan.md +12 -0
- package/.agent-src/commands/estimate-ticket.md +12 -0
- package/.agent-src/commands/feature/dev.md +13 -1
- package/.agent-src/commands/feature/explore.md +12 -0
- package/.agent-src/commands/feature/plan.md +14 -2
- package/.agent-src/commands/feature/refactor.md +12 -0
- package/.agent-src/commands/feature/roadmap.md +12 -0
- package/.agent-src/commands/feature.md +12 -0
- package/.agent-src/commands/fix/ci.md +12 -0
- package/.agent-src/commands/fix/portability.md +12 -0
- package/.agent-src/commands/fix/pr-bot-comments.md +12 -0
- package/.agent-src/commands/fix/pr-comments.md +12 -0
- package/.agent-src/commands/fix/pr-developer-comments.md +12 -0
- package/.agent-src/commands/fix/refs.md +12 -0
- package/.agent-src/commands/fix/seeder.md +12 -0
- package/.agent-src/commands/fix.md +12 -0
- package/.agent-src/commands/ghostwriter/delete.md +20 -8
- package/.agent-src/commands/ghostwriter/fetch.md +19 -7
- package/.agent-src/commands/ghostwriter/list.md +19 -7
- package/.agent-src/commands/ghostwriter/show.md +14 -2
- package/.agent-src/commands/ghostwriter/write.md +15 -3
- package/.agent-src/commands/ghostwriter.md +14 -2
- package/.agent-src/commands/grill-me.md +12 -0
- package/.agent-src/commands/implement-ticket.md +12 -0
- package/.agent-src/commands/install-via-agent.md +129 -0
- package/.agent-src/commands/jira-ticket.md +12 -0
- package/.agent-src/commands/judge/on-diff.md +12 -0
- package/.agent-src/commands/judge/solo.md +12 -0
- package/.agent-src/commands/judge/steps.md +12 -0
- package/.agent-src/commands/judge.md +12 -0
- package/.agent-src/commands/memory/add.md +12 -0
- package/.agent-src/commands/memory/learn-low-impact.md +18 -6
- package/.agent-src/commands/memory/load.md +12 -0
- package/.agent-src/commands/memory/mine-session.md +12 -0
- package/.agent-src/commands/memory/promote.md +12 -0
- package/.agent-src/commands/memory/propose.md +12 -0
- package/.agent-src/commands/memory.md +12 -0
- package/.agent-src/commands/mode.md +12 -0
- package/.agent-src/commands/module/create.md +12 -0
- package/.agent-src/commands/module/explore.md +13 -1
- package/.agent-src/commands/module.md +12 -0
- package/.agent-src/commands/optimize/agents-dir.md +14 -2
- package/.agent-src/commands/optimize/augmentignore.md +12 -0
- package/.agent-src/commands/optimize/rtk.md +12 -0
- package/.agent-src/commands/optimize/skills.md +12 -0
- package/.agent-src/commands/optimize-prompt.md +12 -0
- package/.agent-src/commands/optimize.md +12 -0
- package/.agent-src/commands/orchestrate.md +13 -1
- package/.agent-src/commands/override/create.md +12 -0
- package/.agent-src/commands/override/manage.md +12 -0
- package/.agent-src/commands/override.md +12 -0
- package/.agent-src/commands/package-reset.md +12 -0
- package/.agent-src/commands/package-test.md +12 -0
- package/.agent-src/commands/post-as/ghostwriter.md +12 -0
- package/.agent-src/commands/post-as/me.md +13 -1
- package/.agent-src/commands/post-as.md +12 -0
- package/.agent-src/commands/prepare-for-review.md +12 -0
- package/.agent-src/commands/project-analyze.md +27 -15
- package/.agent-src/commands/project-health.md +13 -1
- package/.agent-src/commands/quality-fix.md +12 -0
- package/.agent-src/commands/refine-ticket.md +12 -0
- package/.agent-src/commands/research/deep.md +12 -0
- package/.agent-src/commands/research/report.md +12 -0
- package/.agent-src/commands/research.md +12 -0
- package/.agent-src/commands/review-changes.md +12 -0
- package/.agent-src/commands/review-routing.md +12 -0
- package/.agent-src/commands/roadmap/ai-council.md +15 -3
- package/.agent-src/commands/roadmap/create.md +13 -1
- package/.agent-src/commands/roadmap/process-full.md +12 -0
- package/.agent-src/commands/roadmap/process-phase.md +12 -0
- package/.agent-src/commands/roadmap/process-step.md +12 -0
- package/.agent-src/commands/roadmap.md +12 -0
- package/.agent-src/commands/rule-compliance-audit.md +12 -0
- package/.agent-src/commands/set-cost-profile.md +12 -0
- package/.agent-src/commands/sync-agent-settings.md +12 -0
- package/.agent-src/commands/sync-gitignore/fix.md +32 -13
- package/.agent-src/commands/sync-gitignore.md +13 -1
- package/.agent-src/commands/tests/create.md +12 -0
- package/.agent-src/commands/tests/execute.md +12 -0
- package/.agent-src/commands/tests.md +12 -0
- package/.agent-src/commands/threat-model.md +12 -0
- package/.agent-src/commands/update-form-request-messages.md +12 -0
- package/.agent-src/commands/upstream-contribute.md +12 -0
- package/.agent-src/commands/video/from-script.md +13 -1
- package/.agent-src/commands/video/scene.md +12 -0
- package/.agent-src/commands/video/stitch.md +13 -1
- package/.agent-src/commands/video/storyboard.md +12 -0
- package/.agent-src/commands/video.md +13 -1
- package/.agent-src/commands/work.md +12 -0
- package/.agent-src/contexts/augment-infrastructure.md +2 -2
- package/.agent-src/contexts/authority/scope-mechanics.md +11 -0
- package/.agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/.agent-src/contexts/documentation-hierarchy.md +2 -2
- package/.agent-src/contexts/execution/cheap-question-mechanics.md +81 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +19 -0
- package/.agent-src/ghostwriter/README.md +2 -2
- package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/personas/advisors/contrarian.md +1 -1
- package/.agent-src/personas/advisors/executor.md +1 -1
- package/.agent-src/personas/advisors/expansionist.md +1 -1
- package/.agent-src/personas/advisors/first-principles.md +1 -1
- package/.agent-src/personas/advisors/outsider.md +1 -1
- package/.agent-src/rules/agent-authority.md +12 -0
- package/.agent-src/rules/analysis-skill-routing.md +12 -0
- package/.agent-src/rules/architecture.md +13 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +13 -1
- package/.agent-src/rules/artifact-engagement-recording.md +13 -1
- package/.agent-src/rules/ask-when-uncertain.md +12 -0
- package/.agent-src/rules/augment-edit-discipline.md +13 -1
- package/.agent-src/rules/augment-source-of-truth.md +13 -1
- package/.agent-src/rules/autonomous-execution.md +13 -1
- package/.agent-src/rules/caveman-speak.md +15 -3
- package/.agent-src/rules/cli-output-handling.md +13 -1
- package/.agent-src/rules/command-suggestion-policy.md +13 -1
- package/.agent-src/rules/commit-conventions.md +13 -1
- package/.agent-src/rules/commit-policy.md +12 -0
- package/.agent-src/rules/context-hygiene.md +51 -3
- package/.agent-src/rules/copilot-routing.md +13 -1
- package/.agent-src/rules/devcontainer-routing.md +13 -1
- package/.agent-src/rules/direct-answers.md +12 -0
- package/.agent-src/rules/docker-commands.md +13 -1
- package/.agent-src/rules/domain-adoption-policy.md +17 -5
- package/.agent-src/rules/domain-safety-disclaimer.md +13 -1
- package/.agent-src/rules/domain-safety-pii.md +13 -1
- package/.agent-src/rules/domain-safety-retention.md +13 -1
- package/.agent-src/rules/downstream-changes.md +13 -1
- package/.agent-src/rules/engineering-safety-floor.md +102 -0
- package/.agent-src/rules/external-reference-deep-dive.md +13 -1
- package/.agent-src/rules/fast-path-marker-visibility.md +21 -1
- package/.agent-src/rules/finance-safety-floor.md +114 -0
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +13 -1
- package/.agent-src/rules/git-history-discipline.md +14 -2
- package/.agent-src/rules/guidelines.md +12 -0
- package/.agent-src/rules/improve-before-implement.md +13 -1
- package/.agent-src/rules/invite-challenge.md +13 -1
- package/.agent-src/rules/language-and-tone.md +12 -0
- package/.agent-src/rules/laravel-routing.md +13 -1
- package/.agent-src/rules/laravel-translations.md +13 -1
- package/.agent-src/rules/low-impact-corpus-privacy-floor.md +17 -5
- package/.agent-src/rules/markdown-safe-codeblocks.md +13 -1
- package/.agent-src/rules/media-governance-routing.md +27 -15
- package/.agent-src/rules/minimal-safe-diff.md +13 -1
- package/.agent-src/rules/missing-tool-handling.md +13 -1
- package/.agent-src/rules/model-recommendation.md +13 -1
- package/.agent-src/rules/no-attribution-footers.md +13 -1
- package/.agent-src/rules/no-cheap-questions.md +46 -32
- package/.agent-src/rules/no-roadmap-references.md +28 -16
- package/.agent-src/rules/non-destructive-by-default.md +12 -0
- package/.agent-src/rules/onboarding-gate.md +19 -6
- package/.agent-src/rules/package-ci-checks.md +12 -0
- package/.agent-src/rules/persona-governance.md +13 -1
- package/.agent-src/rules/php-coding.md +13 -1
- package/.agent-src/rules/preservation-guard.md +13 -1
- package/.agent-src/rules/provider-lifecycle-discipline.md +18 -6
- package/.agent-src/rules/reviewer-awareness.md +13 -1
- package/.agent-src/rules/roadmap-ci-steps-policy.md +13 -1
- package/.agent-src/rules/roadmap-progress-sync.md +18 -1
- package/.agent-src/rules/role-mode-adherence.md +13 -1
- package/.agent-src/rules/rule-type-governance.md +13 -1
- package/.agent-src/rules/runtime-safety.md +13 -1
- package/.agent-src/rules/scope-control.md +12 -0
- package/.agent-src/rules/security-sensitive-stop.md +13 -1
- package/.agent-src/rules/size-enforcement.md +12 -0
- package/.agent-src/rules/skill-improvement-trigger.md +13 -1
- package/.agent-src/rules/skill-quality.md +13 -1
- package/.agent-src/rules/slash-command-routing-policy.md +13 -1
- package/.agent-src/rules/strategy-safety-floor.md +114 -0
- package/.agent-src/rules/symfony-routing.md +13 -1
- package/.agent-src/rules/think-before-action.md +13 -1
- package/.agent-src/rules/token-efficiency.md +13 -1
- package/.agent-src/rules/token-optimizer-maintenance.md +12 -0
- package/.agent-src/rules/tool-safety.md +13 -1
- package/.agent-src/rules/ui-audit-gate.md +13 -1
- package/.agent-src/rules/upstream-proposal.md +13 -1
- package/.agent-src/rules/user-interaction.md +13 -1
- package/.agent-src/rules/user-interrupt-priority.md +12 -0
- package/.agent-src/rules/verify-before-complete.md +12 -0
- package/.agent-src/skills/accessibility-auditor/SKILL.md +12 -0
- package/.agent-src/skills/activation-design/SKILL.md +12 -0
- package/.agent-src/skills/adr-create/SKILL.md +12 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +12 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +16 -4
- package/.agent-src/skills/agents-md-thin-root/SKILL.md +28 -10
- package/.agent-src/skills/ai-council/SKILL.md +28 -15
- package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +12 -0
- package/.agent-src/skills/analysis-skill-router/SKILL.md +12 -0
- package/.agent-src/skills/api-design/SKILL.md +13 -3
- package/.agent-src/skills/api-endpoint/SKILL.md +12 -0
- package/.agent-src/skills/api-testing/SKILL.md +12 -0
- package/.agent-src/skills/architecture-review-lens/SKILL.md +12 -0
- package/.agent-src/skills/artisan-commands/SKILL.md +12 -0
- package/.agent-src/skills/async-python-patterns/SKILL.md +13 -1
- package/.agent-src/skills/authz-review/SKILL.md +12 -2
- package/.agent-src/skills/aws-infrastructure/SKILL.md +12 -0
- package/.agent-src/skills/blade-ui/SKILL.md +12 -0
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +12 -0
- package/.agent-src/skills/bug-analyzer/SKILL.md +14 -2
- package/.agent-src/skills/build-buy-partner/SKILL.md +12 -0
- package/.agent-src/skills/canvas-design/SKILL.md +12 -0
- package/.agent-src/skills/character-consistency/SKILL.md +23 -11
- package/.agent-src/skills/check-refs/SKILL.md +12 -0
- package/.agent-src/skills/churn-prevention/SKILL.md +12 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +16 -4
- package/.agent-src/skills/code-review/SKILL.md +12 -0
- package/.agent-src/skills/command-routing/SKILL.md +12 -0
- package/.agent-src/skills/command-writing/SKILL.md +14 -2
- package/.agent-src/skills/comp-banding/SKILL.md +12 -0
- package/.agent-src/skills/competitive-moat-analysis/SKILL.md +12 -2
- package/.agent-src/skills/competitive-positioning/SKILL.md +12 -2
- package/.agent-src/skills/composer-packages/SKILL.md +12 -0
- package/.agent-src/skills/compress-memory/SKILL.md +12 -0
- package/.agent-src/skills/content-funnel-design/SKILL.md +12 -2
- package/.agent-src/skills/context-authoring/SKILL.md +18 -6
- package/.agent-src/skills/context-document/SKILL.md +17 -5
- package/.agent-src/skills/contracts-cognition/SKILL.md +12 -2
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +12 -0
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +13 -1
- package/.agent-src/skills/copilot-config/SKILL.md +12 -0
- package/.agent-src/skills/customer-research/SKILL.md +12 -0
- package/.agent-src/skills/dashboard-design/SKILL.md +12 -0
- package/.agent-src/skills/data-flow-mapper/SKILL.md +12 -0
- package/.agent-src/skills/data-handling-judgment/SKILL.md +12 -2
- package/.agent-src/skills/database/SKILL.md +14 -2
- package/.agent-src/skills/dcf-modeling/SKILL.md +12 -2
- package/.agent-src/skills/deal-qualification-meddic/SKILL.md +12 -2
- package/.agent-src/skills/decision-record/SKILL.md +12 -0
- package/.agent-src/skills/deep-reading-analyst/SKILL.md +12 -0
- package/.agent-src/skills/defense-in-depth/SKILL.md +13 -1
- package/.agent-src/skills/dependency-upgrade/SKILL.md +12 -0
- package/.agent-src/skills/description-assist/SKILL.md +12 -0
- package/.agent-src/skills/design-review/SKILL.md +12 -0
- package/.agent-src/skills/devcontainer/SKILL.md +12 -0
- package/.agent-src/skills/developer-like-execution/SKILL.md +12 -0
- package/.agent-src/skills/discovery-interview/SKILL.md +12 -2
- package/.agent-src/skills/doc-coauthoring/SKILL.md +12 -0
- package/.agent-src/skills/docker/SKILL.md +12 -0
- package/.agent-src/skills/editorial-calendar/SKILL.md +12 -2
- package/.agent-src/skills/eloquent/SKILL.md +12 -0
- package/.agent-src/skills/eloquent/evals/triggers.json +1 -1
- package/.agent-src/skills/error-handling-patterns/SKILL.md +13 -1
- package/.agent-src/skills/estimate-ticket/SKILL.md +12 -0
- package/.agent-src/skills/existing-ui-audit/SKILL.md +12 -0
- package/.agent-src/skills/expansion-playbook/SKILL.md +12 -0
- package/.agent-src/skills/fe-design/SKILL.md +12 -0
- package/.agent-src/skills/feature-planning/SKILL.md +12 -0
- package/.agent-src/skills/file-editor/SKILL.md +12 -0
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +12 -0
- package/.agent-src/skills/flux/SKILL.md +12 -0
- package/.agent-src/skills/forecast-accuracy/SKILL.md +12 -2
- package/.agent-src/skills/forecasting/SKILL.md +12 -2
- package/.agent-src/skills/form-handler/SKILL.md +12 -0
- package/.agent-src/skills/fundraising-narrative/SKILL.md +12 -2
- package/.agent-src/skills/funnel-analysis/SKILL.md +12 -0
- package/.agent-src/skills/git-workflow/SKILL.md +12 -0
- package/.agent-src/skills/github-ci/SKILL.md +12 -0
- package/.agent-src/skills/grafana/SKILL.md +12 -0
- package/.agent-src/skills/gtm-launch/SKILL.md +12 -2
- package/.agent-src/skills/guideline-writing/SKILL.md +12 -0
- package/.agent-src/skills/hiring-loop-design/SKILL.md +12 -0
- package/.agent-src/skills/incident-commander/SKILL.md +12 -2
- package/.agent-src/skills/jira-integration/SKILL.md +12 -0
- package/.agent-src/skills/jobs-events/SKILL.md +12 -0
- package/.agent-src/skills/judge-bug-hunter/SKILL.md +12 -0
- package/.agent-src/skills/judge-code-quality/SKILL.md +12 -0
- package/.agent-src/skills/judge-security-auditor/SKILL.md +12 -0
- package/.agent-src/skills/judge-test-coverage/SKILL.md +12 -0
- package/.agent-src/skills/laravel/SKILL.md +12 -0
- package/.agent-src/skills/laravel-api-endpoint/SKILL.md +15 -3
- package/.agent-src/skills/laravel-dto/SKILL.md +14 -2
- package/.agent-src/skills/laravel-horizon/SKILL.md +12 -0
- package/.agent-src/skills/laravel-mail/SKILL.md +12 -0
- package/.agent-src/skills/laravel-middleware/SKILL.md +12 -0
- package/.agent-src/skills/laravel-migration/SKILL.md +12 -0
- package/.agent-src/skills/laravel-notifications/SKILL.md +12 -0
- package/.agent-src/skills/laravel-pennant/SKILL.md +12 -0
- package/.agent-src/skills/laravel-pulse/SKILL.md +12 -0
- package/.agent-src/skills/laravel-reverb/SKILL.md +12 -0
- package/.agent-src/skills/laravel-scheduling/SKILL.md +12 -0
- package/.agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/.agent-src/skills/laravel-websocket/SKILL.md +12 -0
- package/.agent-src/skills/launch-readiness/SKILL.md +12 -2
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +15 -3
- package/.agent-src/skills/lint-skills/SKILL.md +12 -0
- package/.agent-src/skills/livewire/SKILL.md +12 -0
- package/.agent-src/skills/livewire-architect/SKILL.md +12 -0
- package/.agent-src/skills/logging-monitoring/SKILL.md +12 -0
- package/.agent-src/skills/market-entry-analysis/SKILL.md +12 -0
- package/.agent-src/skills/markitdown/SKILL.md +14 -2
- package/.agent-src/skills/mcp/SKILL.md +12 -0
- package/.agent-src/skills/mcp-builder/SKILL.md +14 -2
- package/.agent-src/skills/md-language-check/SKILL.md +13 -1
- package/.agent-src/skills/memory-consolidation/SKILL.md +12 -0
- package/.agent-src/skills/merge-conflicts/SKILL.md +12 -0
- package/.agent-src/skills/messaging-architecture/SKILL.md +12 -2
- package/.agent-src/skills/migration-architect/SKILL.md +12 -0
- package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +12 -0
- package/.agent-src/skills/module-management/SKILL.md +12 -0
- package/.agent-src/skills/motion-choreographer/SKILL.md +16 -4
- package/.agent-src/skills/multi-tenancy/SKILL.md +14 -2
- package/.agent-src/skills/nextjs-patterns/SKILL.md +12 -0
- package/.agent-src/skills/okr-tree-modeling/SKILL.md +12 -2
- package/.agent-src/skills/onboarding-design/SKILL.md +12 -0
- package/.agent-src/skills/onboarding-program/SKILL.md +12 -0
- package/.agent-src/skills/one-on-one-cadence/SKILL.md +12 -0
- package/.agent-src/skills/openapi/SKILL.md +13 -1
- package/.agent-src/skills/org-design/SKILL.md +12 -0
- package/.agent-src/skills/override-management/SKILL.md +12 -0
- package/.agent-src/skills/perf-feedback-craft/SKILL.md +12 -0
- package/.agent-src/skills/performance/SKILL.md +12 -0
- package/.agent-src/skills/performance-analysis/SKILL.md +12 -0
- package/.agent-src/skills/persona-writing/SKILL.md +12 -0
- package/.agent-src/skills/pest-testing/SKILL.md +12 -0
- package/.agent-src/skills/php-coder/SKILL.md +12 -0
- package/.agent-src/skills/php-debugging/SKILL.md +12 -0
- package/.agent-src/skills/php-service/SKILL.md +12 -0
- package/.agent-src/skills/pipeline-strategy/SKILL.md +12 -2
- package/.agent-src/skills/pixar-storyteller/SKILL.md +17 -5
- package/.agent-src/skills/playwright-architect/SKILL.md +12 -2
- package/.agent-src/skills/playwright-testing/SKILL.md +12 -0
- package/.agent-src/skills/po-discovery/SKILL.md +12 -0
- package/.agent-src/skills/positioning-strategy/SKILL.md +12 -0
- package/.agent-src/skills/privacy-review/SKILL.md +12 -2
- package/.agent-src/skills/project-analysis-core/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-laravel/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-nextjs/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-node-express/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-react/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-symfony/SKILL.md +12 -0
- package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +12 -0
- package/.agent-src/skills/project-analyzer/SKILL.md +30 -18
- package/.agent-src/skills/project-docs/SKILL.md +25 -13
- package/.agent-src/skills/prompt-engineering-patterns/SKILL.md +13 -1
- package/.agent-src/skills/prompt-optimizer/SKILL.md +13 -1
- package/.agent-src/skills/quality-tools/SKILL.md +12 -2
- package/.agent-src/skills/react-native-setup/SKILL.md +12 -0
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +12 -0
- package/.agent-src/skills/readme-reviewer/SKILL.md +64 -3
- package/.agent-src/skills/readme-writing/SKILL.md +64 -4
- package/.agent-src/skills/readme-writing-package/SKILL.md +60 -5
- package/.agent-src/skills/receiving-code-review/SKILL.md +12 -0
- package/.agent-src/skills/refine-prompt/SKILL.md +13 -1
- package/.agent-src/skills/refine-ticket/SKILL.md +14 -2
- package/.agent-src/skills/refine-ticket/detection-map.yml +2 -2
- package/.agent-src/skills/release-comms/SKILL.md +12 -2
- package/.agent-src/skills/repomix-packer/SKILL.md +13 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +12 -0
- package/.agent-src/skills/retention-loops/SKILL.md +12 -0
- package/.agent-src/skills/review-routing/SKILL.md +12 -0
- package/.agent-src/skills/rice-prioritization/SKILL.md +12 -0
- package/.agent-src/skills/risk-officer/SKILL.md +12 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +12 -0
- package/.agent-src/skills/roadmap-writing/SKILL.md +12 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +12 -0
- package/.agent-src/skills/rule-refactor/SKILL.md +15 -3
- package/.agent-src/skills/rule-writing/SKILL.md +13 -1
- package/.agent-src/skills/runway-cognition/SKILL.md +12 -2
- package/.agent-src/skills/scenario-modeling/SKILL.md +12 -2
- package/.agent-src/skills/scene-expander/SKILL.md +18 -6
- package/.agent-src/skills/script-writing/SKILL.md +13 -1
- package/.agent-src/skills/secrets-management/SKILL.md +13 -3
- package/.agent-src/skills/security/SKILL.md +12 -0
- package/.agent-src/skills/security-audit/SKILL.md +12 -0
- package/.agent-src/skills/sentry-integration/SKILL.md +12 -0
- package/.agent-src/skills/sequential-thinking/SKILL.md +12 -0
- package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +12 -0
- package/.agent-src/skills/skill-management/SKILL.md +12 -0
- package/.agent-src/skills/skill-reviewer/SKILL.md +12 -0
- package/.agent-src/skills/skill-writing/SKILL.md +12 -0
- package/.agent-src/skills/sql-writing/SKILL.md +12 -0
- package/.agent-src/skills/stakeholder-tradeoff/SKILL.md +12 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +13 -1
- package/.agent-src/skills/symfony-workflow/SKILL.md +12 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +53 -0
- package/.agent-src/skills/tailwind-engineer/SKILL.md +12 -0
- package/.agent-src/skills/tech-debt-tracker/SKILL.md +12 -2
- package/.agent-src/skills/technical-specification/SKILL.md +12 -0
- package/.agent-src/skills/terraform/SKILL.md +12 -0
- package/.agent-src/skills/terragrunt/SKILL.md +12 -0
- package/.agent-src/skills/test-driven-development/SKILL.md +12 -0
- package/.agent-src/skills/test-performance/SKILL.md +13 -1
- package/.agent-src/skills/testing-anti-patterns/SKILL.md +13 -1
- package/.agent-src/skills/threat-modeling/SKILL.md +12 -0
- package/.agent-src/skills/throughput-vs-morale-tradeoff/SKILL.md +12 -0
- package/.agent-src/skills/token-optimizer/SKILL.md +12 -0
- package/.agent-src/skills/traefik/SKILL.md +12 -0
- package/.agent-src/skills/ui-component-architect/SKILL.md +12 -0
- package/.agent-src/skills/unit-economics-modeling/SKILL.md +12 -2
- package/.agent-src/skills/universal-project-analysis/SKILL.md +12 -0
- package/.agent-src/skills/upstream-contribute/SKILL.md +12 -0
- package/.agent-src/skills/using-git-worktrees/SKILL.md +12 -0
- package/.agent-src/skills/validate-feature-fit/SKILL.md +12 -0
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +12 -0
- package/.agent-src/skills/video-director/SKILL.md +18 -6
- package/.agent-src/skills/vision-articulation/SKILL.md +12 -0
- package/.agent-src/skills/voc-extract/SKILL.md +12 -2
- package/.agent-src/skills/voice-and-tone-design/SKILL.md +12 -2
- package/.agent-src/templates/agent-settings.md +5 -5
- package/.agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/.agent-src/templates/agents/memory/ownership.example.yml +1 -1
- package/.agent-src/templates/agents/proposal.example.md +12 -0
- package/.agent-src/templates/command.md +1 -1
- package/.agent-src/templates/contexts/auth-model.md +2 -2
- package/.agent-src/templates/contexts/data-sensitivity.md +3 -3
- package/.agent-src/templates/contexts/deployment-order.md +2 -2
- package/.agent-src/templates/contexts/observability.md +3 -3
- package/.agent-src/templates/contexts/tenant-boundaries.md +3 -3
- package/.agent-src/templates/contexts.md +1 -1
- package/.agent-src/templates/hooks/pre-commit-frontmatter +66 -0
- package/.agent-src/templates/hooks/pre-commit-roadmap-progress +78 -39
- package/.agent-src/templates/rule.md +1 -1
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +7 -4
- package/.agent-src/templates/scripts/work_engine/cli.py +6 -6
- package/.agent-src/templates/scripts/work_engine/emitters.py +29 -4
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.py +3 -3
- package/.agent-src/templates/scripts/work_engine/orchestration.py +25 -11
- package/.agent-src/templates/scripts/work_engine/state.py +53 -0
- package/.agent-src/templates/skill-archive-note.md +4 -4
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +12 -9
- package/CHANGELOG.md +268 -90
- package/CONTRIBUTING.md +61 -0
- package/README.md +173 -558
- package/config/agent-settings.template.yml +11 -8
- package/config/discovery/packs.yml +162 -0
- package/config/discovery/unassigned-artefacts.yml +68 -0
- package/config/discovery/workspaces.yml +59 -0
- package/config/gitignore-block.txt +36 -23
- package/dist/cli/agent-config.js +199 -0
- package/dist/cli/agent-config.js.map +1 -0
- package/dist/cli/bash/runBash.js +40 -0
- package/dist/cli/bash/runBash.js.map +1 -0
- package/dist/cli/commands/doctorShell.js +91 -0
- package/dist/cli/commands/doctorShell.js.map +1 -0
- package/dist/cli/commands/packs.js +59 -0
- package/dist/cli/commands/packs.js.map +1 -0
- package/dist/cli/commands/settings.js +35 -0
- package/dist/cli/commands/settings.js.map +1 -0
- package/dist/cli/commands/uiServe.js +119 -0
- package/dist/cli/commands/uiServe.js.map +1 -0
- package/dist/cli/commands/versions.js +64 -0
- package/dist/cli/commands/versions.js.map +1 -0
- package/dist/cli/commands/workspaces.js +58 -0
- package/dist/cli/commands/workspaces.js.map +1 -0
- package/dist/cli/discovery/loadManifest.js +62 -0
- package/dist/cli/discovery/loadManifest.js.map +1 -0
- package/dist/cli/log/logger.js +41 -0
- package/dist/cli/log/logger.js.map +1 -0
- package/dist/cli/paths.js +60 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/python/resolvePython.js +38 -0
- package/dist/cli/python/resolvePython.js.map +1 -0
- package/dist/cli/registry.js +77 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/discovery/deprecation-report.md +7 -0
- package/dist/discovery/discovery-manifest.json +9893 -0
- package/dist/discovery/discovery-manifest.json.sha256 +1 -0
- package/dist/discovery/discovery-manifest.summary.md +93 -0
- package/dist/discovery/orphan-report.md +10 -0
- package/dist/discovery/packs.json +1002 -0
- package/dist/discovery/trust-report.md +26 -0
- package/dist/discovery/workspaces.json +705 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -0
- package/dist/mcp/mcp-cloudflare-catalogue.json +27 -0
- package/dist/mcp/registry-manifest.json +63 -0
- package/dist/router.json +1623 -0
- package/dist/server/app.js +125 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/io/atomicMultiWrite.js +204 -0
- package/dist/server/io/atomicMultiWrite.js.map +1 -0
- package/dist/server/io/atomicWrite.js +79 -0
- package/dist/server/io/atomicWrite.js.map +1 -0
- package/dist/server/io/substituteTemplate.js +87 -0
- package/dist/server/io/substituteTemplate.js.map +1 -0
- package/dist/server/io/yamlIO.js +162 -0
- package/dist/server/io/yamlIO.js.map +1 -0
- package/dist/server/port.js +97 -0
- package/dist/server/port.js.map +1 -0
- package/dist/server/routes/discovery.js +72 -0
- package/dist/server/routes/discovery.js.map +1 -0
- package/dist/server/routes/ping.js +57 -0
- package/dist/server/routes/ping.js.map +1 -0
- package/dist/server/routes/schema.js +41 -0
- package/dist/server/routes/schema.js.map +1 -0
- package/dist/server/routes/settings.js +236 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/userMd.js +127 -0
- package/dist/server/routes/userMd.js.map +1 -0
- package/dist/server/routes/wizard.js +374 -0
- package/dist/server/routes/wizard.js.map +1 -0
- package/dist/server/schemas/settings.js +137 -0
- package/dist/server/schemas/settings.js.map +1 -0
- package/dist/server/token.js +75 -0
- package/dist/server/token.js.map +1 -0
- package/dist/server/writeRoot.js +84 -0
- package/dist/server/writeRoot.js.map +1 -0
- package/dist/server/writeRoot.test.js +91 -0
- package/dist/server/writeRoot.test.js.map +1 -0
- package/dist/shared/userMd/formAdapter.js +83 -0
- package/dist/shared/userMd/formAdapter.js.map +1 -0
- package/dist/shared/userMd/schema.js +46 -0
- package/dist/shared/userMd/schema.js.map +1 -0
- package/dist/shared/userMd/utils.js +88 -0
- package/dist/shared/userMd/utils.js.map +1 -0
- package/dist/ui/assets/index-D-DY1ywI.js +35 -0
- package/dist/ui/assets/index-D-DY1ywI.js.map +1 -0
- package/dist/ui/assets/index-Dqfhmg-d.css +1 -0
- package/dist/ui/index.html +14 -0
- package/docs/adrs/caveman/0001-default-off-until-bench.md +2 -2
- package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
- package/docs/adrs/router/0001-three-tier-routing.md +5 -5
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +4 -4
- package/docs/adrs/schema/README.md +1 -1
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +3 -3
- package/docs/architecture/setup-vs-settings-shared-surface.md +114 -0
- package/docs/architecture.md +3 -2
- package/docs/archive/CHANGELOG-pre-2.2.0.md +7 -7
- package/docs/archive/CHANGELOG-pre-3.0.0.md +130 -0
- package/docs/archive/CHANGELOG-pre-3.1.0.md +167 -0
- package/docs/catalog.md +92 -100
- package/docs/contracts/CHANGELOG-conventions.md +1 -1
- package/docs/contracts/STABILITY.md +1 -1
- package/docs/contracts/adr-architectural-consensus-mechanism.md +5 -5
- package/docs/contracts/adr-chat-history-split.md +1 -1
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -1
- package/docs/contracts/adr-install-user-type-axis.md +1 -1
- package/docs/contracts/adr-mcp-runtime.md +2 -2
- package/docs/contracts/agent-user-schema.md +17 -11
- package/docs/contracts/ai-council-config.md +13 -13
- package/docs/contracts/audit-log-v1.md +2 -2
- package/docs/contracts/command-clusters.md +2 -2
- package/docs/contracts/compression-default-kill-criterion.md +3 -3
- package/docs/contracts/consumer-bridge.md +79 -0
- package/docs/contracts/decision-trace-v1.md +5 -5
- package/docs/contracts/discovery-manifest.md +209 -0
- package/docs/contracts/discovery-manifest.schema.json +219 -0
- package/docs/contracts/explain-trace.schema.json +144 -0
- package/docs/contracts/file-ownership-matrix.json +288 -328
- package/docs/contracts/file-ownership-matrix.md +1 -1
- package/docs/contracts/frontmatter-contract.md +140 -0
- package/docs/contracts/ghostwriter-schema.md +3 -3
- package/docs/contracts/gui-wizard.md +223 -0
- package/docs/contracts/hook-architecture-v1.md +10 -10
- package/docs/contracts/installer-agent-mode.md +137 -0
- package/docs/contracts/kernel-membership.md +5 -5
- package/docs/contracts/linter-structural-model.md +3 -3
- package/docs/contracts/load-context-schema.md +5 -5
- package/docs/contracts/local-server-api.md +134 -0
- package/docs/contracts/low-impact-corpus-format.md +1 -1
- package/docs/contracts/mcp-cloud-scope.md +2 -2
- package/docs/contracts/mcp-discovery-phase-notice.md +1 -1
- package/docs/contracts/mcp-phase-1-scope.md +5 -4
- package/docs/contracts/mcp-registry-manifest.schema.json +129 -0
- package/docs/contracts/mcp-tool-inventory.md +9 -9
- package/docs/contracts/mcp-tool-stub-envelope.md +1 -1
- package/docs/contracts/memory-visibility-v1.md +2 -2
- package/docs/contracts/multi-tool-projection-fidelity.md +3 -3
- package/docs/contracts/namespace.md +7 -7
- package/docs/contracts/one-off-script-lifecycle.md +1 -1
- package/docs/contracts/package-self-orientation.md +1 -1
- package/docs/contracts/provider-lifecycle.md +7 -7
- package/docs/contracts/router-blending.md +1 -1
- package/docs/contracts/rule-classification.md +2 -2
- package/docs/contracts/rule-router.md +4 -4
- package/docs/contracts/settings-api.md +207 -0
- package/docs/contracts/settings-gui-agent-mode.schema.json +128 -0
- package/docs/contracts/smoke-contracts.md +3 -3
- package/docs/contracts/tier-3-contrib-plugin.md +1 -1
- package/docs/contracts/trust-and-safety.md +144 -0
- package/docs/contracts/universal-skills.md +1 -1
- package/docs/contracts/write-engine.md +1 -1
- package/docs/customization.md +139 -13
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +1 -1
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +1 -1
- package/docs/decisions/ADR-004-rule-governance-pruning.md +8 -8
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +5 -5
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +16 -4
- package/docs/decisions/ADR-008-installed-tools-manifest.md +2 -2
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +2 -2
- package/docs/decisions/ADR-011-domain-pack-readiness.md +4 -4
- package/docs/decisions/ADR-012-typescript-cli-shell.md +162 -0
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +234 -0
- package/docs/decisions/ADR-014-gui-framework-choice.md +136 -0
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +146 -0
- package/docs/decisions/ADR-016-installer-architecture.md +189 -0
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +261 -0
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +159 -0
- package/docs/decisions/ADR-019-router-json-dist-location.md +124 -0
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +123 -0
- package/docs/decisions/ADR-021-deployment-shape.md +153 -0
- package/docs/decisions/ADR-rule-kernel-and-router.md +2 -2
- package/docs/decisions/INDEX.md +10 -0
- package/docs/deploy/connector-setup.md +129 -0
- package/docs/deploy/env-vars.md +70 -0
- package/docs/deploy/policy-cookbook.md +130 -0
- package/docs/deploy/quickstart.md +112 -0
- package/docs/distribution/mcp-submission-checklist.md +95 -0
- package/docs/distribution/public-install-smoke.md +68 -0
- package/docs/distribution/registries.md +55 -0
- package/docs/distribution/telemetry-privacy.md +128 -0
- package/docs/distribution/telemetry-schema.md +174 -0
- package/docs/distribution/topics-equivalents-decay-policy.md +51 -0
- package/docs/examples/agent-user.example.md +3 -1
- package/docs/featured-skills.md +95 -0
- package/docs/getting-started-by-role.md +19 -1
- package/docs/getting-started.md +5 -4
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
- package/docs/guidelines/agent-infra/installed-tools-manifest.md +11 -8
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +10 -1
- package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
- package/docs/guidelines/agent-infra/tool-integration.md +1 -1
- package/docs/guidelines/docs/readme-size-and-splitting.md +53 -1
- package/docs/guidelines/php/api-design.md +1 -1
- package/docs/guidelines/prompt-templates.md +2 -2
- package/docs/hook-payload-capture.md +3 -3
- package/docs/installation.md +39 -18
- package/docs/maintainers/dev-mode.md +105 -0
- package/docs/migrations/commands-1.15.0.md +3 -3
- package/docs/parity/bench-ruflo.json +1 -1
- package/docs/parity/ruflo.md +3 -3
- package/docs/profiles.md +1 -1
- package/docs/quality.md +2 -2
- package/docs/recruits/_template.md +3 -3
- package/docs/setup/enterprise-and-offline.md +3 -3
- package/docs/setup/mcp-server-docker.md +5 -3
- package/docs/setup/per-ide/claude-desktop.md +3 -2
- package/docs/skills-catalog.md +62 -18
- package/docs/wizard.md +156 -0
- package/llms.txt +61 -17
- package/package.json +63 -3
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_archive/README.md +2 -2
- package/scripts/_archive/_p4_migrate.py +1 -1
- package/scripts/_cli/cmd_doctor.py +155 -7
- package/scripts/_cli/cmd_explain.py +108 -3
- package/scripts/_cli/cmd_migrate.py +2 -2
- package/scripts/_cli/cmd_migrate_to_global.py +415 -0
- package/scripts/_cli/cmd_settings_migrate.py +146 -0
- package/scripts/_cli/explain_last/__init__.py +122 -0
- package/scripts/_cli/explain_last/assumptions.py +59 -0
- package/scripts/_cli/explain_last/council.py +105 -0
- package/scripts/_cli/explain_last/halt.py +44 -0
- package/scripts/_cli/explain_last/inputs.py +125 -0
- package/scripts/_cli/explain_last/memory.py +94 -0
- package/scripts/_cli/explain_last/provider.py +52 -0
- package/scripts/_cli/explain_last/render.py +52 -0
- package/scripts/_cli/explain_last/route.py +59 -0
- package/scripts/_cli/explain_last/scrubber.py +105 -0
- package/scripts/_cli/explain_last/sections/__init__.py +35 -0
- package/scripts/_cli/explain_last/sections/assumptions.py +21 -0
- package/scripts/_cli/explain_last/sections/council.py +27 -0
- package/scripts/_cli/explain_last/sections/halt.py +31 -0
- package/scripts/_cli/explain_last/sections/header.py +24 -0
- package/scripts/_cli/explain_last/sections/inputs.py +27 -0
- package/scripts/_cli/explain_last/sections/memory.py +21 -0
- package/scripts/_cli/explain_last/sections/pack.py +16 -0
- package/scripts/_cli/explain_last/sections/provider.py +26 -0
- package/scripts/_cli/explain_last/sections/route.py +22 -0
- package/scripts/_cli/explain_last/state_loader.py +76 -0
- package/scripts/_dispatch.bash +987 -0
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/_lib/agent_settings.py +7 -4
- package/scripts/_lib/agent_src.py +157 -0
- package/scripts/_lib/agents_overlay.py +3 -3
- package/scripts/_phase4_bucket.py +210 -0
- package/scripts/agent-config +50 -947
- package/scripts/ai-video/adapters/higgsfield.sh +1 -1
- package/scripts/ai-video/adapters/sora.sh +1 -1
- package/scripts/ai-video/test-pipeline.sh +2 -2
- package/scripts/ai_council/_default_prices.py +5 -5
- package/scripts/ai_council/advisors.py +1 -1
- package/scripts/ai_council/clients.py +2 -2
- package/scripts/ai_council/compile_corpus.py +9 -8
- package/scripts/ai_council/config.py +3 -3
- package/scripts/ai_council/events_log.py +8 -4
- package/scripts/ai_council/low_impact_corpus.py +1 -1
- package/scripts/ai_council/low_impact_intake.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +2 -2
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +3 -3
- package/scripts/ai_council/pricing.py +8 -7
- package/scripts/ai_council/probation_gate.py +1 -1
- package/scripts/ai_council/redact_low_impact_entry.py +1 -1
- package/scripts/ai_council/session.py +13 -13
- package/scripts/ai_council/shadow_dispatch.py +2 -2
- package/scripts/annotate_discovery.py +149 -0
- package/scripts/audit_adr_coverage.py +1 -1
- package/scripts/audit_auto_rules.py +2 -2
- package/scripts/audit_cloud_compatibility.py +1 -1
- package/scripts/audit_command_surface.py +2 -2
- package/scripts/audit_likelihood.py +4 -4
- package/scripts/audit_overlap.py +3 -3
- package/scripts/audit_skill_descriptions.py +18 -6
- package/scripts/audit_user_type_axis.py +1 -1
- package/scripts/build_discovery_manifest.py +658 -0
- package/scripts/build_mcp_registry_manifest.py +181 -0
- package/scripts/build_rule_trigger_matrix.py +2 -2
- package/scripts/capture_showcase_session.py +1 -1
- package/scripts/chat_history.py +5 -5
- package/scripts/check_always_budget.py +7 -2
- package/scripts/check_artefact_checksums.py +104 -0
- package/scripts/check_cluster_patterns.py +20 -4
- package/scripts/check_command_count_messaging.py +33 -14
- package/scripts/check_council_layout.py +26 -20
- package/scripts/check_council_references.py +53 -14
- package/scripts/check_discovery_determinism.py +70 -0
- package/scripts/check_kernel_rule_bundle.py +2 -2
- package/scripts/check_no_roadmap_refs.py +2 -2
- package/scripts/check_one_off_location.py +1 -1
- package/scripts/check_overlay_cascade_subdirs.py +7 -3
- package/scripts/check_public_links.py +2 -2
- package/scripts/check_references.py +19 -23
- package/scripts/check_release_includes_discovery.py +61 -0
- package/scripts/check_reply_consistency.py +32 -9
- package/scripts/check_template_pin_drift.py +24 -7
- package/scripts/check_token_optimizer_freshness.py +18 -3
- package/scripts/ci_summary.py +2 -2
- package/scripts/ci_time_ratio.py +1 -1
- package/scripts/command_suggester/__init__.py +1 -1
- package/scripts/compile_router.py +34 -2
- package/scripts/compress.py +162 -44
- package/scripts/config/presets.py +19 -1
- package/scripts/config/profiles.py +16 -1
- package/scripts/context_hygiene_hook.py +2 -2
- package/scripts/council_cli.py +22 -22
- package/scripts/council_prune.py +3 -3
- package/scripts/discovery_stats.py +70 -0
- package/scripts/expected_perms.json +47 -0
- package/scripts/extract_audit_patterns.py +2 -2
- package/scripts/gen_discovery_baseline.py +127 -0
- package/scripts/generate_index.py +78 -46
- package/scripts/generate_ownership_matrix.py +99 -44
- package/scripts/generate_pack_manifests.py +183 -0
- package/scripts/hook_manifest.yaml +5 -5
- package/scripts/hooks/cline-dispatcher.sh +1 -1
- package/scripts/hooks/cowork-dispatcher.sh +1 -1
- package/scripts/hooks/dispatch_hook.py +3 -3
- package/scripts/hooks/gemini-dispatcher.sh +1 -1
- package/scripts/hooks/replay_hook.py +1 -1
- package/scripts/hooks/state_io.py +5 -5
- package/scripts/hooks_doctor.py +4 -4
- package/scripts/install +18 -1
- package/scripts/install-hooks.sh +2 -2
- package/scripts/install.py +937 -62
- package/scripts/install.sh +147 -27
- package/scripts/inventory_frontmatter.py +1 -1
- package/scripts/lint_agents_layout.py +183 -0
- package/scripts/lint_agents_md.py +1 -1
- package/scripts/lint_archived_skills.py +35 -19
- package/scripts/lint_artefact_frontmatter.py +180 -0
- package/scripts/lint_bench_corpus.py +14 -2
- package/scripts/lint_command_tiers.py +15 -2
- package/scripts/lint_discovery_manifest.py +136 -0
- package/scripts/lint_discovery_vocabulary.py +148 -0
- package/scripts/lint_explain_trace.py +80 -0
- package/scripts/lint_featured_skills.py +139 -0
- package/scripts/lint_framework_leakage.py +33 -6
- package/scripts/lint_framework_leakage_allowlist.json +63 -62
- package/scripts/lint_ghostwriter_source.py +1 -1
- package/scripts/lint_global_paths.py +147 -0
- package/scripts/lint_load_context.py +3 -3
- package/scripts/lint_mcp_registry_manifest.py +69 -0
- package/scripts/lint_media_policy_linkage.py +6 -6
- package/scripts/lint_orchestration_dsl.py +6 -3
- package/scripts/lint_pack_boundaries.py +147 -0
- package/scripts/lint_pack_first_win.py +103 -0
- package/scripts/lint_positioning.py +143 -0
- package/scripts/lint_readme_jargon.py +131 -0
- package/scripts/lint_readme_size.py +33 -0
- package/scripts/lint_rule_interactions.py +23 -5
- package/scripts/lint_rule_tiers.py +14 -5
- package/scripts/lint_skill_tools.py +1 -1
- package/scripts/lint_topics_yaml.py +89 -0
- package/scripts/lint_trust_coherence.py +212 -0
- package/scripts/mcp_server/consumer_tool_catalog.json +3 -3
- package/scripts/mcp_server/telemetry.py +2 -2
- package/scripts/mcp_server/tools.py +27 -11
- package/scripts/mcp_telemetry_health.py +2 -2
- package/scripts/mcp_telemetry_store.py +1 -1
- package/scripts/measure_augment_budget.py +3 -3
- package/scripts/measure_density.py +2 -2
- package/scripts/measure_frugality_savings.py +3 -3
- package/scripts/measure_roadmap_trajectory.py +1 -1
- package/scripts/measure_rule_budget.py +25 -7
- package/scripts/memory_report.py +1 -1
- package/scripts/migrate_command_suggestions.py +3 -3
- package/scripts/minimal_safe_diff_hook.py +1 -1
- package/scripts/move_artefact.py +143 -0
- package/scripts/new_skill.py +148 -0
- package/scripts/onboarding_gate_hook.py +4 -4
- package/scripts/plan_physical_move.py +353 -0
- package/scripts/prepack-check.mjs +62 -0
- package/scripts/probe_projection_fidelity.py +2 -2
- package/scripts/refine_ticket_detect.py +31 -8
- package/scripts/schemas/command.schema.json +45 -1
- package/scripts/schemas/persona.schema.json +1 -1
- package/scripts/schemas/rule.schema.json +44 -4
- package/scripts/schemas/skill.schema.json +41 -1
- package/scripts/score_skill_selection.py +1 -1
- package/scripts/skill_collision_clusters.py +1 -1
- package/scripts/skill_linter.py +250 -120
- package/scripts/skill_overlap.py +1 -1
- package/scripts/skill_tools/run_block_d_eval.py +1 -1
- package/scripts/skill_trigger_eval.py +28 -8
- package/scripts/skill_usage_collect.py +3 -3
- package/scripts/skill_usage_report.py +3 -3
- package/scripts/smoke/kernel.sh +1 -1
- package/scripts/smoke/router.sh +24 -5
- package/scripts/smoke/skills.sh +15 -7
- package/scripts/smoke_quickstart.py +12 -3
- package/scripts/snapshot_agent_outputs.py +144 -0
- package/scripts/spotcheck_thin_root.py +1 -1
- package/scripts/sync_github_metadata.py +147 -0
- package/scripts/sync_gitignore.py +15 -5
- package/scripts/update_counts.py +45 -17
- package/scripts/update_prices.py +4 -3
- package/scripts/validate_decision_engine.py +9 -1
- package/scripts/validate_discovery_manifest.py +94 -0
- package/scripts/validate_frontmatter.py +39 -20
- package/scripts/verify_before_complete_hook.py +1 -1
- package/scripts/verify_physical_move.py +185 -0
- package/scripts/verify_roadmap_closure.py +1 -1
- package/templates/agent-user.md +34 -0
- package/templates/agent-user.yml +21 -0
- package/templates/minimal/agents-overrides-readme.md +46 -0
- package/templates/minimal/overrides-gitkeep +2 -0
- package/.agent-src/commands/onboard.md +0 -467
- package/templates/minimal/agents-gitkeep +0 -2
|
@@ -1,60 +1,99 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
-
# Pre-commit hook: roadmap progress
|
|
2
|
+
# Pre-commit hook: roadmap progress + artefact frontmatter
|
|
3
|
+
# (event4u/agent-config — installed by `./agent-config hooks:install`).
|
|
3
4
|
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
5
|
+
# Two opt-in checks run on relevant staged paths and short-circuit
|
|
6
|
+
# otherwise:
|
|
7
|
+
# 1. agents/roadmaps-progress.md sync (against agents/roadmaps/*.md)
|
|
8
|
+
# 2. ADR-013 per-artefact frontmatter contract (.agent-src.uncompressed/*.md)
|
|
8
9
|
#
|
|
9
10
|
# To run manually:
|
|
10
11
|
# ./agent-config roadmap:progress-check
|
|
12
|
+
# python3 scripts/lint_artefact_frontmatter.py
|
|
11
13
|
#
|
|
12
14
|
# To uninstall:
|
|
13
15
|
# rm .git/hooks/pre-commit
|
|
14
16
|
set -e
|
|
15
17
|
|
|
16
|
-
# Only act on commits that touch roadmap content.
|
|
17
18
|
staged="$(git diff --cached --name-only --diff-filter=ACMR 2>/dev/null || true)"
|
|
19
|
+
|
|
20
|
+
roadmap_relevant=false
|
|
21
|
+
frontmatter_relevant=false
|
|
18
22
|
case "$staged" in
|
|
19
23
|
*agents/roadmaps/*.md*|*agents/roadmaps-progress.md*|*.augment/scripts/update_roadmap_progress.py*)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
24
|
+
roadmap_relevant=true ;;
|
|
25
|
+
esac
|
|
26
|
+
case "$staged" in
|
|
27
|
+
*.agent-src.uncompressed/*.md*|*config/discovery/*.yml*|*scripts/lint_artefact_frontmatter.py*)
|
|
28
|
+
frontmatter_relevant=true ;;
|
|
23
29
|
esac
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
# the source-of-truth copy when run from inside the package itself.
|
|
27
|
-
script=""
|
|
28
|
-
for cand in \
|
|
29
|
-
".augment/scripts/update_roadmap_progress.py" \
|
|
30
|
-
".agent-src/scripts/update_roadmap_progress.py" \
|
|
31
|
-
".agent-src.uncompressed/scripts/update_roadmap_progress.py"; do
|
|
32
|
-
if [ -f "$cand" ]; then
|
|
33
|
-
script="$cand"
|
|
34
|
-
break
|
|
35
|
-
fi
|
|
36
|
-
done
|
|
37
|
-
|
|
38
|
-
if [ -z "$script" ]; then
|
|
39
|
-
echo "⚠️ pre-commit-roadmap-progress: update_roadmap_progress.py not found." >&2
|
|
40
|
-
echo " Run \`task install\` (or \`./agent-config install\`) and retry." >&2
|
|
41
|
-
echo " Skipping check — letting commit through." >&2
|
|
31
|
+
if ! $roadmap_relevant && ! $frontmatter_relevant; then
|
|
42
32
|
exit 0
|
|
43
33
|
fi
|
|
44
34
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
resolve() {
|
|
36
|
+
local cand
|
|
37
|
+
for cand in "$@"; do
|
|
38
|
+
if [ -f "$cand" ]; then
|
|
39
|
+
printf '%s\n' "$cand"
|
|
40
|
+
return 0
|
|
41
|
+
fi
|
|
42
|
+
done
|
|
43
|
+
return 1
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
# --- Check 1: roadmap progress dashboard sync --------------------------
|
|
47
|
+
if $roadmap_relevant; then
|
|
48
|
+
rp_script="$(resolve \
|
|
49
|
+
".augment/scripts/update_roadmap_progress.py" \
|
|
50
|
+
".agent-src/scripts/update_roadmap_progress.py" \
|
|
51
|
+
".agent-src.uncompressed/scripts/update_roadmap_progress.py" || true)"
|
|
52
|
+
|
|
53
|
+
if [ -z "$rp_script" ]; then
|
|
54
|
+
echo "⚠️ pre-commit: update_roadmap_progress.py not found — skipping roadmap check." >&2
|
|
55
|
+
elif ! python3 "$rp_script" --check >/dev/null 2>&1; then
|
|
56
|
+
echo "❌ agents/roadmaps-progress.md is stale relative to your staged changes." >&2
|
|
57
|
+
echo "" >&2
|
|
58
|
+
echo " Regenerate the dashboard with one of:" >&2
|
|
59
|
+
echo " ./agent-config roadmap:progress" >&2
|
|
60
|
+
echo " task roadmap-progress" >&2
|
|
61
|
+
echo " python3 $rp_script" >&2
|
|
62
|
+
echo "" >&2
|
|
63
|
+
echo " Then \`git add agents/roadmaps-progress.md\` and retry the commit." >&2
|
|
64
|
+
echo "" >&2
|
|
65
|
+
echo " To bypass once (NOT recommended):" >&2
|
|
66
|
+
echo " git commit --no-verify" >&2
|
|
67
|
+
exit 1
|
|
68
|
+
fi
|
|
69
|
+
fi
|
|
70
|
+
|
|
71
|
+
# --- Check 2: ADR-013 artefact frontmatter contract --------------------
|
|
72
|
+
if $frontmatter_relevant; then
|
|
73
|
+
fm_script="$(resolve \
|
|
74
|
+
".augment/scripts/lint_artefact_frontmatter.py" \
|
|
75
|
+
".agent-src/scripts/lint_artefact_frontmatter.py" \
|
|
76
|
+
"scripts/lint_artefact_frontmatter.py" || true)"
|
|
77
|
+
|
|
78
|
+
if [ -z "$fm_script" ]; then
|
|
79
|
+
echo "⚠️ pre-commit: lint_artefact_frontmatter.py not found — skipping frontmatter check." >&2
|
|
80
|
+
elif ! python3 "$fm_script" --quiet >/dev/null 2>&1; then
|
|
81
|
+
echo "❌ Artefact frontmatter lint failed (ADR-013 contract violation)." >&2
|
|
82
|
+
echo "" >&2
|
|
83
|
+
echo " Re-run for details:" >&2
|
|
84
|
+
echo " python3 $fm_script" >&2
|
|
85
|
+
echo " task lint-artefact-frontmatter" >&2
|
|
86
|
+
echo "" >&2
|
|
87
|
+
echo " Common fixes:" >&2
|
|
88
|
+
echo " • Add missing workspaces/packs/lifecycle/trust/install keys." >&2
|
|
89
|
+
echo " • Pick values from config/discovery/{workspaces,packs}.yml." >&2
|
|
90
|
+
echo " • For scaffolds, add the path to" >&2
|
|
91
|
+
echo " config/discovery/unassigned-artefacts.yml with a reason." >&2
|
|
92
|
+
echo "" >&2
|
|
93
|
+
echo " To bypass once (NOT recommended):" >&2
|
|
94
|
+
echo " git commit --no-verify" >&2
|
|
95
|
+
exit 1
|
|
96
|
+
fi
|
|
58
97
|
fi
|
|
59
98
|
|
|
60
99
|
exit 0
|
|
@@ -31,7 +31,7 @@ both reject the legacy prefix.
|
|
|
31
31
|
|---|---|
|
|
32
32
|
| `contexts/execution/verification-mechanics.md` | `.agent-src.uncompressed/contexts/execution/verification-mechanics.md` |
|
|
33
33
|
| `contexts/authority/commit-mechanics.md` | `.agent-src.uncompressed/contexts/authority/commit-mechanics.md` |
|
|
34
|
-
| `agents/contexts/local.md` (project-local) | `.agent-src.uncompressed/contexts/...` for project-only material |
|
|
34
|
+
| `agents/settings/contexts/local.md` (project-local) | `.agent-src.uncompressed/contexts/...` for project-only material |
|
|
35
35
|
|
|
36
36
|
### `triggers[].path_prefix:` — literal match pattern, not a file path
|
|
37
37
|
|
|
@@ -22,7 +22,7 @@ Step 7 the anchor set is (closest-leaf wins; tiebreaker
|
|
|
22
22
|
``.agent-settings.yml`` > ``agents/`` > ``.git``):
|
|
23
23
|
|
|
24
24
|
* ``.agent-settings.yml`` file,
|
|
25
|
-
* ``agents/`` directory containing ``roadmaps/``,
|
|
25
|
+
* ``agents/`` directory containing ``roadmaps/``, ``settings/.ai-council.yml``,
|
|
26
26
|
or ``roadmaps-progress.md`` (bare ``agents/`` does **not** anchor),
|
|
27
27
|
* ``.git`` file or directory (submodule support).
|
|
28
28
|
|
|
@@ -99,11 +99,14 @@ ANCHOR_GIT = "git"
|
|
|
99
99
|
|
|
100
100
|
#: Marker subpaths that qualify a bare ``agents/`` directory as a project
|
|
101
101
|
#: anchor (D1). Any one is sufficient. Bare ``agents/`` without a marker
|
|
102
|
-
#: is **not** an anchor.
|
|
102
|
+
#: is **not** an anchor. ``.event4u-bridge.yml`` is the global-only
|
|
103
|
+
#: consumer anchor (ADR-020 § Phase 4.2) — a clean consumer repo only
|
|
104
|
+
#: ever ships ``agents/overrides/`` plus this marker.
|
|
103
105
|
_AGENTS_DIR_MARKERS: tuple[str, ...] = (
|
|
104
106
|
"roadmaps",
|
|
105
|
-
"
|
|
107
|
+
"settings/.ai-council.yml",
|
|
106
108
|
"roadmaps-progress.md",
|
|
109
|
+
".event4u-bridge.yml",
|
|
107
110
|
)
|
|
108
111
|
|
|
109
112
|
#: Kill-switch (D5). When set to ``"1"``, :func:`find_project_root` and
|
|
@@ -148,7 +151,7 @@ def find_project_root_with_anchor(start: Path) -> tuple[Path, str] | None:
|
|
|
148
151
|
a boundary anchor wins:
|
|
149
152
|
|
|
150
153
|
* ``agents/`` containing **any** of ``roadmaps/``,
|
|
151
|
-
|
|
154
|
+
``settings/.ai-council.yml``, or ``roadmaps-progress.md`` (D1) →
|
|
152
155
|
``"agents-dir"``
|
|
153
156
|
* ``.git`` (file or directory; submodule support) → ``"git"``
|
|
154
157
|
|
|
@@ -99,7 +99,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
99
99
|
HookContext(state_file=state_file, args=args),
|
|
100
100
|
)
|
|
101
101
|
if halt is not None:
|
|
102
|
-
return _emit_halt(halt)
|
|
102
|
+
return _emit_halt(halt, state_file=state_file, event="BEFORE_LOAD")
|
|
103
103
|
|
|
104
104
|
try:
|
|
105
105
|
work, fmt = _load_or_build(state_file, args)
|
|
@@ -112,7 +112,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
112
112
|
HookContext(state_file=state_file, work=work, fmt=fmt, args=args),
|
|
113
113
|
)
|
|
114
114
|
if halt is not None:
|
|
115
|
-
return _emit_halt(halt)
|
|
115
|
+
return _emit_halt(halt, work=work, state_file=state_file, event="AFTER_LOAD")
|
|
116
116
|
|
|
117
117
|
try:
|
|
118
118
|
set_name = select_directive_set(work)
|
|
@@ -129,7 +129,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
129
129
|
HookContext(work=work, delivery=delivery, set_name=set_name, args=args),
|
|
130
130
|
)
|
|
131
131
|
if halt is not None:
|
|
132
|
-
return _emit_halt(halt)
|
|
132
|
+
return _emit_halt(halt, work=work, state_file=state_file, event="BEFORE_DISPATCH")
|
|
133
133
|
|
|
134
134
|
final, halting = dispatch(delivery, steps, hooks=runner)
|
|
135
135
|
|
|
@@ -144,7 +144,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
144
144
|
),
|
|
145
145
|
)
|
|
146
146
|
if halt is not None:
|
|
147
|
-
return _emit_halt(halt)
|
|
147
|
+
return _emit_halt(halt, work=work, state_file=state_file, event="AFTER_DISPATCH")
|
|
148
148
|
|
|
149
149
|
_sync_back(work, delivery)
|
|
150
150
|
|
|
@@ -153,7 +153,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
153
153
|
HookContext(work=work, delivery=delivery, fmt=fmt, args=args),
|
|
154
154
|
)
|
|
155
155
|
if halt is not None:
|
|
156
|
-
return _emit_halt(halt)
|
|
156
|
+
return _emit_halt(halt, work=work, state_file=state_file, event="BEFORE_SAVE")
|
|
157
157
|
|
|
158
158
|
_save(state_file, work, fmt)
|
|
159
159
|
|
|
@@ -163,7 +163,7 @@ def main(argv: Sequence[str] | None = None) -> int:
|
|
|
163
163
|
)
|
|
164
164
|
if halt is not None:
|
|
165
165
|
# State is already on disk; exit 2 still per the P3 branch table.
|
|
166
|
-
return _emit_halt(halt)
|
|
166
|
+
return _emit_halt(halt, work=work, state_file=state_file, event="AFTER_SAVE")
|
|
167
167
|
|
|
168
168
|
_emit(work, final, halting)
|
|
169
169
|
return 0 if final is Outcome.SUCCESS else 1
|
|
@@ -8,10 +8,12 @@ on stdout, and the lifecycle-hook halt surface printed on stderr.
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
10
|
import sys
|
|
11
|
+
from datetime import datetime, timezone
|
|
12
|
+
from pathlib import Path
|
|
11
13
|
|
|
12
14
|
from .delivery_state import Outcome
|
|
13
15
|
from .hooks import HookHalt
|
|
14
|
-
from .state import WorkState
|
|
16
|
+
from .state import WorkState, dump
|
|
15
17
|
|
|
16
18
|
|
|
17
19
|
def _emit(work: WorkState, final: Outcome, halting: str | None) -> None:
|
|
@@ -23,20 +25,43 @@ def _emit(work: WorkState, final: Outcome, halting: str | None) -> None:
|
|
|
23
25
|
print(line)
|
|
24
26
|
|
|
25
27
|
|
|
26
|
-
def _emit_halt(
|
|
28
|
+
def _emit_halt(
|
|
29
|
+
halt: HookHalt,
|
|
30
|
+
*,
|
|
31
|
+
work: WorkState | None = None,
|
|
32
|
+
state_file: Path | None = None,
|
|
33
|
+
event: str | None = None,
|
|
34
|
+
) -> int:
|
|
27
35
|
"""Render a :class:`HookHalt` surface to stderr and return exit 2.
|
|
28
36
|
|
|
29
37
|
Per the P3 halt branch table, every CLI-layer halt yields exit code
|
|
30
38
|
``2`` regardless of which event fired it. State persistence is
|
|
31
39
|
governed by *where* in ``main`` the halt is detected: the call site
|
|
32
|
-
decides whether ``_save`` already ran.
|
|
33
|
-
|
|
40
|
+
decides whether ``_save`` already ran.
|
|
41
|
+
|
|
42
|
+
When ``work`` + ``state_file`` are provided AND the state file
|
|
43
|
+
already exists on disk, the halt is appended to ``work.halts[]``
|
|
44
|
+
and the state is re-saved. This lets ``agent-config explain last``
|
|
45
|
+
surface the halt reason later. Fresh-run halts before the first
|
|
46
|
+
``_save`` (state file absent) still leave no state on disk — the
|
|
47
|
+
pre-explain-v2 contract is preserved.
|
|
34
48
|
"""
|
|
35
49
|
if halt.surface:
|
|
36
50
|
for line in halt.surface:
|
|
37
51
|
print(line, file=sys.stderr)
|
|
38
52
|
else:
|
|
39
53
|
print(f"halt: {halt.reason}", file=sys.stderr)
|
|
54
|
+
if work is not None and state_file is not None and state_file.exists():
|
|
55
|
+
work.halts.append({
|
|
56
|
+
"reason": halt.reason,
|
|
57
|
+
"step": event or "",
|
|
58
|
+
"surface": list(halt.surface),
|
|
59
|
+
"timestamp": datetime.now(tz=timezone.utc).isoformat(),
|
|
60
|
+
})
|
|
61
|
+
try:
|
|
62
|
+
dump(work, state_file)
|
|
63
|
+
except Exception: # never let halt persistence mask the halt
|
|
64
|
+
pass
|
|
40
65
|
return 2
|
|
41
66
|
|
|
42
67
|
|
|
@@ -13,7 +13,7 @@ Trace layout (matches the contract):
|
|
|
13
13
|
|
|
14
14
|
* ``schema_version: 1``
|
|
15
15
|
* ``work_id`` — derived from the state-file directory name when the
|
|
16
|
-
caller follows the ``agents/state/work/<id>/state.json`` convention,
|
|
16
|
+
caller follows the ``agents/runtime/state/work/<id>/state.json`` convention,
|
|
17
17
|
else from the state-file stem.
|
|
18
18
|
* ``phase`` — engine ``step_name`` (refine/memory/.../report).
|
|
19
19
|
* ``started_at`` / ``ended_at`` — ISO-8601 UTC timestamps captured on
|
|
@@ -56,8 +56,8 @@ class DecisionTraceHook:
|
|
|
56
56
|
output_dir:
|
|
57
57
|
Optional override for the trace destination. When ``None`` the
|
|
58
58
|
hook writes alongside the WorkState file: if the state file
|
|
59
|
-
sits under ``agents/state/work/<id>/state.json`` the trace
|
|
60
|
-
lands at ``agents/state/work/<id>/decision-trace-<phase>.json``;
|
|
59
|
+
sits under ``agents/runtime/state/work/<id>/state.json`` the trace
|
|
60
|
+
lands at ``agents/runtime/state/work/<id>/decision-trace-<phase>.json``;
|
|
61
61
|
otherwise the trace lands next to the state file as
|
|
62
62
|
``<stem>.decision-trace-<phase>.json``.
|
|
63
63
|
"""
|
|
@@ -57,21 +57,35 @@ class PipelineState:
|
|
|
57
57
|
def _load_pipeline(path: Path) -> dict[str, Any]:
|
|
58
58
|
"""Reuse the linter's loader so the runtime accepts the same shape.
|
|
59
59
|
|
|
60
|
-
Walks parents to find
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
(
|
|
60
|
+
Walks parents to find ``scripts/hooks/dispatch_hook.py`` so the
|
|
61
|
+
loader is reachable both when this module runs from the consumer
|
|
62
|
+
projection (``.agent-src/templates/scripts/work_engine/``) and
|
|
63
|
+
from the source-of-truth tree
|
|
64
|
+
(``packages/<pack>/.agent-src.uncompressed/templates/scripts/work_engine/``).
|
|
65
|
+
Loaded via ``importlib.util`` by file path to avoid namespace
|
|
66
|
+
collisions with test packages named ``hooks``.
|
|
65
67
|
"""
|
|
66
|
-
import
|
|
68
|
+
import importlib.util
|
|
67
69
|
here = Path(__file__).resolve()
|
|
70
|
+
candidate: Path | None = None
|
|
68
71
|
for parent in here.parents:
|
|
69
|
-
|
|
70
|
-
if
|
|
71
|
-
|
|
72
|
+
probe = parent / "scripts" / "hooks" / "dispatch_hook.py"
|
|
73
|
+
if probe.is_file():
|
|
74
|
+
candidate = probe
|
|
72
75
|
break
|
|
73
|
-
|
|
74
|
-
|
|
76
|
+
if candidate is None:
|
|
77
|
+
raise RuntimeError(
|
|
78
|
+
"could not locate scripts/hooks/dispatch_hook.py from "
|
|
79
|
+
f"{here}"
|
|
80
|
+
)
|
|
81
|
+
spec = importlib.util.spec_from_file_location(
|
|
82
|
+
"_work_engine_dispatch_hook", candidate
|
|
83
|
+
)
|
|
84
|
+
if spec is None or spec.loader is None:
|
|
85
|
+
raise RuntimeError(f"cannot load spec for {candidate}")
|
|
86
|
+
module = importlib.util.module_from_spec(spec)
|
|
87
|
+
spec.loader.exec_module(module)
|
|
88
|
+
doc = module._load_yaml(path)
|
|
75
89
|
if not isinstance(doc, dict):
|
|
76
90
|
raise ValueError(f"{path}: top-level must be a mapping")
|
|
77
91
|
return doc
|
|
@@ -49,6 +49,15 @@ The wire format adds five envelope fields on top of the legacy
|
|
|
49
49
|
``verdict`` (success / blocked / partial), and the
|
|
50
50
|
``integration_confirmed`` flag the user sets after reviewing the
|
|
51
51
|
integration evidence.
|
|
52
|
+
- ``halts`` — append-only log of :class:`HookHalt` events the engine
|
|
53
|
+
persisted into state. Populated by :func:`emitters._emit_halt` when
|
|
54
|
+
it runs against an already-persisted state file (the P3 branch table
|
|
55
|
+
is preserved: fresh-run halts before the first ``_save`` still leave
|
|
56
|
+
no state on disk). The ``explain_last`` trace builder reads the
|
|
57
|
+
tail entry to fill the ``trace.halt`` slot. Each entry is
|
|
58
|
+
``{reason, step, surface, timestamp}``. The list defaults to empty
|
|
59
|
+
and is omitted from older state files via ``from_dict``'s tolerant
|
|
60
|
+
reader — no schema-version bump.
|
|
52
61
|
|
|
53
62
|
All other fields keep their v0 names so the dispatcher can read the
|
|
54
63
|
legacy slice unchanged once Phase 3 wires the steps over.
|
|
@@ -153,6 +162,7 @@ class WorkState:
|
|
|
153
162
|
ui_polish: dict[str, Any] | None = None
|
|
154
163
|
contract: dict[str, Any] | None = None
|
|
155
164
|
stitch: dict[str, Any] | None = None
|
|
165
|
+
halts: list[dict[str, Any]] = field(default_factory=list)
|
|
156
166
|
version: int = SCHEMA_VERSION
|
|
157
167
|
persona: str = "senior-engineer"
|
|
158
168
|
memory: list[dict[str, Any]] = field(default_factory=list)
|
|
@@ -187,6 +197,7 @@ def to_dict(state: WorkState) -> dict[str, Any]:
|
|
|
187
197
|
_validate_ui_polish(state.ui_polish)
|
|
188
198
|
_validate_contract(state.contract)
|
|
189
199
|
_validate_stitch(state.stitch)
|
|
200
|
+
_validate_halts(state.halts)
|
|
190
201
|
return {
|
|
191
202
|
"version": state.version,
|
|
192
203
|
"input": {"kind": state.input.kind, "data": state.input.data},
|
|
@@ -199,6 +210,7 @@ def to_dict(state: WorkState) -> dict[str, Any]:
|
|
|
199
210
|
"ui_polish": state.ui_polish,
|
|
200
211
|
"contract": state.contract,
|
|
201
212
|
"stitch": state.stitch,
|
|
213
|
+
"halts": list(state.halts),
|
|
202
214
|
"persona": state.persona,
|
|
203
215
|
"memory": state.memory,
|
|
204
216
|
"plan": state.plan,
|
|
@@ -269,6 +281,9 @@ def from_dict(payload: Any) -> WorkState:
|
|
|
269
281
|
stitch = payload.get("stitch")
|
|
270
282
|
_validate_stitch(stitch)
|
|
271
283
|
|
|
284
|
+
halts = payload.get("halts", [])
|
|
285
|
+
_validate_halts(halts)
|
|
286
|
+
|
|
272
287
|
return WorkState(
|
|
273
288
|
input=Input(kind=kind, data=data),
|
|
274
289
|
intent=payload.get("intent", DEFAULT_INTENT),
|
|
@@ -280,6 +295,7 @@ def from_dict(payload: Any) -> WorkState:
|
|
|
280
295
|
ui_polish=dict(ui_polish) if isinstance(ui_polish, dict) else None,
|
|
281
296
|
contract=dict(contract) if isinstance(contract, dict) else None,
|
|
282
297
|
stitch=dict(stitch) if isinstance(stitch, dict) else None,
|
|
298
|
+
halts=list(halts) if isinstance(halts, list) else [],
|
|
283
299
|
version=version,
|
|
284
300
|
persona=payload.get("persona", "senior-engineer"),
|
|
285
301
|
memory=list(payload.get("memory", [])),
|
|
@@ -625,6 +641,43 @@ def _validate_stitch(stitch: Any) -> None:
|
|
|
625
641
|
)
|
|
626
642
|
|
|
627
643
|
|
|
644
|
+
def _validate_halts(halts: Any) -> None:
|
|
645
|
+
"""Reject malformed ``halts`` envelopes; tolerate ``[]``.
|
|
646
|
+
|
|
647
|
+
Each entry must be a dict with at minimum ``reason`` (str) and
|
|
648
|
+
``surface`` (list of str). ``step`` and ``timestamp`` are optional
|
|
649
|
+
metadata appended by ``emitters._emit_halt``. The schema enforces
|
|
650
|
+
only shape — the explain renderer is responsible for fallback
|
|
651
|
+
rendering when optional fields are absent.
|
|
652
|
+
"""
|
|
653
|
+
if not isinstance(halts, list):
|
|
654
|
+
raise SchemaError(
|
|
655
|
+
f"state.halts must be a list; got {type(halts).__name__}",
|
|
656
|
+
)
|
|
657
|
+
for idx, entry in enumerate(halts):
|
|
658
|
+
if not isinstance(entry, dict):
|
|
659
|
+
raise SchemaError(
|
|
660
|
+
f"state.halts[{idx}] must be a JSON object; "
|
|
661
|
+
f"got {type(entry).__name__}",
|
|
662
|
+
)
|
|
663
|
+
reason = entry.get("reason")
|
|
664
|
+
if not isinstance(reason, str) or not reason:
|
|
665
|
+
raise SchemaError(
|
|
666
|
+
f"state.halts[{idx}].reason must be a non-empty string",
|
|
667
|
+
)
|
|
668
|
+
surface = entry.get("surface", [])
|
|
669
|
+
if not isinstance(surface, list):
|
|
670
|
+
raise SchemaError(
|
|
671
|
+
f"state.halts[{idx}].surface must be a list; "
|
|
672
|
+
f"got {type(surface).__name__}",
|
|
673
|
+
)
|
|
674
|
+
for j, line in enumerate(surface):
|
|
675
|
+
if not isinstance(line, str):
|
|
676
|
+
raise SchemaError(
|
|
677
|
+
f"state.halts[{idx}].surface[{j}] must be a string",
|
|
678
|
+
)
|
|
679
|
+
|
|
680
|
+
|
|
628
681
|
__all__ = [
|
|
629
682
|
"DEFAULT_DIRECTIVE_SET",
|
|
630
683
|
"DEFAULT_INTENT",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Skill Archive Note Template
|
|
2
2
|
|
|
3
|
-
> Template for `agents/archived-skills/<slug>.md`. Created during
|
|
3
|
+
> Template for `agents/evidence/archived-skills/<slug>.md`. Created during
|
|
4
4
|
> `step-2-skill-inventory-rationalization.md`
|
|
5
5
|
> Phase 4 execution. Every skill removed from
|
|
6
6
|
> `.agent-src.uncompressed/skills/` MUST have a matching archive note
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## Instructions
|
|
10
10
|
|
|
11
|
-
1. Create the file: `agents/archived-skills/{slug}.md`.
|
|
11
|
+
1. Create the file: `agents/evidence/archived-skills/{slug}.md`.
|
|
12
12
|
2. Copy the template body below and fill every required field.
|
|
13
13
|
3. Commit alongside the SKILL.md removal in the same PR (the linter
|
|
14
14
|
refuses to pass if the pair drifts).
|
|
@@ -88,12 +88,12 @@ references the removed slug without pointing at this note.}
|
|
|
88
88
|
|
|
89
89
|
`scripts/lint_archived_skills.py` enforces:
|
|
90
90
|
|
|
91
|
-
1. Every file under `agents/archived-skills/*.md` (except the README)
|
|
91
|
+
1. Every file under `agents/evidence/archived-skills/*.md` (except the README)
|
|
92
92
|
has a frontmatter block with the six required fields.
|
|
93
93
|
2. `reason` is one of the four allowed values.
|
|
94
94
|
3. When `reason ∈ {merged, superseded}`, the `replacement` slug exists
|
|
95
95
|
under `.agent-src.uncompressed/skills/`.
|
|
96
|
-
4. Every slug under `agents/archived-skills/` is *absent* from
|
|
96
|
+
4. Every slug under `agents/evidence/archived-skills/` is *absent* from
|
|
97
97
|
`.agent-src.uncompressed/skills/` (no zombies).
|
|
98
98
|
5. No SKILL.md present under `.agent-src.uncompressed/skills/`
|
|
99
99
|
references an archived slug as a router target.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "3.1.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
|
@@ -186,6 +186,7 @@
|
|
|
186
186
|
"./.claude/skills/hiring-loop-design",
|
|
187
187
|
"./.claude/skills/implement-ticket",
|
|
188
188
|
"./.claude/skills/incident-commander",
|
|
189
|
+
"./.claude/skills/install-via-agent",
|
|
189
190
|
"./.claude/skills/jira-integration",
|
|
190
191
|
"./.claude/skills/jira-ticket",
|
|
191
192
|
"./.claude/skills/jobs-events",
|
|
@@ -243,7 +244,6 @@
|
|
|
243
244
|
"./.claude/skills/multi-tenancy",
|
|
244
245
|
"./.claude/skills/nextjs-patterns",
|
|
245
246
|
"./.claude/skills/okr-tree-modeling",
|
|
246
|
-
"./.claude/skills/onboard",
|
|
247
247
|
"./.claude/skills/onboarding-design",
|
|
248
248
|
"./.claude/skills/onboarding-program",
|
|
249
249
|
"./.claude/skills/one-on-one-cadence",
|
package/AGENTS.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## Source of truth
|
|
6
6
|
|
|
7
|
-
Edit
|
|
7
|
+
Edit `packages/<pack>/.agent-src.uncompressed/` only. Generated trees (`.agent-src/`, `.augment/`, `.claude/`, `.cursor/`, `.clinerules/`, `.windsurfrules`) regenerate from `task sync` + `task generate-tools`; never hand-edit.
|
|
8
8
|
|
|
9
9
|
## Working on this repo
|
|
10
10
|
|
|
@@ -12,23 +12,26 @@ Edit `.agent-src.uncompressed/` only. Generated trees (`.agent-src/`, `.augment/
|
|
|
12
12
|
task sync # regenerate .agent-src/, .augment/
|
|
13
13
|
task generate-tools # regenerate .claude/, .cursor/, .clinerules/, .windsurfrules
|
|
14
14
|
task ci # full pipeline — green before PR
|
|
15
|
+
# maintainer: AGENT_CONFIG_DEV_MODE=1 opens --scope=project (docs/maintainers/dev-mode.md)
|
|
15
16
|
```
|
|
16
17
|
|
|
17
18
|
## Pointers
|
|
18
19
|
|
|
19
|
-
- **Package self-orientation**
|
|
20
|
-
- **Kernel + Router**
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
20
|
+
- **Package self-orientation** — identity, cognition map, layout, stack, key rules, telemetry: [`package-self-orientation`](docs/contracts/package-self-orientation.md).
|
|
21
|
+
- **Kernel + Router** — 9 Iron-Law rules, tier-1/2 routing, cost profiles, per-rule caps: [`kernel-membership`](docs/contracts/kernel-membership.md) + [`rule-router`](docs/contracts/rule-router.md).
|
|
22
|
+
- **Trust & Safety** — trust-level enum, HRR banner, safety floors, installer confirm: [`trust-and-safety`](docs/contracts/trust-and-safety.md) + [`ADR-018`](docs/decisions/ADR-018-trust-and-safety-layer.md).
|
|
23
|
+
- **Content pipelines** — A→D source / Augment / multi-tool / Claude.ai-bundle projections, indexed at [`docs/architecture.md`](docs/architecture.md); sub-pipelines under [`docs/architecture/`](docs/architecture/).
|
|
24
|
+
- **Editing this repo** — Iron-Law rules + Thin-Root contract govern every change: [`augment-source-of-truth`](.agent-src/rules/augment-source-of-truth.md) + [`agents-md-thin-root`](.agent-src/skills/agents-md-thin-root/SKILL.md).
|
|
25
|
+
- **Consumer story** — `npx` + `scripts/install.sh` opt-in flags, sandbox / offline install paths, verified-offline manifest: [`README.md`](README.md).
|
|
26
|
+
- **Personas** — 11 review-lens cast (6 core · 5 specialist), `personas:` vs `/mode`: [`docs/personas.md`](docs/personas.md).
|
|
27
|
+
- **Discovery** — workspaces / packs / dist manifest; contract [`ADR-013`](docs/decisions/ADR-013-discovery-frontmatter-contract.md), how-to [`customization § Workspaces & packs`](docs/customization.md#workspaces--packs-discovery).
|
|
25
28
|
|
|
26
29
|
## Emergency triage — read this when nothing else is reachable
|
|
27
30
|
|
|
28
31
|
1. **What is this repo?** — `event4u/agent-config`, a governed skill / rule / command suite for AI coding tools (no application runtime).
|
|
29
32
|
2. **What language?** — All `.md` content is English; agents mirror the user's language at runtime.
|
|
30
|
-
3. **Where do I edit?** —
|
|
33
|
+
3. **Where do I edit?** — `packages/<pack>/.agent-src.uncompressed/` only. Never the generated trees.
|
|
31
34
|
4. **Lint / test / sync entry point?** — `task ci` (full pipeline). Subsets: `task sync`, `task generate-tools`, `task lint-skills`, `task test`.
|
|
32
|
-
5. **Where do the always-active rules live?** — `.agent-src/rules/` (kernel = 9 Iron-Law rules; tier-1 / tier-2 routed via
|
|
35
|
+
5. **Where do the always-active rules live?** — `.agent-src/rules/` (kernel = 9 Iron-Law rules; tier-1 / tier-2 routed via `dist/router.json`).
|
|
33
36
|
|
|
34
37
|
|