@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,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aws-infrastructure
|
|
3
|
+
description: "Use when working with AWS resources — ECS Fargate, ECR, EFS, Secrets Manager, gomplate templates, multi-env deployments — even when the user says 'deploy to staging' without naming AWS."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# aws-infrastructure
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use this skill when working with AWS infrastructure, deployment configurations, ECS task definitions, or environment-specific settings.
|
|
12
|
+
|
|
13
|
+
Do NOT use when:
|
|
14
|
+
- Local development setup (use `docker` skill)
|
|
15
|
+
- Application code changes
|
|
16
|
+
|
|
17
|
+
## Procedure: Modify AWS infrastructure
|
|
18
|
+
|
|
19
|
+
1. Read the `.aws/` directory (or equivalent) for environment configs and templates.
|
|
20
|
+
2. Read CI/CD workflows (e.g., `.github/workflows/`) for the deployment pipeline.
|
|
21
|
+
3. Check the environment-specific vars files.
|
|
22
|
+
4. **Read project-level overrides** — check `agents/overrides/skills/aws-infrastructure.md` for project-specific service names, prefixes, and infrastructure details.
|
|
23
|
+
|
|
24
|
+
## Architecture overview
|
|
25
|
+
|
|
26
|
+
### Environments (typical setup)
|
|
27
|
+
|
|
28
|
+
| Environment | Trigger | Notes |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| Review | PR with label | Ephemeral, per-branch |
|
|
31
|
+
| Stage | Push to `main` | Persistent, pre-production |
|
|
32
|
+
| Production | Release tag | Persistent, live |
|
|
33
|
+
|
|
34
|
+
### Common AWS services
|
|
35
|
+
|
|
36
|
+
| Service | Purpose |
|
|
37
|
+
|---|---|
|
|
38
|
+
| **ECS Fargate** | Container orchestration (no EC2 instances) |
|
|
39
|
+
| **ECR** | Docker image registry |
|
|
40
|
+
| **EFS** | Shared filesystem (private + public access points) |
|
|
41
|
+
| **Secrets Manager** | `.env` file storage per environment |
|
|
42
|
+
| **IAM Roles** | OIDC-based GitHub Actions authentication |
|
|
43
|
+
| **VPC** | Networking (security groups, subnets) |
|
|
44
|
+
|
|
45
|
+
### Vars file structure
|
|
46
|
+
|
|
47
|
+
Environment-specific config files (e.g., `.aws/*.vars.yaml`) typically contain:
|
|
48
|
+
|
|
49
|
+
```yaml
|
|
50
|
+
AWS:
|
|
51
|
+
GlobalPrefix: {project}-{env} # Resource naming prefix
|
|
52
|
+
Region: eu-central-1 # AWS region
|
|
53
|
+
RoleArn: arn:aws:iam::... # GitHub Actions OIDC role
|
|
54
|
+
ECS:
|
|
55
|
+
Cluster: {project}-{env} # ECS cluster name
|
|
56
|
+
VPC:
|
|
57
|
+
SecurityGroups: [...]
|
|
58
|
+
Subnets: [...]
|
|
59
|
+
EFS:
|
|
60
|
+
FileSystemId: fs-...
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Read the actual vars files in the project for concrete values.
|
|
64
|
+
|
|
65
|
+
### Template structure
|
|
66
|
+
|
|
67
|
+
Templates commonly use **gomplate** for rendering. Typical templates:
|
|
68
|
+
|
|
69
|
+
| Template | Purpose |
|
|
70
|
+
|---|---|
|
|
71
|
+
| `task-definition-web.tpl.yaml` | Web server (app + reverse proxy) |
|
|
72
|
+
| `task-definition-worker.tpl.yaml` | Queue worker |
|
|
73
|
+
| `task-definition-scheduler.tpl.yaml` | Task scheduler (cron) |
|
|
74
|
+
| `task-definition-migrations.tpl.yaml` | One-shot migration runner |
|
|
75
|
+
|
|
76
|
+
Template variables:
|
|
77
|
+
- `{{ .Env.DockerImage }}` — Full ECR image URI with tag
|
|
78
|
+
- `{{ .Env.CommitHash }}` — Git commit SHA
|
|
79
|
+
- `{{ (ds "Vars").AWS.* }}` — Values from the vars file
|
|
80
|
+
|
|
81
|
+
## Deployment flow
|
|
82
|
+
|
|
83
|
+
### Standard (Stage/Production)
|
|
84
|
+
|
|
85
|
+
1. **Build**: Docker image → ECR (tag: SHA + `latest`)
|
|
86
|
+
2. **Migrations**: Run as ECS task (one-shot), wait for completion
|
|
87
|
+
3. **Deploy Services**: Update ECS services with new task definitions
|
|
88
|
+
|
|
89
|
+
### Review environments
|
|
90
|
+
|
|
91
|
+
1. **Build**: Docker image → ECR (tag: SHA + branch-hash)
|
|
92
|
+
2. **Deploy**: Create or update single ECS service (combined task)
|
|
93
|
+
3. **Comment**: Post deployment URL on PR
|
|
94
|
+
|
|
95
|
+
## Conventions
|
|
96
|
+
|
|
97
|
+
### Authentication
|
|
98
|
+
|
|
99
|
+
- GitHub Actions uses **OIDC** (no long-lived AWS credentials).
|
|
100
|
+
- Role ARN is per-environment in the vars file.
|
|
101
|
+
- `aws-actions/configure-aws-credentials` handles the OIDC exchange.
|
|
102
|
+
|
|
103
|
+
### Image tagging
|
|
104
|
+
|
|
105
|
+
- Primary tag: `sha-<full-commit-sha>` (immutable)
|
|
106
|
+
- Secondary tag: `latest` (Stage/Production) or `<review-env-name>` (Review)
|
|
107
|
+
|
|
108
|
+
### Secrets
|
|
109
|
+
|
|
110
|
+
- `.env` files are stored in **AWS Secrets Manager**.
|
|
111
|
+
- Naming convention: `<GlobalPrefix>-dotenv`.
|
|
112
|
+
|
|
113
|
+
### Platform
|
|
114
|
+
|
|
115
|
+
- Check the project's architecture target (`linux/arm64` for Graviton, `linux/amd64` for x86).
|
|
116
|
+
- Ensure CI runners match the target architecture.
|
|
117
|
+
|
|
118
|
+
## Infrastructure as Code
|
|
119
|
+
|
|
120
|
+
The underlying AWS resources (ECS clusters, ALBs, RDS, Redis, IAM roles, security groups, etc.)
|
|
121
|
+
are typically managed via **Terraform + Terragrunt** in a separate infrastructure repository.
|
|
122
|
+
|
|
123
|
+
See the `terraform` and `terragrunt` skills for general IaC conventions.
|
|
124
|
+
|
|
125
|
+
## Output format
|
|
126
|
+
|
|
127
|
+
1. Modified infrastructure config/template files
|
|
128
|
+
2. Environment-specific changes clearly separated
|
|
129
|
+
3. Summary of what changed and which environments are affected
|
|
130
|
+
|
|
131
|
+
## Auto-trigger keywords
|
|
132
|
+
|
|
133
|
+
- AWS
|
|
134
|
+
- ECS Fargate
|
|
135
|
+
- ECR
|
|
136
|
+
- EFS
|
|
137
|
+
- Secrets Manager
|
|
138
|
+
- deployment
|
|
139
|
+
|
|
140
|
+
## Gotcha
|
|
141
|
+
|
|
142
|
+
- Never hardcode AWS credentials — always use Secrets Manager or environment variables.
|
|
143
|
+
- ECS task definitions are immutable — you create new revisions, not edit existing ones.
|
|
144
|
+
- gomplate templates use `{{ }}` which conflicts with other template engines — escape carefully.
|
|
145
|
+
|
|
146
|
+
## Do NOT
|
|
147
|
+
|
|
148
|
+
- Do NOT change VPC/subnet/security group IDs without infrastructure team approval.
|
|
149
|
+
- Do NOT modify IAM role ARNs — they are managed via Terraform.
|
|
150
|
+
- Do NOT hardcode AWS account IDs in templates.
|
|
151
|
+
- Do NOT change the `GlobalPrefix` — it's used for resource naming across AWS.
|
|
152
|
+
- Do NOT switch platform architecture without updating all runners and ECS configs.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: blade-ui
|
|
3
|
+
description: "Use when creating or editing Blade views, components, partials, layouts, or view logic — even when the user says 'add a new page' or 'render this data' without naming Blade."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# blade-ui
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
Use when creating or editing Blade views, components, partials, layouts, or forms.
|
|
12
|
+
|
|
13
|
+
Do NOT use when:
|
|
14
|
+
- API-only endpoints (use `api-endpoint` skill)
|
|
15
|
+
- Livewire components (use `livewire` skill)
|
|
16
|
+
- Flux UI components (use `flux` skill)
|
|
17
|
+
|
|
18
|
+
## Procedure: Create Blade view or component
|
|
19
|
+
|
|
20
|
+
### Step 0: Inspect
|
|
21
|
+
|
|
22
|
+
1. Confirm Blade is used — check `resources/views`, components, layouts.
|
|
23
|
+
2. Inspect existing UI patterns — layouts, partials, component naming, CSS conventions.
|
|
24
|
+
3. Check form handling style — old input, validation errors, session flashes, reusable field partials.
|
|
25
|
+
4. Inspect neighboring templates — match indentation, directives, slot usage, classes.
|
|
26
|
+
5. Determine data flow — what belongs in controller/view model vs. template.
|
|
27
|
+
|
|
28
|
+
### Step 1: Create the template
|
|
29
|
+
|
|
30
|
+
1. Use the project's existing layout system.
|
|
31
|
+
2. Keep template presentation-focused — no business logic, no DB queries.
|
|
32
|
+
3. Extract repeated sections into partials or components.
|
|
33
|
+
|
|
34
|
+
### Step 2: Handle forms (if applicable)
|
|
35
|
+
|
|
36
|
+
1. Follow project's form style for labels, inputs, validation messages.
|
|
37
|
+
2. Use CSRF protection correctly.
|
|
38
|
+
3. Render validation errors consistently.
|
|
39
|
+
4. Preserve user input with `old()` or project conventions.
|
|
40
|
+
5. Reuse existing field components — don't duplicate.
|
|
41
|
+
|
|
42
|
+
### Step 3: Validate
|
|
43
|
+
|
|
44
|
+
1. Check escaping — `{{ }}` by default, `{!! !!}` only when explicitly safe.
|
|
45
|
+
2. Check styling — Tailwind utility classes, not inline styles.
|
|
46
|
+
3. Check accessibility — labels for form fields, semantic HTML.
|
|
47
|
+
|
|
48
|
+
## Conventions
|
|
49
|
+
|
|
50
|
+
→ See guideline `php/blade-ui.md` for full conventions.
|
|
51
|
+
|
|
52
|
+
## Output format
|
|
53
|
+
|
|
54
|
+
1. Blade view or component file(s) following project conventions
|
|
55
|
+
2. Component class (if applicable) with typed props
|
|
56
|
+
|
|
57
|
+
## Gotcha
|
|
58
|
+
|
|
59
|
+
- `@include` shares parent scope — components don't. Know the difference.
|
|
60
|
+
- Always use Tailwind utility classes — not inline styles.
|
|
61
|
+
- Don't put business logic in templates — use view composers or Livewire.
|
|
62
|
+
|
|
63
|
+
## Do NOT
|
|
64
|
+
|
|
65
|
+
- Do NOT use `{!! !!}` with user input — XSS risk.
|
|
66
|
+
- Do NOT put business logic in Blade templates — use Livewire or view composers.
|
|
67
|
+
- Do NOT use inline styles — use Tailwind utility classes.
|
|
68
|
+
|
|
69
|
+
## Auto-trigger keywords
|
|
70
|
+
|
|
71
|
+
- Blade template
|
|
72
|
+
- Blade component
|
|
73
|
+
- Laravel view
|
|
74
|
+
- partial
|
|
75
|
+
- view logic
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: blast-radius-analyzer
|
|
3
|
+
description: "Use BEFORE editing shared code — enumerates every call site, event consumer, queue worker, API client, migration, and test that a planned change will touch, with a file:line citation per dependency."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# blast-radius-analyzer
|
|
8
|
+
|
|
9
|
+
> You are an analyst specialized in **change-impact analysis**.
|
|
10
|
+
> Your only job is to enumerate every piece of code, data, and infrastructure
|
|
11
|
+
> a planned edit will touch — direct callers, event/job consumers, external
|
|
12
|
+
> API contracts, migrations, tests, and documentation — and cite each with a
|
|
13
|
+
> concrete file:line. You do **not** propose fixes, you do **not** judge
|
|
14
|
+
> risk severity alone, you do **not** execute anything — sibling skills do.
|
|
15
|
+
|
|
16
|
+
## When to use
|
|
17
|
+
|
|
18
|
+
* Before editing a method, class, or DB column used by more than one caller
|
|
19
|
+
* Before changing an event payload, queue job shape, or scheduled command
|
|
20
|
+
* Before renaming, deleting, or changing the signature of any public API
|
|
21
|
+
* Before altering a migration, seeder, or shared factory/fixture
|
|
22
|
+
* When the implementer says *"just a quick rename"* of something non-local
|
|
23
|
+
|
|
24
|
+
Do NOT use when:
|
|
25
|
+
|
|
26
|
+
* The target is a truly local symbol (private method called in one file) —
|
|
27
|
+
skip, it has no blast radius
|
|
28
|
+
* You need to trace how one data element flows — route to
|
|
29
|
+
[`data-flow-mapper`](../data-flow-mapper/SKILL.md)
|
|
30
|
+
* You need abuse-case modelling — route to
|
|
31
|
+
[`threat-modeling`](../threat-modeling/SKILL.md)
|
|
32
|
+
* You need a diff-level review — route to
|
|
33
|
+
[`judge-bug-hunter`](../judge-bug-hunter/SKILL.md) and siblings
|
|
34
|
+
* You need to root-cause an existing bug — route to
|
|
35
|
+
[`systematic-debugging`](../systematic-debugging/SKILL.md)
|
|
36
|
+
|
|
37
|
+
## Procedure
|
|
38
|
+
|
|
39
|
+
### 1. Pin the change under analysis
|
|
40
|
+
|
|
41
|
+
Name the exact symbol, column, or contract under change — e.g. *"rename
|
|
42
|
+
`Order::grandTotal()` to `Order::totalCents()`"* or *"drop column
|
|
43
|
+
`users.legacy_ref`"*. If the change is unclear, stop and ask. Do not map
|
|
44
|
+
an imagined refactor.
|
|
45
|
+
|
|
46
|
+
### 2. Identify direct dependencies
|
|
47
|
+
|
|
48
|
+
Run grep/search for the exact symbol, column, or event name. Enumerate:
|
|
49
|
+
|
|
50
|
+
| Dependency class | What to collect |
|
|
51
|
+
|---|---|
|
|
52
|
+
| Call sites | Every invocation: `file:line` + containing function/class |
|
|
53
|
+
| Overrides | Subclasses, trait users, interface implementations |
|
|
54
|
+
| Tests | Tests that exercise the symbol directly |
|
|
55
|
+
| Factories / seeders | Code that constructs or populates the target |
|
|
56
|
+
| DB references | Foreign keys, indexes, views, triggers on the column |
|
|
57
|
+
| Config / docs | YAML, JSON, Markdown that name the symbol |
|
|
58
|
+
|
|
59
|
+
### 3. Inspect indirect dependencies
|
|
60
|
+
|
|
61
|
+
For each direct dependency, identify second-order fan-out:
|
|
62
|
+
|
|
63
|
+
- Events emitted by the changed code → listeners and queued jobs
|
|
64
|
+
- Jobs dispatched → workers, failed-job handlers, schedulers
|
|
65
|
+
- API responses → OpenAPI spec, resource classes, external clients
|
|
66
|
+
- DB schema → migrations that assume the column exists, seeders, reports
|
|
67
|
+
|
|
68
|
+
Stop at second order unless a caller is itself heavily fanned-out (call it
|
|
69
|
+
out explicitly — don't silently chase cascades).
|
|
70
|
+
|
|
71
|
+
### 4. Score reach and surface risks
|
|
72
|
+
|
|
73
|
+
For every dependency, mark:
|
|
74
|
+
|
|
75
|
+
- **Reach:** `local` (≤3 sites) · `module` (one module/bounded context) ·
|
|
76
|
+
`cross-module` (multiple bounded contexts) · `external` (public API, queue
|
|
77
|
+
consumer, other service, persisted data)
|
|
78
|
+
- **Risk type:** signature break · behavior change · data migration ·
|
|
79
|
+
contract change · flaky test surface · none
|
|
80
|
+
- **Owner hint:** module path, codeowner, or team if discoverable
|
|
81
|
+
|
|
82
|
+
### 5. Consult engineering memory
|
|
83
|
+
|
|
84
|
+
Via [`memory-access`](../../guidelines/agent-infra/memory-access.md) call
|
|
85
|
+
`retrieve(types=["architecture-decisions", "ownership"],
|
|
86
|
+
keys=<changed paths + changed symbol>, limit=5)`. Surface:
|
|
87
|
+
|
|
88
|
+
- **Architecture decisions** that constrain the planned change — cite
|
|
89
|
+
`id` and the decision verbatim so the report is self-auditing.
|
|
90
|
+
- **Ownership** matches — add these as `owner hint` candidates when
|
|
91
|
+
the direct grep had no result.
|
|
92
|
+
|
|
93
|
+
Memory entries are supplementary, never authoritative: a grep miss is
|
|
94
|
+
still a grep miss. Do not infer dependencies from memory alone.
|
|
95
|
+
|
|
96
|
+
## Validation
|
|
97
|
+
|
|
98
|
+
Before finalizing the report, confirm:
|
|
99
|
+
|
|
100
|
+
1. Every listed dependency has a file:line citation — no bare filenames
|
|
101
|
+
2. Call-site count is exact — the output says `7 call sites`, not `several`
|
|
102
|
+
3. Second-order fan-out is bounded — any runaway chain is flagged, not expanded
|
|
103
|
+
4. Every `external` reach has at least one named owner hint or an explicit
|
|
104
|
+
"owner unknown — ask"
|
|
105
|
+
5. You have NOT invented dependencies that grep did not find
|
|
106
|
+
6. You have NOT merged direct and indirect dependencies — they are listed separately
|
|
107
|
+
|
|
108
|
+
## Output format
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Skill: blast-radius-analyzer
|
|
112
|
+
Change: <one-line description of the planned edit>
|
|
113
|
+
|
|
114
|
+
Direct dependencies (N total):
|
|
115
|
+
- Call sites (N):
|
|
116
|
+
<file:line> <containing function/class> reach: <local|module|cross-module|external>
|
|
117
|
+
...
|
|
118
|
+
- Overrides (N):
|
|
119
|
+
<file:line> <subclass/trait/impl>
|
|
120
|
+
- Tests (N): <file:line list>
|
|
121
|
+
- Factories / seeders (N): <file:line list>
|
|
122
|
+
- DB refs (N): <file:line or schema object>
|
|
123
|
+
- Config / docs (N): <file:line list>
|
|
124
|
+
|
|
125
|
+
Indirect dependencies (2nd order, bounded):
|
|
126
|
+
- Events → listeners: <event name> → <listener file:line>
|
|
127
|
+
- Jobs → workers: <job name> → <worker file:line>
|
|
128
|
+
- API → clients: <endpoint> → <resource/spec file:line>
|
|
129
|
+
|
|
130
|
+
Reach summary:
|
|
131
|
+
local: N · module: N · cross-module: N · external: N
|
|
132
|
+
|
|
133
|
+
Risk surfaces:
|
|
134
|
+
- Signature break: <list>
|
|
135
|
+
- Behavior change: <list>
|
|
136
|
+
- Data migration: <list>
|
|
137
|
+
- Contract change: <list>
|
|
138
|
+
|
|
139
|
+
Open questions:
|
|
140
|
+
- <anything grep could not resolve or owners unknown>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Required fields (ordered):
|
|
144
|
+
|
|
145
|
+
1. **Skill** and **Change** — one-line edit summary
|
|
146
|
+
2. **Direct dependencies** — grouped by class, each with file:line citations and exact counts
|
|
147
|
+
3. **Indirect dependencies** — 2nd-order only, bounded
|
|
148
|
+
4. **Reach summary** — counts per reach level
|
|
149
|
+
5. **Risk surfaces** — dependencies grouped by risk type
|
|
150
|
+
6. **Open questions** — unresolved items with grep evidence
|
|
151
|
+
|
|
152
|
+
Runtime confirmation (e.g. *"actually run the test suite to see what breaks"*,
|
|
153
|
+
*"diff the OpenAPI spec"*) is a follow-up for the implementer — **this skill
|
|
154
|
+
does not execute code, run tests, or touch the network**.
|
|
155
|
+
|
|
156
|
+
## Gotcha
|
|
157
|
+
|
|
158
|
+
* **Reflection / string-based dispatch** — `call_user_func`, event names as
|
|
159
|
+
strings, Laravel `resolve($classString)`. Grep the string too, not just the symbol.
|
|
160
|
+
* **Dynamic column access** — `$model->{$field}` or query builder `->get([...])`
|
|
161
|
+
with variable arrays. A column rename can leak through these.
|
|
162
|
+
* **Trait / mixin fan-out** — overriding a method pulled in via trait affects
|
|
163
|
+
every class using the trait. Enumerate trait users.
|
|
164
|
+
* **Migration ordering** — the column exists in migration X; migration Y later
|
|
165
|
+
renames it. Both must change together.
|
|
166
|
+
* **Stopping at first order** — renaming an event without updating the queued
|
|
167
|
+
job class-name serializer silently drops jobs. Always check event/job fan-out.
|
|
168
|
+
* **Counting fuzzily** — `"about 10 callers"` is not a blast radius. Count exact.
|
|
169
|
+
|
|
170
|
+
## Do NOT
|
|
171
|
+
|
|
172
|
+
* NEVER return `safe` out of politeness when external reach exists — mark it clearly
|
|
173
|
+
* NEVER silently fall back to "module-level impact" when grep shows cross-module callers
|
|
174
|
+
* NEVER claim a dependency without a file:line citation from grep output
|
|
175
|
+
* NEVER chase dependencies past 2nd order without explicit scope approval — flag and stop
|
|
176
|
+
|
|
177
|
+
## References
|
|
178
|
+
|
|
179
|
+
- **Martin Fowler — "Refactoring: Improving the Design of Existing Code"** (2018)
|
|
180
|
+
— chapters on *Moving Features Between Objects* and *Organizing Data*
|
|
181
|
+
define safe rename/move sequences that map onto the reach levels used here.
|
|
182
|
+
[martinfowler.com/books/refactoring.html](https://martinfowler.com/books/refactoring.html)
|
|
183
|
+
- [`data-flow-mapper`](../data-flow-mapper/SKILL.md),
|
|
184
|
+
[`threat-modeling`](../threat-modeling/SKILL.md),
|
|
185
|
+
[`systematic-debugging`](../systematic-debugging/SKILL.md) — sibling analysis skills.
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bug-analyzer
|
|
3
|
+
description: "Use when the user shares a Sentry error, Jira bug ticket, or error description and wants root cause analysis. Also for proactive bug hunting and code audits for hidden bugs."
|
|
4
|
+
source: package
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# bug-analyzer
|
|
8
|
+
|
|
9
|
+
## When to use
|
|
10
|
+
|
|
11
|
+
**Reactive mode:** User reports a bug, shares a Sentry issue, or asks to investigate an error.
|
|
12
|
+
**Proactive mode:** User asks to audit code for hidden bugs, edge cases, or risky patterns.
|
|
13
|
+
|
|
14
|
+
Do NOT use when:
|
|
15
|
+
|
|
16
|
+
* Feature development — route to [`feature-planning`](../feature-planning/SKILL.md)
|
|
17
|
+
* Code style or refactoring — route to [`code-refactoring`](../code-refactoring/SKILL.md)
|
|
18
|
+
* Performance issues — route to [`performance-analysis`](../performance-analysis/SKILL.md)
|
|
19
|
+
* Security vulnerabilities — route to [`security-audit`](../security-audit/SKILL.md)
|
|
20
|
+
* You need to trace how one data element flows through the code — route to
|
|
21
|
+
[`data-flow-mapper`](../data-flow-mapper/SKILL.md)
|
|
22
|
+
* You need to enumerate every call site / consumer affected by a planned fix —
|
|
23
|
+
route to [`blast-radius-analyzer`](../blast-radius-analyzer/SKILL.md)
|
|
24
|
+
|
|
25
|
+
## Input sources
|
|
26
|
+
|
|
27
|
+
Bugs can come from multiple sources — gather as many as available:
|
|
28
|
+
|
|
29
|
+
| Source | What it provides |
|
|
30
|
+
|---|---|
|
|
31
|
+
| **Branch name** | Auto-detected ticket ID (e.g., `fix/DEV-1234/...`) |
|
|
32
|
+
| **Jira ticket** | Description, acceptance criteria, comments, priority |
|
|
33
|
+
| **Sentry issue URL** | Stacktrace, affected users/environments, frequency, tags |
|
|
34
|
+
| **Sentry event ID** | Specific occurrence with full context |
|
|
35
|
+
| **Error message** | String to search in codebase |
|
|
36
|
+
| **User description** | Reproduction steps, expected vs. actual behavior |
|
|
37
|
+
|
|
38
|
+
### Branch ticket detection
|
|
39
|
+
|
|
40
|
+
Always check the current branch for ticket IDs:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
git branch --show-current
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Pattern matching:
|
|
47
|
+
- `fix/DEV-1234/description` → extract `DEV-1234`
|
|
48
|
+
- `fix/PROJ-567-some-bug` → extract `PROJ-567`
|
|
49
|
+
- `hotfix/DEV-999` → extract `DEV-999`
|
|
50
|
+
- Regex: `[A-Z]+-[0-9]+`
|
|
51
|
+
|
|
52
|
+
If found, auto-fetch the ticket and confirm with the user.
|
|
53
|
+
|
|
54
|
+
## The Iron Law
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
If you haven't completed Phase 1, you cannot propose fixes. Random fixes waste time and
|
|
61
|
+
create new bugs. Quick patches mask underlying issues.
|
|
62
|
+
|
|
63
|
+
### Red flags — STOP immediately
|
|
64
|
+
|
|
65
|
+
- "Quick fix for now, investigate later"
|
|
66
|
+
- "Just try changing X and see if it works"
|
|
67
|
+
- "It's probably X, let me fix that"
|
|
68
|
+
- Proposing solutions before tracing data flow
|
|
69
|
+
- "One more fix attempt" (when already tried 2+)
|
|
70
|
+
|
|
71
|
+
## Procedure: Analyze a bug
|
|
72
|
+
|
|
73
|
+
### Phase 1: Root Cause Investigation
|
|
74
|
+
|
|
75
|
+
Gather all available evidence before forming any hypothesis:
|
|
76
|
+
|
|
77
|
+
- **Sentry URL** → use `get_issue_details` to fetch stacktrace, tags, environments, frequency.
|
|
78
|
+
- **Sentry issue** → use `get_issue_tag_values` for browser, URL, environment distribution.
|
|
79
|
+
- **Jira ticket** → fetch via Jira API, read description, comments, linked issues.
|
|
80
|
+
- **Error message** → search the codebase for the message string.
|
|
81
|
+
- **Branch name** → auto-detect ticket ID, fetch if found.
|
|
82
|
+
- **Stacktrace** → start from top frame (crash site), trace down to entry point.
|
|
83
|
+
- Use `codebase-retrieval` to find the relevant code.
|
|
84
|
+
- Read each file in the call chain to understand the data flow.
|
|
85
|
+
- Check existing context docs (`agents/contexts/`) for the affected area.
|
|
86
|
+
- **Consult engineering memory.** Via
|
|
87
|
+
[`memory-access`](../../guidelines/agent-infra/memory-access.md) call
|
|
88
|
+
`retrieve(types=["historical-patterns", "incident-learnings"],
|
|
89
|
+
keys=[<error class>, <affected file paths>], limit=3)`. A prior
|
|
90
|
+
matching pattern or incident is the single most reliable accelerator
|
|
91
|
+
for root-cause analysis. Cite `id` and `path` verbatim so the user
|
|
92
|
+
can verify the precedent.
|
|
93
|
+
|
|
94
|
+
#### Multi-component diagnostics
|
|
95
|
+
|
|
96
|
+
When the system has multiple layers (Controller → Service → Repository → DB, or multi-tenant
|
|
97
|
+
DB switching), add diagnostic instrumentation **before** proposing fixes:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
For EACH component boundary:
|
|
101
|
+
- Log what data enters the component
|
|
102
|
+
- Log what data exits the component
|
|
103
|
+
- Verify environment/config propagation (e.g. DB connection, tenant context)
|
|
104
|
+
- Check state at each layer
|
|
105
|
+
|
|
106
|
+
Run once → gather evidence → identify WHICH layer breaks → investigate that layer.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
This is especially important for:
|
|
110
|
+
- Multi-tenant database switching (wrong DB selected)
|
|
111
|
+
- Queue jobs that lose tenant context
|
|
112
|
+
- API → Service → Repository chains with data transformation
|
|
113
|
+
- External service integrations (ProBauS, GPS, etc.)
|
|
114
|
+
|
|
115
|
+
### Phase 2: Pattern Analysis
|
|
116
|
+
|
|
117
|
+
- Find **working examples** of similar code paths in the codebase.
|
|
118
|
+
- Compare the broken path against the working reference.
|
|
119
|
+
- Identify the **specific difference** that causes the failure.
|
|
120
|
+
- Check if the issue is isolated or part of a broader pattern.
|
|
121
|
+
|
|
122
|
+
### Phase 3: Hypothesis and Testing
|
|
123
|
+
|
|
124
|
+
- Form a **single hypothesis** based on evidence from Phase 1 and 2.
|
|
125
|
+
- Test the hypothesis minimally — don't change multiple things at once.
|
|
126
|
+
- If the hypothesis is wrong, go back to Phase 1 with new evidence.
|
|
127
|
+
- **3-Strikes Rule:** If 3+ fix attempts fail, STOP. This signals an architectural problem,
|
|
128
|
+
not a bug. Discuss with the user before attempting more fixes. Signs:
|
|
129
|
+
- Each fix reveals new shared state or coupling in a different place.
|
|
130
|
+
- Fixes require "massive refactoring" to implement.
|
|
131
|
+
- Each fix creates new symptoms elsewhere.
|
|
132
|
+
- Common root causes in this project:
|
|
133
|
+
- **Missing validation** on external sync data (CSV, XML, JSON imports).
|
|
134
|
+
- **Null values** from optional DB columns not handled.
|
|
135
|
+
- **Type mismatches** between legacy DB columns and PHP code.
|
|
136
|
+
- **Race conditions** in multi-tenant database switching.
|
|
137
|
+
- **Missing fallbacks** when external services are unavailable.
|
|
138
|
+
|
|
139
|
+
### Phase 4: Implementation
|
|
140
|
+
|
|
141
|
+
- Present the root cause and proposed fix **before implementing**.
|
|
142
|
+
- Create a **failing test** that reproduces the bug.
|
|
143
|
+
- Implement a **single, focused fix** — not multiple changes.
|
|
144
|
+
- Consider side effects — does the fix affect other code paths?
|
|
145
|
+
- Check if similar patterns exist elsewhere that need the same fix.
|
|
146
|
+
- Add validation/monitoring (e.g. `MonitoringHelper::captureException()`) for data quality issues.
|
|
147
|
+
- Verify the fix with the test from step 1.
|
|
148
|
+
|
|
149
|
+
## Proactive mode (bug hunting)
|
|
150
|
+
|
|
151
|
+
When asked to audit code for hidden bugs, use this workflow instead of the 4 phases above:
|
|
152
|
+
|
|
153
|
+
### 1. Execution tracing
|
|
154
|
+
|
|
155
|
+
Trace the actual code path step by step:
|
|
156
|
+
- Follow data through each function call
|
|
157
|
+
- Track state mutations and side effects
|
|
158
|
+
- Note where exceptions are caught or swallowed
|
|
159
|
+
- Identify where assumptions are made but not validated
|
|
160
|
+
|
|
161
|
+
### 2. Edge case analysis
|
|
162
|
+
|
|
163
|
+
For each code path, test these scenarios mentally:
|
|
164
|
+
|
|
165
|
+
| Category | What to check |
|
|
166
|
+
|---|---|
|
|
167
|
+
| **Null/empty** | Null inputs, empty arrays, empty strings, missing keys |
|
|
168
|
+
| **Boundaries** | Zero, negative, max int, first/last element |
|
|
169
|
+
| **Type coercion** | String "0" vs int 0, loose comparison bugs |
|
|
170
|
+
| **Timing** | Race conditions, stale cache, concurrent writes |
|
|
171
|
+
| **State** | Uninitialized state, partial updates, rollback failures |
|
|
172
|
+
| **External** | Network timeout, API errors, malformed responses |
|
|
173
|
+
|
|
174
|
+
### 3. Known bug patterns (PHP/Laravel)
|
|
175
|
+
|
|
176
|
+
- N+1 queries hidden in loops or accessors
|
|
177
|
+
- Missing `->fresh()` after update when using same instance
|
|
178
|
+
- Eloquent lazy loading in queued jobs (serialization issues)
|
|
179
|
+
- `now()` timezone mismatches
|
|
180
|
+
- Missing FK constraints allowing orphaned records
|
|
181
|
+
- `DB::transaction()` with external side effects (emails, API calls)
|
|
182
|
+
- Model events firing during seeding or migration
|
|
183
|
+
- Off-by-one errors in pagination or date ranges
|
|
184
|
+
- Silent exception swallowing (`catch (\Exception $e) {}`)
|
|
185
|
+
- Floating point comparison for money/quantities
|
|
186
|
+
|
|
187
|
+
### 4. Output format (proactive mode)
|
|
188
|
+
|
|
189
|
+
For each bug found: **Bug** → **Location** → **Severity** → **Root Cause** → **Trigger** → **Fix** → **Confidence**
|
|
190
|
+
|
|
191
|
+
## Commands
|
|
192
|
+
|
|
193
|
+
| Command | Purpose |
|
|
194
|
+
|---|---|
|
|
195
|
+
| `bug-investigate` | Gather context from all sources, analyze, identify root cause |
|
|
196
|
+
| `bug-fix` | Plan the fix, implement, verify with tests and quality tools |
|
|
197
|
+
|
|
198
|
+
## Project awareness
|
|
199
|
+
|
|
200
|
+
Read `AGENTS.md` and `./agents/` for project-specific architecture, business rules, and domain docs.
|
|
201
|
+
Detect the project from the repo name (see `rules/architecture.md`).
|
|
202
|
+
Check for existing contexts in `agents/contexts/` or module `agents/contexts/`.
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
## Adversarial review
|
|
206
|
+
|
|
207
|
+
Before implementing a fix, run the **`adversarial-review`** skill.
|
|
208
|
+
Focus on the "Bug fixes" attack questions: Is this the root cause or a symptom? Will the fix break something else?
|
|
209
|
+
|
|
210
|
+
## Auto-trigger keywords
|
|
211
|
+
|
|
212
|
+
- bug investigation
|
|
213
|
+
- error analysis
|
|
214
|
+
- Sentry error
|
|
215
|
+
- stacktrace
|
|
216
|
+
- root cause
|
|
217
|
+
|
|
218
|
+
## Rationalization prevention
|
|
219
|
+
|
|
220
|
+
| Excuse | Reality |
|
|
221
|
+
|---|---|
|
|
222
|
+
| "Should work now" | RUN the verification — confidence ≠ evidence |
|
|
223
|
+
| "It's probably X, let me fix that" | "Probably" = guessing. Complete Phase 1 first |
|
|
224
|
+
| "Quick fix for now" | Quick fixes mask root causes and create technical debt |
|
|
225
|
+
| "I'll investigate later" | Later never comes. Investigate now |
|
|
226
|
+
| "One more fix attempt" (after 2+) | 3+ failures = architectural problem. Stop and discuss |
|
|
227
|
+
| "Issue is simple, don't need process" | Simple issues have root causes too. Process is fast for simple bugs |
|
|
228
|
+
| "Emergency, no time for process" | Systematic debugging is FASTER than guess-and-check thrashing |
|
|
229
|
+
|
|
230
|
+
## Output format
|
|
231
|
+
|
|
232
|
+
1. Root cause analysis with evidence trail
|
|
233
|
+
2. Fix implementation or fix plan with specific files and changes
|
|
234
|
+
3. Regression test covering the failure scenario
|
|
235
|
+
|
|
236
|
+
## Gotcha
|
|
237
|
+
|
|
238
|
+
- Don't assume the stacktrace shows the root cause — it often shows the symptom. Trace backwards.
|
|
239
|
+
- Sentry groups similar errors — check if the "latest event" is actually representative of the issue.
|
|
240
|
+
- The model tends to suggest fixes without verifying the fix doesn't break other code paths.
|
|
241
|
+
|
|
242
|
+
## Do NOT
|
|
243
|
+
|
|
244
|
+
- Do NOT start fixing before understanding the root cause.
|
|
245
|
+
- Do NOT commit or push without permission.
|
|
246
|
+
- Do NOT ignore Sentry data if available — it provides real-world context.
|
|
247
|
+
- Do NOT fix only the symptom — trace to the root cause.
|
|
248
|
+
- Do NOT attempt fix #4 without discussing the architecture with the user.
|
|
249
|
+
|
|
250
|
+
## References
|
|
251
|
+
|
|
252
|
+
- **Chain-of-Verification (CoVe)** — [arxiv.org/abs/2309.11495](https://arxiv.org/abs/2309.11495)
|
|
253
|
+
Generate candidate answers, then verify each with follow-up
|
|
254
|
+
questions. This skill adapts CoVe by verifying stacktrace-derived
|
|
255
|
+
hypotheses against Sentry data and surrounding code before fixing.
|
|
256
|
+
|