@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,205 @@
1
+ ---
2
+ name: laravel-reverb
3
+ description: "Use when configuring Laravel Reverb — the first-party WebSocket server with Pusher protocol compatibility, horizontal scaling, and Pulse monitoring."
4
+ source: package
5
+ ---
6
+
7
+ # laravel-reverb
8
+
9
+ ## When to use
10
+
11
+ Use this skill for anything specific to **Laravel Reverb** as the WebSocket server:
12
+ - Reverb installation, configuration, and environment setup
13
+ - Reverb server deployment and scaling
14
+ - Reverb-specific debugging and monitoring
15
+ - Pusher protocol compatibility questions
16
+
17
+ For **general WebSocket patterns**, broadcasting events, channel authorization,
18
+ and Laravel Echo client setup, see the [websocket](../websocket/SKILL.md) skill.
19
+
20
+ ## Procedure: Set up Reverb
21
+
22
+ 1. **Install** — `php artisan install:broadcasting` or manual setup (see below).
23
+ 2. **Configure** — Set environment variables for Reverb host, port, app credentials.
24
+ 3. **Start server** — `php artisan reverb:start`.
25
+ 4. **Connect client** — Configure Laravel Echo with Reverb credentials.
26
+ 5. **Verify** — Confirm WebSocket connection in browser console, test event delivery.
27
+
28
+ Laravel Reverb is Laravel's first-party, blazing-fast WebSocket server. It uses the
29
+ **Pusher protocol**, making it compatible with Laravel Echo and any Pusher-compatible client.
30
+ A single Reverb server can handle thousands of concurrent connections.
31
+
32
+ ## Installation
33
+
34
+ ```bash
35
+ php artisan install:broadcasting
36
+ ```
37
+
38
+ This scaffolds:
39
+ - `config/broadcasting.php` with Reverb driver
40
+ - `config/reverb.php` with server settings
41
+ - `routes/channels.php` for channel authorization
42
+ - `.env` variables for Reverb
43
+
44
+ ## Configuration
45
+
46
+ ### Environment variables
47
+
48
+ ```env
49
+ REVERB_APP_ID=455493
50
+ REVERB_APP_KEY=your-app-key
51
+ REVERB_APP_SECRET=your-app-secret
52
+ REVERB_HOST="localhost"
53
+ REVERB_PORT=8080
54
+ REVERB_SCHEME=http
55
+
56
+ # Client-side (Vite)
57
+ VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
58
+ VITE_REVERB_HOST="${REVERB_HOST}"
59
+ VITE_REVERB_PORT="${REVERB_PORT}"
60
+ VITE_REVERB_SCHEME="${REVERB_SCHEME}"
61
+ ```
62
+
63
+ ### config/reverb.php
64
+
65
+ Note: `REVERB_HOST` / `REVERB_PORT` are for client connections (hostname/port the client connects to).
66
+ `REVERB_SERVER_HOST` / `REVERB_SERVER_PORT` are for the server binding (interface/port the server listens on).
67
+
68
+ ```php
69
+ 'servers' => [
70
+ 'reverb' => [
71
+ 'host' => env('REVERB_SERVER_HOST', '0.0.0.0'),
72
+ 'port' => env('REVERB_SERVER_PORT', 8080),
73
+ 'hostname' => env('REVERB_HOST'),
74
+ 'options' => [
75
+ 'tls' => [],
76
+ ],
77
+ 'max_request_size' => 10_000, // bytes
78
+ 'scaling' => [
79
+ 'enabled' => env('REVERB_SCALING_ENABLED', false),
80
+ 'channel' => env('REVERB_SCALING_CHANNEL', 'reverb'),
81
+ ],
82
+ 'pulse_ingest_interval' => 15,
83
+ ],
84
+ ],
85
+ ```
86
+
87
+ ### config/broadcasting.php
88
+
89
+ ```php
90
+ 'connections' => [
91
+ 'reverb' => [
92
+ 'driver' => 'reverb',
93
+ 'key' => env('REVERB_APP_KEY'),
94
+ 'secret' => env('REVERB_APP_SECRET'),
95
+ 'app_id' => env('REVERB_APP_ID'),
96
+ 'options' => [
97
+ 'host' => env('REVERB_HOST'),
98
+ 'port' => env('REVERB_PORT', 443),
99
+ 'scheme' => env('REVERB_SCHEME', 'https'),
100
+ 'useTLS' => env('REVERB_SCHEME', 'https') === 'https',
101
+ ],
102
+ ],
103
+ ],
104
+ ```
105
+
106
+ ## Running the server
107
+
108
+ ```bash
109
+ # Start Reverb (foreground)
110
+ php artisan reverb:start
111
+
112
+ # Start with verbose output (debugging)
113
+ php artisan reverb:start --debug
114
+
115
+ # Production — use Supervisor or systemd
116
+ # Reverb is a long-running process, it must be managed by a process monitor
117
+ ```
118
+
119
+ ### Supervisor config (production)
120
+
121
+ ```ini
122
+ [program:reverb]
123
+ command=php /path/to/artisan reverb:start
124
+ autostart=true
125
+ autorestart=true
126
+ user=www-data
127
+ redirect_stderr=true
128
+ stdout_logfile=/var/log/reverb.log
129
+ stopwaitsecs=3600
130
+ ```
131
+
132
+ ## Horizontal scaling
133
+
134
+ Enable Redis-based scaling to run multiple Reverb instances behind a load balancer:
135
+
136
+ ```env
137
+ REVERB_SCALING_ENABLED=true
138
+ REVERB_SCALING_CHANNEL=reverb
139
+ ```
140
+
141
+ Requires a shared Redis instance accessible by all Reverb servers.
142
+ Connections and channel subscriptions are synced across servers via Redis pub/sub.
143
+
144
+ ## Monitoring with Pulse
145
+
146
+ Reverb has built-in Laravel Pulse integration. Add the Reverb Pulse cards:
147
+
148
+ ```php
149
+ // In your Pulse dashboard
150
+ <livewire:reverb.connections />
151
+ <livewire:reverb.messages />
152
+ ```
153
+
154
+ ## SSL/TLS in production
155
+
156
+ Reverb itself does **not** handle TLS. Use a reverse proxy (Nginx, Traefik, Caddy)
157
+ to terminate SSL and proxy WebSocket connections to Reverb:
158
+
159
+ ```nginx
160
+ location /app {
161
+ proxy_pass http://127.0.0.1:8080;
162
+ proxy_http_version 1.1;
163
+ proxy_set_header Upgrade $http_upgrade;
164
+ proxy_set_header Connection "upgrade";
165
+ proxy_set_header Host $host;
166
+ proxy_read_timeout 60s;
167
+ proxy_send_timeout 60s;
168
+ }
169
+ ```
170
+
171
+ ## Core rules
172
+
173
+ - **Reverb is a long-running process** — always use Supervisor/systemd in production.
174
+ - **TLS via reverse proxy** — Reverb doesn't handle SSL directly.
175
+ - **Scale with Redis** — enable `REVERB_SCALING_ENABLED` for multi-server setups.
176
+ - **Monitor with Pulse** — use the built-in Pulse cards for connection/message metrics.
177
+ - **Pusher protocol** — any Pusher-compatible client works (Laravel Echo, pusher-js, etc.).
178
+ - **Max request size** — default 10KB, increase for large payloads if needed.
179
+
180
+ ## Output format
181
+
182
+ 1. Reverb configuration with server and scaling settings
183
+ 2. Broadcasting channel definitions and client integration
184
+
185
+ ## Auto-trigger keywords
186
+
187
+ - Reverb
188
+ - reverb:start
189
+ - WebSocket server
190
+ - Reverb scaling
191
+ - Reverb deployment
192
+ - Reverb configuration
193
+
194
+ ## Gotcha
195
+
196
+ - Reverb requires a persistent process — it's not compatible with serverless deployments.
197
+ - The model forgets to configure the `REVERB_HOST` and `REVERB_PORT` environment variables.
198
+ - WebSocket connections bypass middleware — don't rely on session auth for channel authorization.
199
+
200
+ ## Do NOT
201
+
202
+ - Do NOT expose Reverb directly to the internet without a reverse proxy for TLS.
203
+ - Do NOT run `reverb:start` without a process monitor in production.
204
+ - Do NOT confuse Reverb config with Pusher SaaS — Reverb is self-hosted.
205
+ - Do NOT skip Redis when running multiple Reverb instances.
@@ -0,0 +1,167 @@
1
+ ---
2
+ name: laravel-scheduling
3
+ description: "Use when configuring Laravel task scheduling — cron expressions, frequency helpers, overlap prevention, maintenance mode, or output handling."
4
+ source: package
5
+ ---
6
+
7
+ # laravel-scheduling
8
+
9
+ ## When to use
10
+
11
+ Use this skill when scheduling recurring tasks:
12
+ - Artisan command scheduling
13
+ - Job dispatching on a schedule
14
+ - Closure-based scheduled tasks
15
+ - Overlap prevention and maintenance mode handling
16
+
17
+ ## Procedure: Create a scheduled task
18
+
19
+ ### In routes/console.php (Laravel 11+)
20
+
21
+ ```php
22
+ use Illuminate\Support\Facades\Schedule;
23
+
24
+ Schedule::command('reports:generate')->dailyAt('06:00');
25
+ Schedule::command('telescope:prune --hours=48')->daily();
26
+ Schedule::command('queue:prune-batches --hours=48')->daily();
27
+ Schedule::job(new CleanupTemporaryFiles())->hourly();
28
+ ```
29
+
30
+ ### Frequency helpers
31
+
32
+ | Method | Schedule |
33
+ |---|---|
34
+ | `->everyMinute()` | Every minute |
35
+ | `->everyFiveMinutes()` | Every 5 minutes |
36
+ | `->everyFifteenMinutes()` | Every 15 minutes |
37
+ | `->hourly()` | Every hour |
38
+ | `->hourlyAt(17)` | Every hour at :17 |
39
+ | `->daily()` | Daily at midnight |
40
+ | `->dailyAt('13:00')` | Daily at 1 PM |
41
+ | `->twiceDaily(1, 13)` | Daily at 1 AM and 1 PM |
42
+ | `->weekly()` | Weekly on Sunday at midnight |
43
+ | `->weeklyOn(1, '8:00')` | Weekly on Monday at 8 AM |
44
+ | `->monthly()` | Monthly on the 1st at midnight |
45
+ | `->monthlyOn(4, '15:00')` | Monthly on the 4th at 3 PM |
46
+ | `->quarterly()` | Quarterly |
47
+ | `->yearly()` | Yearly |
48
+
49
+ ### Cron expressions
50
+
51
+ ```php
52
+ Schedule::command('reports:generate')->cron('0 6 * * 1-5'); // Weekdays at 6 AM
53
+ ```
54
+
55
+ ## Overlap prevention
56
+
57
+ ```php
58
+ // Prevent overlapping — skip if previous instance is still running
59
+ Schedule::command('import:customers')->hourly()->withoutOverlapping();
60
+
61
+ // With custom expiration (minutes)
62
+ Schedule::command('import:customers')->hourly()->withoutOverlapping(30);
63
+ ```
64
+
65
+ ## Conditional scheduling
66
+
67
+ ```php
68
+ // Only in production
69
+ Schedule::command('reports:send')->daily()->environments(['production']);
70
+
71
+ // Custom condition
72
+ Schedule::command('sync:data')->hourly()->when(function () {
73
+ return Config::boolean('services.sync.enabled');
74
+ });
75
+
76
+ // Skip condition
77
+ Schedule::command('emails:send')->daily()->skip(function () {
78
+ return app()->isDownForMaintenance();
79
+ });
80
+ ```
81
+
82
+ ## Output handling
83
+
84
+ ```php
85
+ // Log output to file
86
+ Schedule::command('reports:generate')
87
+ ->daily()
88
+ ->appendOutputTo(storage_path('logs/reports.log'));
89
+
90
+ // Email output on failure
91
+ Schedule::command('import:data')
92
+ ->daily()
93
+ ->emailOutputOnFailure('admin@example.com');
94
+ ```
95
+
96
+ ## Maintenance mode
97
+
98
+ ```php
99
+ // Run even during maintenance mode
100
+ Schedule::command('queue:work')->everyMinute()->evenInMaintenanceMode();
101
+ ```
102
+
103
+ ## Running the scheduler
104
+
105
+ ```bash
106
+ # The scheduler itself runs every minute via system cron
107
+ * * * * * cd /path-to-project && php artisan schedule:run >> /dev/null 2>&1
108
+
109
+ # Test locally
110
+ php artisan schedule:work # Runs scheduler in foreground
111
+ php artisan schedule:list # Show all scheduled tasks
112
+ php artisan schedule:test # Run a specific task interactively
113
+ ```
114
+
115
+ ## Grouped schedules
116
+
117
+ ```php
118
+ // routes/console.php — include schedule groups
119
+ Schedule::group('reports.php');
120
+ Schedule::group('imports.php');
121
+
122
+ // routes/console/reports.php
123
+ Schedule::command('reports:daily')->dailyAt('06:00');
124
+ Schedule::command('reports:weekly')->weeklyOn(1, '07:00');
125
+ ```
126
+
127
+ ## Core rules
128
+
129
+ - **Always use `withoutOverlapping()`** for long-running tasks.
130
+ - **Use `environments()`** to restrict production-only tasks.
131
+ - **Log output** for debugging — use `appendOutputTo()`.
132
+ - **Group related schedules** in separate files under `routes/console/`.
133
+ - **Monitor failures** — use `emailOutputOnFailure()` or Horizon for queued jobs.
134
+ - **One cron entry** — only `schedule:run` goes in crontab, everything else in Laravel.
135
+
136
+ ## Output format
137
+
138
+ 1. Schedule definition in console kernel or schedule method
139
+ 2. Overlap prevention and maintenance mode configuration
140
+
141
+ ## Auto-trigger keywords
142
+
143
+ - schedule
144
+ - cron
145
+ - scheduled task
146
+ - recurring job
147
+ - schedule:run
148
+ - withoutOverlapping
149
+
150
+ ### Validate
151
+
152
+ - Verify schedule runs correctly: `php artisan schedule:list` shows the task.
153
+ - Confirm `withoutOverlapping()` is set for long-running tasks.
154
+ - Check that maintenance mode handling is configured if needed (`evenInMaintenanceMode()`).
155
+
156
+ ## Gotcha
157
+
158
+ - `withoutOverlapping()` uses cache locks — if the cache is cleared, overlapping can still happen.
159
+ - The model forgets `runInBackground()` for long-running tasks — without it, one task blocks the next.
160
+ - Don't schedule tasks every minute unless absolutely necessary — it wastes server resources.
161
+
162
+ ## Do NOT
163
+
164
+ - Do NOT add multiple cron entries — use Laravel's scheduler for everything.
165
+ - Do NOT schedule heavy work directly — dispatch a queued job instead.
166
+ - Do NOT forget `withoutOverlapping()` for tasks that may run longer than their interval.
167
+ - Do NOT hardcode times — use environment-based config when schedules vary per environment.
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: laravel-validation
3
+ description: "Use when writing validation — Form Requests, rules, custom rule objects, request-boundary design — even when the user just says 'validate this input' or 'check the request' without naming it."
4
+ source: package
5
+ ---
6
+
7
+ # laravel-validation
8
+
9
+ ## When to use
10
+
11
+ Use when creating FormRequests, validation rules, or custom rule objects.
12
+
13
+ Do NOT use when:
14
+ - Authorization logic only (use `security` skill)
15
+ - API response format (use `api-design` skill)
16
+
17
+ ## Procedure: Create a FormRequest
18
+
19
+ ### Step 0: Inspect
20
+
21
+ 1. Check existing FormRequests — match style, naming, authorization, rule structure.
22
+ 2. Check existing custom rules — reuse before creating new ones.
23
+ 3. Check API error response format — match it.
24
+
25
+ ### Step 1: Create the class
26
+
27
+ 1. Name: `{Action}{Entity}Request` — e.g. `CreateProjectRequest`.
28
+ 2. Implement `authorize()` using Policies.
29
+ 3. Implement `rules()` with array syntax — never pipe-separated.
30
+ 4. Use `prepareForValidation()` only when normalization is truly necessary.
31
+
32
+ ### Step 2: Rules
33
+
34
+ 1. Use Laravel's `Illuminate\Validation\Rules` classes where possible.
35
+ 2. Keep rules explicit — prefer clarity over cleverness.
36
+ 3. For nested arrays: validate structure AND leaf values.
37
+ 4. Extract custom rule objects for complex/reusable logic.
38
+
39
+ ### Step 3: Test
40
+
41
+ - Test required fields, invalid formats, boundary conditions, conditional rules.
42
+ - Test authorization where relevant.
43
+ - Use focused tests per validation concern.
44
+
45
+ ## Conventions
46
+
47
+ → See guideline `php/validations.md` for array syntax, route params, property mapping, custom rules.
48
+
49
+ ## Output format
50
+
51
+ 1. FormRequest class with rules, messages, and authorization
52
+ 2. Custom Rule object if validation logic is complex
53
+
54
+ ## Gotcha
55
+
56
+ - `required` ≠ not `nullable` — `required` means present, `nullable` means value can be null.
57
+ - Custom Rule objects must return `$fail` callback, not throw exceptions.
58
+ - Don't validate data you already trust (e.g., from a verified internal service).
59
+
60
+ ## Do NOT
61
+
62
+ - Do NOT validate in controllers — use FormRequest classes.
63
+ - Do NOT use `$request->all()` — use `$request->validated()`.
64
+ - Do NOT put business logic in validation classes.
65
+
66
+ ## Auto-trigger keywords
67
+
68
+ - validation
69
+ - Form Request
70
+ - validation rules
71
+ - custom rule
@@ -0,0 +1,249 @@
1
+ ---
2
+ name: learning-to-rule-or-skill
3
+ description: "Use when a repeated learning, mistake, or successful pattern should be turned into a new rule or skill. Also use after completing a task to capture learnings from the work."
4
+ source: project
5
+ execution:
6
+ type: assisted
7
+ handler: internal
8
+ allowed_tools: []
9
+ ---
10
+
11
+ # learning-to-rule-or-skill
12
+
13
+ ## When to use
14
+
15
+ Use this skill when:
16
+
17
+ * A repeated mistake appears across multiple tasks
18
+ * A successful pattern should be reused in the future
19
+ * A new constraint or workflow should be captured permanently
20
+ * Reviewing post-task learnings or retrospectives
21
+ * Deciding whether a learning belongs in a rule or a skill
22
+ * After completing a task — reflecting on what worked or caused friction
23
+
24
+ Do not use this skill when:
25
+
26
+ * The learning is one-off and unlikely to repeat
27
+ * The issue is too vague to turn into guidance
28
+ * The content already exists in an equivalent rule or skill
29
+
30
+ ## Goal
31
+
32
+ * Turn repeated learnings into reusable project guidance
33
+ * Decide correctly between rule, skill, or update to an existing one
34
+ * Prevent the same mistakes from happening again
35
+ * Keep the system small, clear, and non-duplicative
36
+
37
+ ## Preconditions
38
+
39
+ * A concrete learning, mistake, or successful pattern exists
40
+ * The learning can be stated clearly in one or two sentences
41
+ * Existing rules and skills can be checked for overlap
42
+
43
+ ## Decision matrix
44
+
45
+ | If the learning is... | Then... | Action |
46
+ |---|---|---|
47
+ | An always-true constraint ("never X", "always Y") | **Rule** | Create/update rule |
48
+ | A repeatable workflow with steps and validation | **Skill** | Create/update skill |
49
+ | A coding convention or reference material | **Guideline** | Create/update guideline |
50
+ | Baseline model knowledge or standard tool usage | **Nothing** | Do not create anything |
51
+ | A refinement of existing guidance | **Update** | Extend the existing file |
52
+
53
+ ### Decision hints
54
+
55
+ * Same issue appeared at least twice → strongly consider codifying
56
+ * One-off or too narrow → do not create anything yet
57
+ * Standard tool knowledge (jq, docker, git basics) → **Nothing** — the model knows this
58
+ * If unsure between skill and guideline: does it need step-by-step decisions? → Skill. Just conventions? → Guideline
59
+
60
+ ## Procedure
61
+
62
+ ### 0. Promotion Gate (mandatory)
63
+
64
+ Before proceeding, the learning MUST pass all gates:
65
+
66
+ | Gate | Question |
67
+ |---|---|
68
+ | Repetition | Occurred 2+ times OR clearly generalizable? |
69
+ | Impact | Improves correctness, reliability, or consistency? |
70
+ | Failure pattern | Prevents a real, observed failure? |
71
+ | Non-duplication | No existing rule/skill/guideline covers this? |
72
+ | Scope fit | Fits rule, skill, or guideline? |
73
+ | Minimal | Update existing preferred over creation? |
74
+
75
+ If ANY gate fails → **stop**. Do not create or update anything.
76
+ → See `capture-learnings` rule for rejection criteria.
77
+
78
+ ### 1. State the learning clearly
79
+
80
+ Write as a concrete sentence.
81
+
82
+ Good:
83
+ * Nested triple backticks break copyability in generated markdown
84
+ * Route inspection is more reliable via JSON and jq than text parsing
85
+
86
+ Bad:
87
+ * Markdown is annoying
88
+ * Routing was confusing
89
+
90
+ ### 2. Identify the pattern type
91
+
92
+ Classify by type:
93
+ * Constraint
94
+ * Workflow
95
+ * Anti-pattern
96
+ * Quality check
97
+ * Environment-specific convention
98
+
99
+ Tag with feedback category (for tracking/aggregation):
100
+ * `skill-weakness` — skill gave wrong or incomplete guidance
101
+ * `rule-weakness` — rule was too vague or missed a case
102
+ * `routing-issue` — wrong skill was selected
103
+ * `assumption-issue` — agent made bad assumptions
104
+ * `verification-gap` — verification step was missing or weak
105
+ * `optimization-overreach` — optimize command suggested harmful change
106
+
107
+ ### 3. Decide the target
108
+
109
+ Choose one:
110
+ * New rule (always-true constraint)
111
+ * Update existing rule
112
+ * New skill (step-by-step workflow)
113
+ * Update existing skill
114
+ * New guideline (coding convention / reference)
115
+ * Update existing guideline
116
+ * **Nothing** (baseline knowledge, standard tool usage, one-off)
117
+
118
+ ### 4. Check for overlap
119
+
120
+ * Does a similar rule already exist?
121
+ * Does a similar skill already exist?
122
+ * Would a small update be better than a new file?
123
+
124
+ ### 5. Draft the content
125
+
126
+ If rule:
127
+ * Short, durable constraint
128
+ * General, clear, always applicable
129
+
130
+ If skill:
131
+ * Focused workflow
132
+ * Include: When to use, Procedure, Output format, Gotchas, Do NOT
133
+
134
+ ### 6. Validate usefulness
135
+
136
+ * Will this improve future outputs?
137
+ * Specific enough to act on?
138
+ * Different from existing guidance?
139
+ * Likely to matter more than once?
140
+
141
+ ### 7. Keep only the smallest effective change
142
+
143
+ Prefer:
144
+ * Update over duplicate
145
+ * Small focused skill over broad skill
146
+ * Short rule over long rule
147
+
148
+ ### 8. Write the proposal (if scope ≠ nothing)
149
+
150
+ The output of this skill is a **curated proposal** under
151
+ `agents/proposals/<proposal_id>.md`, using the template at
152
+ `.augment/templates/agents/proposal.example.md` (shipped by the
153
+ package). This is the input to the five-stage pipeline
154
+ (capture → classify → propose → gate → upstream); see
155
+ [`self-improvement-pipeline`](../../guidelines/agent-infra/self-improvement-pipeline.md).
156
+
157
+ Mandatory fields the draft MUST fill:
158
+
159
+ * `proposal_id` — stable kebab-case slug, unique in this repo
160
+ * `type` — `rule` | `skill` | `command` | `guideline`
161
+ * `scope` — `project` (stays in `agents/overrides/`) or `package`
162
+ (contributed upstream via `upstream-contribute`)
163
+ * `source_learning` — path to the `agents/learnings/<date>-<slug>.md`
164
+ file this proposal was captured from
165
+ * `evidence` — **at least two independent** references (PR, issue,
166
+ incident, review-comment, test-failure); entries that all resolve
167
+ to the same PR are rejected by the gate
168
+ * `Proposed artefact` (§4) — the full draft body, no `TODO` / `TBD`
169
+ * `Success signal` (§7) — one metric, one baseline, one target, one
170
+ evaluation date
171
+
172
+ Run `python3 scripts/check_proposal.py agents/proposals/<id>.md` (or
173
+ `task check-proposal`) before handing to `upstream-contribute`. The
174
+ script is a hard gate: non-zero exit = the proposal does not move
175
+ to stage `gated`.
176
+
177
+ ## Output format
178
+
179
+ For the **decision step** (what this skill prints to the user):
180
+
181
+ 1. Learning summary
182
+ 2. Decision: rule, skill, update, or no action
183
+ 3. Rationale in one to three lines
184
+ 4. If decision ≠ "no action": path of the written proposal
185
+ (`agents/proposals/<proposal_id>.md`) and gate status
186
+ (`check_proposal.py` exit 0 = ready for review)
187
+
188
+ The **proposal file itself** follows
189
+ `proposal.example.md` verbatim — all ten sections, YAML frontmatter
190
+ complete, draft body in §4.
191
+
192
+ ## Core rules
193
+
194
+ * Capture repeated patterns, not random observations
195
+ * Prefer updating existing guidance over creating duplicates
196
+ * Rules are for durable constraints
197
+ * Skills are for repeatable workflows
198
+ * Keep new guidance as small and focused as possible
199
+
200
+ ## Gotchas
201
+
202
+ * Model tends to create new files when a small update is enough
203
+ * Model tends to turn vague frustrations into bad guidance
204
+ * Model may write documentation instead of reusable instructions
205
+ * Over-capturing weak learnings creates noise and reduces quality
206
+
207
+ ## Do NOT
208
+
209
+ * Do NOT create a rule or skill for one-off problems
210
+ * Do NOT duplicate existing guidance
211
+ * Do NOT create broad "catch-all" skills
212
+ * Do NOT write vague learnings without a concrete behavioral consequence
213
+
214
+ ## Auto-trigger keywords
215
+
216
+ * learning
217
+ * retrospective
218
+ * repeated mistake
219
+ * recurring issue
220
+ * create rule from learning
221
+ * create skill from learning
222
+ * codify this
223
+ * capture this pattern
224
+ * after task
225
+ * what did we learn
226
+ * post-mortem
227
+
228
+ ## Anti-patterns
229
+
230
+ * Creating a skill for every minor annoyance
231
+ * Rule that says "be careful" without concrete constraint
232
+ * Skill that duplicates an existing one with slightly different wording
233
+ * Capturing a learning before it has repeated
234
+
235
+ ## Examples
236
+
237
+ Learning: "Nested triple backticks broke markdown copyability twice this week."
238
+ Decision: Update existing markdown rule + add markdown-safe skill if none exists.
239
+
240
+ Learning: "Route checks keep failing when done via text parsing."
241
+ Decision: Create focused skill for Laravel route inspection via JSON and jq.
242
+
243
+ Learning: "I forgot to run PHPStan once."
244
+ Decision: No action — one-off, already covered by verify-before-complete rule.
245
+
246
+ ## Environment notes
247
+
248
+ Prefer updating existing rule/skill when possible.
249
+ Create new files only when the learning introduces a clearly distinct pattern.