@event4u/agent-config 1.15.0 → 1.17.0

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 (354) hide show
  1. package/.agent-src/commands/{agents-audit.md → agents/audit.md} +4 -3
  2. package/.agent-src/commands/{agents-cleanup.md → agents/cleanup.md} +12 -6
  3. package/.agent-src/commands/{agents-prepare.md → agents/prepare.md} +4 -3
  4. package/.agent-src/commands/agents.md +46 -0
  5. package/.agent-src/commands/bug-fix.md +1 -1
  6. package/.agent-src/commands/bug-investigate.md +2 -2
  7. package/.agent-src/commands/{chat-history-checkpoint.md → chat-history/checkpoint.md} +5 -5
  8. package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +5 -5
  9. package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
  10. package/.agent-src/commands/chat-history/show.md +107 -0
  11. package/.agent-src/commands/chat-history.md +33 -89
  12. package/.agent-src/commands/check-current-md.md +1 -1
  13. package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
  14. package/.agent-src/commands/commit.md +22 -2
  15. package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
  16. package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
  17. package/.agent-src/commands/context.md +44 -0
  18. package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
  19. package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
  20. package/.agent-src/commands/copilot-agents.md +44 -0
  21. package/.agent-src/commands/council/default.md +221 -0
  22. package/.agent-src/commands/council/design.md +97 -0
  23. package/.agent-src/commands/council/optimize.md +116 -0
  24. package/.agent-src/commands/council/pr.md +124 -0
  25. package/.agent-src/commands/council.md +54 -0
  26. package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
  27. package/.agent-src/commands/create-pr.md +49 -5
  28. package/.agent-src/commands/e2e-heal.md +1 -1
  29. package/.agent-src/commands/e2e-plan.md +1 -1
  30. package/.agent-src/commands/{feature-dev.md → feature/dev.md} +6 -3
  31. package/.agent-src/commands/{feature-explore.md → feature/explore.md} +5 -4
  32. package/.agent-src/commands/{feature-plan.md → feature/plan.md} +32 -5
  33. package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -3
  34. package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +7 -6
  35. package/.agent-src/commands/feature.md +52 -0
  36. package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -3
  37. package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -3
  38. package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -3
  39. package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -3
  40. package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -6
  41. package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -3
  42. package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -3
  43. package/.agent-src/commands/fix.md +54 -0
  44. package/.agent-src/commands/jira-ticket.md +1 -1
  45. package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +7 -6
  46. package/.agent-src/commands/judge/solo.md +90 -0
  47. package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +8 -7
  48. package/.agent-src/commands/judge.md +35 -70
  49. package/.agent-src/commands/{memory-add.md → memory/add.md} +7 -6
  50. package/.agent-src/commands/{memory-full.md → memory/load.md} +6 -5
  51. package/.agent-src/commands/{memory-promote.md → memory/promote.md} +6 -5
  52. package/.agent-src/commands/{propose-memory.md → memory/propose.md} +6 -5
  53. package/.agent-src/commands/memory.md +48 -0
  54. package/.agent-src/commands/mode.md +5 -5
  55. package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
  56. package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
  57. package/.agent-src/commands/module.md +44 -0
  58. package/.agent-src/commands/onboard.md +3 -3
  59. package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +5 -4
  60. package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -4
  61. package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -3
  62. package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +5 -4
  63. package/.agent-src/commands/optimize.md +48 -0
  64. package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
  65. package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
  66. package/.agent-src/commands/override.md +44 -0
  67. package/.agent-src/commands/review-changes.md +26 -1
  68. package/.agent-src/commands/review-routing.md +1 -1
  69. package/.agent-src/commands/{roadmap-create.md → roadmap/create.md} +33 -5
  70. package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
  71. package/.agent-src/commands/roadmap.md +44 -0
  72. package/.agent-src/commands/set-cost-profile.md +3 -3
  73. package/.agent-src/commands/sync-agent-settings.md +2 -2
  74. package/.agent-src/commands/{tests-create.md → tests/create.md} +5 -4
  75. package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
  76. package/.agent-src/commands/tests.md +44 -0
  77. package/.agent-src/commands/upstream-contribute.md +1 -1
  78. package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
  79. package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
  80. package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
  81. package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
  82. package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
  83. package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
  84. package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
  85. package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
  86. package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
  87. package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
  88. package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
  89. package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
  90. package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
  91. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
  92. package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
  93. package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -0
  94. package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
  95. package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
  96. package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
  97. package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
  98. package/.agent-src/contexts/judges/no-consolidate-rationale.md +102 -0
  99. package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -0
  100. package/.agent-src/personas/README.md +1 -1
  101. package/.agent-src/rules/agent-authority.md +24 -0
  102. package/.agent-src/rules/architecture.md +1 -1
  103. package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
  104. package/.agent-src/rules/artifact-engagement-recording.md +14 -70
  105. package/.agent-src/rules/ask-when-uncertain.md +28 -43
  106. package/.agent-src/rules/augment-portability.md +15 -61
  107. package/.agent-src/rules/augment-source-of-truth.md +27 -93
  108. package/.agent-src/rules/autonomous-execution.md +78 -114
  109. package/.agent-src/rules/capture-learnings.md +1 -1
  110. package/.agent-src/rules/chat-history-cadence.md +3 -3
  111. package/.agent-src/rules/chat-history-ownership.md +3 -3
  112. package/.agent-src/rules/chat-history-visibility.md +3 -3
  113. package/.agent-src/rules/cli-output-handling.md +10 -76
  114. package/.agent-src/rules/command-suggestion-policy.md +93 -0
  115. package/.agent-src/rules/commit-conventions.md +17 -14
  116. package/.agent-src/rules/commit-policy.md +14 -42
  117. package/.agent-src/rules/context-hygiene.md +3 -3
  118. package/.agent-src/rules/direct-answers.md +34 -49
  119. package/.agent-src/rules/docker-commands.md +5 -5
  120. package/.agent-src/rules/docs-sync.md +16 -70
  121. package/.agent-src/rules/e2e-testing.md +1 -1
  122. package/.agent-src/rules/guidelines.md +4 -4
  123. package/.agent-src/rules/improve-before-implement.md +2 -2
  124. package/.agent-src/rules/language-and-tone.md +50 -133
  125. package/.agent-src/rules/minimal-safe-diff.md +3 -3
  126. package/.agent-src/rules/missing-tool-handling.md +28 -22
  127. package/.agent-src/rules/model-recommendation.md +4 -4
  128. package/.agent-src/rules/no-cheap-questions.md +82 -0
  129. package/.agent-src/rules/no-roadmap-references.md +73 -0
  130. package/.agent-src/rules/non-destructive-by-default.md +15 -49
  131. package/.agent-src/rules/onboarding-gate.md +5 -5
  132. package/.agent-src/rules/package-ci-checks.md +21 -61
  133. package/.agent-src/rules/preservation-guard.md +64 -29
  134. package/.agent-src/rules/review-routing-awareness.md +26 -45
  135. package/.agent-src/rules/roadmap-progress-sync.md +28 -96
  136. package/.agent-src/rules/role-mode-adherence.md +2 -2
  137. package/.agent-src/rules/scope-control.md +65 -46
  138. package/.agent-src/rules/security-sensitive-stop.md +9 -9
  139. package/.agent-src/rules/size-enforcement.md +1 -1
  140. package/.agent-src/rules/skill-quality.md +16 -48
  141. package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +7 -4
  142. package/.agent-src/rules/think-before-action.md +55 -45
  143. package/.agent-src/rules/token-efficiency.md +4 -4
  144. package/.agent-src/rules/tool-safety.md +19 -16
  145. package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +27 -41
  146. package/.agent-src/rules/user-interaction.md +16 -71
  147. package/.agent-src/rules/verify-before-complete.md +12 -67
  148. package/.agent-src/scripts/update_roadmap_progress.py +9 -4
  149. package/.agent-src/skills/ai-council/SKILL.md +335 -0
  150. package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
  151. package/.agent-src/skills/api-testing/SKILL.md +1 -1
  152. package/.agent-src/skills/blade-ui/SKILL.md +1 -1
  153. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
  154. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
  155. package/.agent-src/skills/check-refs/SKILL.md +59 -40
  156. package/.agent-src/skills/command-routing/SKILL.md +1 -1
  157. package/.agent-src/skills/command-writing/SKILL.md +1 -1
  158. package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
  159. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +7 -7
  160. package/.agent-src/skills/developer-like-execution/SKILL.md +6 -6
  161. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
  162. package/.agent-src/skills/flux/SKILL.md +31 -11
  163. package/.agent-src/skills/git-workflow/SKILL.md +1 -1
  164. package/.agent-src/skills/github-ci/SKILL.md +2 -2
  165. package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
  166. package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
  167. package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
  168. package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
  169. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
  170. package/.agent-src/skills/lint-skills/SKILL.md +57 -39
  171. package/.agent-src/skills/livewire/SKILL.md +1 -1
  172. package/.agent-src/skills/md-language-check/SKILL.md +61 -39
  173. package/.agent-src/skills/override-management/SKILL.md +7 -7
  174. package/.agent-src/skills/php-coder/SKILL.md +1 -1
  175. package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
  176. package/.agent-src/skills/quality-tools/SKILL.md +2 -2
  177. package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
  178. package/.agent-src/skills/readme-reviewer/SKILL.md +31 -30
  179. package/.agent-src/skills/readme-writing/SKILL.md +79 -54
  180. package/.agent-src/skills/readme-writing-package/SKILL.md +51 -48
  181. package/.agent-src/skills/receiving-code-review/SKILL.md +53 -48
  182. package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
  183. package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
  184. package/.agent-src/skills/review-routing/SKILL.md +2 -2
  185. package/.agent-src/skills/rule-writing/SKILL.md +1 -1
  186. package/.agent-src/skills/security/SKILL.md +7 -2
  187. package/.agent-src/skills/security-audit/SKILL.md +7 -3
  188. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
  189. package/.agent-src/skills/skill-writing/SKILL.md +3 -3
  190. package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
  191. package/.agent-src/skills/systematic-debugging/SKILL.md +69 -61
  192. package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
  193. package/.agent-src/skills/test-performance/SKILL.md +0 -1
  194. package/.agent-src/skills/traefik/SKILL.md +4 -4
  195. package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
  196. package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
  197. package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +30 -28
  198. package/.agent-src/templates/agent-settings.md +8 -8
  199. package/.agent-src/templates/contexts/auth-model.md +1 -1
  200. package/.agent-src/templates/scripts/README.md +2 -2
  201. package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
  202. package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
  203. package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
  204. package/.agent-src/templates/scripts/telemetry_record.py +14 -1
  205. package/.claude-plugin/marketplace.json +31 -12
  206. package/AGENTS.md +11 -9
  207. package/CHANGELOG.md +213 -2
  208. package/README.md +43 -44
  209. package/config/agent-settings.template.yml +58 -1
  210. package/config/gitignore-block.txt +3 -0
  211. package/docs/architecture.md +5 -7
  212. package/docs/catalog.md +359 -0
  213. package/docs/contracts/STABILITY.md +46 -1
  214. package/docs/contracts/adr-chat-history-split.md +1 -3
  215. package/docs/contracts/adr-command-suggestion.md +3 -5
  216. package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
  217. package/docs/contracts/adr-product-ui-track.md +5 -8
  218. package/docs/contracts/adr-prompt-driven-execution.md +3 -4
  219. package/docs/contracts/agent-memory-contract.md +8 -13
  220. package/docs/contracts/artifact-engagement-flow.md +7 -10
  221. package/docs/contracts/command-clusters.md +56 -46
  222. package/docs/contracts/command-suggestion-flow.md +4 -6
  223. package/docs/contracts/context-paths.md +99 -0
  224. package/docs/contracts/file-ownership-matrix.json +6722 -0
  225. package/docs/contracts/file-ownership-matrix.md +134 -0
  226. package/docs/contracts/implement-ticket-flow.md +8 -11
  227. package/docs/contracts/linear-ai-rules-inclusion.md +1 -2
  228. package/docs/contracts/linear-ai-three-layers.md +0 -2
  229. package/docs/contracts/load-context-budget-model.md +178 -0
  230. package/docs/contracts/load-context-schema.md +184 -0
  231. package/docs/contracts/rule-interactions.md +0 -1
  232. package/docs/contracts/rule-interactions.yml +96 -0
  233. package/docs/contracts/rule-priority-hierarchy.md +87 -0
  234. package/docs/contracts/ui-track-flow.md +8 -18
  235. package/docs/customization.md +16 -0
  236. package/docs/end-to-end-walkthroughs.md +165 -0
  237. package/docs/getting-started.md +29 -10
  238. package/docs/github-topics.md +12 -3
  239. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
  240. package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
  241. package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
  242. package/docs/guidelines/php/git.md +164 -0
  243. package/docs/migrations/commands-1.15.0.md +1 -1
  244. package/docs/showcase.md +9 -4
  245. package/docs/skills-catalog.md +14 -8
  246. package/docs/ui-track-mental-model.md +2 -2
  247. package/llms.txt +13 -7
  248. package/package.json +1 -1
  249. package/scripts/_one_off_phase4_dispatch_latency.py +108 -0
  250. package/scripts/_one_off_phase6_trigger_jaccard.py +92 -0
  251. package/scripts/_phase2_shim_helper.py +109 -0
  252. package/scripts/agent-config +33 -0
  253. package/scripts/ai_council/__init__.py +39 -0
  254. package/scripts/ai_council/_default_prices.py +41 -0
  255. package/scripts/ai_council/_one_off_2a4_acceptance.py +208 -0
  256. package/scripts/ai_council/_one_off_context_layer_v1_estimate.py +67 -0
  257. package/scripts/ai_council/_one_off_context_layer_v1_review.py +292 -0
  258. package/scripts/ai_council/_one_off_followups_review.py +259 -0
  259. package/scripts/ai_council/_one_off_nondestructive_inline_audit.py +209 -0
  260. package/scripts/ai_council/_one_off_phase_2a_budget_rebalance.py +257 -0
  261. package/scripts/ai_council/_one_off_phase_2a_post_revert.py +197 -0
  262. package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
  263. package/scripts/ai_council/_one_off_roundtrip.py +106 -0
  264. package/scripts/ai_council/_one_off_rule_hardening_v1.py +251 -0
  265. package/scripts/ai_council/_one_off_structural_open_questions.py +232 -0
  266. package/scripts/ai_council/_one_off_structural_optimization.py +144 -0
  267. package/scripts/ai_council/_one_off_structural_v3_gaps.py +252 -0
  268. package/scripts/ai_council/_one_off_structural_v3_review.py +240 -0
  269. package/scripts/ai_council/budget_guard.py +172 -0
  270. package/scripts/ai_council/bundler.py +261 -0
  271. package/scripts/ai_council/clients.py +381 -0
  272. package/scripts/ai_council/modes.py +127 -0
  273. package/scripts/ai_council/orchestrator.py +350 -0
  274. package/scripts/ai_council/pricing.py +213 -0
  275. package/scripts/ai_council/project_context.py +159 -0
  276. package/scripts/ai_council/prompts.py +232 -0
  277. package/scripts/ai_council/session.py +144 -0
  278. package/scripts/check_always_budget.py +444 -0
  279. package/scripts/check_augmentignore.py +69 -0
  280. package/scripts/check_cluster_patterns.py +159 -0
  281. package/scripts/check_command_count_messaging.py +127 -0
  282. package/scripts/check_context_paths.py +201 -0
  283. package/scripts/check_no_roadmap_refs.py +155 -0
  284. package/scripts/check_phase_coupling.py +148 -0
  285. package/scripts/check_portability.py +57 -0
  286. package/scripts/check_public_catalog_links.py +122 -0
  287. package/scripts/check_references.py +33 -3
  288. package/scripts/check_roadmap_trackable.py +111 -0
  289. package/scripts/check_safety_floor_untouched.py +125 -0
  290. package/scripts/command_suggester/cooldown.py +1 -1
  291. package/scripts/command_suggester/loader.py +4 -1
  292. package/scripts/compress.py +59 -13
  293. package/scripts/generate_index.py +270 -0
  294. package/scripts/generate_ownership_matrix.py +323 -0
  295. package/scripts/hooks/augment-roadmap-progress.sh +57 -0
  296. package/scripts/install.py +49 -28
  297. package/scripts/install_anthropic_key.sh +5 -0
  298. package/scripts/install_openai_key.sh +106 -0
  299. package/scripts/lint_load_context.py +163 -0
  300. package/scripts/lint_no_new_atomic_commands.py +12 -11
  301. package/scripts/requirements-evals.txt +1 -0
  302. package/scripts/roadmap_progress_hook.py +159 -0
  303. package/scripts/schemas/command.schema.json +22 -1
  304. package/scripts/schemas/rule.schema.json +10 -0
  305. package/scripts/skill_linter.py +13 -4
  306. package/scripts/sync_agent_settings.py +26 -3
  307. package/scripts/update_counts.py +16 -4
  308. package/scripts/update_prices.py +124 -0
  309. package/.agent-src/guidelines/php/git.md +0 -96
  310. package/.agent-src/rules/command-suggestion.md +0 -134
  311. /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
  312. /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
  313. /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
  314. /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
  315. /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
  316. /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
  317. /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
  318. /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
  319. /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
  320. /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
  321. /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
  322. /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
  323. /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
  324. /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
  325. /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
  326. /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
  327. /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
  328. /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
  329. /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
  330. /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
  331. /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
  332. /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
  333. /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
  334. /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
  335. /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
  336. /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
  337. /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
  338. /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
  339. /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
  340. /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
  341. /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
  342. /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
  343. /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
  344. /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
  345. /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
  346. /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
  347. /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
  348. /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
  349. /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
  350. /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
  351. /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
  352. /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
  353. /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
  354. /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
@@ -0,0 +1,102 @@
1
+ ---
2
+ audience: maintainers
3
+ status: stable
4
+ stability: stable
5
+ purpose: >
6
+ Locked decision rationale for Phase 3a of the
7
+ road-to-structural-optimization roadmap. The four `judge-*` skills
8
+ are intentionally **not** consolidated under a shared procedure
9
+ context. Future maintainers reading this file should not retry the
10
+ pattern without invalidating the data here.
11
+ ---
12
+
13
+ # Why `judge-*` skills are NOT consolidated
14
+
15
+ A Phase 3a spike evaluated extracting a shared procedure file
16
+ (`contexts/judges/judge-shared-procedure.md`) loaded by all four
17
+ `judge-*` skills. The locked Q1=A shape (separate skills + shared
18
+ procedure context) was implemented and benchmarked. **Outcome: net
19
+ LOC negative.** The pattern is rejected for this family.
20
+
21
+ ## The numbers
22
+
23
+ Spike measurements on `judge-test-coverage` (the smallest persona,
24
+ chosen per roadmap 3a.0):
25
+
26
+ | State | Skill LOC | Shared LOC | Total per family of 4 |
27
+ |---|---|---|---|
28
+ | Baseline (4 separate) | 153 + 157 + 157 + 166 = **633** | 0 | 633 |
29
+ | Slim attempt #1 | 138 | 134 | 4 × 138 + 134 = 686 ❌ |
30
+ | Slim attempt #2 (aggressive) | 133 | 117 | 4 × 133 + 117 = 649 ❌ |
31
+
32
+ The success-criteria threshold from the roadmap (≥ 30 % per-skill
33
+ LOC reduction) maps to 153 → ≤ 107 for `judge-test-coverage`. The
34
+ aggressive attempt landed at 133 — a 13 % reduction. To go further,
35
+ each skill would have to surrender persona-specific content (analysis
36
+ rubric, anti-pattern list, severity definitions, scope-boundary Do
37
+ NOTs) — exactly the content that makes each persona reviewable.
38
+
39
+ ## Why the math doesn't work
40
+
41
+ A judge skill is **not** procedurally complex. Its value is the
42
+ persona surface:
43
+
44
+ - a 6–11 row analysis table tailored to the lens (correctness, security,
45
+ test gaps, code quality)
46
+ - a list of persona-specific anti-patterns and gotchas
47
+ - a severity legend with thresholds calibrated to the lens
48
+ - scope-boundary Do NOTs that route to sibling judges
49
+
50
+ Procedural overhead (verdict semantics, validation scaffold,
51
+ output-format frame, runtime boundary, model fallback) is small in
52
+ absolute terms — extracting it adds a context file but only saves
53
+ ~15–25 LOC per skill. With four skills, the per-skill saving is
54
+ amortized against the shared file once; below five or six skills,
55
+ the structural tax dominates.
56
+
57
+ The same argument applies to procedural duplication in any small
58
+ skill family where the procedural skeleton is short and the persona
59
+ table is the bulk of the file.
60
+
61
+ ## Decision
62
+
63
+ Phase 3a is closed with status **DO NOT CONSOLIDATE**. The four
64
+ `judge-*` skills remain separate, self-contained, and free of
65
+ `load_context:` indirection. Each skill's "Procedure" section carries
66
+ its full procedural body inline. This trades minor maintenance
67
+ duplication for full persona isolation and zero structural tax.
68
+
69
+ Phase 3b (`project-analysis-*`, 8 skills, 959 LOC) and Phase 3c
70
+ (`skill-*`, 4 skills, 782 LOC) **continue independently** per the
71
+ roadmap's "3b/3c continue independently" abort note. The math there
72
+ is more favorable: 8 stack-specific analysis skills share a much
73
+ larger procedural skeleton (project discovery, version resolution,
74
+ docs loading, architecture mapping) than 4 judge skills do.
75
+
76
+ ## Reopening conditions
77
+
78
+ Reopen this decision **only** if at least one of these holds:
79
+
80
+ 1. The `judge-*` family grows to ≥ 6 skills (procedural amortization
81
+ crosses break-even).
82
+ 2. A new persona-orthogonal procedural step is introduced that all
83
+ judges must execute identically (e.g. a CI-integrated verdict
84
+ reporter), and that step is non-trivial (≥ 30 LOC).
85
+ 3. The success-criteria threshold in
86
+ `road-to-structural-optimization.md` § 3a is renegotiated to a
87
+ lower per-skill LOC bar (with explicit justification — the 30 %
88
+ bar exists because anything less is structural noise).
89
+
90
+ Until one of those holds, treat any "let's extract shared procedure
91
+ across the judges" proposal as a regression and cite this file.
92
+
93
+ ## See also
94
+
95
+ - [`persona-voice-rubric`](persona-voice-rubric.md) — the voice
96
+ preservation rubric used during the spike (still applies if a future
97
+ consolidation attempt needs the same check).
98
+ - Sibling judges, all kept inline:
99
+ [`judge-bug-hunter`](../../skills/judge-bug-hunter/SKILL.md),
100
+ [`judge-code-quality`](../../skills/judge-code-quality/SKILL.md),
101
+ [`judge-security-auditor`](../../skills/judge-security-auditor/SKILL.md),
102
+ [`judge-test-coverage`](../../skills/judge-test-coverage/SKILL.md).
@@ -0,0 +1,140 @@
1
+ ---
2
+ stability: beta
3
+ ---
4
+
5
+ # Persona-Voice Rubric for `judge-*` Skills
6
+
7
+ > **Audience:** authors and reviewers of any future `judge-*`
8
+ > consolidation spike. Also loaded via `load_context:` by future
9
+ > `judge-*` slim shapes when an A-shape ships.
10
+
11
+ This rubric defines **what "persona voice" means** for the four
12
+ `judge-*` skills (`judge-bug-hunter`, `judge-code-quality`,
13
+ `judge-security-auditor`, `judge-test-coverage`) and **how to score
14
+ voice preservation** when comparing a slimmed (Option-A: separate skill
15
+ + shared procedure context) output against the current single-file
16
+ baseline. The rubric is the measurement instrument behind the 3a.0.1
17
+ voice gate (≥ 4.0/5) and the 0.5 author + 2-reviewer protocol (avg ≥
18
+ 3.5/5).
19
+
20
+ ## The five dimensions
21
+
22
+ Each dimension scored independently on a 1–5 integer scale. Scorers
23
+ record one numeric score plus one short rationale per dimension.
24
+
25
+ ### 1. Tone
26
+
27
+ The judge's posture toward the diff. Distinctive markers per persona:
28
+
29
+ | Skill | Tone marker |
30
+ |---|---|
31
+ | `judge-bug-hunter` | Skeptical, edge-case-first ("what input breaks this?") |
32
+ | `judge-code-quality` | Reformist, convention-bound ("this clashes with the codebase pattern at X") |
33
+ | `judge-security-auditor` | Adversarial, threat-modeling ("what would an attacker do here?") |
34
+ | `judge-test-coverage` | Falsification-first ("does this test fail without the fix?") |
35
+
36
+ Score 5 = posture indistinguishable from baseline. Score 1 = generic
37
+ "reviewer voice" with no persona signal.
38
+
39
+ ### 2. Vocabulary
40
+
41
+ Domain-specific terms the persona reaches for unprompted. Captured by
42
+ keyword profile from the baseline SKILL.md (e.g., `judge-security-auditor`
43
+ uses *trust boundary*, *sink*, *SSRF*, *mass assignment*;
44
+ `judge-test-coverage` uses *uncovered branch*, *over-mocking*,
45
+ *regression test*, *tautological assertion*).
46
+
47
+ Score 5 = ≥ 80% of baseline keyword profile present in slimmed output
48
+ on a representative diff. Score 1 = < 20% present, or vocabulary leaks
49
+ in from a sibling persona (collision marker — see § 5 below).
50
+
51
+ ### 3. Prompt-shape preservation
52
+
53
+ The structural skeleton of the output (Verdict, Issues, Severity,
54
+ Required fields). Must match the baseline `Output format` block
55
+ verbatim in field order, label spelling, and severity icon set.
56
+
57
+ Score 5 = byte-identical field structure (only finding content
58
+ differs). Score 3 = minor reorder, no missing fields. Score 1 = a
59
+ required field dropped, renamed, or merged.
60
+
61
+ ### 4. Refusal patterns
62
+
63
+ How the judge handles out-of-scope concerns. Each `judge-*` baseline
64
+ explicitly **refuses** to comment on dimensions another judge owns
65
+ (e.g., `judge-test-coverage` refuses to flag correctness or style;
66
+ `judge-security-auditor` refuses to flag pure logic bugs).
67
+
68
+ Score 5 = refusal triggers fire on the same out-of-scope inputs as
69
+ baseline, with the same handoff phrasing ("route to `judge-X`"). Score
70
+ 1 = persona accepts an out-of-scope finding silently (mode-collision
71
+ risk realized).
72
+
73
+ ### 5. Evidence-citation style
74
+
75
+ How findings are anchored to the diff. Baselines all cite `path:LINE`
76
+ with a one-line reason and (where applicable) a "what the test should
77
+ assert" / "what the attacker would do" clause.
78
+
79
+ Score 5 = every finding has the same citation shape as baseline —
80
+ `path:LINE` plus the persona-specific clause (uncovered branch /
81
+ threat class / pattern violated / failing input). Score 1 = findings
82
+ are vague ("there's a problem in the validator") or use a sibling
83
+ persona's citation shape.
84
+
85
+ ## Scoring template
86
+
87
+ For each scored output, fill out the matrix below — once per scorer
88
+ (author + 2 reviewers, see scoring protocol):
89
+
90
+ ```
91
+ Skill under test: judge-<persona>
92
+ Diff sample id: <pr-number-or-fixture-id>
93
+ Baseline output: <attached or hash>
94
+ Slimmed output: <attached or hash>
95
+
96
+ | Dimension | Score (1–5) | Rationale (≤ 30 words) |
97
+ |----------------------------|-------------|--------------------------------|
98
+ | 1. Tone | | |
99
+ | 2. Vocabulary | | |
100
+ | 3. Prompt-shape preservation | | |
101
+ | 4. Refusal patterns | | |
102
+ | 5. Evidence-citation style | | |
103
+ | **Per-scorer mean** | | (sum / 5, one decimal) |
104
+ ```
105
+
106
+ ## Acceptance arithmetic
107
+
108
+ Three independent scorers produce three per-scorer means. The 3a.0.1
109
+ gate fires on **two** thresholds simultaneously:
110
+
111
+ - **Aggregate mean** (all dimensions, all scorers) **≥ 3.5/5** —
112
+ matches the 0.5.1 protocol.
113
+ - **Tone dimension specifically** mean **≥ 4.0/5** — matches the
114
+ 3a.0.1 voice-preservation kill-criterion. Tone is the load-bearing
115
+ dimension; vocabulary, prompt-shape, and citation style mostly track
116
+ it.
117
+
118
+ Either threshold missed → escalate to council per 0.5.1 (any
119
+ individual scorer < 3.0 also escalates). Council either revises the
120
+ slim shape (one rework only) or invokes the 3a.0.2 abort branch and
121
+ files `contexts/judges/no-consolidate-rationale.md`.
122
+
123
+ ## What this rubric does NOT measure
124
+
125
+ - **Verdict parity** — covered separately by 3a.3 (cosine-token
126
+ similarity ≤ 10% drift, 100% verdict parity).
127
+ - **Latency budget** — covered by 3a.0.1 (≤ +50ms vs. baseline).
128
+ - **Mode-collision proxy** — explicit security-only-diff probe under
129
+ 3a.0.1. Failure here aborts 3a regardless of voice score.
130
+ - **Implementation correctness** — judges read diffs, this rubric
131
+ reads judges. The diff under test is a fixture, not the artefact
132
+ graded.
133
+
134
+ ## References
135
+
136
+ - [`docs/contracts/context-paths.md`](../../../docs/contracts/context-paths.md)
137
+ — locked path tree (this file lives at `contexts/judges/`).
138
+ - [`docs/contracts/load-context-schema.md`](../../../docs/contracts/load-context-schema.md)
139
+ — frontmatter contract for citing this rubric from a slimmed `judge-*`
140
+ skill in Phase 3a.2.
@@ -99,5 +99,5 @@ cast (usually Core-6 for review skills, empty for others).
99
99
 
100
100
  ## Related
101
101
 
102
- - [`../guidelines/agent-infra/role-contracts.md`](../guidelines/agent-infra/role-contracts.md) — workflow modes personas compose with
102
+ - [`../../docs/guidelines/agent-infra/role-contracts.md`](../../docs/guidelines/agent-infra/role-contracts.md) — workflow modes personas compose with
103
103
  - [`../rules/artifact-drafting-protocol.md`](../rules/artifact-drafting-protocol.md) — mandatory per new persona
@@ -0,0 +1,24 @@
1
+ ---
2
+ type: "always"
3
+ description: "Priority Index for the four authority rules — Hard Floor → Permission Gate → Commit Default → Trivial-vs-Blocking; read first, route to canonical rule"
4
+ alwaysApply: true
5
+ source: package
6
+ ---
7
+
8
+ # Agent Authority — Priority Index
9
+
10
+ Four rules answer **"may the agent do this autonomously?"** Check bands in order; higher band wins.
11
+
12
+ | Band | Trigger | Canonical rule |
13
+ |---|---|---|
14
+ | **1. Hard Floor** | Prod-trunk merge · deploy · push · prod data/infra · whimsical bulk deletion · bulk-deletion or infra commit | [`non-destructive-by-default`](non-destructive-by-default.md) |
15
+ | **2. Permission Gate** | Git op · branch / PR / tag · architectural or library change · scope expansion | [`scope-control`](scope-control.md) |
16
+ | **3. Commit Default** | About to commit — never, unless one of four exceptions fires | [`commit-policy`](commit-policy.md) |
17
+ | **4. Trivial-vs-Blocking** | Routine workflow question — act or ask | [`autonomous-execution`](autonomous-execution.md) |
18
+
19
+ ## Index rules
20
+
21
+ - **Hard Floor wins, always.** No autonomy setting, roadmap step, or standing instruction lifts it.
22
+ - **Higher band wins on conflict.** Commit exception ≠ Hard Floor override; scope permission ≠ commit override.
23
+ - **Index never restates an Iron Law.** Iron Laws live verbatim in canonical files; this router only points.
24
+ - **Unsure → ask.** [`ask-when-uncertain`](ask-when-uncertain.md) is the universal escape hatch.
@@ -10,7 +10,7 @@ source: package
10
10
  ## General Principles
11
11
 
12
12
  - **Controllers are thin** — no business logic, delegate to services.
13
- - **Only Single Action Controllers** — every new controller MUST use `__invoke()`. No multi-action / resource controllers. See `.augment/guidelines/php/controllers.md` for naming conventions.
13
+ - **Only Single Action Controllers** — every new controller MUST use `__invoke()`. No multi-action / resource controllers. See `../../docs/guidelines/php/controllers.md` for naming conventions.
14
14
  - **Every controller needs a FormRequest** — never validate inline with `$request->validate()`. Use a dedicated `FormRequest` subclass.
15
15
  - **Services contain business logic** — calculations, orchestration, validation.
16
16
  - **Models have no business logic** — only relationships, scopes, accessors/mutators.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  type: "auto"
3
3
  alwaysApply: false
4
- description: "Use when the user asks to create a new skill, rule, command, or guideline, or to significantly rewrite an existing one — even if they don't explicitly say 'new artifact' or 'drafting protocol'. Runs a mandatory Understand → Research → Draft sequence before anything is written."
4
+ description: "Creating a new skill, rule, command, or guideline, or significantly rewriting one — runs a mandatory Understand → Research → Draft sequence before any artifact content is written."
5
5
  source: package
6
6
  ---
7
7
 
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  type: "auto"
3
3
  alwaysApply: false
4
- description: "After completing a /implement-ticket or /work phase-step (refine, memory, analyze, plan, implement, test, verify, report) or full task — emit one telemetry:record call with consulted+applied artefact ids when telemetry.artifact_engagement.enabled is true"
4
+ description: "After a /implement-ticket or /work phase-step (refine/memory/analyze/plan/implement/test/verify/report) or full task — emit one telemetry:record call with consulted+applied ids when enabled"
5
5
  source: package
6
+ load_context:
7
+ - .agent-src.uncompressed/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md
6
8
  ---
7
9
 
8
10
  <!-- cloud_safe: noop -->
@@ -15,11 +17,10 @@ Default-off; opt-in via `.agent-settings.yml`. Zero overhead when disabled.
15
17
 
16
18
  The schema, CLI, and storage layer are owned by
17
19
  [`scripts/telemetry/`](../../../scripts/telemetry/) and the
18
- `./agent-config telemetry:record` / `telemetry:status` commands shipped
19
- in Phase 1+2 of the
20
- [`road-to-artifact-engagement-telemetry`](../../../agents/roadmaps/road-to-artifact-engagement-telemetry.md)
21
- roadmap. This rule says **when** to call the CLI, not how the file is
22
- structured.
20
+ `./agent-config telemetry:record` / `telemetry:status` commands. The
21
+ recording contract lives in
22
+ [`docs/contracts/artifact-engagement-flow.md`](../../docs/contracts/artifact-engagement-flow.md).
23
+ This rule says **when** to call the CLI, not how the file is structured.
23
24
 
24
25
  ## Activation gate — read settings ONCE per task, then cache
25
26
 
@@ -60,73 +61,16 @@ consulted three times in the same boundary records once.
60
61
  When in doubt → record as `consulted` only. Over-recording `applied`
61
62
  inflates the engagement signal and defeats the purpose.
62
63
 
63
- ## What to record id-only, no payload
64
-
65
- ```bash
66
- ./agent-config telemetry:record \
67
- --task-id "$TASK_ID" \
68
- --boundary task \
69
- --consulted skills:php-coder \
70
- --consulted skills:eloquent \
71
- --consulted rules:scope-control \
72
- --applied skills:php-coder \
73
- --applied rules:scope-control
74
- ```
75
-
76
- - `--task-id` — the ticket key (`PROJ-123`) for `/implement-ticket`, or a
77
- short opaque slug derived from the prompt for `/work`. **Never** a
78
- branch name, a file path, or a free-text title.
79
- - `--boundary` — `task` or `phase-step`, matching the cadence above.
80
- - `--consulted <kind>:<id>` — repeat per artefact. `<kind>` is one of
81
- `skills`, `rules`, `commands`, `guidelines`, `personas`.
82
- - `--applied <kind>:<id>` — repeat per artefact actually applied.
83
- - Exit `0` always when disabled (silent). Exit `1` on schema validation
84
- failure (rule must NOT swallow this — surface to the user). Exit `2`
85
- on IO failure.
86
-
87
- ## Privacy contract — what NEVER goes into a record
88
-
89
- The CLI rejects most violations on the input boundary, but the agent must
90
- not even attempt these:
91
-
92
- - ❌ File paths (`src/Foo.php`, `tests/...`) — id fields are
93
- artefact identifiers only.
94
- - ❌ Source code, prompt text, ticket body, AC text.
95
- - ❌ Branch names, commit shas, PR numbers, URLs.
96
- - ❌ Secrets, env vars, credentials, customer data.
97
- - ❌ Free-text strings longer than 200 chars (CLI enforces; agent must
98
- not generate).
99
-
100
- When in doubt → **don't record**. A missing event is cheap; a leaked
101
- prompt is not.
102
-
103
- ## Failure modes — DO NOT block the user's task
104
-
105
- - Schema rejection (CLI exit `1`) → log the message internally, continue
106
- the user's task. Do **not** halt the dispatch loop.
107
- - IO failure (CLI exit `2`) → same. The telemetry is **observation**, not
108
- a delivery requirement.
109
- - Settings malformed → already handled by the CLI: it falls back to
110
- disabled and exits `0`. Agent treats it as "disabled this task".
111
-
112
- The only error the agent surfaces is when the user explicitly asked for
113
- recording (`telemetry:status` confirms enabled) but no event reached the
114
- log — that is a real bug, not a swallowed error.
115
-
116
- ## What this rule does NOT do
117
-
118
- - Run when `enabled: false` (cost floor is zero — see
119
- [`tests/telemetry/test_cost_floor.py`](../../../tests/telemetry/test_cost_floor.py)).
120
- - Track the agent's tool calls, file reads, or token spend — that is
121
- out of scope, see the roadmap's "out-of-scope" section.
122
- - Decide retirement. Phase 4's aggregator + report renderer are the only
123
- consumers that may interpret the JSONL.
124
- - Run on cloud surfaces (Claude.ai Web, Skills API). The
125
- `cloud_safe: noop` marker keeps it inert there.
64
+ ## Mechanics CLI invocation, privacy contract, failure handling
65
+
66
+ The exact `telemetry:record` call shape with all flags, the privacy
67
+ contract (what NEVER goes into a record), the failure-mode handling
68
+ (do NOT block the user's task), and the "what this rule does NOT do"
69
+ catalog live in
70
+ [`contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md`](../contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md).
126
71
 
127
72
  ## See also
128
73
 
129
- - [`road-to-artifact-engagement-telemetry`](../../../agents/roadmaps/road-to-artifact-engagement-telemetry.md) — phase contract
130
74
  - [`docs/contracts/artifact-engagement-flow.md`](../../docs/contracts/artifact-engagement-flow.md) — recording contract details
131
75
  - [`/implement-ticket`](../commands/implement-ticket.md) and [`/work`](../commands/work.md) — boundary points where this rule fires
132
76
  - [`scripts/telemetry/`](../../../scripts/telemetry/) — engine source
@@ -17,16 +17,13 @@ ONE QUESTION PER TURN. NO EXCEPTIONS.
17
17
  ASK. WAIT FOR THE ANSWER. THEN ASK THE NEXT.
18
18
  ```
19
19
 
20
- This is absolute. Not a default, not a guideline, not "usually".
21
- Every turn that contains a question contains **exactly one** question.
22
- Even if the questions look trivial. Even if they look independent.
23
- Even if they would fit on one screen. Even if batching "feels more
24
- efficient". Full self-check, ordering, and handoff rules under
25
- [How to ask](#how-to-ask).
20
+ Absolute. Not a default, not "usually". Every turn with a question
21
+ has **exactly one**. Even if trivial, independent, or batchable.
22
+ Self-check, ordering, handoff under [How to ask](#how-to-ask).
26
23
 
27
24
  ## When to ask
28
25
 
29
- - Requirement is ambiguous or could be interpreted multiple ways
26
+ - Requirement ambiguous or multi-interpretable
30
27
  - Not 100% sure which approach is correct
31
28
  - About to touch code you haven't fully understood
32
29
  - Choosing between multiple valid approaches
@@ -34,47 +31,35 @@ efficient". Full self-check, ordering, and handoff rules under
34
31
 
35
32
  ## Vague-request triggers — MUST ask
36
33
 
37
- The following patterns are almost always too vague to execute safely. When the user's
38
- request matches one of these without further context, ask **before** touching code:
34
+ These patterns are too vague to execute safely. Match without further
35
+ context ask **before** touching code:
39
36
 
40
- | Pattern | Missing info | Example question |
41
- |---|---|---|
42
- | "improve / optimize this" | What metric? Speed, readability, memory? | "Optimize for what execution speed or readability?" |
43
- | "add caching" | Cache store? Scope? Invalidation rules? | "Which cache driver, and what invalidates it?" |
44
- | "make it better / cleaner" | By what standard? | "What specifically feels wrong in the current code?" |
45
- | "clean up this file" | Dead code? Formatting? Refactor? | "Remove unused code, reformat, or restructure?" |
46
- | "fix this" (without specifying) | What's the symptom? | "What output/behavior is wrong right now?" |
47
- | "refactor X" | Target pattern? Boundaries? | "Refactor toward what smaller methods, extract class, or something else?" |
48
- | "use best practices" | Whose? For what? | "Best practices for what specifically testing, naming, structure?" |
49
- | "handle errors properly" | Which errors? How? Log, retry, propagate? | "For which failure modes, and what should happen on error?" |
50
- | "add a UI / component / tile / page" when the repo mixes frameworks | Which stack? Tailwind? Flux? Livewire? Custom? | "This repo uses {A} and {B} for UI — which one for this?" |
37
+ - "improve / optimize this" metric? speed, readability, memory?
38
+ - "add caching" — store? scope? invalidation?
39
+ - "make it better / cleaner" — by what standard?
40
+ - "clean up this file" dead code? format? refactor?
41
+ - "fix this" (no symptom) what output is wrong?
42
+ - "refactor X" target pattern? boundaries?
43
+ - "use best practices" whose? for what?
44
+ - "handle errors properly" — which errors? log/retry/propagate?
45
+ - "add a UI/component/tile/page" in mixed-framework repowhich stack?
51
46
 
52
- **Escape hatch:** If surrounding context (ticket, open file, prior conversation)
53
- makes the answer unambiguous, proceed — but state the assumption explicitly.
47
+ Example questions per pattern:
48
+ [`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#vague-request-triggers--example-questions).
54
49
 
55
- ## How to ask
56
-
57
- Be specific. Present numbered options (per `user-interaction`). Keep it short.
50
+ **Escape hatch:** if context (ticket, open file, prior turn) makes
51
+ the answer unambiguous, proceed — but state the assumption.
58
52
 
59
- The Iron Law (one question per turn) is at the top of this file.
60
- This section adds the rationale, self-check, and ordering.
61
-
62
- The user must never have to track sub-numbers, scroll through stacked
63
- option blocks, or split their reply across multiple questions. One
64
- question, numbered options (per `user-interaction`), one short
65
- answer, next turn.
53
+ ## How to ask
66
54
 
67
- Rationale why even "trivial" batches fail:
55
+ Numbered options (per `user-interaction`). Short. The Iron Law is at
56
+ the top; this section adds self-check and ordering.
68
57
 
69
- | Situation | Why serial always wins |
70
- |---|---|
71
- | Design / architecture decisions | Answer to Q1 reframes Q2 |
72
- | Naming / command-syntax / API shape | Later choices depend on it |
73
- | Scope / PR boundaries | Changes what the other questions even mean |
74
- | Tool / library selection | Downstream choices branch from it |
75
- | "Which approach: A vs B vs C" | Each answer opens a different follow-up |
76
- | Even "independent" yes/no pairs | User still has to parse two contexts |
77
- | Any question the user has to **think** about, not just pick | Thinking load compounds when stacked |
58
+ The user must never track sub-numbers, scroll stacked option blocks,
59
+ or split a reply across multiple questions. Rationale shorthand: if
60
+ the user has to *think* about an answer, that answer almost always
61
+ reframes the next question. Full rationale:
62
+ [`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#one-question-per-turn--why-serial-always-wins).
78
63
 
79
64
  ### Self-check before asking
80
65
 
@@ -94,7 +79,7 @@ are related".
94
79
  - **Session handoff** (`/agent-handoff`, fresh-chat proposal): ask LAST,
95
80
  after all domain / clarifying questions — so the user's answers can be
96
81
  folded into the handoff prompt. Full rationale in
97
- [`agent-interaction-and-decision-quality`](../guidelines/agent-infra/agent-interaction-and-decision-quality.md#handoff--model-switch-questions).
82
+ [`agent-interaction-and-decision-quality`](../../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md#handoff--model-switch-questions).
98
83
  - **Model switch**: different phase — [`model-recommendation`](model-recommendation.md)
99
84
  triggers at task start with its own STOP-AND-WAIT gate, standalone, not
100
85
  appended to a Q&A block. Do not conflate the two.
@@ -2,6 +2,8 @@
2
2
  type: "auto"
3
3
  description: "Editing or creating files inside .augment/ directory — skills, rules, commands, templates, contexts must be project-agnostic"
4
4
  source: package
5
+ load_context:
6
+ - .agent-src.uncompressed/contexts/communication/rules-auto/augment-portability-mechanics.md
5
7
  ---
6
8
 
7
9
  # Package Portability
@@ -36,76 +38,28 @@ content into any of them pollutes downstream projects or misleads agents.
36
38
 
37
39
  ## Runtime invocations — no `task` commands
38
40
 
39
- Skills, rules, commands, guidelines, personas, and context docs
40
- shipped by this package run in **consumer projects**. Consumer
41
- projects may not have [Task](https://taskfile.dev) installed
42
- they might use npm scripts, Composer scripts, Make, or nothing at
43
- all. A skill that instructs an agent to run `task <something>`
44
- silently breaks in every project without a `Taskfile.yml`.
45
-
46
- **Rule:** Never reference a `task <something>` invocation inside any
47
- artefact file under `.agent-src.uncompressed/{skills,rules,commands,guidelines,personas,contexts}/`
41
+ Skills, rules, commands, guidelines, personas, and context docs run in
42
+ **consumer projects**, which may not have Task installed. **Never**
43
+ reference a `task <something>` invocation inside any artefact file
44
+ under `.agent-src.uncompressed/{skills,rules,commands,guidelines,personas,contexts}/`
48
45
  (and therefore also not in the compressed mirror under `.agent-src/`).
49
- Use the direct script invocation instead:
50
-
51
- | ❌ Forbidden | ✅ Portable |
52
- |---|---|
53
- | `task sync` | `bash scripts/compress.sh --sync` |
54
- | `task sync-check` | `bash scripts/compress.sh --check` |
55
- | `task sync-check-hashes` | `bash scripts/compress.sh --check-hashes` |
56
- | `task sync-changed` | `bash scripts/compress.sh --changed` |
57
- | `task sync-mark-done -- X` | `bash scripts/compress.sh --mark-done X` |
58
- | `task generate-tools` | `python3 scripts/compress.py --generate-tools` |
59
- | `task lint-skills` | `python3 scripts/skill_linter.py --all` |
60
- | `task check-refs` | `python3 scripts/check_references.py` |
61
- | `task check-portability` | `python3 scripts/check_portability.py` |
62
- | `task check-compression` | `python3 scripts/check_compression.py` |
63
- | `task validate-schema` | `python3 scripts/validate_frontmatter.py` |
64
- | `task counts-check` | `python3 scripts/update_counts.py --check` |
65
- | `task roadmap-progress` | `./agent-config roadmap:progress` |
66
- | `task ci` | run each underlying script directly (no single portable equivalent) |
67
-
68
- Task remains a convenience shortcut for maintainers working on the
69
- package repo itself — `task ci` is the recommended local gate before
70
- a PR and lives in `Taskfile.yml`, `AGENTS.md`, and the package README.
71
- Those maintainer-facing surfaces are outside the scope of this rule.
72
- Artefact files must assume Task is absent.
73
-
74
- The detection pattern *"if the consumer has a `Makefile` / build
75
- script, prefer its targets over raw commands"* is still allowed when
76
- the skill adapts to the **consumer's own** tooling (e.g.
77
- `tests-execute` detecting `php artisan test` vs `vendor/bin/pest`).
78
- It is not allowed to reference `task <name>` as the detected target —
79
- every direct invocation must resolve to a real script path.
46
+ Use direct script invocations instead.
80
47
 
81
48
  ## Consumer CLI — `./agent-config`
82
49
 
83
50
  A subset of package scripts is exposed through a project-local CLI
84
51
  wrapper `./agent-config` (written into the project root by the
85
52
  installer, gitignored). Artefacts MUST prefer the CLI over raw
86
- `python3 scripts/…` paths for every command the CLI already covers,
87
- because the raw paths only resolve inside the package repo — in a
88
- consumer project the scripts live under `node_modules/` or `vendor/`.
53
+ `python3 scripts/…` paths for every command the CLI already covers.
89
54
 
90
- | Forbidden in artefacts | ✅ Portable |
91
- |---|---|
92
- | `python3 scripts/mcp_render.py` | `./agent-config mcp:render` |
93
- | `python3 scripts/mcp_render.py --check` | `./agent-config mcp:check` |
94
- | `python3 .augment/scripts/update_roadmap_progress.py` | `./agent-config roadmap:progress` |
95
- | `python3 .augment/scripts/update_roadmap_progress.py --check` | `./agent-config roadmap:progress-check` |
96
- | `bash scripts/first-run.sh` | `./agent-config first-run` |
97
- | `PYTHONPATH=… python3 -m implement_ticket` | `./agent-config implement-ticket` |
98
- | `python3 scripts/memory_lookup.py` | `./agent-config memory:lookup` |
99
- | `python3 scripts/memory_signal.py` | `./agent-config memory:signal` |
100
- | `python3 scripts/memory_hash.py` | `./agent-config memory:hash` |
101
- | `python3 scripts/check_memory.py` | `./agent-config memory:check` |
102
- | `python3 scripts/check_memory_proposal.py` | `./agent-config memory:check-proposal` |
103
- | `python3 scripts/check_proposal.py` | `./agent-config proposal:check` |
104
- | `python3 scripts/refine_ticket_detect.py` | `./agent-config refine-ticket:detect` |
55
+ ## Translation tables see mechanics
105
56
 
106
- Commands not covered by the CLI stay as direct script invocations
107
- (e.g. `bash scripts/compress.sh --sync`) those are maintainer-only
108
- and not reachable from a consumer project anyway.
57
+ The full `task`-to-script translation table, the `./agent-config`
58
+ CLI mapping, and the rationale (Task absence on consumers,
59
+ maintainer-vs-artefact split) all live in
60
+ [`contexts/communication/rules-auto/augment-portability-mechanics.md`](../contexts/communication/rules-auto/augment-portability-mechanics.md).
61
+ Pull it whenever an artefact is about to mention a runtime
62
+ invocation.
109
63
 
110
64
  ## Enforcement
111
65