@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,115 @@
1
+ # Copilot Repository Instructions
2
+
3
+ <!--
4
+ copilot-instructions.md — read by GitHub Copilot Code Review (PR bot) and
5
+ Copilot Chat when reviewing or editing this repo.
6
+
7
+ This file was installed by `event4u/agent-config` as a starting template.
8
+ Fill in the placeholders below and remove this HTML comment.
9
+
10
+ Keep this file **self-contained**. Copilot Code Review CANNOT follow links
11
+ to `.augment/` — so every rule Copilot must enforce lives here in full.
12
+ Copilot Chat (in the IDE) can read other files, but still benefits from
13
+ this overview.
14
+ -->
15
+
16
+ This repository contains {{project_description_oneline}}.
17
+
18
+ > **For Copilot Chat users:** Deeper context lives in `.augment/` (skills,
19
+ > rules, guidelines) and `AGENTS.md`. The instructions below are
20
+ > self-contained for Copilot Code Review.
21
+ >
22
+ > For most tickets — feature, bug fix, or refactor — start with
23
+ > `/implement-ticket` (see `.augment/commands/implement-ticket.md`). It drives
24
+ > the linear flow `refine → memory → analyze → plan → implement → test →
25
+ > verify → report`, blocks on ambiguity instead of guessing, and never
26
+ > commits, pushes, or opens PRs on its own.
27
+
28
+ ## ✅ Scope Control
29
+
30
+ - Do not introduce architectural changes unless explicitly requested.
31
+ - Do not replace existing patterns with alternatives.
32
+ - Do not suggest new libraries unless explicitly requested.
33
+ - Stay within the established project structure.
34
+
35
+ ## ✅ Architecture
36
+
37
+ <!-- Describe your layering. Example for a Laravel project:
38
+ - Controllers thin, no business logic
39
+ - Business logic in Service classes
40
+ - Validation in FormRequests
41
+ - Authorization in Policies
42
+ -->
43
+
44
+ {{architecture_notes}}
45
+
46
+ ## ✅ Coding Standards
47
+
48
+ <!-- Language-specific standards. Keep them concrete and enforceable.
49
+ Examples:
50
+ - PHP: declare(strict_types=1), typed properties, constructor promotion
51
+ - TypeScript: strict mode, no `any`, prefer `readonly`
52
+ - Python: type hints on public APIs, `from __future__ import annotations`
53
+ -->
54
+
55
+ {{coding_standards}}
56
+
57
+ ## ✅ Framework Conventions
58
+
59
+ <!-- Framework-specific patterns your team follows.
60
+ Examples:
61
+ - Laravel: Policies over Gates, Resource classes, Eloquent relationships
62
+ - Next.js: Server components by default, client components explicitly marked
63
+ - Rails: Service objects for complex logic
64
+ -->
65
+
66
+ {{framework_conventions}}
67
+
68
+ ## ✅ Testing
69
+
70
+ - Test framework: **{{test_framework}}**
71
+ - Run all tests: `{{test_all_command}}`
72
+ - Run targeted tests: `{{test_targeted_command}}`
73
+
74
+ {{testing_extra_notes}}
75
+
76
+ ## ✅ Legacy / Existing Code Handling
77
+
78
+ - Do NOT refactor existing code solely to comply with these rules.
79
+ - Only modify existing code if directly related to the current change,
80
+ bug fix, security, or explicitly requested.
81
+ - New or newly modified code MUST follow all rules in this document.
82
+
83
+ ## ✅ Code Review Scope
84
+
85
+ - Review **only the actually modified lines** and their direct dependencies.
86
+ - Do NOT review or suggest changes to unmodified code in the same file.
87
+ - Do NOT nitpick style issues that linters/formatters auto-fix.
88
+
89
+ ## ✅ Code Review Comment Behavior
90
+
91
+ - **Never create duplicate comments** — one comment per concern per location.
92
+ - **Never re-raise rejected suggestions** — if the developer said no, accept it.
93
+ - Answer questions concisely; do not argue.
94
+ - Resolve conversations once the issue is addressed.
95
+
96
+ ## ✅ Language Rules
97
+
98
+ - Code comments: English.
99
+ - Parameter / variable / method / class names: English.
100
+ - Commit messages: English, Conventional Commits.
101
+ - User-facing strings: {{user_facing_strings_strategy}}
102
+
103
+ ## ✅ Package Management
104
+
105
+ - Always use the package manager (`composer require`, `npm install`,
106
+ `pip install`) — never hand-edit `composer.json`, `package.json`, or
107
+ `requirements.txt`. The manager handles version resolution and lock files.
108
+
109
+ ## ✅ Copilot Behavior
110
+
111
+ - Generate {{target_language_level}} code only — avoid features from newer
112
+ versions unless the project has upgraded.
113
+ - Prioritize **readable, clean, maintainable** code over cleverness.
114
+ - Default to **immutability**, **dependency injection**, and **encapsulation**.
115
+ - Be direct and concise — no "Sure!", "You're right!" or similar filler.
@@ -0,0 +1,125 @@
1
+ # Feature Planning Template
2
+
3
+ Templates for feature plan files stored in `agents/features/` or `app/Modules/{Module}/agents/features/`.
4
+
5
+ ---
6
+
7
+ ## Rules for Feature Plans
8
+
9
+ 1. **Collaborative.** Feature plans are created interactively with the user, not auto-generated.
10
+ 2. **Decision-focused.** Capture problems, proposals, scope, and tradeoffs — not implementation steps.
11
+ 3. **Linked.** Reference affected modules, related features, and generated roadmaps.
12
+ 4. **Language:** All feature plans must be written in **English**.
13
+ 5. **One feature per file.** Don't combine unrelated features.
14
+ 6. **Keep it concise.** Aim for 100–300 lines. If larger, the feature should be split.
15
+
16
+ ---
17
+
18
+ ## Status Values
19
+
20
+ | Emoji | Status | Meaning |
21
+ |---|---|---|
22
+ | 💡 | Idea | Rough concept, not yet validated |
23
+ | 🔍 | Exploring | Being researched and brainstormed |
24
+ | 📋 | Planned | Structured plan complete, ready for roadmap |
25
+ | 🗺️ | Roadmapped | Roadmap(s) generated, ready for implementation |
26
+ | 🔄 | In Progress | Implementation started |
27
+ | ✅ | Complete | Feature shipped |
28
+ | ❌ | Rejected | Decided not to build |
29
+ | ⏸️ | On Hold | Paused for external reasons |
30
+
31
+ ---
32
+
33
+ ## Template
34
+
35
+ Copy the structure below into a new file:
36
+
37
+ ```markdown
38
+ # Feature: {title}
39
+
40
+ > {One sentence: What does this feature do and why?}
41
+
42
+ **Status:** 💡 Idea
43
+ **Created:** {YYYY-MM-DD}
44
+ **Author:** {name}
45
+ **Jira:** {ticket/epic links or "none" — e.g. [DEV-1234]({JIRA_BASE_URL}/browse/DEV-1234)}
46
+ **Module:** {module name or "project-wide"}
47
+ **Context:** {path to context document or "none"}
48
+
49
+ ## Problem
50
+
51
+ {What pain point does this solve? Who is affected? What happens today without this feature?}
52
+
53
+ ## Proposal
54
+
55
+ {What's the proposed solution? Keep it high-level — describe the outcome, not the implementation.}
56
+
57
+ ## Scope
58
+
59
+ ### In Scope
60
+
61
+ - {What this feature includes}
62
+ - {Specific functionality}
63
+
64
+ ### Out of Scope (deferred)
65
+
66
+ - {What this feature does NOT include}
67
+ - {Features to consider later}
68
+
69
+ ## Affected Areas
70
+
71
+ | Area | Impact |
72
+ |---|---|
73
+ | Module: {name} | {what changes} |
74
+ | Model: {name} | {new fields, relationships} |
75
+ | API: {endpoint} | {new/changed endpoints} |
76
+ | UI: {view/component} | {new/changed views} |
77
+ | Migration | {schema changes} |
78
+
79
+ ## Technical Approach
80
+
81
+ {High-level architecture decisions. Which patterns to follow? Which existing services to extend?
82
+ Reference existing code where helpful.}
83
+
84
+ ### Options Considered
85
+
86
+ | Option | Pros | Cons | Decision |
87
+ |---|---|---|---|
88
+ | {Option A} | {pros} | {cons} | ✅ Chosen / ❌ Rejected |
89
+ | {Option B} | {pros} | {cons} | ✅ Chosen / ❌ Rejected |
90
+
91
+ ## Open Questions
92
+
93
+ - [ ] {Unresolved question 1}
94
+ - [ ] {Unresolved question 2}
95
+
96
+ ## Dependencies
97
+
98
+ - {Other features or changes this depends on}
99
+ - {External services or packages needed}
100
+
101
+ ## Acceptance Criteria
102
+
103
+ - [ ] {Measurable outcome 1}
104
+ - [ ] {Measurable outcome 2}
105
+ - [ ] All quality gates pass (PHPStan, Rector, tests)
106
+
107
+ ## Roadmaps
108
+
109
+ _No roadmaps generated yet. Run `/feature-roadmap` to create implementation roadmaps._
110
+
111
+ ## Notes
112
+
113
+ {Optional: edge cases, risks, references, related discussions.}
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Tips
119
+
120
+ - **Start with the Problem.** If you can't articulate the problem, the feature isn't ready.
121
+ - **Be specific in Scope.** "Out of Scope" is as important as "In Scope".
122
+ - **List Affected Areas early.** This helps estimate effort and identify risks.
123
+ - **Use Options Considered.** Document why you chose one approach over another.
124
+ - **Link to code.** "See `app/Modules/Import/App/Services/ImportService.php`" is better than "the import service".
125
+
@@ -0,0 +1,133 @@
1
+ # Memory Hygiene — template shipped by agent-config
2
+ #
3
+ # Copy this file to `.github/workflows/memory-hygiene.yml` in the consumer
4
+ # project. It runs `scripts/check_memory.py` on a weekly schedule and
5
+ # opens (or updates) a single tracking issue when stale entries are
6
+ # found in `agents/memory/`.
7
+ #
8
+ # This workflow is intentionally **not** wired into PR checks — staleness
9
+ # is a review signal, not a merge blocker. See
10
+ # `road-to-engineering-memory.md` Phase 4 for the rationale.
11
+ #
12
+ # Prerequisites:
13
+ # - `scripts/check_memory.py` copied from
14
+ # `.augment/templates/scripts/check_memory.py` into the consumer repo.
15
+ # - At least one file exists under `agents/memory/` — absence short-
16
+ # circuits the job with an informational log, no issue opened.
17
+
18
+ name: Memory Hygiene
19
+
20
+ on:
21
+ schedule:
22
+ # Every Monday at 06:00 UTC — run AFTER the weekly retro window.
23
+ - cron: "0 6 * * 1"
24
+ workflow_dispatch: {}
25
+
26
+ permissions:
27
+ contents: read
28
+ issues: write
29
+
30
+ jobs:
31
+ check-staleness:
32
+ name: Report stale memory entries
33
+ runs-on: ubuntu-latest
34
+
35
+ steps:
36
+ - name: Check out repository
37
+ uses: actions/checkout@v4
38
+
39
+ - name: Set up Python
40
+ uses: actions/setup-python@v5
41
+ with:
42
+ python-version: "3.12"
43
+
44
+ - name: Install PyYAML
45
+ run: pip install pyyaml
46
+
47
+ - name: Short-circuit if no memory files
48
+ id: has_memory
49
+ run: |
50
+ if [ -d "agents/memory" ] && [ "$(find agents/memory -name '*.yml' | wc -l)" -gt 0 ]; then
51
+ echo "present=true" >> "$GITHUB_OUTPUT"
52
+ else
53
+ echo "present=false" >> "$GITHUB_OUTPUT"
54
+ echo "No agents/memory/*.yml files — skipping."
55
+ fi
56
+
57
+ - name: Run staleness check
58
+ if: steps.has_memory.outputs.present == 'true'
59
+ id: check
60
+ run: |
61
+ set +e
62
+ {
63
+ echo "## Memory hygiene report"
64
+ echo
65
+ echo '```'
66
+ python3 scripts/check_memory.py --path agents/memory
67
+ exit_code=$?
68
+ echo '```'
69
+ } > staleness.md
70
+ echo "exit=${exit_code:-0}" >> "$GITHUB_OUTPUT"
71
+ cat staleness.md
72
+
73
+ - name: Find existing tracking issue
74
+ if: steps.has_memory.outputs.present == 'true'
75
+ id: find_issue
76
+ uses: actions/github-script@v7
77
+ with:
78
+ script: |
79
+ const { data: issues } = await github.rest.issues.listForRepo({
80
+ owner: context.repo.owner,
81
+ repo: context.repo.repo,
82
+ state: "open",
83
+ labels: "memory-hygiene",
84
+ per_page: 5,
85
+ });
86
+ if (issues.length > 0) {
87
+ core.setOutput("number", issues[0].number);
88
+ }
89
+
90
+ - name: Open or update tracking issue
91
+ if: steps.has_memory.outputs.present == 'true' && steps.check.outputs.exit != '0'
92
+ uses: actions/github-script@v7
93
+ with:
94
+ script: |
95
+ const fs = require("fs");
96
+ const body = fs.readFileSync("staleness.md", "utf8");
97
+ const title = "Memory Hygiene — stale entries detected";
98
+ const existing = "${{ steps.find_issue.outputs.number }}";
99
+ if (existing) {
100
+ await github.rest.issues.update({
101
+ owner: context.repo.owner,
102
+ repo: context.repo.repo,
103
+ issue_number: parseInt(existing, 10),
104
+ body,
105
+ });
106
+ } else {
107
+ await github.rest.issues.create({
108
+ owner: context.repo.owner,
109
+ repo: context.repo.repo,
110
+ title,
111
+ body,
112
+ labels: ["memory-hygiene"],
113
+ });
114
+ }
115
+
116
+ - name: Close tracking issue when clean
117
+ if: steps.has_memory.outputs.present == 'true' && steps.check.outputs.exit == '0' && steps.find_issue.outputs.number != ''
118
+ uses: actions/github-script@v7
119
+ with:
120
+ script: |
121
+ await github.rest.issues.update({
122
+ owner: context.repo.owner,
123
+ repo: context.repo.repo,
124
+ issue_number: parseInt("${{ steps.find_issue.outputs.number }}", 10),
125
+ state: "closed",
126
+ state_reason: "completed",
127
+ });
128
+ await github.rest.issues.createComment({
129
+ owner: context.repo.owner,
130
+ repo: context.repo.repo,
131
+ issue_number: parseInt("${{ steps.find_issue.outputs.number }}", 10),
132
+ body: "All memory entries are fresh — closing.",
133
+ });
@@ -0,0 +1,123 @@
1
+ # PR Risk Review — template shipped by agent-config
2
+ #
3
+ # Copy this file to `.github/workflows/pr-risk-review.yml` in the consumer
4
+ # project. It posts (or updates) a single sticky comment on every PR with a
5
+ # heuristic risk classification (low / medium / high) based on the list of
6
+ # changed files.
7
+ #
8
+ # Behavior is driven by `.github/pr-risk-config.yml` (see the example file
9
+ # under `.augment/templates/scripts/pr-risk-config.example.yml`). Without a
10
+ # config file the script falls back to sensible cross-stack defaults.
11
+ #
12
+ # This workflow is purely informational — it does NOT block merges. Gate the
13
+ # PR on a separate required check if you want a hard stop.
14
+
15
+ name: PR Risk Review
16
+
17
+ on:
18
+ pull_request:
19
+ types: [opened, synchronize, reopened, ready_for_review]
20
+
21
+ permissions:
22
+ contents: read
23
+ pull-requests: write
24
+
25
+ jobs:
26
+ risk-review:
27
+ name: Classify PR risk
28
+ runs-on: ubuntu-latest
29
+ if: github.event.pull_request.draft == false
30
+
31
+ steps:
32
+ - name: Check out repository
33
+ uses: actions/checkout@v4
34
+ with:
35
+ fetch-depth: 0
36
+
37
+ - name: Set up Python
38
+ uses: actions/setup-python@v5
39
+ with:
40
+ python-version: "3.12"
41
+
42
+ - name: Install dependencies
43
+ run: pip install pyyaml
44
+
45
+ - name: Classify risk
46
+ id: risk
47
+ env:
48
+ BASE_SHA: ${{ github.event.pull_request.base.sha }}
49
+ HEAD_SHA: ${{ github.event.pull_request.head.sha }}
50
+ run: |
51
+ python3 scripts/pr_risk_review.py \
52
+ --base "$BASE_SHA" \
53
+ --head "$HEAD_SHA" \
54
+ --config .github/pr-risk-config.yml \
55
+ --output risk-report.md \
56
+ --level-file risk-level.txt
57
+
58
+ echo "level=$(cat risk-level.txt)" >> "$GITHUB_OUTPUT"
59
+
60
+ - name: Post or update sticky PR comment
61
+ uses: marocchino/sticky-pull-request-comment@v2
62
+ with:
63
+ header: pr-risk-review
64
+ path: risk-report.md
65
+
66
+ - name: Apply risk label
67
+ uses: actions/github-script@v7
68
+ with:
69
+ script: |
70
+ const level = `${{ steps.risk.outputs.level }}`;
71
+ if (!['low', 'medium', 'high'].includes(level)) return;
72
+
73
+ const prNumber = context.payload.pull_request.number;
74
+ const desired = `risk:${level}`;
75
+ const labels = ['risk:low', 'risk:medium', 'risk:high'];
76
+
77
+ const { data: existing } = await github.rest.issues.listLabelsOnIssue({
78
+ owner: context.repo.owner,
79
+ repo: context.repo.repo,
80
+ issue_number: prNumber,
81
+ });
82
+
83
+ for (const lbl of existing) {
84
+ if (labels.includes(lbl.name) && lbl.name !== desired) {
85
+ await github.rest.issues.removeLabel({
86
+ owner: context.repo.owner,
87
+ repo: context.repo.repo,
88
+ issue_number: prNumber,
89
+ name: lbl.name,
90
+ });
91
+ }
92
+ }
93
+
94
+ await github.rest.issues.addLabels({
95
+ owner: context.repo.owner,
96
+ repo: context.repo.repo,
97
+ issue_number: prNumber,
98
+ labels: [desired],
99
+ });
100
+
101
+ - name: Classify review routing
102
+ id: routing
103
+ if: hashFiles('scripts/pr_review_routing.py') != ''
104
+ env:
105
+ BASE_SHA: ${{ github.event.pull_request.base.sha }}
106
+ HEAD_SHA: ${{ github.event.pull_request.head.sha }}
107
+ # The script auto-discovers ownership-map.yml and
108
+ # historical-bug-patterns.yml under .github/ first and falls
109
+ # back to agents/ — matching the review-routing-awareness rule.
110
+ # Missing data files emit a generic fallback, not an error.
111
+ run: |
112
+ python3 scripts/pr_review_routing.py \
113
+ --base "$BASE_SHA" \
114
+ --head "$HEAD_SHA" \
115
+ --output routing-report.md \
116
+ --level-file routing-level.txt
117
+
118
+ - name: Post or update routing sticky comment
119
+ if: steps.routing.outcome == 'success'
120
+ uses: marocchino/sticky-pull-request-comment@v2
121
+ with:
122
+ header: pr-review-routing
123
+ path: routing-report.md
@@ -0,0 +1,118 @@
1
+ # Proposal Drift — template shipped by agent-config
2
+ #
3
+ # Copy this file to `.github/workflows/proposal-drift.yml` in the PACKAGE
4
+ # repo (event4u/agent-config itself). It runs weekly and posts an
5
+ # imbalance report when the number of accepted upstream proposals in the
6
+ # last quarter diverges from the number of retired rules/skills.
7
+ #
8
+ # Rationale: the curated self-improvement pipeline can only work if
9
+ # **additions and retirements stay roughly in balance**. A repo that
10
+ # only accepts new proposals without ever retiring anything drifts
11
+ # towards noise; a repo that only retires without accepting drifts
12
+ # towards stagnation. See `road-to-curated-self-improvement.md`
13
+ # Phase 4 for the full framing.
14
+ #
15
+ # This workflow is intentionally read-only — it never blocks a PR and
16
+ # never modifies the repo. It only opens / updates a tracking issue.
17
+ #
18
+ # Prerequisites:
19
+ # - `scripts/memory_report.py` present in the repo (ships with the
20
+ # package).
21
+ # - Proposals live under `agents/proposals/` with the schema defined
22
+ # in `.agent-src/templates/agents/proposal.example.md`.
23
+
24
+ name: Proposal Drift
25
+
26
+ on:
27
+ schedule:
28
+ # Every Monday at 07:00 UTC — one hour after memory-hygiene so the
29
+ # two issues do not land in the same notification batch.
30
+ - cron: "0 7 * * 1"
31
+ workflow_dispatch: {}
32
+
33
+ permissions:
34
+ contents: read
35
+ issues: write
36
+
37
+ jobs:
38
+ drift-report:
39
+ name: Accepted vs. retired proposals
40
+ runs-on: ubuntu-latest
41
+
42
+ steps:
43
+ - name: Check out repository
44
+ uses: actions/checkout@v4
45
+ with:
46
+ fetch-depth: 0
47
+
48
+ - name: Set up Python
49
+ uses: actions/setup-python@v5
50
+ with:
51
+ python-version: "3.12"
52
+
53
+ - name: Install PyYAML
54
+ run: pip install pyyaml
55
+
56
+ - name: Build quarterly report
57
+ id: report
58
+ run: |
59
+ set +e
60
+ {
61
+ echo "## Proposal drift report"
62
+ echo
63
+ echo "Accepted vs. retired for the last quarter."
64
+ echo
65
+ echo '```'
66
+ python3 scripts/memory_report.py --quarterly --format text
67
+ echo '```'
68
+ echo
69
+ echo "Open proposals by stage:"
70
+ echo
71
+ echo '```'
72
+ find agents/proposals -name '*.md' 2>/dev/null | \
73
+ xargs -I{} grep -H '^stage:' {} 2>/dev/null | \
74
+ awk -F: '{print $3}' | sort | uniq -c || true
75
+ echo '```'
76
+ } > drift.md
77
+ cat drift.md
78
+
79
+ - name: Find existing tracking issue
80
+ id: find_issue
81
+ uses: actions/github-script@v7
82
+ with:
83
+ script: |
84
+ const { data: issues } = await github.rest.issues.listForRepo({
85
+ owner: context.repo.owner,
86
+ repo: context.repo.repo,
87
+ state: "open",
88
+ labels: "proposal-drift",
89
+ per_page: 5,
90
+ });
91
+ if (issues.length > 0) {
92
+ core.setOutput("number", issues[0].number);
93
+ }
94
+
95
+ - name: Open or update tracking issue
96
+ uses: actions/github-script@v7
97
+ with:
98
+ script: |
99
+ const fs = require("fs");
100
+ const body = fs.readFileSync("drift.md", "utf8");
101
+ const title = "Proposal Drift — weekly report";
102
+ const existing = "${{ steps.find_issue.outputs.number }}";
103
+ if (existing) {
104
+ await github.rest.issues.update({
105
+ owner: context.repo.owner,
106
+ repo: context.repo.repo,
107
+ issue_number: parseInt(existing, 10),
108
+ body,
109
+ });
110
+ } else {
111
+ await github.rest.issues.create({
112
+ owner: context.repo.owner,
113
+ repo: context.repo.repo,
114
+ title,
115
+ body,
116
+ labels: ["proposal-drift"],
117
+ });
118
+ }
@@ -0,0 +1,24 @@
1
+ # Override: Command — {command-name}
2
+
3
+ > Override for `.augment/commands/{command-name}.md`
4
+
5
+ ---
6
+ **Mode:** `extend` | `replace`
7
+ **Original:** `.augment/commands/{command-name}.md`
8
+ ---
9
+
10
+ <!-- MODE EXPLANATION:
11
+ - extend: The original command is loaded FIRST, then this file modifies specific steps or adds new ones.
12
+ Use this to inject project-specific steps, change prompts, or add constraints.
13
+ - replace: The original command is IGNORED entirely. This file defines the full command flow.
14
+ Use this when the original command flow does not fit the project at all.
15
+ -->
16
+
17
+ ## Modified Steps
18
+
19
+ <!-- For mode: extend — list only the steps that change. Reference original steps by number/name. -->
20
+
21
+ ## Full Command Flow
22
+
23
+ <!-- For mode: replace — write the complete command definition from scratch. -->
24
+
@@ -0,0 +1,21 @@
1
+ # Override: Guideline — {guideline-name}
2
+
3
+ > Override for `.augment/guidelines/{path}/{guideline-name}.md`
4
+
5
+ ---
6
+ **Mode:** `extend` | `replace`
7
+ **Original:** `.augment/guidelines/{path}/{guideline-name}.md`
8
+ ---
9
+
10
+ <!-- MODE EXPLANATION:
11
+ - extend: The original guideline is loaded FIRST, then this file adds to or modifies specific sections.
12
+ Use this to add project-specific conventions, extra examples, or stricter rules.
13
+ - replace: The original guideline is IGNORED entirely. This file is the sole source of truth.
14
+ Use this when the project's conventions differ fundamentally from the shared guideline.
15
+ -->
16
+
17
+ ## Overridden Sections
18
+
19
+ <!-- For mode: extend — only list what changes. Reference original sections by heading. -->
20
+ <!-- For mode: replace — write the complete guideline from scratch. -->
21
+
@@ -0,0 +1,19 @@
1
+ # Override: Rule — {rule-name}
2
+
3
+ > Override for `.augment/rules/{rule-name}.md`
4
+
5
+ ---
6
+ **Mode:** `extend` | `replace`
7
+ **Original:** `.augment/rules/{rule-name}.md`
8
+ ---
9
+
10
+ <!-- MODE EXPLANATION:
11
+ - extend: The original rule is loaded FIRST, then this file adds to or modifies specific parts.
12
+ - replace: The original rule is IGNORED entirely. This file is the sole source of truth.
13
+ -->
14
+
15
+ ## Overridden Rules
16
+
17
+ <!-- For mode: extend — only list what changes. Everything else stays as-is. -->
18
+ <!-- For mode: replace — write the complete rule set from scratch. -->
19
+