@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
@@ -17,155 +17,72 @@ NO MOMENTUM EXCEPTION. NO TECHNICAL-CONTEXT EXCEPTION.
17
17
  NO "SWITCH MID-PARAGRAPH". NO "LAST 20 TURNS WERE ENGLISH".
18
18
  ```
19
19
 
20
- **Overrides** conversation momentum, tool-output habits, prior-reply
21
- language, codebase language, open-file language, files-just-edited
22
- language, convenience. First thing to check on every reply, last thing
23
- to check before sending.
24
-
25
- Canonical failure: agent edited English `.md` for many turns; user
26
- types short German (`3`, `weiter`, `mach das`, `und jetzt X`); agent
27
- answers English because momentum wins. **Trigger is the user's last
28
- message, not the turn count.** Length irrelevant — `3` after a German
29
- question still means German continues.
30
-
31
- ### Source of language truth — chat messages ONLY
32
-
33
- ```
34
- THE LANGUAGE SIGNAL IS THE USER'S CHAT MESSAGES. NOTHING ELSE.
35
- OPEN FILES, ROADMAPS, .md CONTENT, TOOL OUTPUT, CODE, COMMIT MESSAGES,
36
- TICKETS, PR DESCRIPTIONS, FILE NAMES — NONE OF THEM COUNT.
37
- ```
38
-
39
- `.md` files in this repo are English by rule (see below) — that says
40
- nothing about chat language. Same for: file contents read via `view` /
41
- `grep`, quoted commits / tickets / PRs / branches, code identifiers,
42
- the agent's own previous replies. Only the most recent **chat message**
43
- sets the language. User opens an English roadmap and types German →
44
- reply in German.
20
+ Trigger is the user's last **chat message** not turn count, open
21
+ file, roadmap, ticket, codebase, `view` / `grep` output, prior reply,
22
+ or files just edited. Short German (`3`, `weiter`, `mach das`) after
23
+ many English turns flips the reply to German.
45
24
 
46
25
  ### Pre-send gate — MANDATORY before every reply
47
26
 
48
- Run silently **before** emitting any tokens:
49
-
50
- 1. **Detect** — language of user's last **chat message** (not the open
51
- file, not the roadmap, not the prior reply).
52
- German signals: "ich", "Du", "nicht", "warum", "wie", "ist", umlauts. <!-- md-language-check: ignore -->
53
- English signals: "I", "you", "is", "the", "how".
54
- Mixed → mirror the **dominant** language; tie → German wins (project default).
55
- 2. **Check** — is drafted prose (not code, not file contents) in that language?
56
- 3. **Rewrite** — if no, rewrite whole prose before sending. No exceptions, no
57
- "just this sentence", no "the technical term is English anyway".
58
- 4. **Confirm** — first sentence must be in target language. No English opener
59
- before switching mid-paragraph.
60
-
61
- ### The rule, spelled out
62
-
63
- - User writes German → **MUST** respond in German (informal "Du", never "Sie").
64
- "Du" capitalized at sentence start, lowercase otherwise.
65
- - User writes English → respond in English.
66
- - User switches mid-conversation → switch on the **very next** reply. No
67
- grace period, no "let me finish this thought in the old language".
68
- - Code blocks, command output, file contents, quoted tool output stay in
69
- their native language. Only the **prose around them** mirrors the user.
70
- - "I've been answering in English for a while" is NOT a reason to keep going.
71
- Trigger is the **latest user message**, not conversation momentum.
72
- - Numbered option lists (per `user-interaction`) mirror the user's language —
73
- `.md` source is English, rendered reply is translated at runtime.
74
-
75
- ### When the user calls out a language slip
76
-
77
- 1. Acknowledge **once**, briefly, in the correct language ("Entschuldigung" /
78
- "Sorry"). One sentence, no excuses.
79
- 2. Switch immediately on the same reply.
80
- 3. Do **not** re-explain the mistake in the wrong language.
81
- 4. Do **not** promise "from now on" — just do it. Only behaviour changes
82
- prove compliance.
83
- 5. If user asks to harden the rule, harden it on this turn — don't defer.
84
-
85
- ### Failure modes to watch for
86
-
87
- - Drafting reply in English first, then "translating the intro" → English
88
- phrasing with German words. Draft in target language from the first token.
89
- - Copy-pasting English option labels from `.md` sources without translating.
90
- - Mixing languages inside a table or bullet list because "the technical term
91
- is English" — surrounding prose must still mirror. Keep proper nouns and
92
- code identifiers as-is; translate everything else.
93
- - Assuming English because "the codebase is English" — codebase language ≠
94
- conversation language.
95
- - Mirroring the **open file** the IDE reports — open files are background
96
- context, not chat messages.
97
- - Mirroring the **roadmap or ticket** being executed — artefacts are English
98
- by `.md` rule; chat language is whatever the user wrote.
99
-
100
- ## Other language rules
101
-
102
- - All code comments must be in English.
103
- - All `.md` documentation files must be in English (see section below). If
104
- an existing file is in German, translate it when you touch it.
105
- - Use two spaces after icons like ❌, ✅, ⚠️ in CLI output. One space is not enough. For other icons, one space is fine.
106
- - Avoid double and triple blank lines in code and output — one blank line is enough.
107
- - Every file MUST end with exactly one newline — no trailing blank lines.
27
+ Run silently before any output:
108
28
 
109
- ## `.md` files are ALWAYS English no exceptions
29
+ 1. **Detect** language of the user's last chat message. Mixed →
30
+ **dominant** language; tie → German (project default).
31
+ 2. **Check** — is drafted prose (not code, not file contents) in
32
+ that language?
33
+ 3. **Rewrite** — if no, rewrite whole prose. No "just this sentence",
34
+ no "technical term is English anyway".
35
+ 4. **Confirm** — first sentence in target language. No English opener
36
+ before switching mid-paragraph.
110
37
 
111
- **Every** piece of text inside `.md` files in `.augment/` and `agents/` must be in English.
112
- This includes:
38
+ ### Spelled out
113
39
 
114
- - Headings, paragraphs, and bullet points
115
- - **Example option labels** (e.g., `> 1. Yes — start implementing`, NOT `> 1. Ja — mit der Umsetzung starten`)
116
- - **Example prompts and questions** (e.g., `"Found X unresolved comments."`, NOT `"X offene Kommentare gefunden."`)
117
- - **Template placeholders and sample output** (e.g., `Progress:`, NOT `Fortschritt:`)
118
- - **ASCII art labels** in formatted output blocks (e.g., `CHANGES:`, NOT `ÄNDERUNGEN:`)
119
- - **Table headers and content**
40
+ - German → respond in German, informal "Du" (never "Sie"). "Du"
41
+ capitalized at sentence start, lowercase otherwise.
42
+ - Code blocks, command output, file contents, and quoted tool output
43
+ stay in their native language; only the **prose around them**
44
+ mirrors the user.
45
+ - Numbered options (per `user-interaction`) — `.md` source English,
46
+ rendered reply translated at runtime.
120
47
 
121
- The agent translates to the user's language **at runtime** when presenting options.
122
- The `.md` source files are the English blueprint — they define WHAT to say, not in which language.
48
+ ### Slip handling
123
49
 
124
- **Wrong** (German in `.md`):
125
- ```
126
- > 1. Interaktiv bei jedem Kommentar nachfragen
127
- > 2. Automatisch — alle selbstständig abarbeiten
128
- ```
50
+ Acknowledge **once**, briefly, in the correct language
51
+ ("Entschuldigung" / "Sorry"). Switch on the same reply. Do **not**
52
+ re-explain in the wrong language; do **not** promise "from now on" —
53
+ just do it.
129
54
 
130
- **Correct** (English in `.md`):
131
- ```
132
- > 1. Interactive — ask before each comment
133
- > 2. Automatic — handle all independently
134
- ```
55
+ Full failure-mode list and wrong-vs-correct examples in
56
+ [`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md).
135
57
 
136
- ### Quoted user-input examples — same rule, with one labeled exception
58
+ ## Other language rules
137
59
 
138
- Common drift pattern: a rule documents trigger phrases the agent
139
- should recognize and writes them as quoted German examples inside
140
- English prose. **Not allowed**, even when demonstrative.
60
+ - Code comments in English.
61
+ - `.md` documentation files in English (see section below).
62
+ Translate existing German `.md` files when you touch them.
63
+ - Two spaces after icons `❌`, `✅`, `⚠️` in CLI output; one space
64
+ for other icons.
65
+ - One blank line max; no double or triple blank lines.
66
+ - Every file ends with exactly one newline.
141
67
 
142
- **Wrong** (DE quote embedded in EN prose):
68
+ ## `.md` files are ALWAYS English — no exceptions
143
69
 
144
- ```md
145
- Single-decision delegation ("für diesen Schritt entscheide du") →
146
- handle that step autonomously.
70
+ **Every** piece of text inside `.md` files in `.augment/`,
71
+ `.agent-src/`, `.agent-src.uncompressed/`, and `agents/` must be in
72
+ English: headings, paragraphs, bullets, option labels, example
73
+ prompts, template placeholders, ASCII-art labels, table headers and
74
+ content. The agent translates to the user's language **at runtime**.
147
75
 
148
- A standing "arbeite selbstständig" never lifts the floor.
149
- ```
76
+ ### Labeled-anchor exception
150
77
 
151
- **Correct** two ways:
78
+ Quoting German examples inside English prose is **not allowed**.
79
+ Two correct ways:
152
80
 
153
- 1. **Translate to English.** Trigger recognition is semantic; the
154
- agent matches intent across languages regardless of the example.
155
- `("you decide for this step")` works as well as the German.
81
+ 1. **Translate to English** trigger recognition is semantic.
156
82
  2. **Use a labeled `DE: … · EN: …` anchor list** when the
157
- multilingual nature of recognition is the point:
158
-
159
- ```md
160
- - DE: "arbeite selbstständig" · "frag nicht jedes Mal" · "tue es einfach"
161
- - EN: "work autonomously" · "don't ask" · "just do it"
162
- ```
163
-
164
- The labeled-anchor block is the **only** allowed location for German
165
- prose in an English `.md` file. Body text, example sentences, prompt
166
- templates, agent-rendered strings, and failure modes must be English.
167
- Reference established phrases abstractly later (e.g. "a standing
168
- autonomy directive") and link back to the anchor block.
83
+ multilingual nature of recognition is the point. This is the
84
+ **only** allowed location for German prose in an English `.md`;
85
+ reference phrases abstractly elsewhere and link to the anchor.
169
86
 
170
87
  ### Detection heuristic
171
88
 
@@ -180,4 +97,4 @@ Before saving an `.md` file under `.augment/`, `.agent-src/`,
180
97
  - Non-English quoted phrases in body text (paragraphs, list items,
181
98
  table cells) when the surrounding prose is English.
182
99
 
183
- Hit → translate the fragment or move it into a `DE: … · EN: …` block.
100
+ Hit → translate it or move it into a `DE: … · EN: …` block.
@@ -1,7 +1,7 @@
1
1
  ---
2
- type: "always"
3
- alwaysApply: true
4
- description: "Minimal safe diff — the smallest change that solves the stated problem; no drive-by edits, no opportunistic refactors, no reformatting of untouched code"
2
+ type: "auto"
3
+ alwaysApply: false
4
+ description: "When writing or reviewing a diff — the smallest change that solves the stated problem; no drive-by edits, no opportunistic refactors, no reformatting of untouched code"
5
5
  source: package
6
6
  ---
7
7
 
@@ -6,34 +6,38 @@ description: "When a CLI tool needed for the task is not installed — ask befor
6
6
 
7
7
  # Missing Tool Handling
8
8
 
9
- When a CLI tool is needed and **not installed** (`command not found`,
10
- `which X` empty), **STOP and ask** before working around it or installing it.
9
+ When a CLI tool is needed to solve the task cleanly and is **not installed**
10
+ (`command not found`, `which X` empty, missing from `$PATH`), **STOP and ask**
11
+ before working around it or installing it.
11
12
 
12
13
  ## The rule
13
14
 
14
- - **Never install silently.** Installing changes the user's system —
15
- requires explicit permission (`scope-control`).
15
+ - **Never install silently.** Installing is an action that changes the user's
16
+ system — it requires explicit permission (see `scope-control`).
16
17
  - **Never silently work around** a missing tool with a brittle substitute
17
- (awk for YAML, `grep` for JSON, string splicing) when a proper tool is
18
- the standard answer. The workaround hides the dependency.
19
- - **Ask with numbered options** (`user-interaction`). State the tool, why
20
- it fits, the install command, and the workaround cost.
18
+ (awk-regex for YAML, `grep` for JSON, string splicing) when a proper tool
19
+ is the standard answer for the job. The workaround hides the real
20
+ dependency and makes the decision invisible to the user.
21
+ - **Ask with numbered options** (see `user-interaction`). State which tool,
22
+ why it's the best fit, the install command, and the workaround cost.
21
23
 
22
24
  ## When it applies
23
25
 
24
- - Shell returns `command not found` for a tool the task genuinely needs
25
- (yq, jq, rtk, gh, docker, mkcert, terraform, …).
26
- - A skill or spike needs the idiomatic tool but it's absent locally.
27
- - You're about to substitute a verbose script for a single tool call
26
+ - Any shell command fails with `command not found` for a tool the task
27
+ genuinely needs (yq, jq, rtk, gh, docker, mkcert, terraform, …).
28
+ - A skill or spike requires a tool that is the idiomatic answer but is
29
+ absent locally.
30
+ - You are about to substitute a verbose script for a single tool invocation
28
31
  because the tool isn't there.
29
32
 
30
33
  ## When it does NOT apply
31
34
 
32
- - Nice-to-have clean substitute already present (e.g. `jq` available →
33
- no `yq` needed just for JSON).
34
- - Tool is forbidden by project policy (check `scope-control` and
35
- tool-allowlists first).
36
- - Missing library dependency use `composer`, `npm`, `pip` per package
35
+ - The tool is a nice-to-have and a clean substitute already exists in the
36
+ repo (e.g. `jq` present → no need for `yq` just for JSON).
37
+ - The tool is explicitly forbidden by project policy (check
38
+ `scope-control` and tool-allowlists first).
39
+ - The missing artefact is a library dependency those go through
40
+ `composer require`, `npm install`, `pip install` per the package-manager
37
41
  rules, still with explicit permission.
38
42
 
39
43
  ## How to ask
@@ -49,14 +53,16 @@ When a CLI tool is needed and **not installed** (`command not found`,
49
53
  > 4. Skip this path — I propose a different approach
50
54
  ```
51
55
 
52
- After the user picks: if **install**, wait for confirmation or run the
53
- documented command only if explicitly authorised this turn. If
54
- **workaround**, record the decision in the artefact (comment or ADR).
56
+ After the user picks: if **install**, wait for confirmation that it is
57
+ done (or run the documented install command only if the user explicitly
58
+ authorises it in this turn). If **workaround**, record the decision in
59
+ the artefact (comment or ADR) so the cost is visible.
55
60
 
56
61
  ## Capture the learning
57
62
 
58
- If the same tool keeps missing across tasks, flag it in the project's
59
- setup docs or `.agent-settings.yml` prerequisites.
63
+ If the same tool keeps coming up as missing across multiple tasks, flag
64
+ it in the project's setup docs or `.agent-settings.yml` prerequisites.
65
+ Don't make every session re-discover the gap.
60
66
 
61
67
  See also: `scope-control` · `ask-when-uncertain` · `user-interaction` ·
62
68
  `tool-safety`.
@@ -1,7 +1,7 @@
1
1
  ---
2
- type: "always"
3
- description: "Model recommendation — detect task complexity, suggest optimal model (Opus/Sonnet/GPT), check on task changes and command invocations"
4
- alwaysApply: true
2
+ type: "auto"
3
+ description: "Starting a new task, switching task type, or invoking a command — detect task complexity and recommend the optimal model (Opus/Sonnet/GPT) before any work"
4
+ alwaysApply: false
5
5
  source: package
6
6
  ---
7
7
 
@@ -30,7 +30,7 @@ If the detected model is `gemini`, immediately trigger the Gemini warning (see b
30
30
  `/commit`, `/fix-pr-comments` are sonnet tasks — even if the previous task was opus-level.
31
31
  This is the most commonly missed check. Do NOT skip it.
32
32
 
33
- **Priority over commands rule**: This check runs BEFORE the `slash-commands` rule. If a model switch
33
+ **Priority over commands rule**: This check runs BEFORE the `slash-command-routing-policy` rule. If a model switch
34
34
  is recommended, show the suggestion first. Only after the user responds, execute the command.
35
35
 
36
36
  **If ambiguous** (could be opus or sonnet): default to **sonnet** — cheaper, and the user can escalate.
@@ -0,0 +1,82 @@
1
+ ---
2
+ type: "always"
3
+ description: "No cheap questions — never ask what context answers, never offer Iron-Law-violating options, never stage no-trade-off choices; mode-independent (off / auto / on)"
4
+ alwaysApply: true
5
+ source: package
6
+ ---
7
+
8
+ # No Cheap Questions
9
+
10
+ A question is **cheap** when the answer follows from stated context,
11
+ an option breaches an Iron Law, choices differ only in sequencing /
12
+ format, or one option is obviously dominant. Cheap questions are
13
+ noise, regardless of `personal.autonomy`.
14
+
15
+ Mode-independent. [`autonomous-execution`](autonomous-execution.md)'s
16
+ "trivial" failure modes scope to `personal.autonomy: on` (or
17
+ `auto`-after-opt-in); this rule lifts the **no-trade-off** subset to
18
+ `off` and pre-opt-in `auto` too.
19
+
20
+ ## The Iron Laws
21
+
22
+ ```
23
+ NEVER ASK WHAT THE STATED CONTEXT ALREADY ANSWERS.
24
+ NEVER PRESENT AN OPTION THAT VIOLATES AN IRON LAW.
25
+ NEVER OFFER NUMBERED CHOICES WITHOUT A REAL TRADE-OFF.
26
+ ```
27
+
28
+ Hold in `off`, `auto`, and `on`. Autonomy never lifts them.
29
+
30
+ ## What counts as cheap
31
+
32
+ - **Sequencing** — "Step 2 or 3 next?" when the roadmap orders them.
33
+ - **Format-only** — "Table or paragraph?"; no semantic trade-off.
34
+ - **Commit asks** — forbidden by [`commit-policy`](commit-policy.md).
35
+ - **CI / test asks** — [`verify-before-complete`](verify-before-complete.md) decides, not the user.
36
+ - **Fenced-step re-asks** — "Start Phase 1?" after *"plan only"*; see
37
+ [`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates).
38
+ - **Iron-Law option** — option breaches `commit-policy`,
39
+ `scope-control § git-ops`, or `non-destructive-by-default`.
40
+ - **Context-derived** — answer follows from prior turn / standing
41
+ instruction / roadmap; act, state the assumption inline.
42
+ - **Dominant option** — one choice obviously correct; alternatives
43
+ carry no upside.
44
+ - **Re-ask after decline** — forbidden per
45
+ [`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task).
46
+
47
+ Concrete examples per class:
48
+ [`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#cheap-question-class-catalog--extended-examples).
49
+
50
+ ## Pre-Send Self-Check — MANDATORY before every question
51
+
52
+ Run silently before any numbered-options block:
53
+
54
+ 1. Answer already in stated context?
55
+ 2. Any option violates [`commit-policy`](commit-policy.md), [`scope-control § git-ops`](scope-control.md), or [`non-destructive-by-default`](non-destructive-by-default.md)?
56
+ 3. Options pure sequencing / format, no trade-off?
57
+ 4. One option obviously dominant?
58
+ 5. User fenced next step (*"plan only"*, *"review first"*) → deliver + handback per [`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates).
59
+ 6. User already declined? Re-ask forbidden per [`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task).
60
+
61
+ Any "yes" → **do not ask**. Pick the dominant path, state assumption
62
+ inline (*"assuming X — adjust if wrong"*), hand back. One-question-per-turn
63
+ from [`ask-when-uncertain`](ask-when-uncertain.md) still applies when
64
+ the question is genuine.
65
+
66
+ ## When asking IS allowed
67
+
68
+ - Real architectural / scope decision with non-obvious trade-offs.
69
+ - Vague-request trigger per [`ask-when-uncertain`](ask-when-uncertain.md#vague-request-triggers--must-ask).
70
+ - Security-sensitive path per [`security-sensitive-stop`](security-sensitive-stop.md).
71
+ - Hard Floor in [`non-destructive-by-default`](non-destructive-by-default.md) — confirmation mandatory.
72
+ - Two genuinely-equivalent paths; user preference is the tiebreaker.
73
+
74
+ In doubt → ask. This rule narrows asking, never widens silence.
75
+
76
+ ## Interactions
77
+
78
+ - [`ask-when-uncertain`](ask-when-uncertain.md) — vague triggers + one-question-per-turn; narrows the cheap subset.
79
+ - [`autonomous-execution`](autonomous-execution.md) — mode-scoped triviality there; mode-independent floor here.
80
+ - [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`non-destructive-by-default`](non-destructive-by-default.md) — Iron Laws this rule defends.
81
+ - [`user-interaction`](user-interaction.md) — numbered-options shape; this rule decides whether to send.
82
+ - [`direct-answers`](direct-answers.md) — brevity, no flattery.
@@ -0,0 +1,73 @@
1
+ ---
2
+ type: "auto"
3
+ description: "Adding a link to a specific file in agents/roadmaps/ from any stable artifact (rule, skill, command, context, guideline) — roadmaps are transient; promote durable findings to agents/contexts/ instead"
4
+ alwaysApply: false
5
+ source: package
6
+ ---
7
+
8
+ # No Roadmap References from Stable Artifacts
9
+
10
+ Roadmaps in `agents/roadmaps/` are **transient** — archived, skipped,
11
+ or deleted as work completes. Stable artifacts (rules, skills,
12
+ commands, contexts, guidelines, AGENTS.md, README) outlive them. A
13
+ stable artifact citing a specific roadmap file becomes a broken
14
+ reference the moment that roadmap is deleted.
15
+
16
+ ## The Iron Law
17
+
18
+ ```
19
+ NEVER LINK TO A SPECIFIC FILE IN agents/roadmaps/ FROM A STABLE ARTIFACT.
20
+ PROMOTE DURABLE CONCLUSIONS TO agents/contexts/ AND CITE THAT INSTEAD.
21
+ ```
22
+
23
+ Stable artifact = anything that is **not** a roadmap, council
24
+ session, chat-history archive, commit message, or PR description.
25
+
26
+ ## Forbidden patterns
27
+
28
+ These paths must not appear inside a stable artifact:
29
+
30
+ - `agents/roadmaps/<file>.md`, `agents/roadmaps/archive/<file>.md`,
31
+ `agents/roadmaps/skipped/<file>.md`
32
+
33
+ Stable artifact = any file under `.agent-src.uncompressed/{rules,
34
+ skills,commands,contexts,templates,personas}/`, `agents/contexts/`,
35
+ `docs/guidelines/`, `docs/contracts/`, `docs/architecture.md`,
36
+ `docs/customization.md`, `docs/getting-started.md`, `docs/catalog.md`,
37
+ `AGENTS.md`, `README.md`, `copilot-instructions.md`.
38
+
39
+ CI enforcement: `scripts/check_no_roadmap_refs.py` (companion linter
40
+ — fails the build on any new violation).
41
+
42
+ ## Allowed patterns
43
+
44
+ - `agents/roadmaps/` and its subdirectories as directory mentions
45
+ (talking about the layer, not a specific file)
46
+ - Roadmap → roadmap references (siblings within the transient layer)
47
+ - Council sessions, `.agent-chat-history`, commit messages, PR
48
+ descriptions — transient by construction, not part of the package
49
+ surface
50
+
51
+ ## What to do instead
52
+
53
+ When a stable artifact needs to cite a roadmap finding:
54
+
55
+ 1. Identify the durable conclusion — decision, contract, lesson,
56
+ mechanic.
57
+ 2. Promote it to a context file under `agents/contexts/` (ADR,
58
+ mechanics doc, locked decision). The roadmap can then point at
59
+ the context, not the other way around.
60
+ 3. Reference the context from the stable artifact.
61
+
62
+ Failure mode: *"I'll just link to the roadmap, it's evidence."* The
63
+ roadmap gets archived, then deleted, then the link rots. **Promote
64
+ first, link second.**
65
+
66
+ ## See also
67
+
68
+ - [`docs-sync`](docs-sync.md) — cross-reference sync after rename / delete
69
+ - [`agent-docs`](agent-docs.md) — roadmap layer conventions
70
+ - [`roadmap-progress-sync`](roadmap-progress-sync.md) — sync dashboard on
71
+ roadmap touch
72
+ - [`augment-source-of-truth`](augment-source-of-truth.md) — edit
73
+ `.agent-src.uncompressed/`
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  type: "always"
3
- description: "Agent is never destructive and never endangers production systems — Hard Floor that always asks for production-trunk merges, deploys, pushes, prod data/infra changes, whimsical bulk deletions, and commits containing bulk deletions or infra changes; no autonomy setting, roadmap step, or standing instruction can bypass it"
3
+ description: "Agent is never destructive — Hard Floor always asks for prod-trunk merges, deploys, pushes, prod data/infra, bulk deletions, and bulk-deletion/infra commits; no autonomy or roadmap bypass"
4
4
  alwaysApply: true
5
5
  source: package
6
+ load_context:
7
+ - .agent-src.uncompressed/contexts/authority/destructive-mechanics.md
6
8
  ---
7
9
 
8
10
  # Non-Destructive by Default
@@ -51,57 +53,21 @@ of truth makes it reversible. Lives in
51
53
  ## Bulk deletions during WIP — allowed if task-connected
52
54
 
53
55
  Deletions inside an **active, user-stated task** are allowed in the
54
- working tree, **even multiple files or multiple folders**. The floor
55
- moves to the **commit** (row 6 above), not the in-progress edit.
56
-
57
- **Allowed during WIP (no floor on the edit):**
58
-
59
- - A roadmap step or current task explicitly names the files / folders to remove
60
- - Refactor naturally drops deprecated code the user already agreed is dead
61
- - Cleanup of generated artifacts — `node_modules/`, `dist/`, `.next/`,
62
- build caches, `vendor/` reinstall — never source code
63
- - Single-file edits, single-class refactors, deleting **one** file the
64
- user just named
65
- - Renames and moves (technically delete + add)
66
-
67
- **Floor fires on the edit when the deletion is:**
68
-
69
- - Whimsical — "while I was in there", drive-by cleanup not part of the task
70
- - Unnamed scope — "delete all the old tests" without a list, glob
71
- across unrelated files, "clean up the legacy folder" with no inventory
72
- - ≥5 unrelated files in one operation, outside the current task scope
73
- - Content destruction — `DROP TABLE`, `TRUNCATE`, `git reset --hard`
74
- past unpushed work, database wipes (destroys *content*, not just tree)
75
-
76
- Ambiguous → floor wins. Ask.
77
-
78
- **The commit of task-aligned bulk deletions still needs its own ask.**
79
- A roadmap or task authorizes the *edit*; only the user-this-turn
80
- authorizes the *commit* (row 6). Surface the diff (paths + counts), get
81
- confirmation, then commit.
56
+ working tree, **even multiple files or multiple folders** the Hard
57
+ Floor moves to the **commit** (row 6 above), not the in-progress edit.
58
+ Whimsical / drive-by / unnamed-scope deletions still trip the floor on
59
+ the edit. Full allowed/forbidden lists in
60
+ [`destructive-mechanics`](../contexts/authority/destructive-mechanics.md)
61
+ § Bulk deletions during WIP.
82
62
 
83
63
  ## Failure modes
84
64
 
85
- - Treating a standing autonomy directive as cover for a Hard-Floor
86
- action. Standing autonomy never lifts the floor; merging to `main`,
87
- deploying, pushing, prod-data edits, or whimsical `rm -rf <dir>`
88
- always ask.
89
- - Reading a roadmap step that says "deploy to staging" or
90
- "merge into main" as authorization. The roadmap can sequence the
91
- work; only the user-this-turn can authorize the floor crossing.
92
- - Refusing to delete files the user already named because "the floor
93
- fires on `rm`". It does not — task-aligned WIP deletions are
94
- allowed, even multi-folder. The floor fires when the deletion is
95
- whimsical, unscoped, or about to be committed.
96
- - Committing a diff that removes a directory, deletes ≥5 unrelated
97
- files, or touches Terraform / k8s manifests / Ansible without
98
- surfacing the diff first — even when [`commit-policy`](commit-policy.md)
99
- otherwise authorizes commits (e.g. `/commit-in-chunks`, roadmap
100
- pre-scan, an explicit "commit this now"). Bulk-deletion / infra
101
- commits need their own ask, every time.
102
- - Reading a roadmap step listing files to delete as authorization to
103
- *commit* the deletion. The step authorizes the *edit*; the commit
104
- is row 6 of the Hard Floor and needs its own confirmation.
65
+ The full failure-mode catalog (autonomy-as-cover, roadmap-as-authorization,
66
+ refusing-named-deletions, commit-without-diff-surface,
67
+ roadmap-step-≠-commit-authorization) lives in
68
+ [`destructive-mechanics`](../contexts/authority/destructive-mechanics.md)
69
+ § Failure modes. Reach for it when a Hard-Floor situation feels
70
+ ambiguous; the rule itself stays focused on the trigger table.
105
71
 
106
72
  ## Cloud Behavior
107
73
 
@@ -1,7 +1,7 @@
1
1
  ---
2
- type: "always"
3
- description: "First-run gatewhen onboarding.onboarded is false in .agent-settings.yml, prompt the user to run /onboard before anything else"
4
- alwaysApply: true
2
+ type: "auto"
3
+ description: "First turn of a conversation on a project check onboarding.onboarded in .agent-settings.yml; when false, prompt the user to run /onboard before executing any other request"
4
+ alwaysApply: false
5
5
  source: package
6
6
  ---
7
7
 
@@ -73,7 +73,7 @@ gate. This protects projects that were set up before this rule shipped.
73
73
  conversation, max.
74
74
  - Replace normal settings edits. Mid-life changes are ad-hoc (edit the
75
75
  file directly or ask the agent, which follows
76
- [`layered-settings`](../guidelines/agent-infra/layered-settings.md#section-aware-merge-rules));
76
+ [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules));
77
77
  this rule is a one-time gate.
78
78
  - Run on every agent turn. First turn only.
79
79
 
@@ -89,6 +89,6 @@ gate. This protects projects that were set up before this rule shipped.
89
89
  ## See also
90
90
 
91
91
  - [`/onboard`](../commands/onboard.md) — the command this gate invokes
92
- - [`layered-settings`](../guidelines/agent-infra/layered-settings.md) — merge rules for mid-life edits
92
+ - [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — merge rules for mid-life edits
93
93
  - [`agent-settings` template](../templates/agent-settings.md) — `onboarding.onboarded` reference
94
94
  - [`rule-type-governance`](rule-type-governance.md) — why this is `always`