@event4u/agent-config 1.9.1
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/README.md +64 -0
- package/.agent-src/commands/agent-handoff.md +64 -0
- package/.agent-src/commands/agent-status.md +83 -0
- package/.agent-src/commands/agents-audit.md +243 -0
- package/.agent-src/commands/agents-cleanup.md +169 -0
- package/.agent-src/commands/agents-prepare.md +137 -0
- package/.agent-src/commands/analyze-reference-repo.md +191 -0
- package/.agent-src/commands/bug-fix.md +181 -0
- package/.agent-src/commands/bug-investigate.md +175 -0
- package/.agent-src/commands/commit.md +121 -0
- package/.agent-src/commands/compress.md +177 -0
- package/.agent-src/commands/config-agent-settings.md +126 -0
- package/.agent-src/commands/context-create.md +167 -0
- package/.agent-src/commands/context-refactor.md +170 -0
- package/.agent-src/commands/copilot-agents-init.md +150 -0
- package/.agent-src/commands/copilot-agents-optimize.md +251 -0
- package/.agent-src/commands/create-pr-description.md +112 -0
- package/.agent-src/commands/create-pr.md +76 -0
- package/.agent-src/commands/do-and-judge.md +114 -0
- package/.agent-src/commands/do-in-steps.md +84 -0
- package/.agent-src/commands/e2e-heal.md +98 -0
- package/.agent-src/commands/e2e-plan.md +85 -0
- package/.agent-src/commands/estimate-ticket.md +80 -0
- package/.agent-src/commands/feature-dev.md +111 -0
- package/.agent-src/commands/feature-explore.md +180 -0
- package/.agent-src/commands/feature-plan.md +288 -0
- package/.agent-src/commands/feature-refactor.md +181 -0
- package/.agent-src/commands/feature-roadmap.md +184 -0
- package/.agent-src/commands/fix-ci.md +48 -0
- package/.agent-src/commands/fix-portability.md +97 -0
- package/.agent-src/commands/fix-pr-bot-comments.md +146 -0
- package/.agent-src/commands/fix-pr-comments.md +58 -0
- package/.agent-src/commands/fix-pr-developer-comments.md +152 -0
- package/.agent-src/commands/fix-references.md +94 -0
- package/.agent-src/commands/fix-seeder.md +146 -0
- package/.agent-src/commands/implement-ticket.md +133 -0
- package/.agent-src/commands/jira-ticket.md +71 -0
- package/.agent-src/commands/judge.md +86 -0
- package/.agent-src/commands/memory-add.md +130 -0
- package/.agent-src/commands/memory-full.md +97 -0
- package/.agent-src/commands/memory-promote.md +144 -0
- package/.agent-src/commands/mode.md +121 -0
- package/.agent-src/commands/module-create.md +132 -0
- package/.agent-src/commands/module-explore.md +157 -0
- package/.agent-src/commands/optimize-agents.md +139 -0
- package/.agent-src/commands/optimize-augmentignore.md +262 -0
- package/.agent-src/commands/optimize-rtk-filters.md +120 -0
- package/.agent-src/commands/optimize-skills.md +121 -0
- package/.agent-src/commands/override-create.md +97 -0
- package/.agent-src/commands/override-manage.md +96 -0
- package/.agent-src/commands/package-reset.md +154 -0
- package/.agent-src/commands/package-test.md +154 -0
- package/.agent-src/commands/prepare-for-review.md +91 -0
- package/.agent-src/commands/project-analyze.md +300 -0
- package/.agent-src/commands/project-health.md +95 -0
- package/.agent-src/commands/propose-memory.md +108 -0
- package/.agent-src/commands/quality-fix.md +106 -0
- package/.agent-src/commands/refine-ticket.md +81 -0
- package/.agent-src/commands/review-changes.md +130 -0
- package/.agent-src/commands/review-routing.md +111 -0
- package/.agent-src/commands/roadmap-create.md +110 -0
- package/.agent-src/commands/roadmap-execute.md +68 -0
- package/.agent-src/commands/rule-compliance-audit.md +139 -0
- package/.agent-src/commands/tests-create.md +73 -0
- package/.agent-src/commands/tests-execute.md +58 -0
- package/.agent-src/commands/threat-model.md +115 -0
- package/.agent-src/commands/update-form-request-messages.md +189 -0
- package/.agent-src/commands/upstream-contribute.md +171 -0
- package/.agent-src/contexts/augment-infrastructure.md +181 -0
- package/.agent-src/contexts/documentation-hierarchy.md +142 -0
- package/.agent-src/contexts/model-recommendations.md +142 -0
- package/.agent-src/contexts/override-system.md +187 -0
- package/.agent-src/contexts/skills-and-commands.md +154 -0
- package/.agent-src/contexts/subagent-configuration.md +62 -0
- package/.agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +110 -0
- package/.agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
- package/.agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
- package/.agent-src/guidelines/agent-infra/engineering-memory-data-format.md +117 -0
- package/.agent-src/guidelines/agent-infra/layered-settings.md +158 -0
- package/.agent-src/guidelines/agent-infra/memory-access.md +121 -0
- package/.agent-src/guidelines/agent-infra/naming.md +69 -0
- package/.agent-src/guidelines/agent-infra/output-patterns.md +117 -0
- package/.agent-src/guidelines/agent-infra/review-routing-data-format.md +144 -0
- package/.agent-src/guidelines/agent-infra/role-contracts.md +211 -0
- package/.agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
- package/.agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
- package/.agent-src/guidelines/agent-infra/self-improvement-pipeline.md +135 -0
- package/.agent-src/guidelines/agent-infra/size-and-scope.md +189 -0
- package/.agent-src/guidelines/agent-infra/tool-integration.md +73 -0
- package/.agent-src/guidelines/docs/readme-size-and-splitting.md +153 -0
- package/.agent-src/guidelines/e2e/playwright.md +363 -0
- package/.agent-src/guidelines/php/api-design.md +115 -0
- package/.agent-src/guidelines/php/artisan-commands.md +81 -0
- package/.agent-src/guidelines/php/blade-ui.md +78 -0
- package/.agent-src/guidelines/php/controllers.md +90 -0
- package/.agent-src/guidelines/php/database.md +111 -0
- package/.agent-src/guidelines/php/eloquent.md +208 -0
- package/.agent-src/guidelines/php/flux.md +80 -0
- package/.agent-src/guidelines/php/general.md +191 -0
- package/.agent-src/guidelines/php/git.md +96 -0
- package/.agent-src/guidelines/php/jobs.md +111 -0
- package/.agent-src/guidelines/php/livewire.md +71 -0
- package/.agent-src/guidelines/php/logging.md +79 -0
- package/.agent-src/guidelines/php/naming.md +89 -0
- package/.agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
- package/.agent-src/guidelines/php/patterns/dtos.md +199 -0
- package/.agent-src/guidelines/php/patterns/events.md +67 -0
- package/.agent-src/guidelines/php/patterns/factory.md +53 -0
- package/.agent-src/guidelines/php/patterns/pipelines.md +66 -0
- package/.agent-src/guidelines/php/patterns/policies.md +66 -0
- package/.agent-src/guidelines/php/patterns/repositories.md +122 -0
- package/.agent-src/guidelines/php/patterns/service-layer.md +64 -0
- package/.agent-src/guidelines/php/patterns/strategy.md +69 -0
- package/.agent-src/guidelines/php/patterns.md +28 -0
- package/.agent-src/guidelines/php/performance.md +92 -0
- package/.agent-src/guidelines/php/resources.md +100 -0
- package/.agent-src/guidelines/php/security.md +110 -0
- package/.agent-src/guidelines/php/sql.md +97 -0
- package/.agent-src/guidelines/php/validations.md +119 -0
- package/.agent-src/guidelines/php/websocket.md +100 -0
- package/.agent-src/personas/README.md +104 -0
- package/.agent-src/personas/ai-agent.md +77 -0
- package/.agent-src/personas/critical-challenger.md +73 -0
- package/.agent-src/personas/developer.md +73 -0
- package/.agent-src/personas/product-owner.md +78 -0
- package/.agent-src/personas/qa.md +67 -0
- package/.agent-src/personas/senior-engineer.md +77 -0
- package/.agent-src/personas/stakeholder.md +78 -0
- package/.agent-src/rules/agent-docs.md +61 -0
- package/.agent-src/rules/analysis-skill-routing.md +48 -0
- package/.agent-src/rules/architecture.md +62 -0
- package/.agent-src/rules/artifact-drafting-protocol.md +73 -0
- package/.agent-src/rules/ask-when-uncertain.md +52 -0
- package/.agent-src/rules/augment-portability.md +38 -0
- package/.agent-src/rules/augment-source-of-truth.md +128 -0
- package/.agent-src/rules/capture-learnings.md +89 -0
- package/.agent-src/rules/cli-output-handling.md +94 -0
- package/.agent-src/rules/commit-conventions.md +64 -0
- package/.agent-src/rules/context-hygiene.md +90 -0
- package/.agent-src/rules/docker-commands.md +55 -0
- package/.agent-src/rules/docs-sync.md +79 -0
- package/.agent-src/rules/downstream-changes.md +70 -0
- package/.agent-src/rules/e2e-testing.md +53 -0
- package/.agent-src/rules/guidelines.md +90 -0
- package/.agent-src/rules/improve-before-implement.md +94 -0
- package/.agent-src/rules/language-and-tone.md +104 -0
- package/.agent-src/rules/laravel-translations.md +48 -0
- package/.agent-src/rules/markdown-safe-codeblocks.md +18 -0
- package/.agent-src/rules/minimal-safe-diff.md +87 -0
- package/.agent-src/rules/missing-tool-handling.md +62 -0
- package/.agent-src/rules/model-recommendation.md +70 -0
- package/.agent-src/rules/package-ci-checks.md +80 -0
- package/.agent-src/rules/php-coding.md +63 -0
- package/.agent-src/rules/preservation-guard.md +29 -0
- package/.agent-src/rules/review-routing-awareness.md +125 -0
- package/.agent-src/rules/reviewer-awareness.md +92 -0
- package/.agent-src/rules/roadmap-progress-sync.md +56 -0
- package/.agent-src/rules/role-mode-adherence.md +54 -0
- package/.agent-src/rules/rule-type-governance.md +46 -0
- package/.agent-src/rules/runtime-safety.md +42 -0
- package/.agent-src/rules/scope-control.md +40 -0
- package/.agent-src/rules/security-sensitive-stop.md +77 -0
- package/.agent-src/rules/size-enforcement.md +29 -0
- package/.agent-src/rules/skill-improvement-trigger.md +58 -0
- package/.agent-src/rules/skill-quality.md +110 -0
- package/.agent-src/rules/slash-commands.md +30 -0
- package/.agent-src/rules/think-before-action.md +91 -0
- package/.agent-src/rules/token-efficiency.md +99 -0
- package/.agent-src/rules/tool-safety.md +36 -0
- package/.agent-src/rules/upstream-proposal.md +76 -0
- package/.agent-src/rules/user-interaction.md +79 -0
- package/.agent-src/rules/verify-before-complete.md +120 -0
- package/.agent-src/scripts/scan-seeder-violations.php +145 -0
- package/.agent-src/scripts/update_roadmap_progress.py +244 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +149 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +234 -0
- package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +197 -0
- package/.agent-src/skills/analysis-skill-router/SKILL.md +134 -0
- package/.agent-src/skills/api-design/SKILL.md +104 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +185 -0
- package/.agent-src/skills/api-testing/SKILL.md +206 -0
- package/.agent-src/skills/artisan-commands/SKILL.md +78 -0
- package/.agent-src/skills/authz-review/SKILL.md +171 -0
- package/.agent-src/skills/aws-infrastructure/SKILL.md +152 -0
- package/.agent-src/skills/blade-ui/SKILL.md +75 -0
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +185 -0
- package/.agent-src/skills/bug-analyzer/SKILL.md +256 -0
- package/.agent-src/skills/check-refs/SKILL.md +72 -0
- package/.agent-src/skills/code-refactoring/SKILL.md +200 -0
- package/.agent-src/skills/code-review/SKILL.md +214 -0
- package/.agent-src/skills/command-routing/SKILL.md +96 -0
- package/.agent-src/skills/command-writing/SKILL.md +143 -0
- package/.agent-src/skills/composer-packages/SKILL.md +172 -0
- package/.agent-src/skills/context-authoring/SKILL.md +157 -0
- package/.agent-src/skills/context-document/SKILL.md +153 -0
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +70 -0
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +220 -0
- package/.agent-src/skills/copilot-config/SKILL.md +203 -0
- package/.agent-src/skills/dashboard-design/SKILL.md +116 -0
- package/.agent-src/skills/data-flow-mapper/SKILL.md +160 -0
- package/.agent-src/skills/database/SKILL.md +91 -0
- package/.agent-src/skills/dependency-upgrade/SKILL.md +204 -0
- package/.agent-src/skills/description-assist/SKILL.md +169 -0
- package/.agent-src/skills/design-review/SKILL.md +228 -0
- package/.agent-src/skills/devcontainer/SKILL.md +121 -0
- package/.agent-src/skills/developer-like-execution/SKILL.md +276 -0
- package/.agent-src/skills/docker/SKILL.md +245 -0
- package/.agent-src/skills/dto-creator/SKILL.md +117 -0
- package/.agent-src/skills/eloquent/SKILL.md +92 -0
- package/.agent-src/skills/eloquent/evals/last-run.json +99 -0
- package/.agent-src/skills/eloquent/evals/triggers.json +16 -0
- package/.agent-src/skills/estimate-ticket/SKILL.md +186 -0
- package/.agent-src/skills/estimate-ticket/evals/output-schema.yml +20 -0
- package/.agent-src/skills/estimate-ticket/evals/triggers.json +18 -0
- package/.agent-src/skills/fe-design/SKILL.md +223 -0
- package/.agent-src/skills/feature-planning/SKILL.md +226 -0
- package/.agent-src/skills/file-editor/SKILL.md +129 -0
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/.agent-src/skills/flux/SKILL.md +64 -0
- package/.agent-src/skills/git-workflow/SKILL.md +102 -0
- package/.agent-src/skills/github-ci/SKILL.md +122 -0
- package/.agent-src/skills/grafana/SKILL.md +168 -0
- package/.agent-src/skills/guideline-writing/SKILL.md +147 -0
- package/.agent-src/skills/jira-integration/SKILL.md +182 -0
- package/.agent-src/skills/jobs-events/SKILL.md +87 -0
- package/.agent-src/skills/judge-bug-hunter/SKILL.md +157 -0
- package/.agent-src/skills/judge-code-quality/SKILL.md +158 -0
- package/.agent-src/skills/judge-security-auditor/SKILL.md +167 -0
- package/.agent-src/skills/judge-test-coverage/SKILL.md +154 -0
- package/.agent-src/skills/laravel/SKILL.md +195 -0
- package/.agent-src/skills/laravel-horizon/SKILL.md +169 -0
- package/.agent-src/skills/laravel-mail/SKILL.md +193 -0
- package/.agent-src/skills/laravel-middleware/SKILL.md +185 -0
- package/.agent-src/skills/laravel-notifications/SKILL.md +168 -0
- package/.agent-src/skills/laravel-pennant/SKILL.md +188 -0
- package/.agent-src/skills/laravel-pulse/SKILL.md +160 -0
- package/.agent-src/skills/laravel-reverb/SKILL.md +205 -0
- package/.agent-src/skills/laravel-scheduling/SKILL.md +167 -0
- package/.agent-src/skills/laravel-validation/SKILL.md +71 -0
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +249 -0
- package/.agent-src/skills/lint-skills/SKILL.md +72 -0
- package/.agent-src/skills/livewire/SKILL.md +79 -0
- package/.agent-src/skills/logging-monitoring/SKILL.md +100 -0
- package/.agent-src/skills/mcp/SKILL.md +193 -0
- package/.agent-src/skills/merge-conflicts/SKILL.md +158 -0
- package/.agent-src/skills/migration-creator/SKILL.md +160 -0
- package/.agent-src/skills/module-management/SKILL.md +154 -0
- package/.agent-src/skills/multi-tenancy/SKILL.md +129 -0
- package/.agent-src/skills/openapi/SKILL.md +154 -0
- package/.agent-src/skills/override-management/SKILL.md +186 -0
- package/.agent-src/skills/performance/SKILL.md +69 -0
- package/.agent-src/skills/performance-analysis/SKILL.md +118 -0
- package/.agent-src/skills/pest-testing/SKILL.md +321 -0
- package/.agent-src/skills/php-coder/SKILL.md +78 -0
- package/.agent-src/skills/php-coder/evals/triggers.json +16 -0
- package/.agent-src/skills/php-debugging/SKILL.md +184 -0
- package/.agent-src/skills/php-service/SKILL.md +96 -0
- package/.agent-src/skills/playwright-testing/SKILL.md +244 -0
- package/.agent-src/skills/project-analysis-core/SKILL.md +138 -0
- package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +130 -0
- package/.agent-src/skills/project-analysis-laravel/SKILL.md +119 -0
- package/.agent-src/skills/project-analysis-nextjs/SKILL.md +123 -0
- package/.agent-src/skills/project-analysis-node-express/SKILL.md +111 -0
- package/.agent-src/skills/project-analysis-react/SKILL.md +119 -0
- package/.agent-src/skills/project-analysis-symfony/SKILL.md +111 -0
- package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +108 -0
- package/.agent-src/skills/project-analyzer/SKILL.md +341 -0
- package/.agent-src/skills/project-docs/SKILL.md +137 -0
- package/.agent-src/skills/quality-tools/SKILL.md +411 -0
- package/.agent-src/skills/readme-reviewer/SKILL.md +187 -0
- package/.agent-src/skills/readme-writing/SKILL.md +142 -0
- package/.agent-src/skills/readme-writing-package/SKILL.md +185 -0
- package/.agent-src/skills/receiving-code-review/SKILL.md +190 -0
- package/.agent-src/skills/refine-ticket/SKILL.md +310 -0
- package/.agent-src/skills/refine-ticket/detection-map.yml +124 -0
- package/.agent-src/skills/refine-ticket/evals/output-schema.yml +16 -0
- package/.agent-src/skills/refine-ticket/evals/triggers.json +16 -0
- package/.agent-src/skills/requesting-code-review/SKILL.md +199 -0
- package/.agent-src/skills/review-routing/SKILL.md +195 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +303 -0
- package/.agent-src/skills/rtk-output-filtering/SKILL.md +184 -0
- package/.agent-src/skills/rule-writing/SKILL.md +148 -0
- package/.agent-src/skills/security/SKILL.md +79 -0
- package/.agent-src/skills/security-audit/SKILL.md +123 -0
- package/.agent-src/skills/sentry-integration/SKILL.md +170 -0
- package/.agent-src/skills/sequential-thinking/SKILL.md +158 -0
- package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +155 -0
- package/.agent-src/skills/skill-management/SKILL.md +121 -0
- package/.agent-src/skills/skill-reviewer/SKILL.md +218 -0
- package/.agent-src/skills/skill-writing/SKILL.md +291 -0
- package/.agent-src/skills/skill-writing/evals/triggers.json +16 -0
- package/.agent-src/skills/sql-writing/SKILL.md +74 -0
- package/.agent-src/skills/subagent-orchestration/SKILL.md +190 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +244 -0
- package/.agent-src/skills/technical-specification/SKILL.md +185 -0
- package/.agent-src/skills/terraform/SKILL.md +137 -0
- package/.agent-src/skills/terragrunt/SKILL.md +217 -0
- package/.agent-src/skills/test-driven-development/SKILL.md +252 -0
- package/.agent-src/skills/test-performance/SKILL.md +172 -0
- package/.agent-src/skills/threat-modeling/SKILL.md +189 -0
- package/.agent-src/skills/traefik/SKILL.md +319 -0
- package/.agent-src/skills/universal-project-analysis/SKILL.md +179 -0
- package/.agent-src/skills/upstream-contribute/SKILL.md +255 -0
- package/.agent-src/skills/using-git-worktrees/SKILL.md +148 -0
- package/.agent-src/skills/validate-feature-fit/SKILL.md +113 -0
- package/.agent-src/skills/verify-before-complete/SKILL.md +188 -0
- package/.agent-src/skills/websocket/SKILL.md +75 -0
- package/.agent-src/templates/AGENTS.md +146 -0
- package/.agent-src/templates/agent-settings.md +256 -0
- package/.agent-src/templates/agents/.gitattributes.fragment +16 -0
- package/.agent-src/templates/agents/agent-project-settings.example.yml +138 -0
- package/.agent-src/templates/agents/memory/architecture-decisions.example.yml +95 -0
- package/.agent-src/templates/agents/memory/domain-invariants.example.yml +80 -0
- package/.agent-src/templates/agents/memory/historical-patterns.example.yml +82 -0
- package/.agent-src/templates/agents/memory/incident-learnings.example.yml +113 -0
- package/.agent-src/templates/agents/memory/ownership.example.yml +75 -0
- package/.agent-src/templates/agents/memory/product-rules.example.yml +87 -0
- package/.agent-src/templates/agents/proposal.example.md +143 -0
- package/.agent-src/templates/command.md +84 -0
- package/.agent-src/templates/contexts/auth-model.md +59 -0
- package/.agent-src/templates/contexts/data-sensitivity.md +60 -0
- package/.agent-src/templates/contexts/deployment-order.md +72 -0
- package/.agent-src/templates/contexts/observability.md +64 -0
- package/.agent-src/templates/contexts/tenant-boundaries.md +68 -0
- package/.agent-src/templates/contexts.md +116 -0
- package/.agent-src/templates/copilot-instructions.md +115 -0
- package/.agent-src/templates/features.md +125 -0
- package/.agent-src/templates/github-workflows/memory-hygiene.yml +133 -0
- package/.agent-src/templates/github-workflows/pr-risk-review.yml +123 -0
- package/.agent-src/templates/github-workflows/proposal-drift.yml +118 -0
- package/.agent-src/templates/overrides/command.md +24 -0
- package/.agent-src/templates/overrides/guideline.md +21 -0
- package/.agent-src/templates/overrides/rule.md +19 -0
- package/.agent-src/templates/overrides/skill.md +24 -0
- package/.agent-src/templates/overrides/template.md +21 -0
- package/.agent-src/templates/persona.md +99 -0
- package/.agent-src/templates/roadmaps.md +109 -0
- package/.agent-src/templates/scripts/README.md +195 -0
- package/.agent-src/templates/scripts/check_memory.py +283 -0
- package/.agent-src/templates/scripts/check_memory_proposal.py +180 -0
- package/.agent-src/templates/scripts/historical-bug-patterns.example.yml +84 -0
- package/.agent-src/templates/scripts/implement_ticket/__init__.py +57 -0
- package/.agent-src/templates/scripts/implement_ticket/__main__.py +9 -0
- package/.agent-src/templates/scripts/implement_ticket/cli.py +171 -0
- package/.agent-src/templates/scripts/implement_ticket/delivery_state.py +130 -0
- package/.agent-src/templates/scripts/implement_ticket/dispatcher.py +134 -0
- package/.agent-src/templates/scripts/implement_ticket/persona_policy.py +85 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/__init__.py +49 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/analyze.py +98 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/implement.py +145 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/memory.py +136 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/plan.py +175 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/refine.py +140 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/report.py +195 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/test.py +180 -0
- package/.agent-src/templates/scripts/implement_ticket/steps/verify.py +170 -0
- package/.agent-src/templates/scripts/memory_hash.py +75 -0
- package/.agent-src/templates/scripts/memory_lookup.py +216 -0
- package/.agent-src/templates/scripts/memory_report.py +184 -0
- package/.agent-src/templates/scripts/memory_signal.py +167 -0
- package/.agent-src/templates/scripts/memory_status.py +156 -0
- package/.agent-src/templates/scripts/ownership-map.example.yml +87 -0
- package/.agent-src/templates/scripts/pr-risk-config.example.yml +76 -0
- package/.agent-src/templates/scripts/pr_review_routing.py +340 -0
- package/.agent-src/templates/scripts/pr_risk_review.py +211 -0
- package/.agent-src/templates/skill.md +136 -0
- package/.augment-plugin/marketplace.json +32 -0
- package/.augment-plugin/plugin.json +21 -0
- package/.claude-plugin/marketplace.json +119 -0
- package/AGENTS.md +121 -0
- package/CHANGELOG.md +279 -0
- package/CONTRIBUTING.md +176 -0
- package/LICENSE +21 -0
- package/README.md +357 -0
- package/bin/install.php +38 -0
- package/composer.json +29 -0
- package/config/agent-settings.template.yml +96 -0
- package/config/profiles/balanced.ini +10 -0
- package/config/profiles/full.ini +10 -0
- package/config/profiles/minimal.ini +10 -0
- package/docs/architecture.md +144 -0
- package/docs/customization.md +88 -0
- package/docs/development.md +171 -0
- package/docs/getting-started.md +130 -0
- package/docs/github-topics.md +84 -0
- package/docs/installation.md +376 -0
- package/docs/mcp.md +133 -0
- package/docs/quality.md +98 -0
- package/docs/skills-catalog.md +136 -0
- package/docs/troubleshooting.md +167 -0
- package/llms.txt +130 -0
- package/package.json +31 -0
- package/scripts/audit_skill_descriptions.py +168 -0
- package/scripts/check_compression.py +221 -0
- package/scripts/check_memory.py +341 -0
- package/scripts/check_memory_proposal.py +180 -0
- package/scripts/check_portability.py +320 -0
- package/scripts/check_proposal.py +269 -0
- package/scripts/check_references.py +400 -0
- package/scripts/ci_summary.py +131 -0
- package/scripts/compress.py +671 -0
- package/scripts/compress.sh +18 -0
- package/scripts/first-run.sh +109 -0
- package/scripts/generate_catalog.py +116 -0
- package/scripts/install +151 -0
- package/scripts/install-hooks.sh +29 -0
- package/scripts/install.py +487 -0
- package/scripts/install.sh +637 -0
- package/scripts/install_anthropic_key.sh +101 -0
- package/scripts/inventory_frontmatter.py +164 -0
- package/scripts/lint_marketplace.py +142 -0
- package/scripts/lint_regression.py +232 -0
- package/scripts/mcp_render.py +159 -0
- package/scripts/measure_patterns.py +376 -0
- package/scripts/memory_hash.py +75 -0
- package/scripts/memory_lookup.py +441 -0
- package/scripts/memory_report.py +336 -0
- package/scripts/memory_signal.py +210 -0
- package/scripts/memory_status.py +195 -0
- package/scripts/postinstall.sh +60 -0
- package/scripts/readme_linter.py +580 -0
- package/scripts/refine_ticket_detect.py +623 -0
- package/scripts/requirements-evals.txt +7 -0
- package/scripts/runtime_dispatcher.py +265 -0
- package/scripts/runtime_handler.py +148 -0
- package/scripts/runtime_registry.py +166 -0
- package/scripts/schemas/command.schema.json +32 -0
- package/scripts/schemas/persona.schema.json +42 -0
- package/scripts/schemas/rule.schema.json +28 -0
- package/scripts/schemas/skill.schema.json +73 -0
- package/scripts/setup.sh +230 -0
- package/scripts/setup_eval_venv.sh +58 -0
- package/scripts/skill_linter.py +2175 -0
- package/scripts/skill_trigger_eval.py +651 -0
- package/scripts/tool_registry.py +146 -0
- package/scripts/tools/__init__.py +1 -0
- package/scripts/tools/adapter_errors.py +63 -0
- package/scripts/tools/base_adapter.py +91 -0
- package/scripts/tools/github_adapter.py +128 -0
- package/scripts/tools/jira_adapter.py +115 -0
- package/scripts/update_counts.py +147 -0
- package/scripts/validate_frontmatter.py +424 -0
- package/templates/consumer-settings/README.md +46 -0
- package/templates/consumer-settings/augment-settings.json +12 -0
- package/templates/consumer-settings/claude-settings.json +9 -0
- package/templates/consumer-settings/copilot-settings.json +14 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Memory Access
|
|
2
|
+
|
|
3
|
+
How a skill or command reads engineering memory without caring whether
|
|
4
|
+
the optional `agent-memory` companion package is installed.
|
|
5
|
+
|
|
6
|
+
Single entry point: the shared `retrieve(types, keys, limit)`
|
|
7
|
+
abstraction backed by `scripts/memory_lookup.py` (file fallback) or the
|
|
8
|
+
package adapter (when present). The status helper
|
|
9
|
+
`scripts/memory_status.py` decides which path to take and caches the
|
|
10
|
+
result for the session.
|
|
11
|
+
|
|
12
|
+
Referenced by
|
|
13
|
+
[`road-to-agent-memory-integration.md`](../../../agents/roadmaps/road-to-agent-memory-integration.md)
|
|
14
|
+
Phase 0. The retrieval contract itself lives in
|
|
15
|
+
[`agent-memory/road-to-retrieval-contract.md`](../../../agents/roadmaps/agent-memory/road-to-retrieval-contract.md).
|
|
16
|
+
|
|
17
|
+
## The contract
|
|
18
|
+
|
|
19
|
+
```python
|
|
20
|
+
from scripts.memory_status import status
|
|
21
|
+
from scripts.memory_lookup import retrieve as retrieve_file
|
|
22
|
+
|
|
23
|
+
hits = retrieve_file(
|
|
24
|
+
types=["ownership", "historical-patterns"],
|
|
25
|
+
keys=["app/Http/Controllers/Billing/Checkout.php"],
|
|
26
|
+
limit=3,
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Every backend MUST return a list of `Hit` with:
|
|
31
|
+
|
|
32
|
+
| Field | Meaning |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `id` | Stable identifier |
|
|
35
|
+
| `type` | One of the curated types (`ownership`, `historical-patterns`, `domain-invariants`, `architecture-decisions`, `incident-learnings`, `product-rules`) |
|
|
36
|
+
| `source` | `"curated"` or `"intake"` |
|
|
37
|
+
| `path` | File or logical source that produced the hit |
|
|
38
|
+
| `score` | Float in `[0..1]`; higher is better |
|
|
39
|
+
| `entry` | Full decoded entry — skills read what they need |
|
|
40
|
+
|
|
41
|
+
Skills treat `source: "curated"` as higher-trust and `source: "intake"`
|
|
42
|
+
as provisional (best-effort, agent-written, not human-reviewed).
|
|
43
|
+
|
|
44
|
+
## The detection helper
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from scripts.memory_status import status
|
|
48
|
+
r = status() # cached; returns in 0ms on hit
|
|
49
|
+
if r.status == "present":
|
|
50
|
+
... # route through agent-memory
|
|
51
|
+
elif r.status == "misconfigured":
|
|
52
|
+
# surface a warning once per session, then fall back
|
|
53
|
+
...
|
|
54
|
+
else:
|
|
55
|
+
... # r.status == "absent" — file fallback, always works
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Contract guarantees:
|
|
59
|
+
|
|
60
|
+
- **Bounded** — cold probe capped at `_HEALTH_TIMEOUT_SECONDS` (2s).
|
|
61
|
+
- **Cached** — subsequent calls in the same process return 0ms.
|
|
62
|
+
- **Never raises on probe failure** — degrades to `absent` or
|
|
63
|
+
`misconfigured`. Bugs in the helper itself still propagate so they
|
|
64
|
+
get fixed.
|
|
65
|
+
- **Stable** — the four fields (`status`, `backend`, `reason`,
|
|
66
|
+
`elapsed_ms`) never change shape between releases.
|
|
67
|
+
|
|
68
|
+
## How skills should use it
|
|
69
|
+
|
|
70
|
+
1. **Don't inline the branch.** Skills call the abstraction, not
|
|
71
|
+
`memory_status.status()` directly, unless they need the human-
|
|
72
|
+
readable reason (e.g., `review-routing` surfacing "backend
|
|
73
|
+
misconfigured" on the PR report).
|
|
74
|
+
2. **Cap the load.** Respect `memory.retrieval.max_entries_per_task`
|
|
75
|
+
from `.agent-project-settings`. Over-retrieval pollutes the context
|
|
76
|
+
window without improving answers.
|
|
77
|
+
3. **Log the source in the reply.** A reviewer skill citing memory
|
|
78
|
+
should say "per `ownership:team-payments` (curated) at
|
|
79
|
+
`agents/memory/ownership.yml:42`" — the reader verifies cheaply.
|
|
80
|
+
4. **Treat intake as low-confidence.** Only promote intake findings
|
|
81
|
+
into the final reply when the user can act on them; otherwise keep
|
|
82
|
+
them as internal context.
|
|
83
|
+
|
|
84
|
+
## Access policy per role mode
|
|
85
|
+
|
|
86
|
+
Echoes `memory.retrieval.auto_load_shared_types` in
|
|
87
|
+
`.agent-project-settings`:
|
|
88
|
+
|
|
89
|
+
| Role mode | Auto-loaded types |
|
|
90
|
+
|---|---|
|
|
91
|
+
| Developer | `domain-invariants`, `ownership` |
|
|
92
|
+
| Reviewer | `ownership`, `historical-patterns`, `incident-learnings` |
|
|
93
|
+
| Tester | `historical-patterns`, `incident-learnings` |
|
|
94
|
+
| PO / planner | `product-rules`, `architecture-decisions` |
|
|
95
|
+
| Incident | `incident-learnings`, `ownership` |
|
|
96
|
+
|
|
97
|
+
Other types remain accessible on demand via
|
|
98
|
+
`/memory-full <type>` (not a skill choice).
|
|
99
|
+
|
|
100
|
+
## Anti-patterns
|
|
101
|
+
|
|
102
|
+
- **Do NOT** read `agents/memory/**` directly with ad-hoc globbing.
|
|
103
|
+
Skills lose the supersede-chain semantics and the `merge=union`
|
|
104
|
+
guarantees. Always go through `retrieve()`.
|
|
105
|
+
- **Do NOT** cache hits across sessions. Curated files change; the
|
|
106
|
+
session cache in `status()` is specifically *only* for the detection
|
|
107
|
+
probe, not for entries.
|
|
108
|
+
- **Do NOT** silently ignore `misconfigured`. Surface a one-liner once
|
|
109
|
+
per session so the user knows the package is installed but degraded.
|
|
110
|
+
- **Do NOT** fall back to intake JSONL when the curated file *exists
|
|
111
|
+
but is empty*. That is a valid "no entries" answer, not a fallback
|
|
112
|
+
signal.
|
|
113
|
+
|
|
114
|
+
## See also
|
|
115
|
+
|
|
116
|
+
- [`engineering-memory-data-format.md`](engineering-memory-data-format.md)
|
|
117
|
+
— the on-disk schema
|
|
118
|
+
- [`../../rules/context-hygiene.md`](../../rules/context-hygiene.md)
|
|
119
|
+
— token budget that `max_entries_per_task` protects
|
|
120
|
+
- [`../../../agents/roadmaps/road-to-memory-merge-safety.md`](../../../agents/roadmaps/road-to-memory-merge-safety.md)
|
|
121
|
+
— why intake is append-only JSONL with `merge=union`
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Naming conventions for skills, rules, commands, and guidelines"
|
|
3
|
+
source: package
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Naming Conventions
|
|
7
|
+
|
|
8
|
+
## Principles
|
|
9
|
+
|
|
10
|
+
1. **Name = purpose.** Reading the name tells you what it does.
|
|
11
|
+
2. **No collisions across layers.** A rule and skill must NOT share the same name.
|
|
12
|
+
3. **Consistent prefixes** for related items: `project-analysis-*`, `laravel-*`, `feature-*`.
|
|
13
|
+
4. **Consistent suffixes** for similar roles: `-management`, `-integration`, `-config`.
|
|
14
|
+
5. **No bare nouns** — `jira` says nothing, `jira-integration` says everything.
|
|
15
|
+
|
|
16
|
+
## Naming patterns by layer
|
|
17
|
+
|
|
18
|
+
### Skills
|
|
19
|
+
|
|
20
|
+
| Pattern | When | Examples |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `{domain}-{activity}` | Activity/workflow skills | `code-refactoring`, `sql-writing`, `pest-testing` |
|
|
23
|
+
| `{domain}-{role}` | Domain-specific expertise | `php-coder`, `fe-design`, `api-design` |
|
|
24
|
+
| `{domain}-{management}` | CRUD/lifecycle management | `module-management`, `override-management` |
|
|
25
|
+
| `{domain}-{integration}` | External tool integration | `jira-integration`, `sentry-integration` |
|
|
26
|
+
| `{domain}-{config}` | Configuration/setup | `copilot-config`, `devcontainer` |
|
|
27
|
+
| `{framework}-{feature}` | Framework-specific | `laravel-validation`, `laravel-mail` |
|
|
28
|
+
| `{scope}-analysis-{variant}` | Analysis skills | `project-analysis-laravel`, `performance-analysis` |
|
|
29
|
+
| `{action}-{target}` | Action commands as skills | `bug-analyzer`, `skill-reviewer` |
|
|
30
|
+
|
|
31
|
+
### Rules
|
|
32
|
+
|
|
33
|
+
| Pattern | When | Examples |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| `{concern}` | Behavioral constraint | `scope-control`, `ask-when-uncertain` |
|
|
36
|
+
| `{domain}-{concern}` | Domain-specific rule | `php-coding`, `e2e-testing` |
|
|
37
|
+
| `{action}-{target}` | Trigger-based auto rule | `capture-learnings`, `downstream-changes` |
|
|
38
|
+
|
|
39
|
+
### Commands
|
|
40
|
+
|
|
41
|
+
| Pattern | When | Examples |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| `{verb}-{target}` | Action commands | `create-pr`, `fix-ci`, `commit` |
|
|
44
|
+
| `{target}-{verb}` | Target-first grouping | `roadmap-create`, `roadmap-execute` |
|
|
45
|
+
| `{scope}-{action}` | Scoped actions | `optimize-agents`, `review-changes` |
|
|
46
|
+
|
|
47
|
+
### Guidelines
|
|
48
|
+
|
|
49
|
+
| Pattern | When | Examples |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| `{language}/{topic}.md` | Language-specific | `php/general.md`, `php/naming.md` |
|
|
52
|
+
| `{domain}/{topic}.md` | Domain-specific | `agent-infra/naming.md`, `e2e/locators.md` |
|
|
53
|
+
|
|
54
|
+
## Anti-patterns
|
|
55
|
+
|
|
56
|
+
| Don't | Why | Do instead |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| Single bare noun (`jira`, `sql`) | Ambiguous — could be anything | `jira-integration`, `sql-writing` |
|
|
59
|
+
| Same name across layers | Routing confusion | `agent-docs` (rule) + `agent-docs-writing` (skill) |
|
|
60
|
+
| `-er` suffix for skills | Skills are not agents | `-ing` or `-management` |
|
|
61
|
+
| `{dir}/{dir}.md` for guidelines | Redundant | `php/general.md` not `php/php.md` |
|
|
62
|
+
| Abbreviations alone (`rtk`, `mcp`) | Meaningless to new users | `rtk-output-filtering`, `mcp` (OK if well-known) |
|
|
63
|
+
| Inconsistent prefix grouping | Hard to discover related items | All Laravel skills start with `laravel-*` |
|
|
64
|
+
|
|
65
|
+
## Linter enforcement
|
|
66
|
+
|
|
67
|
+
The skill linter (`scripts/skill_linter.py`) warns on:
|
|
68
|
+
- **Bare-noun names** — single word without qualifier (e.g., `jira` instead of `jira-integration`)
|
|
69
|
+
- **Layer collisions** — same name used for both a rule and a skill
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Output Patterns
|
|
2
|
+
|
|
3
|
+
Reference patterns for token-efficient command execution and output handling.
|
|
4
|
+
Referenced by the `token-efficiency` rule.
|
|
5
|
+
|
|
6
|
+
## Pattern: Redirect, Summarize, Target
|
|
7
|
+
|
|
8
|
+
Every command that MAY produce more than ~30 lines of output:
|
|
9
|
+
|
|
10
|
+
### Step 1: Redirect to file
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
docker compose exec -T <service> <command> 2>&1 > /tmp/<tool>-output.txt
|
|
14
|
+
echo "EXIT=$?"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Step 2: Read ONLY the summary
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
tail -5 /tmp/<tool>-output.txt
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Step 3: If errors exist, read ONLY what you need to fix
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Read specific error lines
|
|
27
|
+
grep "ERROR\|error\|✏️" /tmp/<tool>-output.txt | head -20
|
|
28
|
+
|
|
29
|
+
# Read a specific file's errors
|
|
30
|
+
grep "app/Services/MyService.php" /tmp/<tool>-output.txt
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**NEVER** do:
|
|
34
|
+
|
|
35
|
+
- `cat /tmp/<tool>-output.txt` (loads everything)
|
|
36
|
+
- Read the full output of a passing command (waste)
|
|
37
|
+
- Read diffs you don't plan to act on
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Targeted Operations
|
|
42
|
+
|
|
43
|
+
Minimize scope. Never fetch more than you need.
|
|
44
|
+
|
|
45
|
+
### Queries and lookups
|
|
46
|
+
|
|
47
|
+
- **Single item over list**: query directly, don't fetch list to find one entry.
|
|
48
|
+
- **Filtered queries**: always filter when listing unavoidable. `--filter=ClassName` not `--all`.
|
|
49
|
+
- **Specific fields**: request only needed fields.
|
|
50
|
+
- **JSON + jq**: use JSON output + `jq` to extract exactly what you need.
|
|
51
|
+
|
|
52
|
+
### Testing
|
|
53
|
+
|
|
54
|
+
- **During work**: ONLY the specific test affected (`--filter=ClassName`).
|
|
55
|
+
- **Broader scope**: only if change could affect other tests.
|
|
56
|
+
- **Full suite**: only at the very end.
|
|
57
|
+
- **Decision tree**:
|
|
58
|
+
1. Changed one method → run that method's test
|
|
59
|
+
2. Changed a class → run that class's test file
|
|
60
|
+
3. Changed a shared service → run tests for all consumers
|
|
61
|
+
4. Changed config/infrastructure → full suite
|
|
62
|
+
|
|
63
|
+
### API calls
|
|
64
|
+
|
|
65
|
+
- Targeted endpoints over list endpoints
|
|
66
|
+
- Small page sizes, stop after finding what you need
|
|
67
|
+
- Don't re-fetch what you just received
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Tool-First, Script-Last
|
|
72
|
+
|
|
73
|
+
**Prefer skills with CLI tools over custom scripts.**
|
|
74
|
+
|
|
75
|
+
### Hierarchy
|
|
76
|
+
|
|
77
|
+
1. **Existing skill** — use directly
|
|
78
|
+
2. **Skill + CLI tool** (jq, grep, awk, sed) — compose
|
|
79
|
+
3. **Python/Bash script** — only when no skill/tool combination exists
|
|
80
|
+
|
|
81
|
+
### Scripts allowed only when
|
|
82
|
+
|
|
83
|
+
- No skill covers the workflow
|
|
84
|
+
- No CLI tool achieves the goal
|
|
85
|
+
- Operation needs programmatic logic
|
|
86
|
+
- Script is reusable
|
|
87
|
+
|
|
88
|
+
### Scripts NOT allowed when
|
|
89
|
+
|
|
90
|
+
- Skill exists for this workflow
|
|
91
|
+
- `jq` can extract what you need
|
|
92
|
+
- `grep` + `head` can filter output
|
|
93
|
+
|
|
94
|
+
### Learning trigger
|
|
95
|
+
|
|
96
|
+
When you write a script because no skill exists → capture learning → propose skill.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## General Rules
|
|
101
|
+
|
|
102
|
+
For tool-specific commands → see the `quality-tools` skill.
|
|
103
|
+
|
|
104
|
+
1. **ECS and Rector are trusted tools** — run with `--fix`, don't read diffs. Trust the config.
|
|
105
|
+
Verification: PHPStan + tests afterwards.
|
|
106
|
+
|
|
107
|
+
2. **Both ECS and Rector always run with `--fix`** — dry-run diffs waste tokens.
|
|
108
|
+
|
|
109
|
+
3. **Exit code first**: Check `$?` before reading ANY output. If 0, you're done.
|
|
110
|
+
|
|
111
|
+
4. **Summary line**: Most tools print a summary as the last few lines. That's all you need.
|
|
112
|
+
|
|
113
|
+
5. **Targeted grep**: `grep` for the specific file or error type. Never read full output "just in case".
|
|
114
|
+
|
|
115
|
+
6. **Don't re-read**: Once read and acted on, don't re-load into context.
|
|
116
|
+
|
|
117
|
+
7. **Iterative fixing**: Fix one error, re-run, check exit code. Output becomes stale after each fix.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Review Routing Data Format
|
|
2
|
+
|
|
3
|
+
Schema and conventions for the two project-local YAML files that feed the
|
|
4
|
+
[`review-routing-awareness`](../../rules/review-routing-awareness.md) rule
|
|
5
|
+
and the [`review-routing`](../../skills/review-routing/SKILL.md) skill.
|
|
6
|
+
|
|
7
|
+
Both files are **optional** and live in the consumer repository — never
|
|
8
|
+
in package-shipped artifacts. Absence is handled gracefully: routing
|
|
9
|
+
falls back to generic role-based reviewer suggestions.
|
|
10
|
+
|
|
11
|
+
## File locations
|
|
12
|
+
|
|
13
|
+
Primary (checked first):
|
|
14
|
+
|
|
15
|
+
- `.github/ownership-map.yml`
|
|
16
|
+
- `.github/historical-bug-patterns.yml`
|
|
17
|
+
|
|
18
|
+
Fallback (checked if the `.github/` file does not exist):
|
|
19
|
+
|
|
20
|
+
- `agents/ownership-map.yml`
|
|
21
|
+
- `agents/historical-bug-patterns.yml`
|
|
22
|
+
|
|
23
|
+
Choose one location per project and stick with it. Having both is not an
|
|
24
|
+
error, but tools read only the first match.
|
|
25
|
+
|
|
26
|
+
## ownership-map.yml
|
|
27
|
+
|
|
28
|
+
Maps glob patterns → roles + optional focus + optional risk hint.
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
# Required: the version field — breaks loudly if future schema changes.
|
|
32
|
+
version: 1
|
|
33
|
+
|
|
34
|
+
# Optional: last-reviewed timestamp. If > 6 months old, routing
|
|
35
|
+
# flags the map as stale in its report.
|
|
36
|
+
updated: 2026-02-01
|
|
37
|
+
|
|
38
|
+
# Optional: defaults applied when no entry matches. If omitted,
|
|
39
|
+
# unmatched paths fall through to reviewer-awareness defaults.
|
|
40
|
+
defaults:
|
|
41
|
+
roles: [backend]
|
|
42
|
+
|
|
43
|
+
# Required: list of entries, first match wins per file.
|
|
44
|
+
entries:
|
|
45
|
+
- paths:
|
|
46
|
+
- "app/Billing/**"
|
|
47
|
+
- "app/Services/Payment*.php"
|
|
48
|
+
roles: [finance-engineering, security]
|
|
49
|
+
focus: "tax calculation + idempotency"
|
|
50
|
+
risk: "monetary correctness — regressions bill real customers"
|
|
51
|
+
|
|
52
|
+
- paths:
|
|
53
|
+
- "**/Tenant*.php"
|
|
54
|
+
- "app/Http/Middleware/TenantScope.php"
|
|
55
|
+
roles: [platform, security]
|
|
56
|
+
focus: "cross-tenant isolation"
|
|
57
|
+
risk: "data leak across customers"
|
|
58
|
+
|
|
59
|
+
- paths:
|
|
60
|
+
- "resources/views/**"
|
|
61
|
+
- "**/*.blade.php"
|
|
62
|
+
roles: [frontend]
|
|
63
|
+
focus: "a11y + responsive layout"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Field semantics:
|
|
67
|
+
|
|
68
|
+
- **paths** (required, list) — fnmatch globs, same syntax as
|
|
69
|
+
`pr-risk-config.yml`. First match wins; later entries are ignored for
|
|
70
|
+
that path.
|
|
71
|
+
- **roles** (required, list) — role identifiers from the common
|
|
72
|
+
vocabulary in [`reviewer-awareness`](../../rules/reviewer-awareness.md)
|
|
73
|
+
or project-custom roles.
|
|
74
|
+
- **focus** (optional, string) — one-line description of what reviewers
|
|
75
|
+
should look at. Surfaced in the PR comment verbatim.
|
|
76
|
+
- **risk** (optional, string) — one-line description of what goes wrong
|
|
77
|
+
when this area breaks. Used by routing to annotate high-risk matches.
|
|
78
|
+
|
|
79
|
+
## historical-bug-patterns.yml
|
|
80
|
+
|
|
81
|
+
Registry of recurring failure modes. Each pattern names a class of bug
|
|
82
|
+
the project has paid for before, with the minimum control or test
|
|
83
|
+
expected for similar new work.
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
version: 1
|
|
87
|
+
updated: 2026-02-01
|
|
88
|
+
|
|
89
|
+
patterns:
|
|
90
|
+
- id: n-plus-one-tenant-listing
|
|
91
|
+
label: "N+1 on tenant-scoped listings"
|
|
92
|
+
severity: medium
|
|
93
|
+
paths:
|
|
94
|
+
- "app/Http/Controllers/**Listing*.php"
|
|
95
|
+
- "app/Services/**Query*.php"
|
|
96
|
+
required_test: "assert query count ≤ N for a multi-row fixture"
|
|
97
|
+
references:
|
|
98
|
+
- "PR #842 — production slowdown 2024-09"
|
|
99
|
+
|
|
100
|
+
- id: missing-policy-on-admin-route
|
|
101
|
+
label: "Admin-only route without Gate::allows"
|
|
102
|
+
severity: high
|
|
103
|
+
paths:
|
|
104
|
+
- "app/Http/Controllers/Admin/**"
|
|
105
|
+
- "routes/admin.php"
|
|
106
|
+
required_test: "negative test: non-admin gets 403"
|
|
107
|
+
|
|
108
|
+
- id: queue-job-not-idempotent
|
|
109
|
+
label: "Queue job without idempotency key"
|
|
110
|
+
severity: high
|
|
111
|
+
paths:
|
|
112
|
+
- "app/Jobs/**"
|
|
113
|
+
required_test: "asserting a retried job does not double-write"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Field semantics:
|
|
117
|
+
|
|
118
|
+
- **id** (required, unique string) — stable slug; used in PR comments
|
|
119
|
+
and tests as a label.
|
|
120
|
+
- **label** (required, string) — human-readable name.
|
|
121
|
+
- **severity** (required, `low` | `medium` | `high`) — matched patterns
|
|
122
|
+
contribute this severity to overall PR routing.
|
|
123
|
+
- **paths** (required, list) — fnmatch globs. A pattern matches the
|
|
124
|
+
diff when **any** changed file matches any glob.
|
|
125
|
+
- **required_test** (required, string) — the specific assertion or
|
|
126
|
+
regression test the pattern demands. Feeds
|
|
127
|
+
[`verify-before-complete`](../../rules/verify-before-complete.md) and
|
|
128
|
+
[`judge-test-coverage`](../../skills/judge-test-coverage/SKILL.md).
|
|
129
|
+
- **references** (optional, list) — links to prior PRs, incidents, or
|
|
130
|
+
postmortems. Agents quote these verbatim when warning about a match.
|
|
131
|
+
|
|
132
|
+
## Maintenance
|
|
133
|
+
|
|
134
|
+
- Both files are code. Review changes to them like code — PR + review.
|
|
135
|
+
- Stale is worse than absent. Update the `updated` field or delete the
|
|
136
|
+
file when ownership or patterns have drifted.
|
|
137
|
+
- Never auto-generate entries from agent sessions. Entries are curated,
|
|
138
|
+
not inferred.
|
|
139
|
+
|
|
140
|
+
## See also
|
|
141
|
+
|
|
142
|
+
- [`review-routing-awareness`](../../rules/review-routing-awareness.md)
|
|
143
|
+
- [`reviewer-awareness`](../../rules/reviewer-awareness.md)
|
|
144
|
+
- [`review-routing`](../../skills/review-routing/SKILL.md)
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Role Contracts
|
|
2
|
+
|
|
3
|
+
Six named working modes with a fixed output contract per mode. Loading
|
|
4
|
+
a role frame stabilizes smaller models: they stop inventing a frame per
|
|
5
|
+
task and produce reproducible outputs on the same input.
|
|
6
|
+
|
|
7
|
+
Referenced by `road-to-role-modes.md` Phase 1. Each contract is a
|
|
8
|
+
*skeleton*, not a form — fields without evidence become questions via
|
|
9
|
+
`ask-when-uncertain`, never fabrications.
|
|
10
|
+
|
|
11
|
+
## The six modes
|
|
12
|
+
|
|
13
|
+
| Mode | Entry signal | Default skills | Output contract |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| **Developer** | "implement X", `/jira-ticket`, `/bug-fix` | `php-coder`, `laravel`, `test-driven-development`, `quality-tools` | Goal / Plan / Changes / Tests / Open questions |
|
|
16
|
+
| **Reviewer** | `/review-changes`, `/judge`, PR open on branch | `judge-bug-hunter`, `judge-code-quality`, `judge-security-auditor`, `judge-test-coverage` | Summary / Risks / Findings / Required actions / Verdict |
|
|
17
|
+
| **Tester** | "add tests", "why does X fail", test output in context | `pest-testing`, `api-testing`, `e2e-plan`, `test-performance` | Behaviour under test / Edge cases / Negative paths / Reproduction / Coverage gaps |
|
|
18
|
+
| **PO** | "I want a feature", `/feature-explore`, `/feature-plan` | `validate-feature-fit`, `api-design`, `threat-modeling` | Goal / Assumptions / Acceptance criteria / Impacted modules / Risks / Open questions for stakeholder |
|
|
19
|
+
| **Incident** | "production is down", `break-glass: true`, hotfix branch | `bug-investigate`, `systematic-debugging`, `authz-review` | Symptom / Reproduction / Minimal reversible change / Deferred verification / Follow-up commitment / Incident learning |
|
|
20
|
+
| **Planner** | "what's the strategy", `/feature-roadmap`, multi-step work with unclear order | `feature-plan`, `feature-roadmap`, `blast-radius-analyzer` | Goal / Constraints / Option set / Recommendation / Dependencies / Rollback |
|
|
21
|
+
|
|
22
|
+
## Contract skeletons
|
|
23
|
+
|
|
24
|
+
### Developer
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
**Goal:** <what the user asked for, one sentence>
|
|
28
|
+
**Plan:** <ordered steps, ≤5>
|
|
29
|
+
**Changes:** <files touched, one line each>
|
|
30
|
+
**Tests:** <added/updated tests + how to run>
|
|
31
|
+
**Open questions:** <unresolved items, none if blank>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Reviewer
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
**Summary:** <one-paragraph overview of the diff>
|
|
38
|
+
**Risks:** <ranked list: high/medium/low>
|
|
39
|
+
**Findings:** <file:line → issue → fix suggestion>
|
|
40
|
+
**Required actions:** <numbered list the author must address>
|
|
41
|
+
**Verdict:** approve | request changes | block
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Tester
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
**Behaviour under test:** <the invariant, one sentence>
|
|
48
|
+
**Edge cases:** <boundary + error paths covered>
|
|
49
|
+
**Negative paths:** <expected failures, error types>
|
|
50
|
+
**Reproduction:** <how to run a single failing case>
|
|
51
|
+
**Coverage gaps:** <what stayed untested and why>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### PO
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
**Goal:** <user-facing outcome>
|
|
58
|
+
**Assumptions:** <each marked `verify with: {name}` if unconfirmed>
|
|
59
|
+
**Acceptance criteria:** <testable, numbered>
|
|
60
|
+
**Impacted modules:** <paths, not speculation>
|
|
61
|
+
**Risks:** <business + technical>
|
|
62
|
+
**Open questions for stakeholder:** <blocking decisions only>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Incident
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
**Symptom:** <what users see, not the hypothesis>
|
|
69
|
+
**Reproduction:** <minimal steps or "not reproduced">
|
|
70
|
+
**Minimal reversible change:** <the smallest fix>
|
|
71
|
+
**Deferred verification:** <what was skipped under break-glass>
|
|
72
|
+
**Follow-up commitment:** <PR/ticket for full verification, due date>
|
|
73
|
+
**Incident learning:** <intake signal id, OR `/memory-add incident-learnings` draft ref>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Memory-write is the final field, not a nice-to-have.** Before the
|
|
77
|
+
mode exits, the agent MUST either emit an intake signal via
|
|
78
|
+
[`memory-access`](memory-access.md) (`scripts/memory_signal.py`
|
|
79
|
+
append — one line, fire-and-forget) or draft a curated entry with
|
|
80
|
+
[`/memory-add incident-learnings`](../../commands/memory-add.md).
|
|
81
|
+
Pattern + consequence + guardrail, redacted. Skipping this field
|
|
82
|
+
means the incident did not produce a learning — log the absence,
|
|
83
|
+
do not pretend verification happened.
|
|
84
|
+
|
|
85
|
+
### Planner
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
**Goal:** <target state, one paragraph>
|
|
89
|
+
**Constraints:** <hard limits: time, deps, policy>
|
|
90
|
+
**Option set:** <2-4 options with trade-offs>
|
|
91
|
+
**Recommendation:** <which option + one-line justification>
|
|
92
|
+
**Dependencies:** <what must ship first>
|
|
93
|
+
**Rollback:** <how to revert if it fails>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Integration rules
|
|
97
|
+
|
|
98
|
+
- **`ask-when-uncertain`** — any contract field without evidence becomes
|
|
99
|
+
a question, not a guess. The contract does not license fabrication.
|
|
100
|
+
- **`scope-control`** — `Reviewer` mode forbids implementation work.
|
|
101
|
+
`Developer` mode forbids producing review verdicts on own code.
|
|
102
|
+
`PO` mode forbids committing to absent stakeholders' decisions.
|
|
103
|
+
- **`preservation-guard`** — no mode justifies rewriting or removing
|
|
104
|
+
existing skills. Modes *compose* skills, they do not replace them.
|
|
105
|
+
- **`verify-before-complete`** — the final field of every contract is
|
|
106
|
+
an evidence field (Tests, Verdict, Reproduction, Acceptance criteria,
|
|
107
|
+
Deferred verification, Rollback). No mode ships without it.
|
|
108
|
+
|
|
109
|
+
## When to load a contract
|
|
110
|
+
|
|
111
|
+
- **Explicit**: user invokes a command in the entry-signal column.
|
|
112
|
+
- **Inferred**: first message matches a signal — surface one line
|
|
113
|
+
(`> entering {mode} mode — contract: {fields}`) and continue.
|
|
114
|
+
- **Overridden**: user says "no mode" or invokes `/mode none` — drop
|
|
115
|
+
the frame and fall back to default conversation.
|
|
116
|
+
|
|
117
|
+
## Structured mode markers
|
|
118
|
+
|
|
119
|
+
Every contract output MUST begin with a one-line HTML comment so
|
|
120
|
+
session captures, log scrapers, and the measurement hook in
|
|
121
|
+
[`road-to-role-modes.md`](../../../agents/roadmaps/road-to-role-modes.md#phase-4--measurement-hook-closes-q2-of-master-frame)
|
|
122
|
+
can count contract-conformant outputs per mode:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
<!-- role-mode: developer | contract: goal,plan,changes,tests,open-questions -->
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The marker is:
|
|
129
|
+
|
|
130
|
+
- **Invisible** in rendered markdown — no UI noise.
|
|
131
|
+
- **Greppable** with a stable prefix (`role-mode:`).
|
|
132
|
+
- **Self-describing** — `contract:` lists the fields in kebab-case and
|
|
133
|
+
in the order they must appear, so a scraper can verify conformance
|
|
134
|
+
without hardcoding the mode→contract map.
|
|
135
|
+
|
|
136
|
+
Reserved values for `role-mode`:
|
|
137
|
+
|
|
138
|
+
- `developer` · `reviewer` · `tester` · `po` · `incident` · `planner`
|
|
139
|
+
|
|
140
|
+
Any other value is treated as non-conformant. A reply with no marker
|
|
141
|
+
counts as the default "no-mode" conversation and does not feed the
|
|
142
|
+
mode statistics.
|
|
143
|
+
|
|
144
|
+
## Personas (advisory pairings)
|
|
145
|
+
|
|
146
|
+
Modes own the **workflow closing contract**. Personas own the
|
|
147
|
+
**voice** a skill brings to the work. They compose: a skill invoked
|
|
148
|
+
inside a mode can cite one or more personas to shape *how* it
|
|
149
|
+
reviews, reasons, or pushes back — without changing the mode's
|
|
150
|
+
output contract.
|
|
151
|
+
|
|
152
|
+
This table is **advisory**, not enforcing. A skill may cite any
|
|
153
|
+
persona inside any mode; the mapping below is just the most common
|
|
154
|
+
fit. See [`../../personas/README.md`](../../personas/README.md) for
|
|
155
|
+
the persona catalog and schema.
|
|
156
|
+
|
|
157
|
+
| Mode | Typical persona companions | Why |
|
|
158
|
+
|---|---|---|
|
|
159
|
+
| **Developer** | `developer`, `ai-agent` | Implementation voice + automation-readiness check on the plan |
|
|
160
|
+
| **Reviewer** | `critical-challenger`, `senior-engineer`, `qa` | Fake-clarity hunt, architectural lock-in, coverage gaps |
|
|
161
|
+
| **Tester** | `qa`, `developer` | Testability lens + implementation-reality sanity check |
|
|
162
|
+
| **PO** | `product-owner`, `stakeholder`, `critical-challenger` | Outcome/AC, business fit, challenge hidden assumptions |
|
|
163
|
+
| **Incident** | `senior-engineer`, `developer` | Smallest reversible change + long-term risk on the hotfix |
|
|
164
|
+
| **Planner** | `senior-engineer`, `stakeholder`, `critical-challenger` | Architecture impact, business framing, option-set honesty |
|
|
165
|
+
|
|
166
|
+
### Invocation
|
|
167
|
+
|
|
168
|
+
Skills cite personas in frontmatter:
|
|
169
|
+
|
|
170
|
+
```yaml
|
|
171
|
+
---
|
|
172
|
+
name: requesting-code-review
|
|
173
|
+
personas: [critical-challenger]
|
|
174
|
+
---
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Commands accept a CLI-style override that wins over the skill default:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
/refine-ticket --personas=product-owner,senior-engineer,+qa
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Prefix `+` adds a persona to the default cast; prefix `-` removes one.
|
|
184
|
+
Omitting `--personas` uses the skill's documented default.
|
|
185
|
+
|
|
186
|
+
### Conflict resolution
|
|
187
|
+
|
|
188
|
+
If the active mode forbids an action and a persona would push for
|
|
189
|
+
that action (e.g. Reviewer mode + `developer` persona suggesting an
|
|
190
|
+
implementation fix), the agent surfaces a numbered-options prompt per
|
|
191
|
+
[`agent-interaction-and-decision-quality.md`](agent-interaction-and-decision-quality.md) —
|
|
192
|
+
never silently switches mode, never silently drops the persona
|
|
193
|
+
finding. See the Q4 rule in `road-to-personas.md`.
|
|
194
|
+
|
|
195
|
+
## Anti-patterns
|
|
196
|
+
|
|
197
|
+
- **Do NOT** mix two contracts in one reply. If the task shifts
|
|
198
|
+
(review → fix), close the current contract first with its evidence
|
|
199
|
+
field, then enter the next mode.
|
|
200
|
+
- **Do NOT** invent fields the contract does not list. The skeleton
|
|
201
|
+
is the maximum surface, not the minimum.
|
|
202
|
+
- **Do NOT** hand-wave the final evidence field ("tests should pass").
|
|
203
|
+
Run the verification or mark it as deferred with a follow-up commit.
|
|
204
|
+
- **Do NOT** treat the default-skills list as mandatory. The skills
|
|
205
|
+
are pre-loaded; the contract decides which get invoked.
|
|
206
|
+
|
|
207
|
+
## See also
|
|
208
|
+
|
|
209
|
+
- [`road-to-role-modes.md`](../../../agents/roadmaps/road-to-role-modes.md) — roadmap this guideline implements
|
|
210
|
+
- [`output-patterns.md`](output-patterns.md) — generic output conventions modes inherit
|
|
211
|
+
- [`agent-interaction-and-decision-quality.md`](agent-interaction-and-decision-quality.md) — how modes interact with the numbered-options protocol
|