@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,244 @@
1
+ ---
2
+ name: systematic-debugging
3
+ description: "Use when hitting a bug, test failure, crash, or unexpected behavior — enforces reproduce → isolate → hypothesize → verify before any fix — even when the user just says 'this is broken' or 'quick fix'."
4
+ source: package
5
+ ---
6
+
7
+ # systematic-debugging
8
+
9
+ ## When to use
10
+
11
+ * Test fails and failure is not self-explanatory
12
+ * Bug reported (Jira, Sentry, user message), root cause not obvious
13
+ * Production or staging shows unexpected behavior
14
+ * Code behaves differently than the developer expected
15
+ * A previous fix did not resolve the issue or introduced a new one
16
+ * You catch yourself thinking "let me just try changing X"
17
+
18
+ Do NOT use when:
19
+
20
+ * Failure message names the fix (typo, missing import, obvious off-by-one) — fix it
21
+ * Pure style / formatting / lint issues
22
+ * Documentation-only questions
23
+
24
+ ## Goal
25
+
26
+ Find the **root cause** before changing any code. A symptom fix papering
27
+ over an unknown cause is a regression waiting to happen.
28
+
29
+ ## The Iron Law
30
+
31
+ ```
32
+ NO FIX WITHOUT ROOT CAUSE. NO ROOT CAUSE WITHOUT EVIDENCE.
33
+ ```
34
+
35
+ "I think it's probably X" is not evidence. A log line, a stack trace, a
36
+ diff, a reproduced failure — those are evidence.
37
+
38
+ ## Procedure
39
+
40
+ Complete each phase before the next. Skipping ahead is the single
41
+ biggest cause of wasted debug time.
42
+
43
+ ### Phase 1 — Reproduce
44
+
45
+ Goal: make the failure happen on demand, smallest possible setup.
46
+
47
+ 1. Read the error message, stack trace, and logs **in full**. Note exact
48
+ file, line, and the chain of calls above it.
49
+ 2. Identify the minimum input, state, or action sequence triggering the
50
+ failure. Intermittent → gather more data before guessing.
51
+ 3. Capture the exact reproduction as a command or a test. Prefer a
52
+ failing test (see [`test-driven-development`](../test-driven-development/SKILL.md))
53
+ — turns Phase 4 into a verified fix.
54
+
55
+ Cannot reproduce? You do not yet understand the bug. Stop. Add logging,
56
+ re-run, collect more evidence.
57
+
58
+ ### Phase 2 — Isolate
59
+
60
+ Goal: locate the failure in a single component, layer, or call site.
61
+
62
+ 1. Bisect the surface area. Smallest code path that still fails? Turn
63
+ off/skip/mock adjacent features to narrow the window.
64
+ 2. For multi-component systems (frontend → API → service → DB, or
65
+ CI → build → deploy), log at **each boundary**:
66
+
67
+ * What enters the component
68
+ * What leaves the component
69
+ * What config/env the component actually sees
70
+
71
+ Goal: answer "which boundary has expected ≠ actual?".
72
+ 3. Check recent changes: `git log`, `git blame` on the failing line,
73
+ recent dependency updates, config edits, infra changes.
74
+ 4. **Consult memory for prior matches.** Via
75
+ [`memory-access`](../../guidelines/agent-infra/memory-access.md):
76
+ ```python
77
+ from scripts.memory_lookup import retrieve
78
+ priors = retrieve(
79
+ types=["incident-learnings", "historical-patterns"],
80
+ keys=[<error class>, <failing path(s)>],
81
+ limit=3,
82
+ )
83
+ ```
84
+ A matching `incident-learning` may already name the root cause, fix,
85
+ and regression test. A matching `historical-pattern` narrows the
86
+ hypothesis space before Phase 3. Cite matching `id`s in the evidence
87
+ trail.
88
+ 5. Trace backwards from the symptom. `null` arrives at line 42 — where
89
+ does the value originate? Walk up the call stack until the origin is
90
+ found. Fix at origin, not at line 42.
91
+
92
+ ### Phase 3 — Hypothesize
93
+
94
+ Goal: one testable hypothesis at a time, rejected or confirmed by evidence.
95
+
96
+ 1. State the hypothesis in one sentence: *"The failure happens because
97
+ X, which I can confirm by observing Y."*
98
+ 2. Design the smallest possible experiment that confirms or rejects the
99
+ hypothesis. One variable at a time.
100
+ 3. Run it. Read the output.
101
+ 4. Confirmed → Phase 4. Rejected → back to Phase 2 with new
102
+ information, then form a new hypothesis.
103
+
104
+ Three hypotheses in a row fail → stop. You do not understand the system
105
+ well enough yet, or the architecture itself is the problem — see
106
+ "Three-strike rule" below.
107
+
108
+ ### Phase 4 — Verify the fix
109
+
110
+ Goal: the fix resolves the root cause, not just the observed symptom.
111
+
112
+ 1. Write or update a failing test reproducing the bug (if not already
113
+ done in Phase 1).
114
+ 2. Apply a single, minimal fix targeting the root cause. No bundled
115
+ refactors, no "while I'm here".
116
+ 3. Re-run the reproduction — failure gone.
117
+ 4. Re-run the surrounding test suite — nothing adjacent turned red.
118
+ 5. Read output carefully — no new warnings, deprecations, or silent
119
+ retries masking the same bug recurring.
120
+
121
+ Fix does not work? **Do not** stack a second fix on top. Go back to
122
+ Phase 2, treat the failure as new evidence.
123
+
124
+ ## Three-strike rule
125
+
126
+ After **three** attempted fixes with the bug still present:
127
+
128
+ * Stop attempting fixes.
129
+ * Re-read phases 1–3 — something about the root cause is wrong.
130
+ * Ask explicitly: is this bug in the code, or in the architecture /
131
+ design that keeps producing this class of bug?
132
+ * Surface the question to the user. Do not attempt fix #4 silently.
133
+
134
+ ## Gathering evidence — cheap tools first
135
+
136
+ | What you need | Tool |
137
+ |---|---|
138
+ | What does the code actually do at runtime? | `dd()`, `var_dump()`, `console.log()` at suspected line |
139
+ | What does the call stack look like? | Stack trace in exception, `debug_backtrace()`, `new Error().stack` |
140
+ | What data crosses the boundary? | Log at entry and exit of each function in the path |
141
+ | What does an HTTP endpoint actually return? | `curl -s <url> \| jq`, Postman MCP, or `Http::fake()` assertions in tests |
142
+ | Is the env/config what I think? | Print the actual value, do not trust the docs |
143
+ | What changed recently? | `git log -p <file>`, `git blame -L <line>,<line> <file>` |
144
+ | Is this a known issue? | Search tracker / Sentry / changelog of the dependency |
145
+ | Step through execution | Xdebug — see [`php-debugging`](../php-debugging/SKILL.md) |
146
+
147
+ Prefer the cheapest tool that resolves the question. A `dd()` at the
148
+ right line beats five minutes of IDE breakpoints.
149
+
150
+ ## Condition-based waiting (intermittent bugs)
151
+
152
+ Intermittent tests and race conditions usually stem from waiting on
153
+ time instead of a condition. Replace `sleep(100)` or
154
+ `setTimeout(r, 100)` with an explicit wait-for:
155
+
156
+ ```ts
157
+ async function waitFor<T>(
158
+ check: () => T | undefined | null | false,
159
+ label: string,
160
+ timeoutMs = 5_000,
161
+ ): Promise<T> {
162
+ const start = Date.now();
163
+ while (true) {
164
+ const result = check();
165
+ if (result) return result;
166
+ if (Date.now() - start > timeoutMs) {
167
+ throw new Error(`Timeout waiting for ${label} after ${timeoutMs}ms`);
168
+ }
169
+ await new Promise((r) => setTimeout(r, 10));
170
+ }
171
+ }
172
+ ```
173
+
174
+ Only use an arbitrary timeout when the timing itself is the contract
175
+ (debounce, throttle) — add a comment explaining **why** the exact value.
176
+
177
+ ## Output format
178
+
179
+ When reporting debug findings:
180
+
181
+ 1. **Symptom** — what was observed (one sentence + failure message)
182
+ 2. **Reproduction** — the command or test that triggers it
183
+ 3. **Root cause** — what is actually wrong and where
184
+ 4. **Evidence** — the log line, stack frame, or diff that proves it
185
+ 5. **Fix** — the minimal change
186
+ 6. **Regression test** — the test that catches this bug returning
187
+
188
+ ## Gotchas
189
+
190
+ * Reading half a stack trace and jumping to a fix — the actual cause is
191
+ usually two or three frames above the one you read.
192
+ * "It works on my machine" — different env than the bug report.
193
+ Reproduce with exact conditions from the report.
194
+ * Adding a retry or sleep to mask an intermittent failure — hides the
195
+ race condition, does not fix it. Use condition-based waiting.
196
+ * Fixing the first line that throws when the bad value came from up the
197
+ call chain. Trace backwards to the origin.
198
+ * "The fix works, the test is just flaky" — flaky tests are bugs in the
199
+ test or the code. Diagnose them, do not retry-until-green.
200
+ * Turning a failing assertion into a softer one ("maybe 2 or 3 retries,
201
+ accept both") to make it pass.
202
+ * Bundling a bug fix with a refactor — test goes red again, cannot tell
203
+ which change broke it.
204
+
205
+ ## Red flags — STOP and restart from Phase 1
206
+
207
+ * "Let me just try X and see if it works"
208
+ * "I don't fully understand it, but this probably fixes it"
209
+ * Proposing a fix without having reproduced the bug
210
+ * Bundling multiple changes in one attempt
211
+ * "It's probably a race condition, let me add a sleep"
212
+ * A green test run after changes without having first seen it red
213
+ * "This looks similar to bug X, so it's the same fix"
214
+ * Suppressing a log, warning, or exception instead of tracing its source
215
+
216
+ ## Do NOT
217
+
218
+ * Do NOT propose a fix before reproducing the bug
219
+ * Do NOT change two things at once in a single experiment
220
+ * Do NOT silence a warning, failing test, or noisy log as a "fix"
221
+ * Do NOT mark a bug as fixed without a regression test
222
+ * Do NOT attempt fix #4 after three failed fixes — surface the pattern
223
+
224
+ ## When to hand over to another skill
225
+
226
+ * Writing the regression test → [`test-driven-development`](../test-driven-development/SKILL.md)
227
+ * Stepping through PHP with Xdebug → [`php-debugging`](../php-debugging/SKILL.md)
228
+ * Playwright / E2E test failures → [`playwright-testing`](../playwright-testing/SKILL.md)
229
+ * PHPStan / Rector / ECS output → [`quality-tools`](../quality-tools/SKILL.md)
230
+ * Verifying the fix is complete before claiming done →
231
+ [`verify-before-complete`](../verify-before-complete/SKILL.md)
232
+
233
+ ## Validation checklist
234
+
235
+ Before declaring a bug fixed:
236
+
237
+ * [ ] Failure was reproduced before any code changed
238
+ * [ ] Root cause named explicitly, not "probably"
239
+ * [ ] Evidence (log, trace, diff) supports the named root cause
240
+ * [ ] Failing test reproducing the bug was added or updated
241
+ * [ ] Fix is minimal, targets the root cause, not the symptom
242
+ * [ ] Regression test now passes
243
+ * [ ] Adjacent tests still pass
244
+ * [ ] No warning or suppressed output hides a recurrence
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: technical-specification
3
+ description: "Use when the user says "write a spec", "create RFC", or "document this decision". Writes technical specifications, RFCs, and ADRs with clear structure."
4
+ source: package
5
+ ---
6
+
7
+ # technical-specification
8
+
9
+ ## When to use
10
+
11
+ Use this skill when:
12
+ - Writing a technical specification for a new feature or system
13
+ - Creating an architecture decision record (ADR)
14
+ - Documenting a technical RFC (Request for Comments)
15
+ - Planning a significant technical change that needs team review
16
+
17
+ Do NOT use when:
18
+ - Trivial changes (a good PR description is enough)
19
+ - Implementation work (use `feature-planning` or `php-coder` skill)
20
+
21
+ ## Procedure: Write a spec
22
+
23
+ ### Technical Specification (full)
24
+
25
+ For complex features or systems. Stored in `agents/features/` or module `agents/features/`.
26
+
27
+ ```markdown
28
+ # Technical Specification: {Title}
29
+
30
+ ## Status
31
+ { Draft | In Review | Approved | Implemented | Superseded }
32
+
33
+ ## Summary
34
+ {2-3 sentences explaining what this spec proposes and why.}
35
+
36
+ ## Problem
37
+ {What pain point or limitation does this address?}
38
+
39
+ ## Goals
40
+ - {Specific, measurable goal}
41
+ - {Another goal}
42
+
43
+ ## Non-Goals
44
+ - {What this spec explicitly does NOT cover}
45
+
46
+ ## Proposed Solution
47
+
48
+ ### Overview
49
+ {High-level description of the approach.}
50
+
51
+ ### Detailed Design
52
+ {Technical details — data models, APIs, algorithms, flows.}
53
+
54
+ ### Alternatives Considered
55
+ | Alternative | Pros | Cons | Why rejected |
56
+ |---|---|---|---|
57
+
58
+ ## Migration Plan
59
+ {How to transition from current state to the proposed solution.}
60
+
61
+ ## Risks and Mitigations
62
+ | Risk | Likelihood | Impact | Mitigation |
63
+ |---|---|---|---|
64
+
65
+ ## Open Questions
66
+ - [ ] {Unresolved question}
67
+
68
+ ## References
69
+ - {Links to related docs, tickets, or external resources}
70
+ ```
71
+
72
+ ### Architecture Decision Record (ADR)
73
+
74
+ For significant technical decisions. Stored in `agents/decisions/`.
75
+
76
+ ```markdown
77
+ # ADR-{number}: {Title}
78
+
79
+ ## Status
80
+ { Proposed | Accepted | Deprecated | Superseded by ADR-{N} }
81
+
82
+ ## Context
83
+ {What is the issue? What forces are at play?}
84
+
85
+ ## Decision
86
+ {What is the change that we're proposing or have agreed to implement?}
87
+
88
+ ## Consequences
89
+
90
+ ### Positive
91
+ - {Benefit}
92
+
93
+ ### Negative
94
+ - {Drawback or tradeoff}
95
+
96
+ ### Neutral
97
+ - {Other notable consequences}
98
+ ```
99
+
100
+ ### Lightweight RFC
101
+
102
+ For smaller decisions that need team input. Can be a PR description or a short doc.
103
+
104
+ ```markdown
105
+ # RFC: {Title}
106
+
107
+ ## Proposal
108
+ {What do you want to do?}
109
+
110
+ ## Why
111
+ {Why is this needed?}
112
+
113
+ ## How
114
+ {Brief technical approach.}
115
+
116
+ ## Impact
117
+ {What does this change? Who is affected?}
118
+
119
+ ## Open for feedback until: {date}
120
+ ```
121
+
122
+ ## Writing guidelines
123
+
124
+ ### Be specific, not vague
125
+
126
+ ```
127
+ ❌ "The system should be fast"
128
+ ✅ "API response time should be < 200ms at p95 for list endpoints"
129
+ ```
130
+
131
+ ### Include constraints
132
+
133
+ - Performance requirements (latency, throughput)
134
+ - Compatibility requirements (PHP version, browser support)
135
+ - Security requirements (authentication, data sensitivity)
136
+ - Scale requirements (data volume, concurrent users)
137
+
138
+ ### Show your reasoning
139
+
140
+ Don't just present the solution — show **why** it was chosen over alternatives.
141
+ The "Alternatives Considered" section is often the most valuable part.
142
+
143
+ ### Keep it actionable
144
+
145
+ A spec should be implementable by someone who wasn't in the original discussion.
146
+ If a developer reads only this document, they should be able to build it.
147
+
148
+ ## Integration with other systems
149
+
150
+ - **Feature plans** reference specs when technical depth is needed.
151
+ - **Roadmaps** are generated from specs after approval.
152
+ - **ADRs** are referenced from `AGENTS.md` or module docs for historical context.
153
+ - **Sessions** link to the spec being implemented.
154
+
155
+ ## Output format
156
+
157
+ 1. Technical specification document with architecture decisions
158
+ 2. API contracts, data models, and sequence diagrams
159
+ 3. Implementation plan with dependencies
160
+
161
+ ## Auto-trigger keywords
162
+
163
+ - technical spec
164
+ - RFC
165
+ - ADR
166
+ - architecture decision
167
+
168
+ ### Validate
169
+
170
+ - Verify every section of the spec template is filled in (no placeholders left).
171
+ - Confirm constraints and limitations are explicit, not implied.
172
+ - Check that the spec answers: What, Why, How, What not, and When.
173
+
174
+ ## Gotcha
175
+
176
+ - A spec without constraints is fiction — always include technical limitations, timeline, and scope boundaries.
177
+ - The model tends to write specs that describe the ideal solution without acknowledging existing code.
178
+ - Don't write specs for trivial features — a spec is overhead that's only worth it for complex changes.
179
+
180
+ ## Do NOT
181
+
182
+ - Do NOT write specs without researching the codebase first.
183
+ - Do NOT present only one option — always consider alternatives.
184
+ - Do NOT leave specs in "Draft" forever — push for a decision.
185
+ - Do NOT implement before the spec is reviewed (for significant changes).
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: terraform
3
+ description: "Use when writing Terraform — AWS modules, resources, variables, outputs, remote state — even when the user just says 'provision this infra' or 'add an S3 bucket' without naming Terraform."
4
+ source: package
5
+ ---
6
+
7
+ # terraform
8
+
9
+ ## When to use
10
+
11
+ Use this skill when writing or modifying Terraform configurations (`.tf` files), creating new infrastructure modules, or understanding AWS resource definitions.
12
+
13
+ ## Procedure: Write Terraform config
14
+
15
+ 1. Read the infrastructure repo structure (check `agents/overrides/skills/terraform.md` for the repo location).
16
+ 2. Check existing modules in `modules/` for patterns and conventions.
17
+ 3. Read `variables.tf` of the target module to understand required inputs.
18
+ 4. Check `versions.tf` for provider version constraints.
19
+
20
+ ## Project structure (typical)
21
+
22
+ ```
23
+ {infrastructure-repo}/
24
+ ├── environments/
25
+ │ ├── pro/ # Production environment
26
+ │ │ ├── root.hcl # Terragrunt root config
27
+ │ │ ├── core/ # Core infrastructure (VPC, DNS zones)
28
+ │ │ └── {service}/ # Per-service resources
29
+ │ └── sta/ # Stage environment
30
+ │ └── ...
31
+ ├── modules/
32
+ │ ├── core/ # VPC, DNS, shared resources
33
+ │ └── {service}/ # Per-service module (ECS, ALB, ECR, etc.)
34
+ └── Taskfile.yml # Task runner commands (or Makefile)
35
+ ```
36
+
37
+ Read `agents/overrides/skills/terraform.md` for the actual repository layout and service names.
38
+
39
+ ## Conventions
40
+
41
+ ### Provider versions
42
+
43
+ - Always pin provider versions in `versions.tf`.
44
+ - Check `versions.tf` in the existing modules for the project's version constraints.
45
+
46
+ ### Module sources
47
+
48
+ Prefer community or organization-specific Terraform modules from the Terraform Registry:
49
+
50
+ ```hcl
51
+ module "alb" {
52
+ source = "{org}/application-load-balancer/aws"
53
+ version = ">= 1.0.0, < 2.0.0"
54
+ }
55
+ ```
56
+
57
+ Check existing modules in the project for which registry modules are used.
58
+
59
+ ### Naming
60
+
61
+ - Resource prefix: `var.global_prefix` (e.g., `{project}-{env}`)
62
+ - All resources must include `tags = var.tags`
63
+ - Security groups: `${var.global_prefix}-<purpose>` (e.g., `-ecs`, `-mysql`, `-redis`)
64
+ - Log groups: `/aws/ecs/${cluster}/${service}`
65
+
66
+ ### State management
67
+
68
+ - Remote state in **S3** with **DynamoDB** locking.
69
+ - State is encrypted.
70
+ - Key pattern: `${path_relative_to_include()}/terraform.tfstate`
71
+
72
+ ### Variables
73
+
74
+ - Use typed `variable` blocks with `description`.
75
+ - Use `object()` types for complex inputs (not `any` unless unavoidable).
76
+ - Use `optional()` with defaults where appropriate.
77
+ - Group variables by domain (naming, network, ECS, Redis, database, etc.).
78
+
79
+ ### Lifecycle rules
80
+
81
+ - Use `ignore_changes = [task_definition]` on ECS services — task definitions are managed by CI/CD, not Terraform.
82
+ - Use `deletion_protection = true` on databases.
83
+
84
+ ### Security
85
+
86
+ - OIDC authentication for GitHub Actions (no long-lived credentials).
87
+ - Secrets stored in **AWS Secrets Manager**.
88
+ - Security groups follow least-privilege: only allow traffic between known services.
89
+ - IAM policies use specific resource ARNs, not wildcards (except where unavoidable).
90
+
91
+ ## Common patterns
92
+
93
+ ### ECS service with CodeDeploy (Blue/Green)
94
+
95
+ Used for web services with zero-downtime deployments:
96
+ - ALB → Target Group → ECS Service
97
+ - CodeDeploy handles traffic shifting
98
+ - Auto-rollback on CloudWatch alarms (5xx error rate)
99
+
100
+ ### ECS service without CodeDeploy
101
+
102
+ Used for workers and schedulers:
103
+ - Direct ECS service update
104
+ - `deployment_controller { type = "ECS" }`
105
+ - `lifecycle { ignore_changes = [task_definition] }`
106
+
107
+ ### GitHub OIDC IAM role
108
+
109
+ Each environment has a GitHub IAM role with:
110
+ - OIDC trust policy (scoped to repo + environment)
111
+ - Policies for ECR push/pull, ECS deployment, Secrets Manager read, CloudWatch logs
112
+
113
+ ## Output format
114
+
115
+ 1. Terraform configuration files (.tf) with proper module structure
116
+ 2. Variables, outputs, and state management config
117
+
118
+ ## Auto-trigger keywords
119
+
120
+ - Terraform
121
+ - AWS infrastructure
122
+ - modules
123
+ - resources
124
+ - state management
125
+
126
+ ## Gotcha
127
+
128
+ - `terraform apply` without `-auto-approve` requires interactive confirmation — don't use in CI without the flag.
129
+ - The model forgets to run `terraform plan` before `apply` — always plan first, review changes.
130
+ - State files contain sensitive data — never commit them to Git. Use remote state (S3 + DynamoDB).
131
+
132
+ ## Do NOT
133
+
134
+ - Do NOT use `*` in IAM resource ARNs unless absolutely necessary.
135
+ - Do NOT remove `deletion_protection` from databases.
136
+ - Do NOT change provider versions without testing in Stage first.
137
+ - Do NOT hardcode AWS account IDs — use `data.aws_caller_identity.current`.