@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,104 @@
1
+ ---
2
+ type: "always"
3
+ description: "Language and tone — informal German Du, English code comments, .md files always English"
4
+ alwaysApply: true
5
+ source: package
6
+ ---
7
+
8
+ # Language and Tone
9
+
10
+ ## Iron Law — mirror the user's language, ALWAYS
11
+
12
+ ```
13
+ MIRROR THE LANGUAGE OF THE USER'S LAST MESSAGE. ALWAYS.
14
+ BEFORE SENDING ANY REPLY, RUN THE PRE-SEND GATE BELOW.
15
+ A REPLY IN THE WRONG LANGUAGE IS A RULE VIOLATION, NOT A SLIP.
16
+ ```
17
+
18
+ **Overrides** conversation momentum, tool-output habits, convenience.
19
+ First thing to check on every reply, last thing to check before sending.
20
+
21
+ ### Pre-send gate — MANDATORY before every reply
22
+
23
+ Run silently **before** emitting any tokens:
24
+
25
+ 1. **Detect** — language of user's last message.
26
+ German signals: "ich", "Du", "nicht", "warum", "wie", "ist", umlauts.
27
+ English signals: "I", "you", "is", "the", "how".
28
+ Mixed → mirror the **dominant** language; tie → German wins (project default).
29
+ 2. **Check** — is drafted prose (not code, not file contents) in that language?
30
+ 3. **Rewrite** — if no, rewrite whole prose before sending. No exceptions, no
31
+ "just this sentence", no "the technical term is English anyway".
32
+ 4. **Confirm** — first sentence must be in target language. No English opener
33
+ before switching mid-paragraph.
34
+
35
+ ### The rule, spelled out
36
+
37
+ - User writes German → **MUST** respond in German (informal "Du", never "Sie").
38
+ "Du" capitalized at sentence start, lowercase otherwise.
39
+ - User writes English → respond in English.
40
+ - User switches mid-conversation → switch on the **very next** reply. No
41
+ grace period, no "let me finish this thought in the old language".
42
+ - Code blocks, command output, file contents, quoted tool output stay in
43
+ their native language. Only the **prose around them** mirrors the user.
44
+ - "I've been answering in English for a while" is NOT a reason to keep going.
45
+ Trigger is the **latest user message**, not conversation momentum.
46
+ - Numbered option lists (per `user-interaction`) mirror the user's language —
47
+ `.md` source is English, rendered reply is translated at runtime.
48
+
49
+ ### When the user calls out a language slip
50
+
51
+ 1. Acknowledge **once**, briefly, in the correct language ("Entschuldigung" /
52
+ "Sorry"). One sentence, no excuses.
53
+ 2. Switch immediately on the same reply.
54
+ 3. Do **not** re-explain the mistake in the wrong language.
55
+ 4. Do **not** promise "from now on" — just do it. Only behaviour changes
56
+ prove compliance.
57
+ 5. If user asks to harden the rule, harden it on this turn — don't defer.
58
+
59
+ ### Failure modes to watch for
60
+
61
+ - Drafting reply in English first, then "translating the intro" → English
62
+ phrasing with German words. Draft in target language from the first token.
63
+ - Copy-pasting English option labels from `.md` sources without translating.
64
+ - Mixing languages inside a table or bullet list because "the technical term
65
+ is English" — surrounding prose must still mirror. Keep proper nouns and
66
+ code identifiers as-is; translate everything else.
67
+ - Assuming English because "the codebase is English" — codebase language ≠
68
+ conversation language.
69
+
70
+ ## Other language rules
71
+
72
+ - All code comments must be in English.
73
+ - All `.md` documentation files must be in English (see section below). If
74
+ an existing file is in German, translate it when you touch it.
75
+ - Use two spaces after icons like ❌, ✅, ⚠️ in CLI output. One space is not enough. For other icons, one space is fine.
76
+ - Avoid double and triple blank lines in code and output — one blank line is enough.
77
+ - Every file MUST end with exactly one newline — no trailing blank lines.
78
+
79
+ ## `.md` files are ALWAYS English — no exceptions
80
+
81
+ **Every** piece of text inside `.md` files in `.augment/` and `agents/` must be in English.
82
+ This includes:
83
+
84
+ - Headings, paragraphs, and bullet points
85
+ - **Example option labels** (e.g., `> 1. Yes — start implementing`, NOT `> 1. Ja — mit der Umsetzung starten`)
86
+ - **Example prompts and questions** (e.g., `"Found X unresolved comments."`, NOT `"X offene Kommentare gefunden."`)
87
+ - **Template placeholders and sample output** (e.g., `Progress:`, NOT `Fortschritt:`)
88
+ - **ASCII art labels** in formatted output blocks (e.g., `CHANGES:`, NOT `ÄNDERUNGEN:`)
89
+ - **Table headers and content**
90
+
91
+ The agent translates to the user's language **at runtime** when presenting options.
92
+ The `.md` source files are the English blueprint — they define WHAT to say, not in which language.
93
+
94
+ **Wrong** (German in `.md`):
95
+ ```
96
+ > 1. Interaktiv — bei jedem Kommentar nachfragen
97
+ > 2. Automatisch — alle selbstständig abarbeiten
98
+ ```
99
+
100
+ **Correct** (English in `.md`):
101
+ ```
102
+ > 1. Interactive — ask before each comment
103
+ > 2. Automatic — handle all independently
104
+ ```
@@ -0,0 +1,48 @@
1
+ ---
2
+ type: "auto"
3
+ alwaysApply: false
4
+ description: "Laravel language files, translations, i18n, lang/de, lang/en, __() helper, localization, multilingual text"
5
+ source: package
6
+ ---
7
+
8
+ # Laravel Language Files
9
+
10
+ ## Key format — always inline (dot notation)
11
+
12
+ Language lines **must always use flat dot-notation keys**. Never use nested arrays.
13
+
14
+ **Correct** (`lang/en/report.php`):
15
+ ```php
16
+ return [
17
+ 'type.daily_report' => 'Daily Report',
18
+ 'type.care_report' => 'Care Report',
19
+ ];
20
+ ```
21
+
22
+ **Wrong** — nested arrays are forbidden:
23
+ ```php
24
+ return [
25
+ 'type' => [
26
+ 'daily_report' => 'Daily Report',
27
+ 'care_report' => 'Care Report',
28
+ ],
29
+ ];
30
+ ```
31
+
32
+ ## Both languages are mandatory
33
+
34
+ Every language line **must exist in both** `lang/de/` and `lang/en/`.
35
+ When you add a key to one file, immediately add the translated key to the other.
36
+
37
+ Missing translations are a bug — the app ships to both German and English users.
38
+
39
+ ## Referencing language lines
40
+
41
+ Use the `__()` helper with the dot-notation key:
42
+
43
+ ```php
44
+ __('report.type.daily_report')
45
+ __('email.report.created.subject', ['number' => $number])
46
+ ```
47
+
48
+ Never hardcode user-visible strings in PHP — always use language files.
@@ -0,0 +1,18 @@
1
+ ---
2
+ type: "auto"
3
+ description: "Generating markdown output that contains code blocks — prevent broken nesting"
4
+ alwaysApply: false
5
+ source: package
6
+ ---
7
+
8
+ # Markdown Safe Codeblocks
9
+
10
+ When generating markdown with code blocks:
11
+
12
+ - **NEVER** nest triple backticks inside triple backticks — this breaks rendering and copy/paste.
13
+ - If content already contains triple backticks, use one of:
14
+ - Plain text blocks (indented by 4 spaces) — **preferred**
15
+ - `~~~` fences instead of backtick fences
16
+ - Four backticks (``````) as outer fence
17
+ - Prefer stability over pretty formatting.
18
+ - Always validate: no broken rendering, no prematurely closed blocks, entire content is selectable and copyable.
@@ -0,0 +1,87 @@
1
+ ---
2
+ type: "always"
3
+ alwaysApply: true
4
+ description: "Minimal safe diff — the smallest change that solves the stated problem; no drive-by edits, no opportunistic refactors, no reformatting of untouched code"
5
+ source: package
6
+ ---
7
+
8
+ # Minimal Safe Diff
9
+
10
+ A diff is **safe** when every line in it is traceable to the stated task.
11
+ Every other line is scope creep and must be removed or moved to a separate
12
+ change.
13
+
14
+ ## The rule
15
+
16
+ - The diff contains the **smallest** change that solves the stated problem.
17
+ - Every modified file must be **directly required** by the task — not
18
+ "while I was in there".
19
+ - Never reformat, rename, or restructure untouched code in the same diff.
20
+ - Never change dependencies, versions, or tooling "because it was outdated".
21
+ - Never consolidate or split unrelated code paths as a side effect.
22
+ - Never delete code that *looks* dead without proof it is unreachable.
23
+
24
+ ## Before writing the diff
25
+
26
+ Ask yourself, in order:
27
+
28
+ 1. **What is the minimum set of files that must change for the stated task?**
29
+ If your answer includes files with no causal link to the task, stop and
30
+ remove them.
31
+ 2. **What is the minimum number of lines per file?** If you are editing a
32
+ method, edit the method — not the surrounding class.
33
+ 3. **Is any of this a refactor?** If yes, it belongs in its own commit or
34
+ PR, clearly labeled as a refactor, with no behavior change.
35
+
36
+ ## When the task seems to require a larger change
37
+
38
+ - A rename, restructure, or framework upgrade that crosses the minimal-diff
39
+ line is a **separate, explicit** task — ask the user before expanding.
40
+ - A bug fix that exposes a broader design problem stays a bug fix. Log the
41
+ design problem as a follow-up (ticket, note, TODO) and ship the fix alone.
42
+ - A new feature that tempts you to "clean up" the module first: resist.
43
+ Add the feature, commit it, then propose the cleanup as a separate change.
44
+
45
+ ## Auto-formatter or linter rewrites unrelated code
46
+
47
+ Revert those hunks before staging. The diff you present is the diff you own.
48
+ If project policy forbids partial formatting, split into two commits:
49
+ *format only* · *behavior change*.
50
+
51
+ ## Red flags in your own diff — reject them
52
+
53
+ Files the task never mentioned · import reordering, whitespace, or comments
54
+ outside the edited region · "small improvements" to neighboring methods ·
55
+ test-only mixed with behavior changes in one commit · renames outside the
56
+ task scope · dependency bumps "because it was close to the cache".
57
+
58
+ ## When in doubt
59
+
60
+ Ask. A minimal diff plus one follow-up is cheaper than a sprawling diff the
61
+ reviewer has to untangle.
62
+
63
+ ## Break-glass exception
64
+
65
+ This rule stays in force during production incidents. "Break-glass mode"
66
+ narrows verification (see `verify-before-complete`) — it does **not**
67
+ license drive-by edits.
68
+
69
+ Allowed during break-glass:
70
+
71
+ - The **smallest** change that stops the bleeding — one file, one
72
+ method, one guard — preferred over any refactor.
73
+ - A fast revert to a known-good commit, even if it undoes unrelated
74
+ improvements shipped in the same PR.
75
+
76
+ Not allowed, even in break-glass:
77
+
78
+ - "While I'm in there" cleanups, reformatting, or dependency bumps.
79
+ - Expanding the fix to neighboring modules without evidence they are
80
+ part of the incident.
81
+ - Merging the hotfix with pending refactors from another branch.
82
+
83
+ After the incident, open a **follow-up PR** for any scope that was
84
+ intentionally deferred and reference the break-glass commit in its
85
+ description.
86
+
87
+ See also: `scope-control` · `downstream-changes` · `think-before-action` · `preservation-guard` · `verify-before-complete`.
@@ -0,0 +1,62 @@
1
+ ---
2
+ type: auto
3
+ source: package
4
+ description: "When a CLI tool needed for the task is not installed — ask before working around it; do NOT install silently"
5
+ ---
6
+
7
+ # Missing Tool Handling
8
+
9
+ When a CLI tool is needed and **not installed** (`command not found`,
10
+ `which X` empty), **STOP and ask** before working around it or installing it.
11
+
12
+ ## The rule
13
+
14
+ - **Never install silently.** Installing changes the user's system —
15
+ requires explicit permission (`scope-control`).
16
+ - **Never silently work around** a missing tool with a brittle substitute
17
+ (awk for YAML, `grep` for JSON, string splicing) when a proper tool is
18
+ the standard answer. The workaround hides the dependency.
19
+ - **Ask with numbered options** (`user-interaction`). State the tool, why
20
+ it fits, the install command, and the workaround cost.
21
+
22
+ ## When it applies
23
+
24
+ - Shell returns `command not found` for a tool the task genuinely needs
25
+ (yq, jq, rtk, gh, docker, mkcert, terraform, …).
26
+ - A skill or spike needs the idiomatic tool but it's absent locally.
27
+ - You're about to substitute a verbose script for a single tool call
28
+ because the tool isn't there.
29
+
30
+ ## When it does NOT apply
31
+
32
+ - Nice-to-have — clean substitute already present (e.g. `jq` available →
33
+ no `yq` needed just for JSON).
34
+ - Tool is forbidden by project policy (check `scope-control` and
35
+ tool-allowlists first).
36
+ - Missing library dependency → use `composer`, `npm`, `pip` per package
37
+ rules, still with explicit permission.
38
+
39
+ ## How to ask
40
+
41
+ ```
42
+ > `yq` is not installed. It's the cleanest way to parse the ticket YAML
43
+ > in the Bash prototype — the alternative is shelling out to python3,
44
+ > which adds ~50ms to every run.
45
+ >
46
+ > 1. Install via `brew install yq` (recommended — one-time, stays on PATH)
47
+ > 2. Use the python3 fallback — slower but no install needed
48
+ > 3. Drop YAML — convert fixtures to JSON, use `jq` only
49
+ > 4. Skip this path — I propose a different approach
50
+ ```
51
+
52
+ After the user picks: if **install**, wait for confirmation or run the
53
+ documented command only if explicitly authorised this turn. If
54
+ **workaround**, record the decision in the artefact (comment or ADR).
55
+
56
+ ## Capture the learning
57
+
58
+ If the same tool keeps missing across tasks, flag it in the project's
59
+ setup docs or `.agent-settings.yml` prerequisites.
60
+
61
+ See also: `scope-control` · `ask-when-uncertain` · `user-interaction` ·
62
+ `tool-safety`.
@@ -0,0 +1,70 @@
1
+ ---
2
+ type: "always"
3
+ description: "Model recommendation — detect task complexity, suggest optimal model (Opus/Sonnet/GPT), check on task changes and command invocations"
4
+ alwaysApply: true
5
+ source: package
6
+ ---
7
+
8
+ # Model Recommendation
9
+
10
+ Detect the current model from your system prompt identity (e.g., "Claude Opus" → `opus`,
11
+ "Claude Sonnet" → `sonnet`, "GPT" → `gpt`, "Gemini" → `gemini`).
12
+
13
+ If the detected model is `gemini`, immediately trigger the Gemini warning (see below).
14
+
15
+ ## When to act
16
+
17
+ **BEFORE starting any work**, classify the task the user is asking for:
18
+
19
+ - **opus**: refactoring, architecture, complex debugging, code review, multi-file changes
20
+ - **sonnet**: daily coding, bug fixes, tests, simple features, quality checks, PRs, commits, config
21
+ - **gpt**: complex agent flows, automations, research
22
+
23
+ **This check is MANDATORY** — not optional, not "nice to have". It runs:
24
+ - On the **first user message** of a conversation
25
+ - On **every clear topic/task change** (e.g., from refactoring to "create PR")
26
+ - **When a command is invoked** (e.g., `/create-pr` → sonnet task)
27
+
28
+ **⚠️ COMMAND INVOCATIONS ARE TASK CHANGES.** When the user invokes a command (e.g., `/create-pr`,
29
+ `/commit`, `/fix-ci`), ALWAYS re-evaluate the model before executing. Commands like `/create-pr`,
30
+ `/commit`, `/fix-pr-comments` are sonnet tasks — even if the previous task was opus-level.
31
+ This is the most commonly missed check. Do NOT skip it.
32
+
33
+ **Priority over commands rule**: This check runs BEFORE the `slash-commands` rule. If a model switch
34
+ is recommended, show the suggestion first. Only after the user responds, execute the command.
35
+
36
+ **If ambiguous** (could be opus or sonnet): default to **sonnet** — cheaper, and the user can escalate.
37
+
38
+ If the recommended model ≠ detected model, suggest switching **before doing any work**:
39
+
40
+ ```
41
+ > 💡 This looks like {task type} — best suited for **{recommended model}**.
42
+ > You're currently on **{detected model}**.
43
+ >
44
+ > 1. I've switched to {recommended} — continue
45
+ > 2. Stay on {detected model}
46
+ ```
47
+
48
+ **⛔ STOP AND WAIT.** After showing this suggestion, your response ENDS.
49
+ Do NOT read files, create tasks, start coding, or do anything else in the same response.
50
+ The ONLY content after the numbered options is the end of your message.
51
+ Wait for the user to pick 1 or 2 before proceeding.
52
+
53
+ → Full mapping and heuristics: `.augment/contexts/model-recommendations.md`
54
+
55
+ ## Switch confirmation
56
+
57
+ - If user picks **1**: accept and continue. No follow-up question.
58
+ - If user picks **2**: accept. Don't ask again until the task type changes.
59
+ - **Never ask more than once per task** unless the task type changes significantly.
60
+
61
+ ## Downgrade after Opus
62
+
63
+ After completing an opus-level phase (architecture done, root cause found, refactoring plan ready),
64
+ suggest switching back to sonnet for implementation. Same numbered options.
65
+
66
+ ## Gemini warning
67
+
68
+ If detected model is `gemini`: warn that Gemini is **not recommended** for this project.
69
+ Suggest switching to the best model for the current task (opus/sonnet/gpt).
70
+ Show the same numbered options as above. Repeat once if dismissed — then accept.
@@ -0,0 +1,80 @@
1
+ ---
2
+ type: "auto"
3
+ alwaysApply: false
4
+ description: "Before pushing to remote or creating a PR in the agent-config package — run all CI checks locally first"
5
+ source: package
6
+ ---
7
+
8
+ # Package CI Checks
9
+
10
+ Before **any** push/PR in agent-config: run ALL CI checks locally.
11
+
12
+ ```
13
+ NEVER push without running ALL CI checks locally first.
14
+ ```
15
+
16
+ ## Required checks
17
+
18
+ ### 1. Sync
19
+
20
+ ```bash
21
+ task sync-check # .agent-src/ matches .agent-src.uncompressed/
22
+ task sync-check-hashes # compression hashes are clean
23
+ ```
24
+
25
+ ### 2. Consistency
26
+
27
+ ```bash
28
+ python3 scripts/check_compression.py # compressed variants are valid
29
+ python3 scripts/check_references.py # no broken cross-references
30
+ python3 scripts/check_portability.py # no project-specific references in shared files
31
+ ```
32
+
33
+ ### 3. Linter (0 FAIL required)
34
+
35
+ ```bash
36
+ python3 scripts/skill_linter.py --all # 0 FAIL required
37
+ ```
38
+
39
+ ### 4. Tests
40
+
41
+ ```bash
42
+ python3 -m pytest tests/ --tb=short # all tests must pass
43
+ ```
44
+
45
+ ### 5. README
46
+
47
+ ```bash
48
+ python3 scripts/readme_linter.py README.md --root .
49
+ ```
50
+
51
+ ## Quick one-liner
52
+
53
+ ```bash
54
+ task sync-check && task sync-check-hashes && \
55
+ python3 scripts/check_compression.py && \
56
+ python3 scripts/check_references.py && \
57
+ python3 scripts/check_portability.py && \
58
+ python3 scripts/skill_linter.py --all && \
59
+ python3 -m pytest tests/ --tb=short && \
60
+ python3 scripts/readme_linter.py README.md --root .
61
+ ```
62
+
63
+ ## After editing skills/rules in .agent-src.uncompressed/
64
+
65
+ 1. Edit uncompressed file
66
+ 2. Edit compressed file in `.agent-src/` to match
67
+ 3. `task sync-mark-done -- {relative-path}` — update hash
68
+ 4. `task sync-check-hashes` — verify
69
+
70
+ **Skip step 3 → CI WILL fail.**
71
+
72
+ ## After editing scripts/compress.py
73
+
74
+ Run `python3 -m pytest tests/test_compress.py -v` **immediately** — don't wait.
75
+
76
+ ## Do NOT
77
+
78
+ - Push "to see if CI passes" — wastes pipeline minutes
79
+ - Skip hash checks for "small changes"
80
+ - Assume tests pass because linter passes
@@ -0,0 +1,63 @@
1
+ ---
2
+ type: "auto"
3
+ description: "Writing or reviewing PHP code — strict types, naming, comparisons, early returns, Eloquent conventions"
4
+ alwaysApply: false
5
+ source: package
6
+ ---
7
+
8
+ # PHP Coding Rules
9
+
10
+ - Use `declare(strict_types=1)` in every **new** PHP file. Not required when modifying existing files that don't have it.
11
+ - If the project has a `Math` helper class, use it for ALL business calculations. Never use native PHP arithmetic operators (`+`, `-`, `*`, `/`) for business calculations. Search for the `Math` class in the project.
12
+ - Never use `var_dump()`, `print_r()`, or `dd()` — they are disallowed by PHPStan config. Exception: legacy projects where these are already used and no alternative is feasible.
13
+ - Never use `float` for money — use `decimal` or the `Math` helper.
14
+ - Always use `===` / `!==` (strict comparison), Yoda style: `null === $var`.
15
+ - Early return over nested if/else.
16
+ - No one-liner if statements.
17
+ - Single quotes for strings without interpolation. `sprintf()` for complex strings.
18
+ - Variables: `camelCase`. Array keys: `snake_case`. Constants: `UPPER_SNAKE_CASE`.
19
+ - Typed properties, parameters, and return types — always.
20
+ - Constructor property promotion where it makes sense.
21
+
22
+ ## Eloquent Models — Attribute Access
23
+
24
+ Read `eloquent.access_style` from `.agent-settings.yml` to determine the preferred style.
25
+ Default: `getters_setters`. See the `eloquent` skill for the full reference table and examples.
26
+
27
+ - **`getters_setters`** (strict): Every attribute has a typed getter + fluent setter. Inside the model: `getAttribute('column_name')`/`setAttribute('column_name', $value)`. Outside: always getters/setters. If a getter doesn't exist yet, create it first.
28
+ - **`get_attribute`**: Use `getAttribute('column_name')`/`setAttribute('column_name', $value)` everywhere, no getters/setters needed.
29
+ - **`magic_properties`**: Laravel default `$model->column_name` everywhere.
30
+
31
+ ### Relationship Getters
32
+
33
+ - Every relationship MUST have a typed getter method **above** the relationship method.
34
+ - **Inside the getter:** use `$this->getAttribute('relationship_name')`, NEVER `$this->relationship_name`.
35
+ - **Outside the model:** ALWAYS use the getter (`$model->getEquipment()`), NEVER access the magic property (`$model->equipment`).
36
+ - Use `instanceof` checks instead of `null ===` when checking relationship results.
37
+
38
+ ## Eloquent Models — Observers over `booted()`
39
+
40
+ - Do NOT use `booted()` / `boot()` for model lifecycle hooks (saving, saved, deleted, etc.).
41
+ - Use a dedicated **Observer** class registered via `#[ObservedBy]` attribute.
42
+ - This keeps models slim and lifecycle logic testable and discoverable.
43
+
44
+ ## PHPStan
45
+
46
+ - Always fix the root cause. Do NOT add entries to `phpstan-baseline.neon`.
47
+ - Adding `ignoreErrors` to `phpstan.neon` is allowed for **structural toolchain limitations** (e.g., Pest runtime bindings). NOT for individual code issues. **If unsure → ask the user.**
48
+ - If a fix is truly impossible (confirmed false positive), use an inline ignore as last resort:
49
+ ```php
50
+ // @phpstan-ignore-next-line — false positive: reason here
51
+ ```
52
+
53
+ ## Testing
54
+
55
+ - Always write tests in **Pest**, not PHPUnit class syntax — unless the user explicitly asks for PHPUnit.
56
+ - Pest tests in `tests/Unit/` automatically use `UnitTestCase` as the base class (configured in `tests/Pest.php`).
57
+
58
+ ## PHPDoc
59
+
60
+ - Only add PHPDoc when type hints are insufficient (e.g. generic arrays: `@param array<int, MyObject> $items`).
61
+ - Do NOT add PHPDoc that just repeats the method signature.
62
+ - One docblock per method — never split into multiple `/** */` blocks.
63
+ - Tag order: `@param` → `@return` → `@throws`.
@@ -0,0 +1,29 @@
1
+ ---
2
+ type: "auto"
3
+ alwaysApply: false
4
+ description: "When merging, refactoring, compressing, or restructuring skills, rules, commands, or guidelines — prevent quality loss"
5
+ source: package
6
+ ---
7
+
8
+ # Preservation Guard
9
+
10
+ Transformations (merge, refactor, compress, split) must produce output **at least as strong** as input.
11
+
12
+ ## Checklist — verify before completing
13
+
14
+ - [ ] Strongest validation step preserved
15
+ - [ ] Strongest example preserved
16
+ - [ ] Strongest anti-pattern / "Do NOT" preserved
17
+ - [ ] Essential decision hints (if/when/unless) preserved
18
+ - [ ] Required sections preserved
19
+ - [ ] Single clear responsibility preserved
20
+ - [ ] Strong language ("MUST"/"NEVER") not weakened
21
+
22
+ ## Reject if
23
+
24
+ - Validation, example, or anti-pattern removed without replacement
25
+ - Decision logic weakened
26
+ - Scope broadened by merging unrelated concerns
27
+ - Strong language downgraded
28
+
29
+ → Skills: `skill-management`, `skill-reviewer` · Command: `/compress` · Linter: `check_compression_quality()`