@event4u/agent-config 1.15.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 (244) hide show
  1. package/.agent-src/commands/bug-fix.md +1 -1
  2. package/.agent-src/commands/bug-investigate.md +2 -2
  3. package/.agent-src/commands/chat-history-checkpoint.md +1 -1
  4. package/.agent-src/commands/chat-history-clear.md +1 -1
  5. package/.agent-src/commands/chat-history.md +1 -1
  6. package/.agent-src/commands/check-current-md.md +1 -1
  7. package/.agent-src/commands/council-design.md +96 -0
  8. package/.agent-src/commands/council-optimize.md +115 -0
  9. package/.agent-src/commands/council-pr.md +123 -0
  10. package/.agent-src/commands/council.md +219 -0
  11. package/.agent-src/commands/create-pr.md +23 -0
  12. package/.agent-src/commands/do-and-judge.md +3 -3
  13. package/.agent-src/commands/do-in-steps.md +4 -4
  14. package/.agent-src/commands/e2e-heal.md +1 -1
  15. package/.agent-src/commands/e2e-plan.md +1 -1
  16. package/.agent-src/commands/feature-dev.md +8 -0
  17. package/.agent-src/commands/feature-explore.md +6 -1
  18. package/.agent-src/commands/feature-plan.md +33 -2
  19. package/.agent-src/commands/feature-refactor.md +5 -0
  20. package/.agent-src/commands/feature-roadmap.md +6 -1
  21. package/.agent-src/commands/feature.md +58 -0
  22. package/.agent-src/commands/fix-ci.md +5 -0
  23. package/.agent-src/commands/fix-portability.md +5 -0
  24. package/.agent-src/commands/fix-pr-bot-comments.md +5 -0
  25. package/.agent-src/commands/fix-pr-comments.md +5 -0
  26. package/.agent-src/commands/fix-pr-developer-comments.md +5 -0
  27. package/.agent-src/commands/fix-references.md +5 -0
  28. package/.agent-src/commands/fix-seeder.md +5 -0
  29. package/.agent-src/commands/fix.md +60 -0
  30. package/.agent-src/commands/jira-ticket.md +1 -1
  31. package/.agent-src/commands/judge.md +1 -1
  32. package/.agent-src/commands/memory-add.md +3 -3
  33. package/.agent-src/commands/memory-full.md +2 -2
  34. package/.agent-src/commands/memory-promote.md +2 -2
  35. package/.agent-src/commands/mode.md +5 -5
  36. package/.agent-src/commands/onboard.md +3 -3
  37. package/.agent-src/commands/optimize-agents.md +6 -1
  38. package/.agent-src/commands/optimize-augmentignore.md +5 -0
  39. package/.agent-src/commands/optimize-rtk-filters.md +5 -0
  40. package/.agent-src/commands/optimize-skills.md +6 -1
  41. package/.agent-src/commands/optimize.md +54 -0
  42. package/.agent-src/commands/propose-memory.md +2 -2
  43. package/.agent-src/commands/review-changes.md +26 -1
  44. package/.agent-src/commands/review-routing.md +1 -1
  45. package/.agent-src/commands/roadmap-create.md +29 -2
  46. package/.agent-src/commands/set-cost-profile.md +3 -3
  47. package/.agent-src/commands/sync-agent-settings.md +2 -2
  48. package/.agent-src/commands/tests-create.md +1 -1
  49. package/.agent-src/commands/upstream-contribute.md +1 -1
  50. package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
  51. package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
  52. package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
  53. package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
  54. package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
  55. package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
  56. package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
  57. package/.agent-src/personas/README.md +1 -1
  58. package/.agent-src/rules/agent-authority.md +24 -0
  59. package/.agent-src/rules/architecture.md +1 -1
  60. package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
  61. package/.agent-src/rules/artifact-engagement-recording.md +1 -1
  62. package/.agent-src/rules/ask-when-uncertain.md +1 -1
  63. package/.agent-src/rules/autonomous-execution.md +78 -114
  64. package/.agent-src/rules/capture-learnings.md +1 -1
  65. package/.agent-src/rules/chat-history-cadence.md +3 -3
  66. package/.agent-src/rules/chat-history-ownership.md +3 -3
  67. package/.agent-src/rules/chat-history-visibility.md +3 -3
  68. package/.agent-src/rules/{command-suggestion.md → command-suggestion-policy.md} +7 -7
  69. package/.agent-src/rules/commit-conventions.md +1 -1
  70. package/.agent-src/rules/commit-policy.md +14 -42
  71. package/.agent-src/rules/context-hygiene.md +3 -3
  72. package/.agent-src/rules/direct-answers.md +1 -1
  73. package/.agent-src/rules/docs-sync.md +1 -1
  74. package/.agent-src/rules/e2e-testing.md +1 -1
  75. package/.agent-src/rules/guidelines.md +4 -4
  76. package/.agent-src/rules/improve-before-implement.md +2 -2
  77. package/.agent-src/rules/language-and-tone.md +37 -96
  78. package/.agent-src/rules/minimal-safe-diff.md +3 -3
  79. package/.agent-src/rules/model-recommendation.md +4 -4
  80. package/.agent-src/rules/no-cheap-questions.md +89 -0
  81. package/.agent-src/rules/non-destructive-by-default.md +15 -49
  82. package/.agent-src/rules/onboarding-gate.md +5 -5
  83. package/.agent-src/rules/review-routing-awareness.md +9 -9
  84. package/.agent-src/rules/roadmap-progress-sync.md +26 -33
  85. package/.agent-src/rules/role-mode-adherence.md +2 -2
  86. package/.agent-src/rules/scope-control.md +65 -46
  87. package/.agent-src/rules/security-sensitive-stop.md +2 -2
  88. package/.agent-src/rules/size-enforcement.md +1 -1
  89. package/.agent-src/rules/think-before-action.md +5 -5
  90. package/.agent-src/rules/token-efficiency.md +4 -4
  91. package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +3 -3
  92. package/.agent-src/rules/user-interaction.md +3 -3
  93. package/.agent-src/rules/verify-before-complete.md +12 -67
  94. package/.agent-src/scripts/update_roadmap_progress.py +9 -4
  95. package/.agent-src/skills/ai-council/SKILL.md +333 -0
  96. package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
  97. package/.agent-src/skills/blade-ui/SKILL.md +1 -1
  98. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
  99. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
  100. package/.agent-src/skills/command-routing/SKILL.md +1 -1
  101. package/.agent-src/skills/command-writing/SKILL.md +1 -1
  102. package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -1
  103. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
  104. package/.agent-src/skills/developer-like-execution/SKILL.md +2 -2
  105. package/.agent-src/skills/flux/SKILL.md +1 -1
  106. package/.agent-src/skills/git-workflow/SKILL.md +1 -1
  107. package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
  108. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
  109. package/.agent-src/skills/livewire/SKILL.md +1 -1
  110. package/.agent-src/skills/override-management/SKILL.md +2 -2
  111. package/.agent-src/skills/php-coder/SKILL.md +1 -1
  112. package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
  113. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
  114. package/.agent-src/skills/readme-writing/SKILL.md +1 -1
  115. package/.agent-src/skills/readme-writing-package/SKILL.md +1 -1
  116. package/.agent-src/skills/receiving-code-review/SKILL.md +1 -1
  117. package/.agent-src/skills/review-routing/SKILL.md +2 -2
  118. package/.agent-src/skills/rule-writing/SKILL.md +1 -1
  119. package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
  120. package/.agent-src/skills/skill-writing/SKILL.md +3 -3
  121. package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
  122. package/.agent-src/skills/systematic-debugging/SKILL.md +1 -1
  123. package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
  124. package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
  125. package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +2 -2
  126. package/.agent-src/templates/agent-settings.md +8 -8
  127. package/.agent-src/templates/contexts/auth-model.md +1 -1
  128. package/.agent-src/templates/scripts/README.md +2 -2
  129. package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
  130. package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
  131. package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
  132. package/.agent-src/templates/scripts/telemetry_record.py +14 -1
  133. package/.claude-plugin/marketplace.json +10 -2
  134. package/AGENTS.md +11 -9
  135. package/CHANGELOG.md +123 -1
  136. package/README.md +28 -30
  137. package/config/agent-settings.template.yml +58 -1
  138. package/config/gitignore-block.txt +3 -0
  139. package/docs/architecture.md +4 -4
  140. package/docs/catalog.md +331 -0
  141. package/docs/contracts/STABILITY.md +39 -0
  142. package/docs/contracts/adr-command-suggestion.md +3 -3
  143. package/docs/contracts/adr-product-ui-track.md +2 -2
  144. package/docs/contracts/agent-memory-contract.md +2 -2
  145. package/docs/contracts/artifact-engagement-flow.md +1 -1
  146. package/docs/contracts/command-clusters.md +2 -2
  147. package/docs/contracts/command-suggestion-flow.md +3 -3
  148. package/docs/contracts/implement-ticket-flow.md +2 -2
  149. package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
  150. package/docs/contracts/load-context-schema.md +186 -0
  151. package/docs/contracts/rule-interactions.yml +96 -0
  152. package/docs/contracts/rule-priority-hierarchy.md +87 -0
  153. package/docs/contracts/ui-track-flow.md +1 -1
  154. package/docs/customization.md +14 -0
  155. package/docs/end-to-end-walkthroughs.md +165 -0
  156. package/docs/getting-started.md +26 -8
  157. package/docs/github-topics.md +12 -3
  158. package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
  159. package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
  160. package/docs/guidelines/php/git.md +164 -0
  161. package/docs/migrations/commands-1.15.0.md +1 -1
  162. package/docs/showcase.md +9 -4
  163. package/docs/skills-catalog.md +14 -8
  164. package/docs/ui-track-mental-model.md +2 -2
  165. package/llms.txt +13 -7
  166. package/package.json +1 -1
  167. package/scripts/agent-config +23 -0
  168. package/scripts/ai_council/__init__.py +39 -0
  169. package/scripts/ai_council/_default_prices.py +41 -0
  170. package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
  171. package/scripts/ai_council/_one_off_roundtrip.py +106 -0
  172. package/scripts/ai_council/budget_guard.py +172 -0
  173. package/scripts/ai_council/bundler.py +261 -0
  174. package/scripts/ai_council/clients.py +381 -0
  175. package/scripts/ai_council/modes.py +127 -0
  176. package/scripts/ai_council/orchestrator.py +350 -0
  177. package/scripts/ai_council/pricing.py +213 -0
  178. package/scripts/ai_council/project_context.py +159 -0
  179. package/scripts/ai_council/prompts.py +232 -0
  180. package/scripts/ai_council/session.py +144 -0
  181. package/scripts/check_always_budget.py +126 -0
  182. package/scripts/check_augmentignore.py +69 -0
  183. package/scripts/check_command_count_messaging.py +120 -0
  184. package/scripts/check_portability.py +55 -0
  185. package/scripts/check_public_catalog_links.py +122 -0
  186. package/scripts/check_references.py +4 -1
  187. package/scripts/check_roadmap_trackable.py +111 -0
  188. package/scripts/command_suggester/cooldown.py +1 -1
  189. package/scripts/generate_index.py +266 -0
  190. package/scripts/install_anthropic_key.sh +5 -0
  191. package/scripts/install_openai_key.sh +106 -0
  192. package/scripts/lint_load_context.py +163 -0
  193. package/scripts/schemas/command.schema.json +20 -0
  194. package/scripts/schemas/rule.schema.json +10 -0
  195. package/scripts/skill_linter.py +12 -4
  196. package/scripts/sync_agent_settings.py +1 -1
  197. package/scripts/update_counts.py +9 -4
  198. package/scripts/update_prices.py +124 -0
  199. package/.agent-src/guidelines/php/git.md +0 -96
  200. /package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +0 -0
  201. /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
  202. /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
  203. /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
  204. /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
  205. /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
  206. /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
  207. /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
  208. /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
  209. /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
  210. /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
  211. /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
  212. /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
  213. /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
  214. /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
  215. /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
  216. /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
  217. /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
  218. /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
  219. /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
  220. /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
  221. /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
  222. /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
  223. /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
  224. /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
  225. /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
  226. /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
  227. /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
  228. /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
  229. /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
  230. /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
  231. /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
  232. /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
  233. /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
  234. /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
  235. /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
  236. /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
  237. /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
  238. /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
  239. /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
  240. /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
  241. /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
  242. /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
  243. /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
  244. /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
@@ -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,64 +83,30 @@ 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 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.
141
-
142
- **Wrong** (DE quote embedded in EN prose):
143
-
144
- ```md
145
- Single-decision delegation ("für diesen Schritt entscheide du") →
146
- handle that step autonomously.
147
-
148
- A standing "arbeite selbstständig" never lifts the floor.
149
- ```
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).
150
95
 
151
- **Correct**two ways:
96
+ ### Quoted user-input examples labeled-anchor exception
152
97
 
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.
156
- 2. **Use a labeled `DE: … · EN: …` anchor list** when the
157
- multilingual nature of recognition is the point:
98
+ Drift pattern: a rule writes quoted German examples inside English prose.
99
+ **Not allowed**. Two correct ways:
158
100
 
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
- ```
101
+ 1. **Translate to English.** Trigger recognition is semantic; the agent
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.
163
107
 
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.
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).
169
110
 
170
111
  ### Detection heuristic
171
112
 
@@ -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.
@@ -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`
@@ -37,8 +37,8 @@ Look, in order, for:
37
37
  - `.github/historical-bug-patterns.yml` (or
38
38
  `agents/historical-bug-patterns.yml`)
39
39
 
40
- If neither exists, fall back to engineering-memory via
41
- [`memory-access`](../guidelines/agent-infra/memory-access.md):
40
+ If neither file exists, fall back to the engineering-memory layer via
41
+ [`memory-access`](../../docs/guidelines/agent-infra/memory-access.md):
42
42
 
43
43
  ```python
44
44
  from scripts.memory_lookup import retrieve
@@ -50,11 +50,11 @@ extra = retrieve(
50
50
  ```
51
51
 
52
52
  Curated memory (`agents/memory/ownership.yml`,
53
- `agents/memory/historical-patterns.yml`) shares the schema with the
54
- project-local YAMLs and is merged into the routing output. If both
55
- memory and project YAMLs are absent, skip this rule and rely on
56
- [`reviewer-awareness`](reviewer-awareness.md) defaults. **Do not invent
57
- owners or patterns** from context.
53
+ `agents/memory/historical-patterns.yml`) carries the same schema as the
54
+ project-local YAMLs and is merged into the routing output alongside
55
+ them. If both memory and project YAMLs are absent, skip this rule and
56
+ rely on [`reviewer-awareness`](reviewer-awareness.md) defaults. **Do
57
+ not invent owners or patterns** from context.
58
58
 
59
59
  ### 2. Match the diff
60
60
 
@@ -66,7 +66,7 @@ For every changed file, collect:
66
66
  mode and the minimum control or test the project expects.
67
67
 
68
68
  Matching uses glob patterns (see
69
- [`review-routing-data-format`](../guidelines/review-routing-data-format.md)
69
+ [`review-routing-data-format`](../../docs/guidelines/agent-infra/review-routing-data-format.md)
70
70
  for the schema).
71
71
 
72
72
  ### 3. Surface findings
@@ -117,7 +117,7 @@ When producing a review plan, include:
117
117
 
118
118
  - [`reviewer-awareness`](reviewer-awareness.md) — formatting reviewer
119
119
  suggestions.
120
- - [`review-routing-data-format`](../guidelines/review-routing-data-format.md)
120
+ - [`review-routing-data-format`](../../docs/guidelines/agent-infra/review-routing-data-format.md)
121
121
  — YAML schemas for ownership-map and historical-bug-patterns.
122
122
  - [`review-routing`](../skills/review-routing/SKILL.md) — the skill
123
123
  that produces the merged routing report.
@@ -1,10 +1,13 @@
1
1
  ---
2
2
  type: "auto"
3
- description: "Any touch to agents/roadmaps/ — creating, renaming, deleting, or moving a roadmap file (including into archive/ or skipped/), editing checkboxes ([x], [~], [-]), or adding/renaming/removing phases — must regenerate the roadmap dashboard in the SAME response; a roadmap that hits 0 open items must also be archived in the SAME response"
3
+ description: "Any touch to agents/roadmaps/ — create/rename/delete/move, edit checkboxes ([x]/[~]/[-]), add/rename/remove phases — must regenerate dashboard and archive if 0 open items, same response"
4
4
  alwaysApply: false
5
5
  source: package
6
6
  ---
7
7
 
8
+ <!-- cloud_safe: degrade -->
9
+ <!-- Authoring discipline applies in cloud; local script + regen are no-ops there. -->
10
+
8
11
  # Roadmap Progress Sync
9
12
 
10
13
  ## Iron Law — dashboard sync
@@ -30,6 +33,7 @@ without regenerating? The dashboard claims it does not exist. Marked
30
33
  EVERY ACTIVE ROADMAP MUST CONTAIN AT LEAST ONE TRACKABLE CHECKBOX
31
34
  (`- [ ]`) PER NON-INTRO PHASE. ROADMAPS WITHOUT EXECUTABLE STEPS
32
35
  EITHER GET A CHECKLIST OR THE `status: draft` FLAG.
36
+ CI-ENFORCED: `scripts/check_roadmap_trackable.py` (CANNOT BE DEFERRED).
33
37
  ```
34
38
 
35
39
  **Active roadmap =** any file in `agents/roadmaps/` (root, not
@@ -42,9 +46,16 @@ Tables of decisions, ICE matrices, ADR captures, and "block
42
46
  sequencing" tables are valid **rationale**, but they do not satisfy
43
47
  this rule on their own — they must be paired with at least one
44
48
  `## Phase N` section whose checkboxes execute the decision.
45
- Headings such as `## Phase steps`, `### Sequencing — Phase 1 …`, or
46
- `## Block A` do **not** count — only the canonical `Phase <id>`
47
- form parsed by the dashboard.
49
+ Headings such as `## Phase steps`, `### Sequencing — Phase 1 …`,
50
+ `### P0 #1 — …`, or `## Block A` do **not** count — only the
51
+ canonical `Phase <id>` form parsed by the dashboard.
52
+
53
+ **CI backstop.** `scripts/check_roadmap_trackable.py` (package-shipped,
54
+ wire into the consumer's pre-commit / pre-push / Actions gate) fails
55
+ when an active roadmap has zero canonical `Phase` headings or when
56
+ any parsed phase has zero checkboxes. Last line of defence — real-time
57
+ authoring still flips checkboxes and regenerates the dashboard the
58
+ same response.
48
59
 
49
60
  ## Status — binary `ready` (default) vs `draft`
50
61
 
@@ -69,11 +80,6 @@ in the dashboard.
69
80
  executable phases. Flip to ready (or remove the field) the
70
81
  moment the roadmap is ready to track.
71
82
 
72
- A `## Decisions` or `## Block sequencing` table is **not** a roadmap
73
- on its own. Either pair it with a `## Phase N: <name>` section whose
74
- checkboxes execute the decision, or mark the file `status: draft`
75
- until the executable phases land.
76
-
77
83
  **Completion = archival, same response.** When the edit takes a
78
84
  roadmap to `count_open == 0` (every item is `[x]`, `[~]`, or `[-]`),
79
85
  `git mv` it into `agents/roadmaps/archive/` (or `skipped/` if no `[x]`
@@ -130,20 +136,9 @@ Step counts as completed when:
130
136
  Then in the **same reply**: flip the checkbox, regenerate the
131
137
  dashboard, commit if commit policy allows.
132
138
 
133
- **Forbidden pattern** (canonical failure):
134
-
135
- > Turn 1: implement Step 1. Turn 2: implement Step 2. Turn 3:
136
- > implement Step 3. Turn 4: implement Step 4. Turn 5: "all done,
137
- > let me update the roadmap and commit." → the user spent four turns
138
- > without dashboard movement.
139
-
140
- **Required pattern:**
141
-
142
- > Turn 1: implement Step 1, flip `[x]`, regen, commit.
143
- > Turn 2: implement Step 2, flip `[x]`, regen, commit. …
144
-
145
- A reply that lands a verified step without flipping its checkbox
146
- is a rule violation.
139
+ **Forbidden:** four turns of step work, dashboard flat, single regen at the end.
140
+ **Required:** each turn — implement step, flip `[x]`, regen, commit (if policy allows).
141
+ A reply that lands a verified step without flipping its checkbox is a rule violation.
147
142
 
148
143
  **In-progress marker:** when a step takes more than one reply,
149
144
  mark it `[~]` the moment work starts on it and regenerate. The
@@ -180,14 +175,13 @@ Any "yes" + no regen run = rule violation. Rerun before sending.
180
175
  flat the whole time, single regen at the end** — user lost
181
176
  progress visibility for the entire run. Each completed step must
182
177
  flip its checkbox in the reply that ships it.
183
- - **Decision-only roadmap shipped without checkboxes** — the file
184
- documents synthesized decisions, ICE matrices, or block sequencing
185
- but contains zero `- [ ]` items. The dashboard regenerates with
186
- `0/0 steps` for that file or omits it from the open set entirely.
187
- The reader thinks no work is planned. Either pair the decisions
188
- with a `## Phase N` / `## Implementation Checklist` section, or
189
- mark the file `status: draft` so it is hidden until the executable
190
- phases land.
178
+ - **Decision-only roadmap shipped without checkboxes** — file
179
+ contains decisions / ICE / block-sequencing but zero `- [ ]`,
180
+ dashboard shows `0/0` or omits it. Pair with a `## Phase N`
181
+ section or mark `status: draft` (CI catches this now).
182
+ - **Headings off-canon (`### P0 #N`, `## Block A`, `### Sequencing
183
+ Phase 1`)** `PHASE_RE` skips them, roadmap invisible to the
184
+ dashboard. Rename to `## Phase <id>` or mark `status: draft`.
191
185
 
192
186
  ## Do NOT
193
187
 
@@ -195,5 +189,4 @@ Any "yes" + no regen run = rule violation. Rerun before sending.
195
189
  - Do NOT defer the regen to "next commit" or "before push" — same response.
196
190
  - Do NOT rely on CI (`--check` mode) as the first line of defence — CI is last-line, not real-time.
197
191
  - Do NOT skip the regen because "only one checkbox changed" — the dashboard aggregates counts and phase percentages that shift on single edits.
198
- - Do NOT leave a 100%-complete roadmap in `agents/roadmaps/` "for review" — archive it in the same response, ask the user afterwards if needed, not before.
199
- - Do NOT regenerate the dashboard before the `git mv` when a roadmap closes — otherwise the completed roadmap reappears in "Open roadmaps".
192
+ - Do NOT leave a 100%-complete roadmap in `agents/roadmaps/` "for review" — `git mv` to archive **before** regenerating, otherwise it reappears in "Open roadmaps".
@@ -9,7 +9,7 @@ source: package
9
9
 
10
10
  Auto-activates when `.agent-settings.yml` sets `roles.active_role` to
11
11
  one of the six modes defined in
12
- [`role-contracts`](../guidelines/agent-infra/role-contracts.md):
12
+ [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md):
13
13
  `developer`, `reviewer`, `tester`, `po`, `incident`, `planner`.
14
14
 
15
15
  Read `roles.active_role` from `.agent-settings.yml` at session start.
@@ -47,7 +47,7 @@ Infer the mode (Phase-3 router does that). Touch `.agent-settings.yml`
47
47
 
48
48
  ## See also
49
49
 
50
- - [`role-contracts`](../guidelines/agent-infra/role-contracts.md)
50
+ - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md)
51
51
  - [`/mode`](../commands/mode.md)
52
52
  - [`ask-when-uncertain`](ask-when-uncertain.md)
53
53
  - [`scope-control`](scope-control.md)