@event4u/agent-config 1.14.0 → 1.16.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 (293) hide show
  1. package/.agent-src/commands/agent-handoff.md +1 -1
  2. package/.agent-src/commands/bug-fix.md +3 -3
  3. package/.agent-src/commands/bug-investigate.md +2 -2
  4. package/.agent-src/commands/chat-history-checkpoint.md +3 -3
  5. package/.agent-src/commands/chat-history-clear.md +2 -2
  6. package/.agent-src/commands/chat-history-resume.md +2 -2
  7. package/.agent-src/commands/chat-history.md +3 -3
  8. package/.agent-src/commands/check-current-md.md +44 -33
  9. package/.agent-src/commands/commit-in-chunks.md +43 -23
  10. package/.agent-src/commands/compress.md +34 -2
  11. package/.agent-src/commands/council-design.md +96 -0
  12. package/.agent-src/commands/council-optimize.md +115 -0
  13. package/.agent-src/commands/council-pr.md +123 -0
  14. package/.agent-src/commands/council.md +219 -0
  15. package/.agent-src/commands/create-pr.md +23 -0
  16. package/.agent-src/commands/do-and-judge.md +3 -3
  17. package/.agent-src/commands/do-in-steps.md +4 -4
  18. package/.agent-src/commands/e2e-heal.md +1 -1
  19. package/.agent-src/commands/e2e-plan.md +1 -1
  20. package/.agent-src/commands/feature-dev.md +8 -0
  21. package/.agent-src/commands/feature-explore.md +6 -1
  22. package/.agent-src/commands/feature-plan.md +33 -2
  23. package/.agent-src/commands/feature-refactor.md +5 -0
  24. package/.agent-src/commands/feature-roadmap.md +8 -3
  25. package/.agent-src/commands/feature.md +58 -0
  26. package/.agent-src/commands/fix-ci.md +5 -0
  27. package/.agent-src/commands/fix-portability.md +7 -2
  28. package/.agent-src/commands/fix-pr-bot-comments.md +5 -0
  29. package/.agent-src/commands/fix-pr-comments.md +5 -0
  30. package/.agent-src/commands/fix-pr-developer-comments.md +5 -0
  31. package/.agent-src/commands/fix-references.md +5 -0
  32. package/.agent-src/commands/fix-seeder.md +5 -0
  33. package/.agent-src/commands/fix.md +60 -0
  34. package/.agent-src/commands/jira-ticket.md +1 -1
  35. package/.agent-src/commands/judge.md +1 -1
  36. package/.agent-src/commands/memory-add.md +3 -3
  37. package/.agent-src/commands/memory-full.md +2 -2
  38. package/.agent-src/commands/memory-promote.md +2 -2
  39. package/.agent-src/commands/mode.md +5 -5
  40. package/.agent-src/commands/onboard.md +17 -8
  41. package/.agent-src/commands/optimize-agents.md +6 -1
  42. package/.agent-src/commands/optimize-augmentignore.md +14 -0
  43. package/.agent-src/commands/optimize-rtk-filters.md +5 -0
  44. package/.agent-src/commands/optimize-skills.md +6 -1
  45. package/.agent-src/commands/optimize.md +54 -0
  46. package/.agent-src/commands/propose-memory.md +2 -2
  47. package/.agent-src/commands/refine-ticket.md +9 -7
  48. package/.agent-src/commands/review-changes.md +61 -9
  49. package/.agent-src/commands/review-routing.md +1 -1
  50. package/.agent-src/commands/roadmap-create.md +42 -4
  51. package/.agent-src/commands/roadmap-execute.md +9 -7
  52. package/.agent-src/commands/set-cost-profile.md +11 -3
  53. package/.agent-src/commands/sync-agent-settings.md +11 -2
  54. package/.agent-src/commands/tests-create.md +1 -1
  55. package/.agent-src/commands/tests-execute.md +2 -3
  56. package/.agent-src/commands/upstream-contribute.md +1 -1
  57. package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
  58. package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
  59. package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
  60. package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
  61. package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
  62. package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
  63. package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
  64. package/.agent-src/personas/README.md +1 -1
  65. package/.agent-src/rules/agent-authority.md +24 -0
  66. package/.agent-src/rules/architecture.md +1 -1
  67. package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
  68. package/.agent-src/rules/artifact-engagement-recording.md +2 -2
  69. package/.agent-src/rules/ask-when-uncertain.md +1 -1
  70. package/.agent-src/rules/augment-portability.md +56 -37
  71. package/.agent-src/rules/autonomous-execution.md +78 -114
  72. package/.agent-src/rules/capture-learnings.md +1 -1
  73. package/.agent-src/rules/chat-history-cadence.md +109 -0
  74. package/.agent-src/rules/chat-history-ownership.md +123 -0
  75. package/.agent-src/rules/chat-history-visibility.md +96 -0
  76. package/.agent-src/rules/cli-output-handling.md +1 -1
  77. package/.agent-src/rules/{command-suggestion.md → command-suggestion-policy.md} +10 -9
  78. package/.agent-src/rules/commit-conventions.md +1 -1
  79. package/.agent-src/rules/commit-policy.md +43 -61
  80. package/.agent-src/rules/context-hygiene.md +3 -3
  81. package/.agent-src/rules/direct-answers.md +2 -2
  82. package/.agent-src/rules/docs-sync.md +1 -1
  83. package/.agent-src/rules/e2e-testing.md +1 -1
  84. package/.agent-src/rules/guidelines.md +4 -4
  85. package/.agent-src/rules/improve-before-implement.md +2 -2
  86. package/.agent-src/rules/language-and-tone.md +41 -96
  87. package/.agent-src/rules/minimal-safe-diff.md +3 -3
  88. package/.agent-src/rules/model-recommendation.md +4 -4
  89. package/.agent-src/rules/no-cheap-questions.md +89 -0
  90. package/.agent-src/rules/non-destructive-by-default.md +25 -59
  91. package/.agent-src/rules/onboarding-gate.md +5 -5
  92. package/.agent-src/rules/review-routing-awareness.md +9 -9
  93. package/.agent-src/rules/roadmap-progress-sync.md +132 -80
  94. package/.agent-src/rules/role-mode-adherence.md +3 -3
  95. package/.agent-src/rules/scope-control.md +65 -46
  96. package/.agent-src/rules/security-sensitive-stop.md +2 -2
  97. package/.agent-src/rules/size-enforcement.md +3 -2
  98. package/.agent-src/rules/think-before-action.md +5 -5
  99. package/.agent-src/rules/token-efficiency.md +4 -4
  100. package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +3 -3
  101. package/.agent-src/rules/user-interaction.md +31 -7
  102. package/.agent-src/rules/verify-before-complete.md +12 -67
  103. package/.agent-src/scripts/update_roadmap_progress.py +65 -8
  104. package/.agent-src/skills/ai-council/SKILL.md +333 -0
  105. package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
  106. package/.agent-src/skills/blade-ui/SKILL.md +30 -11
  107. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
  108. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
  109. package/.agent-src/skills/command-routing/SKILL.md +1 -1
  110. package/.agent-src/skills/command-writing/SKILL.md +16 -5
  111. package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -1
  112. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
  113. package/.agent-src/skills/developer-like-execution/SKILL.md +2 -2
  114. package/.agent-src/skills/existing-ui-audit/SKILL.md +24 -9
  115. package/.agent-src/skills/fe-design/SKILL.md +20 -15
  116. package/.agent-src/skills/file-editor/SKILL.md +9 -0
  117. package/.agent-src/skills/flux/SKILL.md +1 -1
  118. package/.agent-src/skills/git-workflow/SKILL.md +1 -1
  119. package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
  120. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
  121. package/.agent-src/skills/livewire/SKILL.md +27 -8
  122. package/.agent-src/skills/override-management/SKILL.md +2 -2
  123. package/.agent-src/skills/php-coder/SKILL.md +1 -1
  124. package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
  125. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
  126. package/.agent-src/skills/readme-writing/SKILL.md +1 -1
  127. package/.agent-src/skills/readme-writing-package/SKILL.md +1 -1
  128. package/.agent-src/skills/receiving-code-review/SKILL.md +1 -1
  129. package/.agent-src/skills/refine-ticket/SKILL.md +30 -24
  130. package/.agent-src/skills/review-routing/SKILL.md +2 -2
  131. package/.agent-src/skills/roadmap-management/SKILL.md +22 -16
  132. package/.agent-src/skills/rule-writing/SKILL.md +1 -1
  133. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
  134. package/.agent-src/skills/skill-writing/SKILL.md +6 -6
  135. package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
  136. package/.agent-src/skills/systematic-debugging/SKILL.md +1 -1
  137. package/.agent-src/skills/upstream-contribute/SKILL.md +3 -3
  138. package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
  139. package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +2 -2
  140. package/.agent-src/templates/agent-settings.md +9 -9
  141. package/.agent-src/templates/contexts/auth-model.md +1 -1
  142. package/.agent-src/templates/roadmaps.md +9 -8
  143. package/.agent-src/templates/scripts/README.md +2 -2
  144. package/.agent-src/templates/scripts/memory_lookup.py +1 -1
  145. package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
  146. package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
  147. package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
  148. package/.agent-src/templates/scripts/telemetry_record.py +14 -1
  149. package/.agent-src/templates/scripts/work_engine/__init__.py +2 -2
  150. package/.agent-src/templates/scripts/work_engine/cli.py +64 -461
  151. package/.agent-src/templates/scripts/work_engine/cli_args.py +116 -0
  152. package/.agent-src/templates/scripts/work_engine/delivery_state.py +3 -3
  153. package/.agent-src/templates/scripts/work_engine/directives/backend/__init__.py +1 -1
  154. package/.agent-src/templates/scripts/work_engine/directives/backend/implement.py +1 -1
  155. package/.agent-src/templates/scripts/work_engine/directives/backend/memory.py +1 -1
  156. package/.agent-src/templates/scripts/work_engine/directives/backend/plan.py +1 -1
  157. package/.agent-src/templates/scripts/work_engine/directives/backend/report.py +1 -1
  158. package/.agent-src/templates/scripts/work_engine/dispatcher.py +1 -1
  159. package/.agent-src/templates/scripts/work_engine/emitters.py +43 -0
  160. package/.agent-src/templates/scripts/work_engine/errors.py +19 -0
  161. package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +76 -0
  162. package/.agent-src/templates/scripts/work_engine/input_builders.py +163 -0
  163. package/.agent-src/templates/scripts/work_engine/migration/v0_to_v1.py +34 -2
  164. package/.agent-src/templates/scripts/work_engine/persona_policy.py +1 -1
  165. package/.agent-src/templates/scripts/work_engine/resolvers/prompt.py +1 -1
  166. package/.agent-src/templates/scripts/work_engine/state_io.py +202 -0
  167. package/.claude-plugin/marketplace.json +10 -2
  168. package/AGENTS.md +16 -12
  169. package/CHANGELOG.md +206 -9
  170. package/README.md +51 -52
  171. package/config/agent-settings.template.yml +58 -1
  172. package/config/gitignore-block.txt +3 -0
  173. package/docs/MIGRATION.md +122 -0
  174. package/docs/architecture.md +83 -34
  175. package/docs/catalog.md +331 -0
  176. package/docs/contracts/STABILITY.md +134 -0
  177. package/docs/contracts/adr-chat-history-split.md +132 -0
  178. package/docs/contracts/adr-command-suggestion.md +146 -0
  179. package/docs/contracts/adr-implement-ticket-runtime.md +122 -0
  180. package/docs/contracts/adr-product-ui-track.md +384 -0
  181. package/docs/contracts/adr-prompt-driven-execution.md +187 -0
  182. package/docs/contracts/agent-memory-contract.md +149 -0
  183. package/docs/contracts/artifact-engagement-flow.md +262 -0
  184. package/docs/contracts/command-clusters.md +126 -0
  185. package/docs/contracts/command-suggestion-flow.md +148 -0
  186. package/docs/contracts/implement-ticket-flow.md +628 -0
  187. package/docs/contracts/linear-ai-rules-inclusion.md +143 -0
  188. package/docs/contracts/linear-ai-three-layers.md +131 -0
  189. package/docs/contracts/load-context-schema.md +186 -0
  190. package/docs/contracts/rule-interactions.md +107 -0
  191. package/docs/contracts/rule-interactions.yml +238 -0
  192. package/docs/contracts/rule-priority-hierarchy.md +87 -0
  193. package/docs/contracts/ui-stack-extension.md +236 -0
  194. package/docs/contracts/ui-track-flow.md +338 -0
  195. package/docs/customization.md +14 -0
  196. package/docs/end-to-end-walkthroughs.md +165 -0
  197. package/docs/getting-started.md +27 -9
  198. package/docs/github-topics.md +12 -3
  199. package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
  200. package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
  201. package/docs/guidelines/php/git.md +164 -0
  202. package/docs/installation.md +42 -6
  203. package/docs/migrations/commands-1.15.0.md +112 -0
  204. package/docs/showcase.md +9 -4
  205. package/docs/skills-catalog.md +14 -8
  206. package/docs/ui-track-mental-model.md +121 -0
  207. package/llms.txt +13 -7
  208. package/package.json +1 -1
  209. package/scripts/agent-config +23 -0
  210. package/scripts/ai_council/__init__.py +39 -0
  211. package/scripts/ai_council/_default_prices.py +41 -0
  212. package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
  213. package/scripts/ai_council/_one_off_roundtrip.py +106 -0
  214. package/scripts/ai_council/budget_guard.py +172 -0
  215. package/scripts/ai_council/bundler.py +261 -0
  216. package/scripts/ai_council/clients.py +381 -0
  217. package/scripts/ai_council/modes.py +127 -0
  218. package/scripts/ai_council/orchestrator.py +350 -0
  219. package/scripts/ai_council/pricing.py +213 -0
  220. package/scripts/ai_council/project_context.py +159 -0
  221. package/scripts/ai_council/prompts.py +232 -0
  222. package/scripts/ai_council/session.py +144 -0
  223. package/scripts/build_linear_digest.py +4 -4
  224. package/scripts/check_always_budget.py +126 -0
  225. package/scripts/check_augmentignore.py +69 -0
  226. package/scripts/check_command_count_messaging.py +120 -0
  227. package/scripts/check_portability.py +57 -0
  228. package/scripts/check_public_catalog_links.py +122 -0
  229. package/scripts/check_public_links.py +185 -0
  230. package/scripts/check_references.py +5 -1
  231. package/scripts/check_roadmap_trackable.py +111 -0
  232. package/scripts/command_suggester/cooldown.py +1 -1
  233. package/scripts/generate_index.py +266 -0
  234. package/scripts/install_anthropic_key.sh +5 -0
  235. package/scripts/install_openai_key.sh +106 -0
  236. package/scripts/lint_load_context.py +163 -0
  237. package/scripts/lint_no_new_atomic_commands.py +179 -0
  238. package/scripts/lint_rule_interactions.py +149 -0
  239. package/scripts/memory_lookup.py +1 -1
  240. package/scripts/release.py +297 -64
  241. package/scripts/schemas/command.schema.json +20 -0
  242. package/scripts/schemas/rule.schema.json +10 -0
  243. package/scripts/skill_linter.py +26 -4
  244. package/scripts/sync_agent_settings.py +1 -1
  245. package/scripts/update_counts.py +19 -4
  246. package/scripts/update_prices.py +124 -0
  247. package/.agent-src/guidelines/php/git.md +0 -96
  248. package/.agent-src/rules/chat-history.md +0 -200
  249. /package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +0 -0
  250. /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
  251. /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
  252. /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
  253. /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
  254. /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
  255. /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
  256. /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
  257. /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
  258. /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
  259. /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
  260. /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
  261. /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
  262. /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
  263. /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
  264. /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
  265. /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
  266. /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
  267. /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
  268. /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
  269. /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
  270. /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
  271. /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
  272. /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
  273. /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
  274. /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
  275. /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
  276. /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
  277. /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
  278. /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
  279. /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
  280. /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
  281. /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
  282. /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
  283. /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
  284. /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
  285. /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
  286. /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
  287. /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
  288. /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
  289. /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
  290. /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
  291. /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
  292. /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
  293. /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
@@ -61,4 +61,4 @@ ci(lint): add skill-lint workflow
61
61
  docs(roadmap): add phase 3 implementation plan
62
62
  ```
63
63
 
64
- → Type selection rules, anti-patterns, decision checklist: `guidelines/php/git.md`
64
+ → Type selection rules, anti-patterns, decision checklist: `docs/guidelines/php/git.md`
@@ -3,14 +3,16 @@ type: "always"
3
3
  description: "Commit policy — never commit and never ask about committing unless the user said so this turn, the roadmap authorizes it, or a commit command is invoked"
4
4
  alwaysApply: true
5
5
  source: package
6
+ load_context:
7
+ - .agent-src.uncompressed/contexts/authority/commit-mechanics.md
6
8
  ---
7
9
 
8
10
  # Commit Policy
9
11
 
10
- Local commits don't change remote state, but committing prematurely
11
- makes review harder. **Canonical** rule, referenced by
12
- [`autonomous-execution`](autonomous-execution.md),
13
- [`scope-control`](scope-control.md), and roadmap commands.
12
+ Local commits do not change remote state, but committing prematurely
13
+ makes review harder. This is the **canonical** rule for committing,
14
+ referenced by [`autonomous-execution`](autonomous-execution.md),
15
+ [`scope-control`](scope-control.md), and the roadmap commands.
14
16
 
15
17
  ## The Iron Law
16
18
 
@@ -20,80 +22,60 @@ EXCEPTIONS ARE EXPLICIT, NOT INFERRED.
20
22
  ```
21
23
 
22
24
  Applies regardless of `personal.autonomy`, conversation momentum, or
23
- "clean stopping point". Default is **no commit, no question**.
25
+ "but it's a clean stopping point". Default is **no commit, no
26
+ question**.
24
27
 
25
28
  ## Exceptions — when committing IS allowed
26
29
 
27
- Four ways only:
30
+ Exactly four ways the agent may commit:
28
31
 
29
32
  1. **User says so this turn** — explicit phrase like "commit this now",
30
- "go ahead and commit". This commit only, not standing.
31
- 2. **Standing instruction not yet revoked** — earlier "commit after
32
- every phase" or similar, not yet revoked. Cache and honor.
33
+ "go ahead and commit". Permission is for **this commit only**, not
34
+ standing.
35
+ 2. **Standing instruction not yet revoked** user said earlier in
36
+ the conversation "commit after every phase" or similar, and has not
37
+ revoked it. Cache and honor.
33
38
  3. **Commit command invoked** — `/commit` (with confirmation) or
34
39
  `/commit-in-chunks` (auto-split, no confirmation).
35
- 4. **Roadmap authorization** — roadmap lists explicit commit steps
36
- and user invoked execution. See [Roadmap-authorized commits](#roadmap-authorized-commits).
40
+ 4. **Roadmap authorization** — the roadmap file lists explicit commit
41
+ steps and the user invoked roadmap execution.
37
42
 
38
- Anything else → no commit.
39
-
40
- ## Hard Floor still applies — bulk deletions and infra changes
41
-
42
- Even when one of the four exceptions above authorizes a commit, the
43
- [`non-destructive-by-default`](non-destructive-by-default.md) Hard
44
- Floor still fires when the diff:
45
-
46
- - Removes a directory
47
- - Deletes ≥5 unrelated files
48
- - Touches Terraform / Pulumi / k8s manifests / Ansible / cloud-config
49
-
50
- In those cases, **surface the diff** (paths + counts) and confirm
51
- this turn before committing — even under `/commit-in-chunks`,
52
- roadmap pre-scan authorization, or an explicit "commit this now". The
53
- four exceptions cover *whether* commits happen; the Hard Floor covers
54
- *which diffs* still need a separate confirmation.
43
+ Anything else → no commit. Hard Floor (bulk deletions, infra changes)
44
+ still fires on top of any exception — see
45
+ [`commit-mechanics`](../contexts/authority/commit-mechanics.md) for
46
+ the diff triggers and the roadmap-authorized commit flow.
55
47
 
56
48
  ## NEVER ask about committing
57
49
 
58
50
  Asking "should I commit this?", "do we want to commit?", or any
59
- variant is **forbidden**. User invokes a command or says so
60
- explicitly. Don't surface a commit option in numbered-options unless
61
- the rest of the message would be incomplete without it.
51
+ variant is **forbidden**. The user invokes a command or says so
52
+ explicitly. Don't surface a commit option in numbered-options blocks
53
+ unless the rest of the message would be incomplete without it.
62
54
 
63
- Speech-act check from [`autonomous-execution`](autonomous-execution.md#speech-act-check--the-phrase-must-be-a-meta-instruction-to-the-agent)
64
- applies in reverse: an explicit commit phrase inside a quote, code
65
- block, or content (e.g. a copy-paste of a chat log) is **not** a
66
- permission grant.
55
+ Quoted commit phrases (chat-log paste, log excerpt, roadmap snippet)
56
+ are **not** permission see
57
+ [`commit-mechanics`](../contexts/authority/commit-mechanics.md)
58
+ § Speech-act check.
67
59
 
68
60
  ## NEVER write commit steps into roadmaps unsolicited
69
61
 
70
- When **creating** a roadmap (`/roadmap-create`, `/feature-roadmap`,
71
- or any roadmap-producing flow), do **not** include commit steps
72
- unless the user explicitly requested them. Commits are a delivery
73
- decision; roadmaps plan **work**.
74
-
75
- If the user explicitly wants commit steps, write them clearly
76
- (e.g. "Commit phase X: chore: …").
77
-
78
- ## Roadmap-authorized commits
79
-
80
- When **executing** a roadmap that contains commit steps:
81
-
82
- - **Non-autonomous** (`autonomy: off`, or `auto` before opt-in) —
83
- agent may ask before each commit step. User retains step-level
84
- control.
85
- - **Autonomous** (`autonomy: on`, or `auto` after opt-in) — agent
86
- pre-scans the roadmap **before starting execution**. Commit steps
87
- found → ask **once** upfront: "Roadmap contains N commit steps —
88
- should they be executed?". Cache the answer; honor or skip for
89
- the rest of the run. No re-asking per step.
62
+ When **creating** a roadmap (via `/roadmap-create`,
63
+ `/feature-roadmap`, or any roadmap-producing flow), do **not** include
64
+ commit steps unless the user explicitly requested them. Commits are a
65
+ delivery decision; roadmaps plan **work**.
90
66
 
91
- The pre-scan ask is the **only** permitted commit-related question
92
- in autonomous mode.
67
+ If the user explicitly wants commit steps in the roadmap, write them
68
+ clearly and unambiguously (e.g. "Commit phase X: chore: …").
93
69
 
94
70
  ## See also
95
71
 
96
- - [`autonomous-execution`](autonomous-execution.md) — trivial-question suppression survives this rule.
97
- - [`scope-control`](scope-control.md) push/merge/branch/PR/tag stay permission-gated.
98
- - [`/commit`](../commands/commit.md) — split + commit with confirmation.
99
- - [`/commit-in-chunks`](../commands/commit-in-chunks.md) auto-split + commit without confirmation.
72
+ - [`autonomous-execution`](autonomous-execution.md) — when to suppress
73
+ trivial questions; this rule survives the suppression.
74
+ - [`no-cheap-questions`](no-cheap-questions.md) — commit asks are
75
+ cheap by construction; this rule is the canonical Iron Law, the
76
+ cheap-questions rule cites it and refuses to surface the option.
77
+ - [`scope-control`](scope-control.md) — git-ops permission gate
78
+ (push, merge, branch, PR, tag stay separately permission-gated).
79
+ - [`/commit`](../commands/commit.md) — split and commit with confirmation.
80
+ - [`/commit-in-chunks`](../commands/commit-in-chunks.md) — auto-split
81
+ and commit without confirmation.
@@ -1,7 +1,7 @@
1
1
  ---
2
- type: "always"
3
- alwaysApply: true
4
- description: "3-failure rule for debugging and fixing errors stop after 3 consecutive failed attempts, dump state, and recommend a fresh session"
2
+ type: "auto"
3
+ alwaysApply: false
4
+ description: "When debugging, fixing errors, or running long conversations — 3-failure stop rule, tool-loop detection, fresh-chat triggers"
5
5
  source: package
6
6
  ---
7
7
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  type: "always"
3
- description: "Always — direct, unembellished answers. No flattery, no invented facts (verify the load-bearing ones with tools, otherwise ask). Emojis only as functional markers — status, warning, mandated. Brevity is the default."
3
+ description: "Always — direct, unembellished answers. No flattery, no invented facts (verify load-bearing claims, otherwise ask). Emojis only as functional markers. Brevity is the default."
4
4
  alwaysApply: true
5
5
  source: package
6
6
  ---
@@ -78,7 +78,7 @@ Emojis are **functional markers**, never decoration.
78
78
  **Whitelist — allowed and expected:**
79
79
 
80
80
  - Mandated markers from rules/scripts: `📒` (chat-history heartbeat,
81
- verbatim per `chat-history`), mode markers from
81
+ verbatim per `chat-history-visibility`), mode markers from
82
82
  `role-mode-adherence`.
83
83
  - CLI status icons: `❌`, `✅`, `⚠️` — two-space rule from
84
84
  `language-and-tone` § other-language-rules still applies.
@@ -55,7 +55,7 @@ exist in `.augment/templates/agent-settings.md`:
55
55
  3. **Add a comment** above the key explaining what it does.
56
56
  4. **Update the local `.agent-settings.yml`** — add the new key with its default value.
57
57
  Preserve all existing values, apply template order and comments. Follow the
58
- [section-aware merge rules](../guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
58
+ [section-aware merge rules](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
59
59
  so the user benefits immediately without running a separate command.
60
60
 
61
61
  **This step is mandatory.** If the template gains a new key but the local `.agent-settings.yml`
@@ -9,7 +9,7 @@ source: package
9
9
 
10
10
  ## Before writing E2E tests
11
11
 
12
- 1. **Read the guideline** — `.augment/guidelines/e2e/playwright.md` for all conventions and patterns.
12
+ 1. **Read the guideline** — `../../docs/guidelines/e2e/playwright.md` for all conventions and patterns.
13
13
  2. **Check existing tests** — match the project's structure, fixtures, and Page Object patterns.
14
14
  3. **Check `playwright.config.ts`** — base URL, browsers, timeouts, projects.
15
15
 
@@ -12,7 +12,7 @@ Coding guidelines live in `.augment/guidelines/` organized by language.
12
12
 
13
13
  ## Available Guidelines
14
14
 
15
- ### PHP (`.augment/guidelines/php/`)
15
+ ### PHP (`../../docs/guidelines/php/`)
16
16
 
17
17
  | File | Topic |
18
18
  |---|---|
@@ -37,7 +37,7 @@ Coding guidelines live in `.augment/guidelines/` organized by language.
37
37
  | `websocket.md` | WebSocket conventions — Broadcasting, channel types, connection management |
38
38
  | `patterns.md` | Design patterns index (links to `patterns/` subdirectory) |
39
39
 
40
- ### PHP Patterns (`.augment/guidelines/php/patterns/`)
40
+ ### PHP Patterns (`../../docs/guidelines/php/patterns/`)
41
41
 
42
42
  | File | Pattern |
43
43
  |---|---|
@@ -51,11 +51,11 @@ Coding guidelines live in `.augment/guidelines/` organized by language.
51
51
  | `pipelines.md` | Laravel Pipeline pattern |
52
52
  | `strategy.md` | Strategy pattern implementation |
53
53
 
54
- ### E2E (`.augment/guidelines/e2e/`)
54
+ ### E2E (`../../docs/guidelines/e2e/`)
55
55
 
56
56
  Playwright best practices, Page Objects, fixtures, CI.
57
57
 
58
- ### Agent Infrastructure (`.augment/guidelines/agent-infra/`)
58
+ ### Agent Infrastructure (`../../docs/guidelines/agent-infra/`)
59
59
 
60
60
  | File | Topic |
61
61
  |---|---|
@@ -41,10 +41,10 @@ Before coding, quickly verify:
41
41
  - Does it follow established patterns in the codebase?
42
42
  - Does it contradict existing conventions?
43
43
  - Do **multiple valid patterns/frameworks** already exist (e.g. Tailwind + Flux, multiple form libraries, competing state stores)? If yes, do NOT pick one arbitrarily — ask which to use.
44
- - Is the change a **second branch on the same discriminator** — second `match`/`switch` arm, second `if/elseif`, or second class hardcoded to one enum value (e.g. `Provider::FOO`, `'stripe'`)? If yes, run the Strategy sniff test before adding the branch — see [`guidelines/php/patterns/strategy.md`](../guidelines/php/patterns/strategy.md#sniff-test--when-an-enumstring-discriminator-wants-to-become-a-strategy).
44
+ - Is the change a **second branch on the same discriminator** — second `match`/`switch` arm, second `if/elseif`, or second class hardcoded to one enum value (e.g. `Provider::FOO`, `'stripe'`)? If yes, run the Strategy sniff test before adding the branch — see [`docs/guidelines/php/patterns/strategy.md`](../../docs/guidelines/php/patterns/strategy.md#sniff-test--when-an-enumstring-discriminator-wants-to-become-a-strategy).
45
45
 
46
46
  **If misfit** → show evidence (file references), propose alternative.
47
- **If multiple valid options** → list them, ask which to use. See [`no blind implementation`](../guidelines/agent-infra/agent-interaction-and-decision-quality.md#2-no-blind-implementation).
47
+ **If multiple valid options** → list them, ask which to use. See [`no blind implementation`](../../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md#2-no-blind-implementation).
48
48
 
49
49
  ### 3. Is the approach sound?
50
50
 
@@ -22,36 +22,24 @@ language, codebase language, open-file language, files-just-edited
22
22
  language, convenience. First thing to check on every reply, last thing
23
23
  to check before sending.
24
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.
25
+ Trigger is the user's last chat message, not turn count or message
26
+ length short German (`3`, `weiter`, `mach das`) after many English
27
+ turns still flips the reply to German.
30
28
 
31
29
  ### Source of language truth — chat messages ONLY
32
30
 
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.
31
+ Only the most recent **chat message** sets the language. `.md` files,
32
+ file contents read via `view` / `grep`, quoted commits / tickets / PRs,
33
+ code identifiers, and the agent's own previous replies do **not** count.
34
+ User opens an English roadmap and types German reply in German.
45
35
 
46
36
  ### Pre-send gate — MANDATORY before every reply
47
37
 
48
38
  Run silently **before** emitting any tokens:
49
39
 
50
40
  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).
41
+ file, not the roadmap, not the prior reply). Mixed → mirror the
42
+ **dominant** language; tie German wins (project default).
55
43
  2. **Check** — is drafted prose (not code, not file contents) in that language?
56
44
  3. **Rewrite** — if no, rewrite whole prose before sending. No exceptions, no
57
45
  "just this sentence", no "the technical term is English anyway".
@@ -74,28 +62,15 @@ Run silently **before** emitting any tokens:
74
62
 
75
63
  ### When the user calls out a language slip
76
64
 
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.
65
+ Acknowledge **once**, briefly, in the correct language ("Entschuldigung" /
66
+ "Sorry"). Switch immediately on the same reply. Do **not** re-explain in
67
+ the wrong language. Do **not** promise "from now on" just do it. If
68
+ user asks to harden the rule, harden it on this turn.
69
+
70
+ ### Failure modes
71
+
72
+ See [`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md)
73
+ for the full failure-mode list.
99
74
 
100
75
  ## Other language rules
101
76
 
@@ -108,72 +83,42 @@ Run silently **before** emitting any tokens:
108
83
 
109
84
  ## `.md` files are ALWAYS English — no exceptions
110
85
 
111
- **Every** piece of text inside `.md` files in `.augment/` and `agents/` must be in English.
112
- This includes:
113
-
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**
120
-
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.
123
-
124
- **Wrong** (German in `.md`):
125
- ```
126
- > 1. Interaktiv — bei jedem Kommentar nachfragen
127
- > 2. Automatisch — alle selbstständig abarbeiten
128
- ```
129
-
130
- **Correct** (English in `.md`):
131
- ```
132
- > 1. Interactive — ask before each comment
133
- > 2. Automatic — handle all independently
134
- ```
135
-
136
- ### Quoted user-input examples — same rule, with one labeled exception
86
+ **Every** piece of text inside `.md` files in `.augment/` and `agents/`
87
+ must be in English: headings, paragraphs, bullets, example option labels,
88
+ example prompts/questions, template placeholders, ASCII-art labels in
89
+ formatted output blocks, table headers and content.
137
90
 
138
- Common drift: a rule documents trigger phrases and writes them as quoted
139
- German examples inside English prose. **Not allowed**, even demonstrative.
91
+ The agent translates to the user's language **at runtime** when
92
+ presenting options. The `.md` source files are the English blueprint —
93
+ they define WHAT to say, not in which language. Concrete wrong-vs-correct
94
+ examples live in [`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md).
140
95
 
141
- **Wrong** (DE quote embedded in EN prose):
96
+ ### Quoted user-input examples labeled-anchor exception
142
97
 
143
- ```md
144
- Single-decision delegation ("für diesen Schritt entscheide du") →
145
- handle that step autonomously.
146
-
147
- A standing "arbeite selbstständig" never lifts the floor.
148
- ```
149
-
150
- Two correct paths:
98
+ Drift pattern: a rule writes quoted German examples inside English prose.
99
+ **Not allowed**. Two correct ways:
151
100
 
152
101
  1. **Translate to English.** Trigger recognition is semantic; the agent
153
- matches intent across languages regardless of example wording.
154
- 2. **Labeled `DE: … · EN: …` anchor block** only when multilingual
155
- recognition is the point:
156
-
157
- ```md
158
- - DE: "arbeite selbstständig" · "frag nicht jedes Mal" · "tue es einfach"
159
- - EN: "work autonomously" · "don't ask" · "just do it"
160
- ```
102
+ matches intent across languages regardless of the example.
103
+ 2. **Use a labeled `DE: … · EN: …` anchor list** when the multilingual
104
+ nature of recognition is the point — the **only** allowed location
105
+ for German prose in an English `.md`. Reference established phrases
106
+ abstractly later and link back to the anchor block.
161
107
 
162
- Labeled-anchor block is the **only** allowed location for German prose in
163
- an English `.md`. Body text, example sentences, prompt templates,
164
- agent-rendered strings, failure modes must be English. Reference phrases
165
- abstractly later (e.g. "a standing autonomy directive") and link back.
108
+ Wrong-vs-correct snippets in
109
+ [`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md).
166
110
 
167
111
  ### Detection heuristic
168
112
 
169
113
  Before saving an `.md` file under `.augment/`, `.agent-src/`,
170
114
  `.agent-src.uncompressed/`, or `agents/`, scan for:
171
115
 
172
- - Umlauts (`ä`, `ö`, `ü`, `Ä`, `Ö`, `Ü`, `ß`) outside fenced code, file
173
- paths, and labeled anchor blocks.
116
+ - Umlauts (`ä`, `ö`, `ü`, `Ä`, `Ö`, `Ü`, `ß`) outside fenced code,
117
+ file paths, and the labeled anchor block.
174
118
  - German function words in unquoted prose: `für`, `nicht`, `dass`,
175
119
  `wenn`, `sollte`, `werden`, `arbeite`, `selbstständig`, `jetzt`,
176
120
  `einfach`, `weiter`, `lösche`, `frag`, `schreib`, `mach`.
177
- - Non-English quoted phrases in body text when surrounding prose is English.
121
+ - Non-English quoted phrases in body text (paragraphs, list items,
122
+ table cells) when the surrounding prose is English.
178
123
 
179
- Hit → translate the fragment or move into a `DE: … · EN: …` block.
124
+ Hit → translate the fragment 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
 
@@ -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,89 @@
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
+ when an option would breach an Iron Law, when choices differ only in
12
+ sequencing or format, or when one option is obviously dominant. Cheap
13
+ questions are noise, regardless of `personal.autonomy`.
14
+
15
+ Mode-independent. The "trivial" failure modes in
16
+ [`autonomous-execution`](autonomous-execution.md) are scoped to
17
+ `personal.autonomy: on` (or `auto`-after-opt-in); this rule lifts the
18
+ **no-trade-off** subset to apply in `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
+ | Class | Pattern · why cheap |
33
+ |---|---|
34
+ | **Sequencing** | "Step 2 or 3 next?" when roadmap orders them — answer is in the roadmap |
35
+ | **Format-only** | "Table or paragraph?" — no semantic trade-off |
36
+ | **Commit asks** | "Commit now?" — [`commit-policy`](commit-policy.md): never ask |
37
+ | **CI / test asks** | "Run tests now?" — [`verify-before-complete`](verify-before-complete.md) decides |
38
+ | **Fenced-step re-asks** | "Start Phase 1?" after "plan only" — [`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates) |
39
+ | **Iron-Law option** | Option breaches `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default` — does not exist |
40
+ | **Context-derived** | Answer follows from prior turn / standing instruction / roadmap — act, state assumption inline |
41
+ | **Dominant option** | One choice obviously correct; alternatives carry no upside — pick it |
42
+ | **Re-ask after decline** | Same path after user said no — [`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task) |
43
+
44
+ ## Pre-Send Self-Check — MANDATORY before every question
45
+
46
+ Before drafting any numbered-options block, run silently:
47
+
48
+ 1. Does the answer follow from already-stated context?
49
+ 2. Does any option violate [`commit-policy`](commit-policy.md),
50
+ [`scope-control § git-ops`](scope-control.md), or
51
+ [`non-destructive-by-default`](non-destructive-by-default.md)?
52
+ 3. Are options pure sequencing / format with no trade-off?
53
+ 4. Is one option obviously dominant?
54
+ 5. Did the user fence the next step (*"plan only"*, *"review first"*)?
55
+ → deliver + handback per [`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates).
56
+ 6. Did the user already decline? Re-asking is forbidden per
57
+ [`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task).
58
+
59
+ Any "yes" → **do not ask**. Pick the dominant path, state the
60
+ assumption inline (*"assuming X — adjust if wrong"*), hand back. The
61
+ one-question-per-turn Iron Law from
62
+ [`ask-when-uncertain`](ask-when-uncertain.md) still applies when the
63
+ question is genuine.
64
+
65
+ ## When asking IS allowed
66
+
67
+ - Real architectural / scope decision with non-obvious trade-offs.
68
+ - Vague-request trigger per
69
+ [`ask-when-uncertain`](ask-when-uncertain.md#vague-request-triggers--must-ask).
70
+ - Security-sensitive path per
71
+ [`security-sensitive-stop`](security-sensitive-stop.md).
72
+ - Hard Floor in [`non-destructive-by-default`](non-destructive-by-default.md)
73
+ fires — confirmation is mandatory, never cheap.
74
+ - Two genuinely-equivalent paths; user preference is the tiebreaker.
75
+
76
+ In doubt → genuine. Ask. This rule narrows asking, never widens silence.
77
+
78
+ ## Interactions
79
+
80
+ - [`ask-when-uncertain`](ask-when-uncertain.md) — vague triggers +
81
+ one-question-per-turn; this rule narrows the cheap subset.
82
+ - [`autonomous-execution`](autonomous-execution.md) — mode-scoped
83
+ triviality there; mode-independent floor here.
84
+ - [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) ·
85
+ [`non-destructive-by-default`](non-destructive-by-default.md) —
86
+ the Iron Laws this rule defends.
87
+ - [`user-interaction`](user-interaction.md) — numbered-options shape;
88
+ this rule decides whether the block is sent at all.
89
+ - [`direct-answers`](direct-answers.md) — brevity, no flattery.