@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.
Files changed (446) hide show
  1. package/.agent-src/README.md +64 -0
  2. package/.agent-src/commands/agent-handoff.md +64 -0
  3. package/.agent-src/commands/agent-status.md +83 -0
  4. package/.agent-src/commands/agents-audit.md +243 -0
  5. package/.agent-src/commands/agents-cleanup.md +169 -0
  6. package/.agent-src/commands/agents-prepare.md +137 -0
  7. package/.agent-src/commands/analyze-reference-repo.md +191 -0
  8. package/.agent-src/commands/bug-fix.md +181 -0
  9. package/.agent-src/commands/bug-investigate.md +175 -0
  10. package/.agent-src/commands/commit.md +121 -0
  11. package/.agent-src/commands/compress.md +177 -0
  12. package/.agent-src/commands/config-agent-settings.md +126 -0
  13. package/.agent-src/commands/context-create.md +167 -0
  14. package/.agent-src/commands/context-refactor.md +170 -0
  15. package/.agent-src/commands/copilot-agents-init.md +150 -0
  16. package/.agent-src/commands/copilot-agents-optimize.md +251 -0
  17. package/.agent-src/commands/create-pr-description.md +112 -0
  18. package/.agent-src/commands/create-pr.md +76 -0
  19. package/.agent-src/commands/do-and-judge.md +114 -0
  20. package/.agent-src/commands/do-in-steps.md +84 -0
  21. package/.agent-src/commands/e2e-heal.md +98 -0
  22. package/.agent-src/commands/e2e-plan.md +85 -0
  23. package/.agent-src/commands/estimate-ticket.md +80 -0
  24. package/.agent-src/commands/feature-dev.md +111 -0
  25. package/.agent-src/commands/feature-explore.md +180 -0
  26. package/.agent-src/commands/feature-plan.md +288 -0
  27. package/.agent-src/commands/feature-refactor.md +181 -0
  28. package/.agent-src/commands/feature-roadmap.md +184 -0
  29. package/.agent-src/commands/fix-ci.md +48 -0
  30. package/.agent-src/commands/fix-portability.md +97 -0
  31. package/.agent-src/commands/fix-pr-bot-comments.md +146 -0
  32. package/.agent-src/commands/fix-pr-comments.md +58 -0
  33. package/.agent-src/commands/fix-pr-developer-comments.md +152 -0
  34. package/.agent-src/commands/fix-references.md +94 -0
  35. package/.agent-src/commands/fix-seeder.md +146 -0
  36. package/.agent-src/commands/implement-ticket.md +133 -0
  37. package/.agent-src/commands/jira-ticket.md +71 -0
  38. package/.agent-src/commands/judge.md +86 -0
  39. package/.agent-src/commands/memory-add.md +130 -0
  40. package/.agent-src/commands/memory-full.md +97 -0
  41. package/.agent-src/commands/memory-promote.md +144 -0
  42. package/.agent-src/commands/mode.md +121 -0
  43. package/.agent-src/commands/module-create.md +132 -0
  44. package/.agent-src/commands/module-explore.md +157 -0
  45. package/.agent-src/commands/optimize-agents.md +139 -0
  46. package/.agent-src/commands/optimize-augmentignore.md +262 -0
  47. package/.agent-src/commands/optimize-rtk-filters.md +120 -0
  48. package/.agent-src/commands/optimize-skills.md +121 -0
  49. package/.agent-src/commands/override-create.md +97 -0
  50. package/.agent-src/commands/override-manage.md +96 -0
  51. package/.agent-src/commands/package-reset.md +154 -0
  52. package/.agent-src/commands/package-test.md +154 -0
  53. package/.agent-src/commands/prepare-for-review.md +91 -0
  54. package/.agent-src/commands/project-analyze.md +300 -0
  55. package/.agent-src/commands/project-health.md +95 -0
  56. package/.agent-src/commands/propose-memory.md +108 -0
  57. package/.agent-src/commands/quality-fix.md +106 -0
  58. package/.agent-src/commands/refine-ticket.md +81 -0
  59. package/.agent-src/commands/review-changes.md +130 -0
  60. package/.agent-src/commands/review-routing.md +111 -0
  61. package/.agent-src/commands/roadmap-create.md +110 -0
  62. package/.agent-src/commands/roadmap-execute.md +68 -0
  63. package/.agent-src/commands/rule-compliance-audit.md +139 -0
  64. package/.agent-src/commands/tests-create.md +73 -0
  65. package/.agent-src/commands/tests-execute.md +58 -0
  66. package/.agent-src/commands/threat-model.md +115 -0
  67. package/.agent-src/commands/update-form-request-messages.md +189 -0
  68. package/.agent-src/commands/upstream-contribute.md +171 -0
  69. package/.agent-src/contexts/augment-infrastructure.md +181 -0
  70. package/.agent-src/contexts/documentation-hierarchy.md +142 -0
  71. package/.agent-src/contexts/model-recommendations.md +142 -0
  72. package/.agent-src/contexts/override-system.md +187 -0
  73. package/.agent-src/contexts/skills-and-commands.md +154 -0
  74. package/.agent-src/contexts/subagent-configuration.md +62 -0
  75. package/.agent-src/guidelines/agent-infra/agent-interaction-and-decision-quality.md +110 -0
  76. package/.agent-src/guidelines/agent-infra/break-glass-usage.md +113 -0
  77. package/.agent-src/guidelines/agent-infra/developer-judgment.md +82 -0
  78. package/.agent-src/guidelines/agent-infra/engineering-memory-data-format.md +117 -0
  79. package/.agent-src/guidelines/agent-infra/layered-settings.md +158 -0
  80. package/.agent-src/guidelines/agent-infra/memory-access.md +121 -0
  81. package/.agent-src/guidelines/agent-infra/naming.md +69 -0
  82. package/.agent-src/guidelines/agent-infra/output-patterns.md +117 -0
  83. package/.agent-src/guidelines/agent-infra/review-routing-data-format.md +144 -0
  84. package/.agent-src/guidelines/agent-infra/role-contracts.md +211 -0
  85. package/.agent-src/guidelines/agent-infra/role-mode-router.md +89 -0
  86. package/.agent-src/guidelines/agent-infra/runtime-layer.md +89 -0
  87. package/.agent-src/guidelines/agent-infra/self-improvement-pipeline.md +135 -0
  88. package/.agent-src/guidelines/agent-infra/size-and-scope.md +189 -0
  89. package/.agent-src/guidelines/agent-infra/tool-integration.md +73 -0
  90. package/.agent-src/guidelines/docs/readme-size-and-splitting.md +153 -0
  91. package/.agent-src/guidelines/e2e/playwright.md +363 -0
  92. package/.agent-src/guidelines/php/api-design.md +115 -0
  93. package/.agent-src/guidelines/php/artisan-commands.md +81 -0
  94. package/.agent-src/guidelines/php/blade-ui.md +78 -0
  95. package/.agent-src/guidelines/php/controllers.md +90 -0
  96. package/.agent-src/guidelines/php/database.md +111 -0
  97. package/.agent-src/guidelines/php/eloquent.md +208 -0
  98. package/.agent-src/guidelines/php/flux.md +80 -0
  99. package/.agent-src/guidelines/php/general.md +191 -0
  100. package/.agent-src/guidelines/php/git.md +96 -0
  101. package/.agent-src/guidelines/php/jobs.md +111 -0
  102. package/.agent-src/guidelines/php/livewire.md +71 -0
  103. package/.agent-src/guidelines/php/logging.md +79 -0
  104. package/.agent-src/guidelines/php/naming.md +89 -0
  105. package/.agent-src/guidelines/php/patterns/dependency-injection.md +57 -0
  106. package/.agent-src/guidelines/php/patterns/dtos.md +199 -0
  107. package/.agent-src/guidelines/php/patterns/events.md +67 -0
  108. package/.agent-src/guidelines/php/patterns/factory.md +53 -0
  109. package/.agent-src/guidelines/php/patterns/pipelines.md +66 -0
  110. package/.agent-src/guidelines/php/patterns/policies.md +66 -0
  111. package/.agent-src/guidelines/php/patterns/repositories.md +122 -0
  112. package/.agent-src/guidelines/php/patterns/service-layer.md +64 -0
  113. package/.agent-src/guidelines/php/patterns/strategy.md +69 -0
  114. package/.agent-src/guidelines/php/patterns.md +28 -0
  115. package/.agent-src/guidelines/php/performance.md +92 -0
  116. package/.agent-src/guidelines/php/resources.md +100 -0
  117. package/.agent-src/guidelines/php/security.md +110 -0
  118. package/.agent-src/guidelines/php/sql.md +97 -0
  119. package/.agent-src/guidelines/php/validations.md +119 -0
  120. package/.agent-src/guidelines/php/websocket.md +100 -0
  121. package/.agent-src/personas/README.md +104 -0
  122. package/.agent-src/personas/ai-agent.md +77 -0
  123. package/.agent-src/personas/critical-challenger.md +73 -0
  124. package/.agent-src/personas/developer.md +73 -0
  125. package/.agent-src/personas/product-owner.md +78 -0
  126. package/.agent-src/personas/qa.md +67 -0
  127. package/.agent-src/personas/senior-engineer.md +77 -0
  128. package/.agent-src/personas/stakeholder.md +78 -0
  129. package/.agent-src/rules/agent-docs.md +61 -0
  130. package/.agent-src/rules/analysis-skill-routing.md +48 -0
  131. package/.agent-src/rules/architecture.md +62 -0
  132. package/.agent-src/rules/artifact-drafting-protocol.md +73 -0
  133. package/.agent-src/rules/ask-when-uncertain.md +52 -0
  134. package/.agent-src/rules/augment-portability.md +38 -0
  135. package/.agent-src/rules/augment-source-of-truth.md +128 -0
  136. package/.agent-src/rules/capture-learnings.md +89 -0
  137. package/.agent-src/rules/cli-output-handling.md +94 -0
  138. package/.agent-src/rules/commit-conventions.md +64 -0
  139. package/.agent-src/rules/context-hygiene.md +90 -0
  140. package/.agent-src/rules/docker-commands.md +55 -0
  141. package/.agent-src/rules/docs-sync.md +79 -0
  142. package/.agent-src/rules/downstream-changes.md +70 -0
  143. package/.agent-src/rules/e2e-testing.md +53 -0
  144. package/.agent-src/rules/guidelines.md +90 -0
  145. package/.agent-src/rules/improve-before-implement.md +94 -0
  146. package/.agent-src/rules/language-and-tone.md +104 -0
  147. package/.agent-src/rules/laravel-translations.md +48 -0
  148. package/.agent-src/rules/markdown-safe-codeblocks.md +18 -0
  149. package/.agent-src/rules/minimal-safe-diff.md +87 -0
  150. package/.agent-src/rules/missing-tool-handling.md +62 -0
  151. package/.agent-src/rules/model-recommendation.md +70 -0
  152. package/.agent-src/rules/package-ci-checks.md +80 -0
  153. package/.agent-src/rules/php-coding.md +63 -0
  154. package/.agent-src/rules/preservation-guard.md +29 -0
  155. package/.agent-src/rules/review-routing-awareness.md +125 -0
  156. package/.agent-src/rules/reviewer-awareness.md +92 -0
  157. package/.agent-src/rules/roadmap-progress-sync.md +56 -0
  158. package/.agent-src/rules/role-mode-adherence.md +54 -0
  159. package/.agent-src/rules/rule-type-governance.md +46 -0
  160. package/.agent-src/rules/runtime-safety.md +42 -0
  161. package/.agent-src/rules/scope-control.md +40 -0
  162. package/.agent-src/rules/security-sensitive-stop.md +77 -0
  163. package/.agent-src/rules/size-enforcement.md +29 -0
  164. package/.agent-src/rules/skill-improvement-trigger.md +58 -0
  165. package/.agent-src/rules/skill-quality.md +110 -0
  166. package/.agent-src/rules/slash-commands.md +30 -0
  167. package/.agent-src/rules/think-before-action.md +91 -0
  168. package/.agent-src/rules/token-efficiency.md +99 -0
  169. package/.agent-src/rules/tool-safety.md +36 -0
  170. package/.agent-src/rules/upstream-proposal.md +76 -0
  171. package/.agent-src/rules/user-interaction.md +79 -0
  172. package/.agent-src/rules/verify-before-complete.md +120 -0
  173. package/.agent-src/scripts/scan-seeder-violations.php +145 -0
  174. package/.agent-src/scripts/update_roadmap_progress.py +244 -0
  175. package/.agent-src/skills/adversarial-review/SKILL.md +149 -0
  176. package/.agent-src/skills/agent-docs-writing/SKILL.md +234 -0
  177. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +197 -0
  178. package/.agent-src/skills/analysis-skill-router/SKILL.md +134 -0
  179. package/.agent-src/skills/api-design/SKILL.md +104 -0
  180. package/.agent-src/skills/api-endpoint/SKILL.md +185 -0
  181. package/.agent-src/skills/api-testing/SKILL.md +206 -0
  182. package/.agent-src/skills/artisan-commands/SKILL.md +78 -0
  183. package/.agent-src/skills/authz-review/SKILL.md +171 -0
  184. package/.agent-src/skills/aws-infrastructure/SKILL.md +152 -0
  185. package/.agent-src/skills/blade-ui/SKILL.md +75 -0
  186. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +185 -0
  187. package/.agent-src/skills/bug-analyzer/SKILL.md +256 -0
  188. package/.agent-src/skills/check-refs/SKILL.md +72 -0
  189. package/.agent-src/skills/code-refactoring/SKILL.md +200 -0
  190. package/.agent-src/skills/code-review/SKILL.md +214 -0
  191. package/.agent-src/skills/command-routing/SKILL.md +96 -0
  192. package/.agent-src/skills/command-writing/SKILL.md +143 -0
  193. package/.agent-src/skills/composer-packages/SKILL.md +172 -0
  194. package/.agent-src/skills/context-authoring/SKILL.md +157 -0
  195. package/.agent-src/skills/context-document/SKILL.md +153 -0
  196. package/.agent-src/skills/conventional-commits-writing/SKILL.md +70 -0
  197. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +220 -0
  198. package/.agent-src/skills/copilot-config/SKILL.md +203 -0
  199. package/.agent-src/skills/dashboard-design/SKILL.md +116 -0
  200. package/.agent-src/skills/data-flow-mapper/SKILL.md +160 -0
  201. package/.agent-src/skills/database/SKILL.md +91 -0
  202. package/.agent-src/skills/dependency-upgrade/SKILL.md +204 -0
  203. package/.agent-src/skills/description-assist/SKILL.md +169 -0
  204. package/.agent-src/skills/design-review/SKILL.md +228 -0
  205. package/.agent-src/skills/devcontainer/SKILL.md +121 -0
  206. package/.agent-src/skills/developer-like-execution/SKILL.md +276 -0
  207. package/.agent-src/skills/docker/SKILL.md +245 -0
  208. package/.agent-src/skills/dto-creator/SKILL.md +117 -0
  209. package/.agent-src/skills/eloquent/SKILL.md +92 -0
  210. package/.agent-src/skills/eloquent/evals/last-run.json +99 -0
  211. package/.agent-src/skills/eloquent/evals/triggers.json +16 -0
  212. package/.agent-src/skills/estimate-ticket/SKILL.md +186 -0
  213. package/.agent-src/skills/estimate-ticket/evals/output-schema.yml +20 -0
  214. package/.agent-src/skills/estimate-ticket/evals/triggers.json +18 -0
  215. package/.agent-src/skills/fe-design/SKILL.md +223 -0
  216. package/.agent-src/skills/feature-planning/SKILL.md +226 -0
  217. package/.agent-src/skills/file-editor/SKILL.md +129 -0
  218. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +200 -0
  219. package/.agent-src/skills/flux/SKILL.md +64 -0
  220. package/.agent-src/skills/git-workflow/SKILL.md +102 -0
  221. package/.agent-src/skills/github-ci/SKILL.md +122 -0
  222. package/.agent-src/skills/grafana/SKILL.md +168 -0
  223. package/.agent-src/skills/guideline-writing/SKILL.md +147 -0
  224. package/.agent-src/skills/jira-integration/SKILL.md +182 -0
  225. package/.agent-src/skills/jobs-events/SKILL.md +87 -0
  226. package/.agent-src/skills/judge-bug-hunter/SKILL.md +157 -0
  227. package/.agent-src/skills/judge-code-quality/SKILL.md +158 -0
  228. package/.agent-src/skills/judge-security-auditor/SKILL.md +167 -0
  229. package/.agent-src/skills/judge-test-coverage/SKILL.md +154 -0
  230. package/.agent-src/skills/laravel/SKILL.md +195 -0
  231. package/.agent-src/skills/laravel-horizon/SKILL.md +169 -0
  232. package/.agent-src/skills/laravel-mail/SKILL.md +193 -0
  233. package/.agent-src/skills/laravel-middleware/SKILL.md +185 -0
  234. package/.agent-src/skills/laravel-notifications/SKILL.md +168 -0
  235. package/.agent-src/skills/laravel-pennant/SKILL.md +188 -0
  236. package/.agent-src/skills/laravel-pulse/SKILL.md +160 -0
  237. package/.agent-src/skills/laravel-reverb/SKILL.md +205 -0
  238. package/.agent-src/skills/laravel-scheduling/SKILL.md +167 -0
  239. package/.agent-src/skills/laravel-validation/SKILL.md +71 -0
  240. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +249 -0
  241. package/.agent-src/skills/lint-skills/SKILL.md +72 -0
  242. package/.agent-src/skills/livewire/SKILL.md +79 -0
  243. package/.agent-src/skills/logging-monitoring/SKILL.md +100 -0
  244. package/.agent-src/skills/mcp/SKILL.md +193 -0
  245. package/.agent-src/skills/merge-conflicts/SKILL.md +158 -0
  246. package/.agent-src/skills/migration-creator/SKILL.md +160 -0
  247. package/.agent-src/skills/module-management/SKILL.md +154 -0
  248. package/.agent-src/skills/multi-tenancy/SKILL.md +129 -0
  249. package/.agent-src/skills/openapi/SKILL.md +154 -0
  250. package/.agent-src/skills/override-management/SKILL.md +186 -0
  251. package/.agent-src/skills/performance/SKILL.md +69 -0
  252. package/.agent-src/skills/performance-analysis/SKILL.md +118 -0
  253. package/.agent-src/skills/pest-testing/SKILL.md +321 -0
  254. package/.agent-src/skills/php-coder/SKILL.md +78 -0
  255. package/.agent-src/skills/php-coder/evals/triggers.json +16 -0
  256. package/.agent-src/skills/php-debugging/SKILL.md +184 -0
  257. package/.agent-src/skills/php-service/SKILL.md +96 -0
  258. package/.agent-src/skills/playwright-testing/SKILL.md +244 -0
  259. package/.agent-src/skills/project-analysis-core/SKILL.md +138 -0
  260. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +130 -0
  261. package/.agent-src/skills/project-analysis-laravel/SKILL.md +119 -0
  262. package/.agent-src/skills/project-analysis-nextjs/SKILL.md +123 -0
  263. package/.agent-src/skills/project-analysis-node-express/SKILL.md +111 -0
  264. package/.agent-src/skills/project-analysis-react/SKILL.md +119 -0
  265. package/.agent-src/skills/project-analysis-symfony/SKILL.md +111 -0
  266. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +108 -0
  267. package/.agent-src/skills/project-analyzer/SKILL.md +341 -0
  268. package/.agent-src/skills/project-docs/SKILL.md +137 -0
  269. package/.agent-src/skills/quality-tools/SKILL.md +411 -0
  270. package/.agent-src/skills/readme-reviewer/SKILL.md +187 -0
  271. package/.agent-src/skills/readme-writing/SKILL.md +142 -0
  272. package/.agent-src/skills/readme-writing-package/SKILL.md +185 -0
  273. package/.agent-src/skills/receiving-code-review/SKILL.md +190 -0
  274. package/.agent-src/skills/refine-ticket/SKILL.md +310 -0
  275. package/.agent-src/skills/refine-ticket/detection-map.yml +124 -0
  276. package/.agent-src/skills/refine-ticket/evals/output-schema.yml +16 -0
  277. package/.agent-src/skills/refine-ticket/evals/triggers.json +16 -0
  278. package/.agent-src/skills/requesting-code-review/SKILL.md +199 -0
  279. package/.agent-src/skills/review-routing/SKILL.md +195 -0
  280. package/.agent-src/skills/roadmap-management/SKILL.md +303 -0
  281. package/.agent-src/skills/rtk-output-filtering/SKILL.md +184 -0
  282. package/.agent-src/skills/rule-writing/SKILL.md +148 -0
  283. package/.agent-src/skills/security/SKILL.md +79 -0
  284. package/.agent-src/skills/security-audit/SKILL.md +123 -0
  285. package/.agent-src/skills/sentry-integration/SKILL.md +170 -0
  286. package/.agent-src/skills/sequential-thinking/SKILL.md +158 -0
  287. package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +155 -0
  288. package/.agent-src/skills/skill-management/SKILL.md +121 -0
  289. package/.agent-src/skills/skill-reviewer/SKILL.md +218 -0
  290. package/.agent-src/skills/skill-writing/SKILL.md +291 -0
  291. package/.agent-src/skills/skill-writing/evals/triggers.json +16 -0
  292. package/.agent-src/skills/sql-writing/SKILL.md +74 -0
  293. package/.agent-src/skills/subagent-orchestration/SKILL.md +190 -0
  294. package/.agent-src/skills/systematic-debugging/SKILL.md +244 -0
  295. package/.agent-src/skills/technical-specification/SKILL.md +185 -0
  296. package/.agent-src/skills/terraform/SKILL.md +137 -0
  297. package/.agent-src/skills/terragrunt/SKILL.md +217 -0
  298. package/.agent-src/skills/test-driven-development/SKILL.md +252 -0
  299. package/.agent-src/skills/test-performance/SKILL.md +172 -0
  300. package/.agent-src/skills/threat-modeling/SKILL.md +189 -0
  301. package/.agent-src/skills/traefik/SKILL.md +319 -0
  302. package/.agent-src/skills/universal-project-analysis/SKILL.md +179 -0
  303. package/.agent-src/skills/upstream-contribute/SKILL.md +255 -0
  304. package/.agent-src/skills/using-git-worktrees/SKILL.md +148 -0
  305. package/.agent-src/skills/validate-feature-fit/SKILL.md +113 -0
  306. package/.agent-src/skills/verify-before-complete/SKILL.md +188 -0
  307. package/.agent-src/skills/websocket/SKILL.md +75 -0
  308. package/.agent-src/templates/AGENTS.md +146 -0
  309. package/.agent-src/templates/agent-settings.md +256 -0
  310. package/.agent-src/templates/agents/.gitattributes.fragment +16 -0
  311. package/.agent-src/templates/agents/agent-project-settings.example.yml +138 -0
  312. package/.agent-src/templates/agents/memory/architecture-decisions.example.yml +95 -0
  313. package/.agent-src/templates/agents/memory/domain-invariants.example.yml +80 -0
  314. package/.agent-src/templates/agents/memory/historical-patterns.example.yml +82 -0
  315. package/.agent-src/templates/agents/memory/incident-learnings.example.yml +113 -0
  316. package/.agent-src/templates/agents/memory/ownership.example.yml +75 -0
  317. package/.agent-src/templates/agents/memory/product-rules.example.yml +87 -0
  318. package/.agent-src/templates/agents/proposal.example.md +143 -0
  319. package/.agent-src/templates/command.md +84 -0
  320. package/.agent-src/templates/contexts/auth-model.md +59 -0
  321. package/.agent-src/templates/contexts/data-sensitivity.md +60 -0
  322. package/.agent-src/templates/contexts/deployment-order.md +72 -0
  323. package/.agent-src/templates/contexts/observability.md +64 -0
  324. package/.agent-src/templates/contexts/tenant-boundaries.md +68 -0
  325. package/.agent-src/templates/contexts.md +116 -0
  326. package/.agent-src/templates/copilot-instructions.md +115 -0
  327. package/.agent-src/templates/features.md +125 -0
  328. package/.agent-src/templates/github-workflows/memory-hygiene.yml +133 -0
  329. package/.agent-src/templates/github-workflows/pr-risk-review.yml +123 -0
  330. package/.agent-src/templates/github-workflows/proposal-drift.yml +118 -0
  331. package/.agent-src/templates/overrides/command.md +24 -0
  332. package/.agent-src/templates/overrides/guideline.md +21 -0
  333. package/.agent-src/templates/overrides/rule.md +19 -0
  334. package/.agent-src/templates/overrides/skill.md +24 -0
  335. package/.agent-src/templates/overrides/template.md +21 -0
  336. package/.agent-src/templates/persona.md +99 -0
  337. package/.agent-src/templates/roadmaps.md +109 -0
  338. package/.agent-src/templates/scripts/README.md +195 -0
  339. package/.agent-src/templates/scripts/check_memory.py +283 -0
  340. package/.agent-src/templates/scripts/check_memory_proposal.py +180 -0
  341. package/.agent-src/templates/scripts/historical-bug-patterns.example.yml +84 -0
  342. package/.agent-src/templates/scripts/implement_ticket/__init__.py +57 -0
  343. package/.agent-src/templates/scripts/implement_ticket/__main__.py +9 -0
  344. package/.agent-src/templates/scripts/implement_ticket/cli.py +171 -0
  345. package/.agent-src/templates/scripts/implement_ticket/delivery_state.py +130 -0
  346. package/.agent-src/templates/scripts/implement_ticket/dispatcher.py +134 -0
  347. package/.agent-src/templates/scripts/implement_ticket/persona_policy.py +85 -0
  348. package/.agent-src/templates/scripts/implement_ticket/steps/__init__.py +49 -0
  349. package/.agent-src/templates/scripts/implement_ticket/steps/analyze.py +98 -0
  350. package/.agent-src/templates/scripts/implement_ticket/steps/implement.py +145 -0
  351. package/.agent-src/templates/scripts/implement_ticket/steps/memory.py +136 -0
  352. package/.agent-src/templates/scripts/implement_ticket/steps/plan.py +175 -0
  353. package/.agent-src/templates/scripts/implement_ticket/steps/refine.py +140 -0
  354. package/.agent-src/templates/scripts/implement_ticket/steps/report.py +195 -0
  355. package/.agent-src/templates/scripts/implement_ticket/steps/test.py +180 -0
  356. package/.agent-src/templates/scripts/implement_ticket/steps/verify.py +170 -0
  357. package/.agent-src/templates/scripts/memory_hash.py +75 -0
  358. package/.agent-src/templates/scripts/memory_lookup.py +216 -0
  359. package/.agent-src/templates/scripts/memory_report.py +184 -0
  360. package/.agent-src/templates/scripts/memory_signal.py +167 -0
  361. package/.agent-src/templates/scripts/memory_status.py +156 -0
  362. package/.agent-src/templates/scripts/ownership-map.example.yml +87 -0
  363. package/.agent-src/templates/scripts/pr-risk-config.example.yml +76 -0
  364. package/.agent-src/templates/scripts/pr_review_routing.py +340 -0
  365. package/.agent-src/templates/scripts/pr_risk_review.py +211 -0
  366. package/.agent-src/templates/skill.md +136 -0
  367. package/.augment-plugin/marketplace.json +32 -0
  368. package/.augment-plugin/plugin.json +21 -0
  369. package/.claude-plugin/marketplace.json +119 -0
  370. package/AGENTS.md +121 -0
  371. package/CHANGELOG.md +279 -0
  372. package/CONTRIBUTING.md +176 -0
  373. package/LICENSE +21 -0
  374. package/README.md +357 -0
  375. package/bin/install.php +38 -0
  376. package/composer.json +29 -0
  377. package/config/agent-settings.template.yml +96 -0
  378. package/config/profiles/balanced.ini +10 -0
  379. package/config/profiles/full.ini +10 -0
  380. package/config/profiles/minimal.ini +10 -0
  381. package/docs/architecture.md +144 -0
  382. package/docs/customization.md +88 -0
  383. package/docs/development.md +171 -0
  384. package/docs/getting-started.md +130 -0
  385. package/docs/github-topics.md +84 -0
  386. package/docs/installation.md +376 -0
  387. package/docs/mcp.md +133 -0
  388. package/docs/quality.md +98 -0
  389. package/docs/skills-catalog.md +136 -0
  390. package/docs/troubleshooting.md +167 -0
  391. package/llms.txt +130 -0
  392. package/package.json +31 -0
  393. package/scripts/audit_skill_descriptions.py +168 -0
  394. package/scripts/check_compression.py +221 -0
  395. package/scripts/check_memory.py +341 -0
  396. package/scripts/check_memory_proposal.py +180 -0
  397. package/scripts/check_portability.py +320 -0
  398. package/scripts/check_proposal.py +269 -0
  399. package/scripts/check_references.py +400 -0
  400. package/scripts/ci_summary.py +131 -0
  401. package/scripts/compress.py +671 -0
  402. package/scripts/compress.sh +18 -0
  403. package/scripts/first-run.sh +109 -0
  404. package/scripts/generate_catalog.py +116 -0
  405. package/scripts/install +151 -0
  406. package/scripts/install-hooks.sh +29 -0
  407. package/scripts/install.py +487 -0
  408. package/scripts/install.sh +637 -0
  409. package/scripts/install_anthropic_key.sh +101 -0
  410. package/scripts/inventory_frontmatter.py +164 -0
  411. package/scripts/lint_marketplace.py +142 -0
  412. package/scripts/lint_regression.py +232 -0
  413. package/scripts/mcp_render.py +159 -0
  414. package/scripts/measure_patterns.py +376 -0
  415. package/scripts/memory_hash.py +75 -0
  416. package/scripts/memory_lookup.py +441 -0
  417. package/scripts/memory_report.py +336 -0
  418. package/scripts/memory_signal.py +210 -0
  419. package/scripts/memory_status.py +195 -0
  420. package/scripts/postinstall.sh +60 -0
  421. package/scripts/readme_linter.py +580 -0
  422. package/scripts/refine_ticket_detect.py +623 -0
  423. package/scripts/requirements-evals.txt +7 -0
  424. package/scripts/runtime_dispatcher.py +265 -0
  425. package/scripts/runtime_handler.py +148 -0
  426. package/scripts/runtime_registry.py +166 -0
  427. package/scripts/schemas/command.schema.json +32 -0
  428. package/scripts/schemas/persona.schema.json +42 -0
  429. package/scripts/schemas/rule.schema.json +28 -0
  430. package/scripts/schemas/skill.schema.json +73 -0
  431. package/scripts/setup.sh +230 -0
  432. package/scripts/setup_eval_venv.sh +58 -0
  433. package/scripts/skill_linter.py +2175 -0
  434. package/scripts/skill_trigger_eval.py +651 -0
  435. package/scripts/tool_registry.py +146 -0
  436. package/scripts/tools/__init__.py +1 -0
  437. package/scripts/tools/adapter_errors.py +63 -0
  438. package/scripts/tools/base_adapter.py +91 -0
  439. package/scripts/tools/github_adapter.py +128 -0
  440. package/scripts/tools/jira_adapter.py +115 -0
  441. package/scripts/update_counts.py +147 -0
  442. package/scripts/validate_frontmatter.py +424 -0
  443. package/templates/consumer-settings/README.md +46 -0
  444. package/templates/consumer-settings/augment-settings.json +12 -0
  445. package/templates/consumer-settings/claude-settings.json +9 -0
  446. 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
+