@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,310 @@
1
+ ---
2
+ name: "refine-ticket"
3
+ description: "Refine a Jira/Linear ticket before planning — 'refine ticket', 'tighten AC on PROJ-123', 'ist das Ticket klar?' — rewritten ticket, Top-5 risks, persona voices, sub-skills orchestrated, close-prompt."
4
+ personas:
5
+ - developer
6
+ - senior-engineer
7
+ - product-owner
8
+ - stakeholder
9
+ - critical-challenger
10
+ - ai-agent
11
+ source: package
12
+ execution:
13
+ type: assisted
14
+ handler: internal
15
+ allowed_tools: []
16
+ ---
17
+
18
+ # Refine Ticket
19
+
20
+ > Move a ticket from "raw idea" to "implementation-ready" in one run.
21
+ > Produces a rewritten ticket, Top-5 risks, and persona voices.
22
+ > Orchestrates `validate-feature-fit` and `threat-modeling` as sub-skills
23
+ > — never duplicates their logic. Output is copy-paste ready; the user
24
+ > decides write-back.
25
+
26
+ ## When to use
27
+
28
+ - The user hands over a Jira / Linear ticket key, URL, branch name, or
29
+ pasted ticket text and asks for a sanity check before planning.
30
+ - A ticket looks too vague, too broad, or smells wrong.
31
+ - Before `/feature-plan` or `/feature-explore` on a ticket-anchored scope.
32
+ - The user says "tighten the AC", "poke holes in this ticket",
33
+ "is this ready to plan?", "ist das Ticket klar genug?",
34
+ "verbessere das Ticket".
35
+
36
+ ## When NOT to use (near-misses)
37
+
38
+ | Phrasing | Route to |
39
+ |---|---|
40
+ | "plan this feature" | `/feature-plan` (downstream) |
41
+ | "estimate this ticket" | `/estimate-ticket` (sibling, Phase 4) |
42
+ | "is this a duplicate feature?" | `validate-feature-fit` (sub-skill) |
43
+ | "threat-model this change" | `threat-modeling` (sub-skill) |
44
+ | "investigate this bug" | `/bug-investigate` (bug-focused) |
45
+
46
+ `/refine-ticket` **orchestrates** these — it does not replace them.
47
+
48
+ ## Language strategy
49
+
50
+ Pick output prose language once, up front; apply to every section.
51
+ First hit wins:
52
+
53
+ 1. **User-message language.** Latest user message decides. Honours the
54
+ global `language-and-tone` iron law.
55
+ 2. **Ticket body language.** When the user's message is ambiguous
56
+ (one-word `/refine-ticket PROJ-123`), mirror the language the ticket
57
+ is written in (summary + description).
58
+ 3. **`.agent-settings.yml` default** (`personal.language` or equivalent).
59
+ If missing, default to English.
60
+
61
+ Quoted identifiers (keys, paths, commands, code) stay native. Only
62
+ prose mirrors the picked language.
63
+
64
+ ## Inputs (four equivalent paths)
65
+
66
+ Reuses the `jira-ticket` command's loader. Accepts:
67
+
68
+ 1. **Ticket key** — `/refine-ticket PROJ-123`
69
+ 2. **Branch detection** — `/refine-ticket` with no arg; regex
70
+ `[A-Z]+-[0-9]+` against `git branch --show-current`
71
+ 3. **Pasted text** — `/refine-ticket` followed by a markdown block
72
+ 4. **URL** — `/refine-ticket https://acme.atlassian.net/browse/PROJ-123`
73
+
74
+ If none resolve to a ticket, fall back to conversational discovery
75
+ (`feature-explore`-style): ask one focused question, then continue.
76
+
77
+ ## Procedure
78
+
79
+ ### 1. Load ticket
80
+
81
+ Delegate to `jira-ticket` §1-3:
82
+ - Extract ticket ID (branch / URL / arg).
83
+ - Fetch via Jira API (`GET /issue/{id}`) — summary, description,
84
+ issue type, priority, status, comments, linked issues.
85
+ - Scan description + comments for Sentry URLs; pull stacktrace /
86
+ tags when present.
87
+
88
+ If pasted text: skip API, parse markdown, extract title + AC
89
+ bullets + body.
90
+
91
+ **Auto-fetch parent (Phase F4).** Before detection, check the issue
92
+ type and fold parent context in:
93
+
94
+ ```python
95
+ from scripts.refine_ticket_detect import (
96
+ issuetype_needs_parent, fold_parent_context,
97
+ )
98
+
99
+ if issuetype_needs_parent(ticket["issuetype"]):
100
+ parent_key = ticket["parent_key"] # from `fields.parent.key`
101
+ parent = fetch_jira_issue(parent_key) # +1 API call
102
+ ticket_body = fold_parent_context(
103
+ ticket_body, parent_body=parent["body"], parent_key=parent_key,
104
+ )
105
+ ```
106
+
107
+ Rules:
108
+ - Applies to `Story` and `Sub-task` (and Linear / Shortcut equivalents).
109
+ `Task` / `Bug` / `Epic` skip the auto-fetch unless a `parent` link is
110
+ populated — then the agent folds explicitly without the issuetype guard.
111
+ - `fold_parent_context()` is idempotent; folding twice with the same
112
+ parent does not duplicate the block.
113
+ - Parent fetch fails (404, permission, network) → skip the fold, append
114
+ to orchestration notes:
115
+ *"Parent `<key>` not reachable — AC may lack upstream context."*
116
+
117
+ Parent AC lines surfaced this way must be cited verbatim in the refined
118
+ output's *Open questions* section so the user sees which constraints
119
+ come from the parent.
120
+
121
+ ### 2. Inspect ticket + detect orchestration triggers
122
+
123
+ Check the loaded ticket for clarity signals before orchestrating:
124
+ - Does the summary match the description body?
125
+ - Are AC bullets concrete (observable / testable) or vague ("works well")?
126
+ - Is the scope one feature, or multiple tangled together?
127
+ - Any sentence that references an existing module name, feature flag, or domain concept?
128
+
129
+ Then run the deterministic detection helper — do **not** re-derive trigger
130
+ logic in prose:
131
+
132
+ ```bash
133
+ python3 scripts/refine_ticket_detect.py <ticket-body-file>
134
+ # or, inside the skill run:
135
+ from scripts.refine_ticket_detect import detect, load_map
136
+ decision = detect(ticket_body, load_map(), cwd=Path.cwd())
137
+ ```
138
+
139
+ The helper consumes [`detection-map.yml`](detection-map.yml) (co-located
140
+ in this skill folder) and returns:
141
+
142
+ - `validate-feature-fit` — fires when ≥ 2 distinct feature-area keywords
143
+ appear in the body (see `sub_skills.validate-feature-fit.keywords`).
144
+ - `threat-modeling` — fires on any auth / webhook / upload / queue /
145
+ secret / tenant / admin / PII / payment keyword, or a `CVE-YYYY-N`
146
+ regex match.
147
+ - `repo_aware` — on when `.git/`, `agents/contexts/`, `composer.json`,
148
+ or `package.json` is present in the cwd; off otherwise.
149
+ - When `repo_aware=True`, `decision.repo_context` is populated by
150
+ `gather_repo_context()`:
151
+ - `recent_branches` — up to 20 most recent local branches (naming
152
+ convention signal).
153
+ - `recent_commits` — up to 30 most recent commit subjects (active
154
+ modules + verb conventions).
155
+ - `context_docs` — every `agents/contexts/*.md` filename (domain
156
+ vocabulary).
157
+ - Outside a repo the context is empty — the skill produces the same
158
+ output shape, minus repo-specific citations (graceful degrade).
159
+
160
+ Use `repo_context.recent_branches` to anchor the "Refined ticket" title
161
+ naming (e.g. `feat/` vs `fix/` vs `refactor/` prefix), and
162
+ `repo_context.context_docs` to cite domain vocabulary in the Top-5
163
+ risks instead of inventing terms.
164
+
165
+ The match lists and `require_count` thresholds are owned by
166
+ `detection-map.yml` — edit the map, not this skill. Tests:
167
+ [`tests/test_refine_ticket_detect.py`](../../../tests/test_refine_ticket_detect.py)
168
+ (17 cases, DE + EN fixtures, repo-aware + graceful-degrade coverage).
169
+
170
+ ### 3. Orchestrate
171
+
172
+ For every `SubSkillDecision` with `fired=True`, invoke the named sub-skill
173
+ with the ticket body as input:
174
+
175
+ - `validate-feature-fit` → returns duplicate / scope-creep findings
176
+ - `threat-modeling` → returns trust boundaries + abuse cases
177
+
178
+ **Cite, don't copy** — the output references findings by sub-skill name and
179
+ file:line where applicable. If a sub-skill reports zero findings, emit
180
+ `fired → clean` in the orchestration section. Skipped sub-skills appear
181
+ as `skipped (no trigger match)` — never silently omitted.
182
+
183
+ Each fired finding must map to at least one entry in the Top-5 risks
184
+ section; orchestration that does not influence the risks is waste.
185
+
186
+ ### 4. Apply personas
187
+
188
+ Load the persona set from frontmatter (Core-6 default). Each persona
189
+ reviews the ticket through its lens and produces one paragraph:
190
+
191
+ - **Developer** — implementability, unknowns, test seams
192
+ - **Senior Engineer** — architectural fit, blast radius, hidden deps
193
+ - **Product Owner** — value, user story integrity, AC completeness
194
+ - **Stakeholder** — deadline fit, business impact, comms plan
195
+ - **Critical Challenger** — devil's advocate; what's wrong with this?
196
+ - **AI Agent** — automation hooks, tool boundaries, clarity for agents
197
+
198
+ Optional: `--personas=+qa` adds the QA persona (edge cases, regression
199
+ risk, test matrix).
200
+
201
+ ### 5. Synthesize + close-prompt
202
+
203
+ Produce the three-section output (template below). After rendering,
204
+ emit the close-prompt (below). Do **not** write to Jira. Do **not**
205
+ open a planning doc.
206
+
207
+ ## Output template
208
+
209
+ Frozen per Q25 (see
210
+ [`road-to-ticket-refinement.md`](../../../agents/roadmaps/road-to-ticket-refinement.md)).
211
+
212
+ ````markdown
213
+ ## Refined ticket
214
+
215
+ **Title:** <rewritten title>
216
+
217
+ <rewritten description — tightened AC, explicit out-of-scope,
218
+ open questions surfaced>
219
+
220
+ ## Top-5 risks
221
+
222
+ 1. <risk> — <mitigation / deferral>
223
+ 2. <risk> — <mitigation / deferral>
224
+ 3. <risk> — <mitigation / deferral>
225
+ 4. <risk> — <mitigation / deferral>
226
+ 5. <risk> — <mitigation / deferral>
227
+
228
+ ## Persona voices
229
+
230
+ - **Developer** — <one paragraph>
231
+ - **Senior Engineer** — <one paragraph>
232
+ - **Product Owner** — <one paragraph>
233
+ - **Stakeholder** — <one paragraph>
234
+ - **Critical Challenger** — <one paragraph>
235
+ - **AI Agent** — <one paragraph>
236
+ - **[qa]** — *(only when `--personas=+qa`)* <one paragraph>
237
+
238
+ ## Orchestration notes
239
+
240
+ - `validate-feature-fit` — <fired / skipped; key findings or "clean">
241
+ - `threat-modeling` — <fired / skipped; key findings or "clean">
242
+ - Repo-aware — <on / off; contexts loaded>
243
+ ````
244
+
245
+ The "Refined ticket" section is wrapped in a **copyable Markdown box**
246
+ so the user can grab it verbatim.
247
+
248
+ ## Close-prompt (mandatory final step)
249
+
250
+ **Probe write access first (Phase F6).** Cheap upfront check before
251
+ rendering:
252
+
253
+ ```python
254
+ from scripts.refine_ticket_detect import render_close_prompt
255
+
256
+ try:
257
+ me = jira_get("/myself") # existence → auth works
258
+ meta = jira_get(f"/issue/{key}/editmeta")# fields → write access
259
+ write = bool(meta.get("fields"))
260
+ except Exception:
261
+ write = None # probe itself failed
262
+
263
+ print(render_close_prompt(write))
264
+ ```
265
+
266
+ Behaviour:
267
+
268
+ | Probe result | Prompt shape |
269
+ |---|---|
270
+ | Write access present (`True`) | Full three-option prompt (comment / replace / nothing) |
271
+ | Read-only (`False`) | Single option: *"Copy-paste — no write access to this project"* |
272
+ | Probe failed (`None`) | Full three-option prompt; skill degrades to copy-paste on selection (v1 fallback) |
273
+
274
+ Per user interaction rules, accept number or free text. `editmeta`
275
+ is cheap and cacheable; cache per Jira project key for the session,
276
+ re-probe on project change.
277
+
278
+ ## Output format
279
+
280
+ 1. **Refined ticket** section with rewritten title + description, wrapped in a copyable markdown block.
281
+ 2. **Top-5 risks** as a numbered list, each item paired with a mitigation or deferral.
282
+ 3. **Persona voices** — one paragraph per persona from the active set; no skipped personas without explicit reason.
283
+ 4. **Orchestration notes** naming every sub-skill that fired or was skipped, with a one-line reason.
284
+ 5. **Close-prompt** with exactly three numbered options (comment / replace / nothing); no fourth option in v1.
285
+
286
+ ## Gotcha
287
+
288
+ - The model tends to invent risks that sound plausible but aren't anchored in the ticket text. Every risk in Top-5 must cite a phrase, AC bullet, or sub-skill finding — no hypotheticals.
289
+ - Persona voices degrade into generic platitudes when the ticket is already tight. If a persona has nothing real to flag, write one sentence stating that — do not pad.
290
+ - Sub-skills (`validate-feature-fit`, `threat-modeling`) cost tokens; orchestrate only when the trigger matrix actually matches, not defensively on every run.
291
+ - Branch-detection matches the first `[A-Z]+-[0-9]+` in the branch name; chained keys (e.g. `feat/PROJ-1-and-PROJ-2`) pick the first and note the rest.
292
+
293
+ ## Do NOT
294
+
295
+ - Do NOT write back to Jira in v1 — output is copyable markdown; write-back is user-gated via the close-prompt.
296
+ - Do NOT chain into `/estimate-ticket` or `/feature-plan` automatically — separate invocations by design (Q5 decision).
297
+ - Do NOT duplicate logic from `validate-feature-fit` or `threat-modeling` — orchestrate by reference, cite findings, don't re-derive them.
298
+ - Do NOT skip the close-prompt, even when the ticket looks fine and the user seems eager to move on — the prompt is the contract.
299
+ - Do NOT emit persona voices outside the active set; if the user passed `--personas=+qa`, add QA, otherwise do not.
300
+
301
+ ## See also
302
+
303
+ - [`jira-ticket`](../../commands/jira-ticket.md) — ticket loader
304
+ - [`validate-feature-fit`](../validate-feature-fit/SKILL.md) — orchestrated sub-skill
305
+ - [`threat-modeling`](../threat-modeling/SKILL.md) — orchestrated sub-skill
306
+ - [`feature-explore`](../../commands/feature-explore.md) — upstream idea capture; hints at `/refine-ticket` when input looks like a ticket
307
+ - [`feature-plan`](../../commands/feature-plan.md) — downstream planning
308
+ - [`adversarial-review`](../adversarial-review/SKILL.md) — same `critical-challenger` persona, different stage (post-plan)
309
+ - [`road-to-ticket-refinement.md`](../../../agents/roadmaps/road-to-ticket-refinement.md) — governing roadmap
310
+ - [`artifact-drafting-protocol`](../../rules/artifact-drafting-protocol.md) — this skill was drafted under it
@@ -0,0 +1,124 @@
1
+ # Detection map for refine-ticket orchestration
2
+ #
3
+ # Declares which sub-skills fire on which ticket-body signals.
4
+ # Consumed by:
5
+ # - scripts/refine_ticket_detect.py (deterministic helper, pytest-covered)
6
+ # - the refine-ticket skill's Step 2 (cites this file, never re-derives)
7
+ #
8
+ # Schema:
9
+ # sub_skills:
10
+ # <skill-name>:
11
+ # description: one-line reason this skill should fire
12
+ # keywords: [list of case-insensitive substring signals]
13
+ # require_count: int (minimum distinct matches to fire; default 1)
14
+ # regex: [list of python-compatible regex; any match counts as 1]
15
+ # notes: free text — visible in the orchestration-notes output
16
+ # alternative_signals: (Phase F3, optional)
17
+ # min_distinct_ac_first_words: int # scope-creep proxy
18
+ # min_body_sentences: int # sprawl-in-prose proxy
19
+
20
+ version: 1
21
+
22
+ sub_skills:
23
+ validate-feature-fit:
24
+ description: >
25
+ Ticket body mentions multiple existing feature names — potential
26
+ duplicate or scope-creep signal.
27
+ require_count: 2
28
+ # Feature names are repo-specific; the default list covers common
29
+ # product areas. Projects can extend via agents/overrides/ or by
30
+ # editing a project-local copy of this file.
31
+ keywords:
32
+ - dashboard
33
+ - billing
34
+ - subscription
35
+ - onboarding
36
+ - notifications
37
+ - reporting
38
+ - export
39
+ - import
40
+ - audit log
41
+ - integration
42
+ - api
43
+ - webhook
44
+ - user management
45
+ - permissions
46
+ - roles
47
+ - invoicing
48
+ - admin
49
+ alternative_signals:
50
+ # Phase F3 — scope-creep / prose-sprawl safety net. Thresholds
51
+ # calibrated on existing fixtures so current behaviour does not
52
+ # regress: clean.md (2 sentences / 5 AC first-words) and
53
+ # duplicate_intent.md (3 / 3) stay below the bar; a dedicated
54
+ # scope_creep_prose.md fixture sits above it.
55
+ min_distinct_ac_first_words: 7
56
+ min_body_sentences: 6
57
+ notes: >
58
+ Matches count distinct keywords — if two or more different feature
59
+ names appear in the ticket, validate-feature-fit fires. Single-
60
+ keyword tickets skip this sub-skill, unless the alt-signal
61
+ thresholds catch a scope-creep pattern (many distinct AC first-
62
+ words or a sprawling description body).
63
+
64
+ threat-modeling:
65
+ description: >
66
+ Ticket touches auth / data-sensitivity / trust-boundary surfaces —
67
+ pre-implementation threat model required.
68
+ require_count: 1
69
+ keywords:
70
+ - auth
71
+ - authentication
72
+ - authorization
73
+ - login
74
+ - logout
75
+ - password
76
+ - token
77
+ - jwt
78
+ - oauth
79
+ - session
80
+ - webhook
81
+ - upload
82
+ - file upload
83
+ - queue
84
+ - queued job
85
+ - worker
86
+ - secret
87
+ - secrets
88
+ - api key
89
+ - tenant
90
+ - tenancy
91
+ - multi-tenant
92
+ - admin
93
+ - admin-only
94
+ - pii
95
+ - personal data
96
+ - gdpr
97
+ - public endpoint
98
+ - public api
99
+ - billing
100
+ - payment
101
+ - invoice
102
+ - stripe
103
+ - paypal
104
+ regex:
105
+ - '\bCVE-\d{4}-\d+\b'
106
+ notes: >
107
+ Single-keyword match fires; threat-modeling is cheap and
108
+ security-sensitive tickets are expensive to re-visit post-ship.
109
+
110
+ repo_aware:
111
+ description: >
112
+ When invoked inside a repo clone, /refine-ticket loads
113
+ agents/contexts/ for domain vocabulary and scans recent branches /
114
+ commits for naming conventions. Outside a repo, skip silently.
115
+ signals:
116
+ - path: .git
117
+ type: dir
118
+ - path: agents/contexts
119
+ type: dir
120
+ - path: composer.json
121
+ type: file
122
+ - path: package.json
123
+ type: file
124
+ require_count: 1
@@ -0,0 +1,16 @@
1
+ # Output-schema contract for `refine-ticket`.
2
+ #
3
+ # Locks the frozen three-section shape of the `## Output template`
4
+ # block so refactors cannot silently drift the output away from what
5
+ # consumers copy-paste into Jira. Enforced by `scripts/skill_linter.py`
6
+ # (`lint_output_schema`) — a drift is a hard error.
7
+ #
8
+ # Governed by: road-to-trigger-evals.md Phase 3.5 (originally deferred
9
+ # from archive/road-to-ticket-refinement.md Phase 1 per Q26).
10
+
11
+ version: 1
12
+
13
+ required_headers:
14
+ - "Refined ticket"
15
+ - "Top-5 risks"
16
+ - "Persona voices"
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill": "refine-ticket",
3
+ "description": "5 should-trigger + 5 should-not-trigger queries. Should-trigger covers DE + EN phrasings and the four input paths (key, branch, paste, URL). Should-not-trigger covers the four near-miss neighbors (plan / estimate / duplicate / threat-model / bug-investigate) whose vocabulary overlaps with ticket refinement.",
4
+ "queries": [
5
+ {"q": "refine this ticket before I plan it", "trigger": true},
6
+ {"q": "tighten the AC on PROJ-123", "trigger": true},
7
+ {"q": "is this ticket ready for planning?", "trigger": true},
8
+ {"q": "verbessere das Ticket, ist das klar genug?", "trigger": true},
9
+ {"q": "poke holes in this Jira ticket and rewrite it", "trigger": true},
10
+ {"q": "plan the feature described in PROJ-123", "trigger": false, "note": "routes to /feature-plan, not refinement"},
11
+ {"q": "estimate how big PROJ-123 is", "trigger": false, "note": "routes to /estimate-ticket (Phase 4 sibling)"},
12
+ {"q": "is this feature already implemented somewhere?", "trigger": false, "note": "routes to validate-feature-fit directly"},
13
+ {"q": "threat-model the webhook endpoint in PROJ-123", "trigger": false, "note": "routes to threat-modeling directly"},
14
+ {"q": "investigate this bug — I think there's a Sentry issue linked", "trigger": false, "note": "routes to /bug-investigate"}
15
+ ]
16
+ }
@@ -0,0 +1,199 @@
1
+ ---
2
+ name: requesting-code-review
3
+ description: "Use when asking for a review or creating a PR — self-review first, frame the right context, test plan included — even when the user just says 'open a PR' or 'ready to merge'."
4
+ personas:
5
+ - critical-challenger
6
+ source: package
7
+ ---
8
+
9
+ # requesting-code-review
10
+
11
+ ## When to use
12
+
13
+ * About to run `/create-pr` or `/prepare-for-review`
14
+ * Feature or bug fix is code-complete and the next step is "get eyes on it"
15
+ * A stacked PR is ready and the parent-branch reviewer needs to
16
+ context-switch smoothly
17
+ * Asking a human for a quick sanity check on a specific commit or diff
18
+
19
+ Do NOT use when:
20
+
21
+ * You are *processing* review feedback — use [`receiving-code-review`](../receiving-code-review/SKILL.md)
22
+ * Branch is not yet code-complete — the review-request gate requires
23
+ green tests and a clean diff
24
+ * Change is documentation-only with no behavior impact
25
+
26
+ ## Goal
27
+
28
+ Give the reviewer exactly the context they need — what changed, why,
29
+ how to verify — without forcing them to reconstruct your thought
30
+ process. A well-framed review request **halves** review time and
31
+ **reduces** back-and-forth on missing context.
32
+
33
+ ## The Iron Law
34
+
35
+ ```
36
+ NEVER REQUEST REVIEW FROM A BRANCH YOU HAVE NOT REVIEWED YOURSELF.
37
+ ```
38
+
39
+ Self-review is the single cheapest filter. Catches the issues a human
40
+ reviewer would flag in round one, so the human can spend time on
41
+ issues only they can see.
42
+
43
+ ## Procedure
44
+
45
+ ### 1. Self-review first
46
+
47
+ Before asking anyone else:
48
+
49
+ * Read the full diff (`git diff <base>...<head>`), not just files you
50
+ remember touching
51
+ * Check for accidental debug output, dead code, leftover `dd()`,
52
+ `console.log`, commented-out blocks
53
+ * Check for secrets in diff — API keys, connection strings, tokens
54
+ * Check file-system side effects — generated files, lockfile churn,
55
+ IDE configs, `.env` changes
56
+ * Run the linter + tests (see [`verify-before-complete`](../verify-before-complete/SKILL.md))
57
+ * Find issues → fix them, do **not** ship and hope the reviewer flags
58
+
59
+ Use [`review-changes`](../../commands/review-changes.md) as the
60
+ structured walk-through.
61
+
62
+ ### 2. Establish the diff baseline
63
+
64
+ Determine the correct base commit:
65
+
66
+ ```bash
67
+ # Simple branch from main
68
+ BASE=$(git merge-base HEAD main)
69
+
70
+ # Stacked PR — parent branch is base, not main
71
+ BASE=$(git merge-base HEAD <parent-branch>)
72
+
73
+ HEAD=$(git rev-parse HEAD)
74
+ ```
75
+
76
+ The base matters for the reviewer's diff view — wrong base = they
77
+ review 80 unrelated commits.
78
+
79
+ ### 3. Write the review request context
80
+
81
+ Any review request must answer four questions. Missing any → the
82
+ reviewer will ask, and that round trip is preventable.
83
+
84
+ | Question | Where it lives |
85
+ |---|---|
86
+ | **What changed?** | PR title (imperative, Conventional Commits) + summary bullets |
87
+ | **Why?** | Link to ticket / issue / Sentry event / user message |
88
+ | **How do I verify it?** | Test plan: commands to run, URLs to hit, expected behavior |
89
+ | **What should I look at first?** | Highlights: "pay attention to X because Y" or "skip Z, it is generated" |
90
+
91
+ See [`create-pr-description`](../../commands/create-pr-description.md)
92
+ for the full structured template, and
93
+ [`conventional-commits-writing`](../conventional-commits-writing/SKILL.md)
94
+ for the title format.
95
+
96
+ ### 4. Keep the PR reviewable in size
97
+
98
+ * Target < 400 lines of real diff (excluding generated / lockfiles)
99
+ * Bigger — consider splitting into a stack (refactor PR → feature PR)
100
+ so reviewers can handle each in one sitting
101
+ * Flag generated files explicitly in the description so reviewers skip
102
+ * Never mix a refactor + behavior change in one PR — reviewers cannot
103
+ isolate the risk
104
+
105
+ ### 5. Pick the right reviewer set
106
+
107
+ * **Architectural impact** → code owner for the affected area
108
+ * **Security-sensitive** → a security-reviewer role if the project has one
109
+ * **Bots** → let Copilot / Greptile / Augment run automatically; do not
110
+ gate human review on bot completion
111
+ * **Cross-team change** → each affected team's owner
112
+
113
+ Project with a `CODEOWNERS` file → GitHub handles this automatically;
114
+ do not override without a reason.
115
+
116
+ ### 6. Send and wait — do not nudge early
117
+
118
+ After the PR is open:
119
+
120
+ * Respond to questions, not to the implicit "where is my review?"
121
+ schedule
122
+ * Review blocking and overdue → a single short nudge is appropriate;
123
+ do not re-open or force-push to bump the PR list
124
+
125
+ When review comments arrive → switch to
126
+ [`receiving-code-review`](../receiving-code-review/SKILL.md).
127
+
128
+ ## Output format
129
+
130
+ When handing the review request to the reviewer (PR body, Slack, email):
131
+
132
+ 1. **Title** — Conventional Commit imperative
133
+ 2. **Summary** — 2–5 bullets of what changed
134
+ 3. **Motivation** — why, with ticket / Sentry / user-message link
135
+ 4. **Test plan** — exact commands or URLs + expected result
136
+ 5. **Risk / scope notes** — what the reviewer should pay attention to
137
+ 6. **Non-goals** — what this PR deliberately does **not** do
138
+ 7. **Screenshots / logs** — when UI or runtime behavior changed
139
+
140
+ ## Gotchas
141
+
142
+ * "Ready for review" on a red CI run signals carelessness — wait for
143
+ green or explain the specific failure
144
+ * A 1000-line PR with "no behavior change" still needs review — the
145
+ reviewer has no way to confirm "no behavior change" without reading
146
+ every line
147
+ * Auto-merge on approval bypasses re-review after later force-pushes —
148
+ use deliberately, not by habit
149
+ * A PR description saying "see the code" is not a description —
150
+ reviewers need the why
151
+ * Requesting review from someone without context (new hire, other
152
+ team) without a longer pairing — they cannot do a deep review cold
153
+ * Rebasing during review invalidates line-comments; let reviewers
154
+ finish a round before rebasing when possible
155
+
156
+ ## Do NOT
157
+
158
+ * Do NOT request review before self-review
159
+ * Do NOT request review on a branch with failing CI (except when
160
+ explicitly documenting "CI broken, please eyeball X only")
161
+ * Do NOT mix unrelated changes in one PR
162
+ * Do NOT force-push during active review without a good reason and a
163
+ note to the reviewer
164
+ * Do NOT leave the PR description empty
165
+ * Do NOT request review from reviewers who lack context just to get
166
+ approvals
167
+
168
+ ## Anti-patterns
169
+
170
+ * "Small cleanup" titles on 800-line diffs
171
+ * Test plan that says "should work"
172
+ * Hiding a risky change inside a 40-file refactor PR
173
+ * Pinging reviewers before CI goes green
174
+ * Requesting review as a substitute for thinking the problem through
175
+
176
+ ## When to hand over to another skill / command
177
+
178
+ * Self-review walkthrough → [`review-changes`](../../commands/review-changes.md)
179
+ * Bringing a stacked branch up to date first →
180
+ [`prepare-for-review`](../../commands/prepare-for-review.md)
181
+ * Writing the PR description → [`create-pr-description`](../../commands/create-pr-description.md)
182
+ * Actually opening the PR → [`create-pr`](../../commands/create-pr.md)
183
+ * Writing the commits themselves → [`commit`](../../commands/commit.md),
184
+ [`conventional-commits-writing`](../conventional-commits-writing/SKILL.md)
185
+ * Verifying readiness → [`verify-before-complete`](../verify-before-complete/SKILL.md)
186
+ * Processing the feedback when it arrives → [`receiving-code-review`](../receiving-code-review/SKILL.md)
187
+
188
+ ## Validation checklist
189
+
190
+ Before asking for review:
191
+
192
+ * [ ] Self-review walkthrough done on the full diff
193
+ * [ ] Linter + targeted tests + full test suite green
194
+ * [ ] PR title follows Conventional Commits
195
+ * [ ] PR description has summary, motivation, test plan, risk notes
196
+ * [ ] Diff is reviewable in size (split if > 400 lines of real code)
197
+ * [ ] CODEOWNERS / reviewer set is correct
198
+ * [ ] No debug code, secrets, or stray files in the diff
199
+ * [ ] No unrelated changes bundled in