@event4u/agent-config 1.19.0 → 1.21.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 (297) hide show
  1. package/.agent-src/commands/agent-handoff.md +14 -10
  2. package/.agent-src/commands/agents.md +1 -1
  3. package/.agent-src/commands/bug-fix.md +1 -1
  4. package/.agent-src/commands/bug-investigate.md +2 -2
  5. package/.agent-src/commands/chat-history/import.md +166 -0
  6. package/.agent-src/commands/chat-history/learn.md +178 -0
  7. package/.agent-src/commands/chat-history/show.md +17 -18
  8. package/.agent-src/commands/chat-history.md +26 -25
  9. package/.agent-src/commands/compress.md +12 -0
  10. package/.agent-src/commands/context/create.md +2 -2
  11. package/.agent-src/commands/context.md +1 -1
  12. package/.agent-src/commands/copilot-agents.md +1 -1
  13. package/.agent-src/commands/council/default.md +21 -12
  14. package/.agent-src/commands/council.md +1 -1
  15. package/.agent-src/commands/create-pr.md +28 -8
  16. package/.agent-src/commands/e2e-heal.md +1 -1
  17. package/.agent-src/commands/e2e-plan.md +1 -1
  18. package/.agent-src/commands/feature/dev.md +3 -3
  19. package/.agent-src/commands/feature.md +1 -1
  20. package/.agent-src/commands/fix/seeder.md +2 -2
  21. package/.agent-src/commands/fix.md +1 -1
  22. package/.agent-src/commands/jira-ticket.md +1 -1
  23. package/.agent-src/commands/judge.md +2 -2
  24. package/.agent-src/commands/memory.md +1 -1
  25. package/.agent-src/commands/mode.md +5 -5
  26. package/.agent-src/commands/module.md +1 -1
  27. package/.agent-src/commands/onboard.md +4 -4
  28. package/.agent-src/commands/optimize/augmentignore.md +1 -1
  29. package/.agent-src/commands/optimize-prompt.md +61 -0
  30. package/.agent-src/commands/optimize.md +1 -1
  31. package/.agent-src/commands/override.md +1 -1
  32. package/.agent-src/commands/review-changes.md +1 -1
  33. package/.agent-src/commands/review-routing.md +1 -1
  34. package/.agent-src/commands/roadmap.md +1 -1
  35. package/.agent-src/commands/set-cost-profile.md +3 -3
  36. package/.agent-src/commands/sync-agent-settings.md +2 -2
  37. package/.agent-src/commands/sync-gitignore.md +1 -1
  38. package/.agent-src/commands/tests/create.md +2 -2
  39. package/.agent-src/commands/tests.md +1 -1
  40. package/.agent-src/commands/threat-model.md +4 -4
  41. package/.agent-src/contexts/authority/commit-mechanics.md +14 -1
  42. package/.agent-src/contexts/authority/destructive-mechanics.md +14 -1
  43. package/.agent-src/contexts/authority/scope-mechanics.md +5 -0
  44. package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +76 -0
  45. package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +76 -0
  46. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +4 -4
  47. package/.agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +98 -0
  48. package/.agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +93 -0
  49. package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +125 -9
  50. package/.agent-src/contexts/execution/autonomy-mechanics.md +44 -0
  51. package/.agent-src/contexts/model-recommendations.md +2 -2
  52. package/.agent-src/contexts/override-system.md +1 -1
  53. package/.agent-src/personas/product-owner.md +2 -2
  54. package/.agent-src/personas/qa.md +1 -1
  55. package/.agent-src/rules/agent-authority.md +5 -6
  56. package/.agent-src/rules/agent-docs.md +11 -53
  57. package/.agent-src/rules/analysis-skill-routing.md +10 -40
  58. package/.agent-src/rules/architecture.md +6 -1
  59. package/.agent-src/rules/artifact-drafting-protocol.md +5 -0
  60. package/.agent-src/rules/artifact-engagement-recording.md +23 -59
  61. package/.agent-src/rules/ask-when-uncertain.md +24 -47
  62. package/.agent-src/rules/augment-portability.md +14 -62
  63. package/.agent-src/rules/augment-source-of-truth.md +10 -1
  64. package/.agent-src/rules/autonomous-execution.md +17 -98
  65. package/.agent-src/rules/capture-learnings.md +9 -80
  66. package/.agent-src/rules/cli-output-handling.md +12 -42
  67. package/.agent-src/rules/command-suggestion-policy.md +25 -73
  68. package/.agent-src/rules/commit-conventions.md +9 -58
  69. package/.agent-src/rules/commit-policy.md +16 -47
  70. package/.agent-src/rules/context-hygiene.md +5 -0
  71. package/.agent-src/rules/direct-answers.md +21 -42
  72. package/.agent-src/rules/docker-commands.md +11 -45
  73. package/.agent-src/rules/docs-sync.md +10 -56
  74. package/.agent-src/rules/downstream-changes.md +5 -0
  75. package/.agent-src/rules/e2e-testing.md +9 -44
  76. package/.agent-src/rules/guidelines.md +13 -75
  77. package/.agent-src/rules/improve-before-implement.md +10 -2
  78. package/.agent-src/rules/language-and-tone.md +35 -69
  79. package/.agent-src/rules/laravel-translations.md +11 -40
  80. package/.agent-src/rules/markdown-safe-codeblocks.md +4 -0
  81. package/.agent-src/rules/minimal-safe-diff.md +4 -0
  82. package/.agent-src/rules/missing-tool-handling.md +4 -0
  83. package/.agent-src/rules/model-recommendation.md +9 -61
  84. package/.agent-src/rules/no-attribution-footers.md +53 -0
  85. package/.agent-src/rules/no-cheap-questions.md +11 -27
  86. package/.agent-src/rules/no-council-references.md +76 -0
  87. package/.agent-src/rules/no-roadmap-references.md +8 -1
  88. package/.agent-src/rules/non-destructive-by-default.md +13 -43
  89. package/.agent-src/rules/onboarding-gate.md +9 -117
  90. package/.agent-src/rules/package-ci-checks.md +10 -37
  91. package/.agent-src/rules/php-coding.md +10 -55
  92. package/.agent-src/rules/preservation-guard.md +9 -0
  93. package/.agent-src/rules/review-routing-awareness.md +9 -97
  94. package/.agent-src/rules/reviewer-awareness.md +8 -83
  95. package/.agent-src/rules/roadmap-progress-sync.md +7 -170
  96. package/.agent-src/rules/role-mode-adherence.md +6 -2
  97. package/.agent-src/rules/rule-type-governance.md +8 -66
  98. package/.agent-src/rules/runtime-safety.md +5 -0
  99. package/.agent-src/rules/scope-control.md +17 -62
  100. package/.agent-src/rules/security-sensitive-stop.md +7 -1
  101. package/.agent-src/rules/size-enforcement.md +6 -1
  102. package/.agent-src/rules/skill-improvement-trigger.md +9 -49
  103. package/.agent-src/rules/skill-quality.md +7 -64
  104. package/.agent-src/rules/slash-command-routing-policy.md +11 -63
  105. package/.agent-src/rules/think-before-action.md +22 -87
  106. package/.agent-src/rules/token-efficiency.md +10 -74
  107. package/.agent-src/rules/token-optimizer-maintenance.md +68 -0
  108. package/.agent-src/rules/tool-safety.md +4 -0
  109. package/.agent-src/rules/ui-audit-gate.md +25 -61
  110. package/.agent-src/rules/upstream-proposal.md +9 -67
  111. package/.agent-src/rules/user-interaction.md +25 -95
  112. package/.agent-src/rules/verify-before-complete.md +1 -1
  113. package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  114. package/.agent-src/skills/ai-council/SKILL.md +69 -5
  115. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  116. package/.agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  117. package/.agent-src/skills/artisan-commands/SKILL.md +2 -2
  118. package/.agent-src/skills/authz-review/SKILL.md +1 -1
  119. package/.agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  120. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +8 -8
  121. package/.agent-src/skills/bug-analyzer/SKILL.md +5 -5
  122. package/.agent-src/skills/code-refactoring/SKILL.md +4 -4
  123. package/.agent-src/skills/code-review/SKILL.md +2 -2
  124. package/.agent-src/skills/command-writing/SKILL.md +11 -0
  125. package/.agent-src/skills/composer-packages/SKILL.md +2 -2
  126. package/.agent-src/skills/context-authoring/SKILL.md +11 -0
  127. package/.agent-src/skills/context-document/SKILL.md +1 -1
  128. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +23 -0
  129. package/.agent-src/skills/copilot-config/SKILL.md +1 -1
  130. package/.agent-src/skills/dcf-modeling/SKILL.md +89 -0
  131. package/.agent-src/skills/dependency-upgrade/SKILL.md +2 -2
  132. package/.agent-src/skills/devcontainer/SKILL.md +2 -2
  133. package/.agent-src/skills/developer-like-execution/SKILL.md +1 -1
  134. package/.agent-src/skills/docker/SKILL.md +1 -1
  135. package/.agent-src/skills/dto-creator/SKILL.md +1 -1
  136. package/.agent-src/skills/estimate-ticket/SKILL.md +2 -2
  137. package/.agent-src/skills/fe-design/SKILL.md +4 -4
  138. package/.agent-src/skills/feature-planning/SKILL.md +5 -5
  139. package/.agent-src/skills/funnel-analysis/SKILL.md +100 -0
  140. package/.agent-src/skills/laravel/SKILL.md +1 -1
  141. package/.agent-src/skills/laravel-notifications/SKILL.md +5 -5
  142. package/.agent-src/skills/laravel-pennant/SKILL.md +1 -1
  143. package/.agent-src/skills/laravel-pulse/SKILL.md +4 -4
  144. package/.agent-src/skills/laravel-reverb/SKILL.md +2 -2
  145. package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -1
  146. package/.agent-src/skills/md-language-check/SKILL.md +1 -1
  147. package/.agent-src/skills/migration-creator/SKILL.md +7 -7
  148. package/.agent-src/skills/multi-tenancy/SKILL.md +8 -8
  149. package/.agent-src/skills/okr-tree-modeling/SKILL.md +93 -0
  150. package/.agent-src/skills/performance-analysis/SKILL.md +3 -3
  151. package/.agent-src/skills/pest-testing/SKILL.md +6 -6
  152. package/.agent-src/skills/php-service/SKILL.md +2 -2
  153. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  154. package/.agent-src/skills/project-analysis-react/SKILL.md +1 -1
  155. package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  156. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  157. package/.agent-src/skills/project-analyzer/SKILL.md +4 -4
  158. package/.agent-src/skills/prompt-optimizer/SKILL.md +108 -0
  159. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
  160. package/.agent-src/skills/rice-prioritization/SKILL.md +100 -0
  161. package/.agent-src/skills/rule-writing/SKILL.md +33 -0
  162. package/.agent-src/skills/sentry-integration/SKILL.md +1 -1
  163. package/.agent-src/skills/skill-writing/SKILL.md +14 -0
  164. package/.agent-src/skills/subagent-orchestration/SKILL.md +34 -2
  165. package/.agent-src/skills/terraform/SKILL.md +2 -2
  166. package/.agent-src/skills/terragrunt/SKILL.md +8 -8
  167. package/.agent-src/skills/test-performance/SKILL.md +5 -5
  168. package/.agent-src/skills/threat-modeling/SKILL.md +2 -2
  169. package/.agent-src/skills/token-optimizer/SKILL.md +110 -0
  170. package/.agent-src/skills/unit-economics-modeling/SKILL.md +104 -0
  171. package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  172. package/.agent-src/skills/using-git-worktrees/SKILL.md +1 -0
  173. package/.agent-src/templates/AGENTS.md +1 -1
  174. package/.agent-src/templates/agent-settings.md +25 -41
  175. package/.agent-src/templates/contexts/tenant-boundaries.md +2 -2
  176. package/.agent-src/templates/contexts.md +1 -1
  177. package/.agent-src/templates/copilot-instructions.md +21 -0
  178. package/.agent-src/templates/copilot-review-instructions.md +76 -0
  179. package/.agent-src/templates/features.md +1 -1
  180. package/.agent-src/templates/rule.md +127 -0
  181. package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +7 -5
  182. package/.agent-src/templates/scripts/work_engine/hooks/__init__.py +0 -4
  183. package/.agent-src/templates/scripts/work_engine/hooks/builtin/__init__.py +0 -4
  184. package/.agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.py +7 -51
  185. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_append.py +1 -2
  186. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_halt_append.py +1 -2
  187. package/.agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.py +2 -3
  188. package/.agent-src/templates/skill.md +30 -1
  189. package/.claude-plugin/marketplace.json +11 -4
  190. package/AGENTS.md +71 -3
  191. package/CHANGELOG.md +180 -3
  192. package/README.md +24 -23
  193. package/config/agent-settings.template.yml +63 -23
  194. package/config/gitignore-block.txt +11 -4
  195. package/docs/architecture.md +84 -3
  196. package/docs/catalog.md +23 -11
  197. package/docs/contracts/adr-chat-history-split.md +10 -1
  198. package/docs/contracts/agent-memory-contract.md +1 -1
  199. package/docs/contracts/command-clusters.md +1 -1
  200. package/docs/contracts/context-paths.md +2 -1
  201. package/docs/contracts/cross-wing-handoff.md +133 -0
  202. package/docs/contracts/file-ownership-matrix.json +678 -609
  203. package/docs/contracts/hook-architecture-v1.md +8 -1
  204. package/docs/contracts/iron-law-overrides.txt +25 -0
  205. package/docs/contracts/kernel-membership.md +273 -0
  206. package/docs/contracts/load-context-schema.md +26 -11
  207. package/docs/contracts/memory-visibility-v1.md +8 -24
  208. package/docs/contracts/pilot/agent-authority.md +24 -0
  209. package/docs/contracts/pilot/direct-answers.md +70 -0
  210. package/docs/contracts/pilot/language-and-tone.md +63 -0
  211. package/docs/contracts/rule-classification.md +170 -0
  212. package/docs/contracts/rule-router.md +153 -0
  213. package/docs/customization.md +18 -7
  214. package/docs/decisions/ADR-001-kernel-swap-deferred.md +109 -0
  215. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +124 -0
  216. package/docs/decisions/ADR-rule-kernel-and-router.md +122 -0
  217. package/docs/getting-started.md +19 -27
  218. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
  219. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +176 -0
  220. package/docs/guidelines/agent-infra/rule-type-governance.md +73 -0
  221. package/docs/guidelines/agent-infra/size-and-scope.md +13 -2
  222. package/docs/guidelines/agent-infra/skill-quality-checklist.md +119 -0
  223. package/docs/guidelines/augment-portability-patterns.md +68 -0
  224. package/docs/guidelines/php/php-coding-patterns.md +62 -0
  225. package/docs/hook-payload-capture.md +221 -0
  226. package/docs/migrations/commands-1.15.0.md +17 -12
  227. package/docs/skills-catalog.md +5 -4
  228. package/llms.txt +4 -3
  229. package/package.json +1 -1
  230. package/scripts/_p43_bodies.py +235 -0
  231. package/scripts/_p43_compress.py +118 -0
  232. package/scripts/_p4_migrate.py +199 -0
  233. package/scripts/_pilot_council_question.py +57 -0
  234. package/scripts/_pilot_measure.py +53 -0
  235. package/scripts/agent-config +1 -1
  236. package/scripts/ai_council/_default_prices.py +4 -4
  237. package/scripts/ai_council/clients.py +1 -1
  238. package/scripts/ai_council/modes.py +3 -4
  239. package/scripts/ai_council/pricing.py +10 -9
  240. package/scripts/ai_council/session.py +107 -5
  241. package/scripts/build_linear_digest.py +3 -5
  242. package/scripts/build_rule_trigger_matrix.py +1 -9
  243. package/scripts/chat_history.py +952 -596
  244. package/scripts/check_always_budget.py +39 -6
  245. package/scripts/check_compressed_paths.py +213 -0
  246. package/scripts/check_compression.py +15 -0
  247. package/scripts/check_context_paths.py +1 -0
  248. package/scripts/check_council_layout.py +105 -0
  249. package/scripts/check_council_references.py +145 -0
  250. package/scripts/check_portability.py +2 -0
  251. package/scripts/check_references.py +14 -2
  252. package/scripts/check_token_optimizer_freshness.py +131 -0
  253. package/scripts/compile_router.py +148 -0
  254. package/scripts/compress.py +219 -11
  255. package/scripts/council_cli.py +63 -9
  256. package/scripts/council_prune.py +81 -0
  257. package/scripts/count_token_optimizer_usage.sh +54 -0
  258. package/scripts/hook_manifest.yaml +33 -0
  259. package/scripts/hooks/augment-chat-history.sh +10 -0
  260. package/scripts/hooks/cowork-dispatcher.sh +98 -0
  261. package/scripts/hooks/dispatch_hook.py +35 -0
  262. package/scripts/hooks_status.py +12 -1
  263. package/scripts/install-hooks.sh +2 -2
  264. package/scripts/install.sh +81 -2
  265. package/scripts/iron_law_sha.py +98 -0
  266. package/scripts/lint_handoffs.py +214 -0
  267. package/scripts/lint_hook_manifest.py +2 -1
  268. package/scripts/lint_load_context.py +35 -5
  269. package/scripts/measure_rule_budget.py +314 -0
  270. package/scripts/prototype_lint_contradictions.py +150 -0
  271. package/scripts/redact_hook_capture.py +148 -0
  272. package/scripts/schemas/rule.schema.json +55 -6
  273. package/scripts/schemas/skill.schema.json +5 -0
  274. package/scripts/skill_linter.py +359 -7
  275. package/scripts/smoke_path_resolution.py +93 -0
  276. package/scripts/update_prices.py +3 -3
  277. package/scripts/validate_frontmatter.py +41 -1
  278. package/.agent-src/commands/chat-history/checkpoint.md +0 -126
  279. package/.agent-src/commands/chat-history/clear.md +0 -103
  280. package/.agent-src/commands/chat-history/resume.md +0 -183
  281. package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +0 -72
  282. package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +0 -79
  283. package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +0 -87
  284. package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +0 -62
  285. package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +0 -78
  286. package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +0 -85
  287. package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +0 -65
  288. package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +0 -78
  289. package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +0 -53
  290. package/.agent-src/rules/chat-history-cadence.md +0 -143
  291. package/.agent-src/rules/chat-history-ownership.md +0 -124
  292. package/.agent-src/rules/chat-history-visibility.md +0 -97
  293. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_heartbeat.py +0 -50
  294. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_turn_check.py +0 -49
  295. package/scripts/check_phase_coupling.py +0 -148
  296. /package/{docs → .agent-src/contexts}/contracts/artifact-engagement-flow.md +0 -0
  297. /package/{docs → .agent-src/contexts}/contracts/command-suggestion-flow.md +0 -0
@@ -28,14 +28,19 @@ The user invoked `/council default` on exactly one input mode:
28
28
  - `files:<path>,<path>` — a comma-separated file list
29
29
 
30
30
  Optional invocation flag: `mode:api|manual` overrides the per-member
31
- and global mode for this call only (see Step 2.5). `mode:playwright`
32
- is reserved for Phase 2c — refuse politely if invoked.
31
+ and global mode for this call only (see Step 2.5).
33
32
 
34
- Optional **rounds**: `rounds:N` (1-3) enables multi-round debate. Round
35
- 1 sees the artefact alone. Round 2+ sees the artefact plus anonymised
36
- critiques from the previous round (provider/model identity stripped).
37
- Total spend = N × single-round cost; surface this in the cost gate.
38
- Default `rounds:1`.
33
+ Optional **rounds**: `rounds:N` (1-3) overrides the multi-round debate
34
+ count. Round 1 sees the artefact alone. Round 2+ sees the artefact plus
35
+ anonymised critiques from the previous round (provider/model identity
36
+ stripped). Total spend = N × single-round cost; surface in cost gate.
37
+
38
+ Default comes from `ai_council.min_rounds` in `.agent-settings.yml`
39
+ (default `2` so members critique each other at least once before
40
+ convergence). **Do NOT ask "how many rounds?"** when `rounds:N` is
41
+ unset or `N <= min_rounds` — proceed with the settings default. Ask
42
+ only when the artefact is genuinely complex; surface as a numbered
43
+ choice with the cost delta.
39
44
 
40
45
  Optional **mode_override**: `mode_override=pr|design|optimize` swaps
41
46
  the system-prompt addendum for one of the specialised lenses
@@ -71,7 +76,7 @@ Read `.agent-settings.yml` → `ai_council`:
71
76
  to env vars. Ever.
72
77
 
73
78
  Load the price table via `scripts.ai_council.pricing.load_prices()`
74
- (auto-bootstraps `.agent-prices.md` from defaults if missing). Run
79
+ (auto-bootstraps `agents/.agent-prices.md` from defaults if missing). Run
75
80
  `pricing.is_stale(table)` and, if stale, surface the staleness gate
76
81
  from the `ai-council` skill (§ Stale price-table gate) before
77
82
  continuing.
@@ -81,15 +86,13 @@ continuing.
81
86
  For each enabled member, resolve its mode via
82
87
  `scripts.ai_council.modes.resolve_mode(name, invocation_mode,
83
88
  member_settings, global_mode)`. Precedence: invocation flag >
84
- per-member setting > global setting > default (`api`).
89
+ per-member setting > global setting > default (`manual`).
85
90
 
86
91
  Construct each member from the resolved mode:
87
92
 
88
93
  - `api` → `AnthropicClient` / `OpenAIClient` (billable, cost-gated).
89
94
  - `manual` → `ManualClient` from `scripts.ai_council.clients`
90
95
  (`billable=False`, no API key, no SDK call).
91
- - `playwright` → reserved for Phase 2c. If a settings/invocation
92
- resolves to it, refuse with a one-line note.
93
96
 
94
97
  ### 3. Cost confirmation — ALWAYS ASK for billable members
95
98
 
@@ -136,6 +139,12 @@ Once the user picks `1`, invoke the same arguments with `run` plus
136
139
  [--original-ask "<framing sentence>"]
137
140
  ```
138
141
 
142
+ `--rounds` defaults to `ai_council.min_rounds` from
143
+ `.agent-settings.yml` (or `2` if unset). Pass `--rounds N` only when
144
+ the user explicitly asked for a different count or a complex
145
+ artefact justifies more depth — do not pass `--rounds 1` to "save
146
+ money" by default; settings owner already chose `min_rounds`.
147
+
139
148
  The CLI:
140
149
 
141
150
  - bundles the artefact via `scripts.ai_council.bundler` (redaction +
@@ -203,7 +212,7 @@ council can act on the project directly.
203
212
  - **Stale price table, refresher fails (offline)** → state the
204
213
  failure, re-offer "continue with stale table / cancel", do not
205
214
  proceed silently.
206
- - **`.agent-prices.md` corrupt (missing frontmatter or columns)** →
215
+ - **`agents/.agent-prices.md` corrupt (missing frontmatter or columns)** →
207
216
  surface the parse error, suggest deleting the file to bootstrap
208
217
  fresh from defaults; never silently fall back.
209
218
  - **All members error (CLI exit 1)** → render the errors via
@@ -26,7 +26,7 @@ sub-command swaps the mode-specific addendum.
26
26
  | `/council optimize` | `commands/council/optimize.md` | Run the council on an optimization target — ranked, evidence-based suggestions |
27
27
 
28
28
  Sub-command names match the locked contract in
29
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
29
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
30
30
 
31
31
  ## Dispatch
32
32
 
@@ -106,19 +106,39 @@ Once the user approves the content from step 2:
106
106
 
107
107
  ### 4. After creation
108
108
 
109
- - Show the PR URL.
110
- - If a Jira ticket was linked, ask:
111
- ```
112
- > Transition Jira ticket {TICKET-ID} to "In Review"?
113
- >
114
- > 1. Yes — update status
115
- > 2. Noleave as-is
116
- ```
109
+ #### 4a. Strip attribution footers (mandatory)
110
+
111
+ `github-api` may server-side-append attribution after a clean send.
112
+ Per [`no-attribution-footers`](../rules/no-attribution-footers.md),
113
+ re-check the body after creation **and after every body PATCH**:
114
+
115
+ 1. `GET /repos/{owner}/{repo}/pulls/{number}` re-fetch body.
116
+ 2. Search (case-insensitive) for: `Generated with [Augment Code]`,
117
+ `🤖 Generated with`, `Pull Request opened by [Augment Code]`,
118
+ `Co-authored by Augment Code`, unsolicited `augmentcode.com` link.
119
+ 3. If any present, strip with surrounding `---` and trailing
120
+ whitespace, then `PATCH /pulls/{number}` with cleaned body.
121
+ 4. Re-fetch to verify. If the pattern reappears, repeat once; if
122
+ still present, surface to user and stop (no strip/PATCH loop).
123
+ 5. Note in the reply how many footers were removed (or "clean").
124
+
125
+ #### 4b. Show the PR URL
126
+
127
+ #### 4c. Jira transition
128
+
129
+ If a Jira ticket was linked, ask:
130
+ ```
131
+ > Transition Jira ticket {TICKET-ID} to "In Review"?
132
+ >
133
+ > 1. Yes — update status
134
+ > 2. No — leave as-is
135
+ ```
117
136
 
118
137
  ### Rules
119
138
 
120
139
  - **Always use the PR template** from `.github/pull_request_template.md` — read it, fill its sections.
121
140
  - **Always show the PR content before creating it** — never create blindly.
122
141
  - **Push the branch first** if it hasn't been pushed (with user permission).
142
+ - **Never add attribution footers** — see [`no-attribution-footers`](../rules/no-attribution-footers.md). Strip-pass in 4a defends against tool-injected footers.
123
143
  - Only create the PR — never merge it.
124
144
  - Only commit or push with explicit user permission.
@@ -21,7 +21,7 @@ suggestion:
21
21
  > 2. Fix a specific test file — which one?
22
22
  > 3. Fix tests that failed in CI — provide the CI run URL or error output
23
23
 
24
- - Read the Playwright guideline: `../../docs/guidelines/e2e/playwright.md`
24
+ - Read the Playwright guideline: `../docs/guidelines/e2e/playwright.md`
25
25
 
26
26
  ### 2. Run failing tests
27
27
 
@@ -21,7 +21,7 @@ suggestion:
21
21
  > 2. Which feature area? (e.g., "checkout flow", "user settings", or "all visible flows")
22
22
  > 3. Is there an existing seed/setup file? (e.g., `tests/e2e/fixtures/auth.ts`)
23
23
 
24
- - Read the Playwright guideline: `../../docs/guidelines/e2e/playwright.md`
24
+ - Read the Playwright guideline: `../docs/guidelines/e2e/playwright.md`
25
25
  - Check for existing test plans in `specs/` or `tests/e2e/specs/`.
26
26
 
27
27
  ### 2. Explore the application
@@ -78,15 +78,15 @@ Do NOT use for single-line fixes, trivial changes, or urgent hotfixes.
78
78
  ### Phase 5: Implementation
79
79
 
80
80
  1. **Wait for explicit approval** before writing code.
81
- 2. Create a task list with all implementation steps.
81
+ 2. Create a task list with all impl steps.
82
82
  3. Follow chosen architecture from Phase 4.
83
83
  4. Follow codebase conventions strictly (read guidelines).
84
84
  5. Update task list as progress is made.
85
- 6. Write tests alongside the implementation.
85
+ 6. Write tests alongside the impl.
86
86
 
87
87
  ### Phase 6: Quality Review
88
88
 
89
- 1. Review the implementation for:
89
+ 1. Review the impl for:
90
90
  - **Simplicity & DRY** — is the code as simple as possible?
91
91
  - **Correctness** — are there logic errors or missing edge cases?
92
92
  - **Conventions** — does it follow project patterns?
@@ -27,7 +27,7 @@ commands with a single entry point + sub-command dispatch.
27
27
  ## Workflow ordering
28
28
 
29
29
  Typical sequence: `explore` → `plan` → `roadmap` → `dev` (or per-step
30
- implementation). Use `refactor` whenever an existing plan needs an update.
30
+ impl). Use `refactor` whenever an existing plan needs an update.
31
31
 
32
32
  ## Dispatch
33
33
 
@@ -63,9 +63,9 @@ where the seeder class is NOT the owner of the data file.
63
63
 
64
64
  ### Known Exceptions
65
65
 
66
- Currently there are **no exceptions**. All circular dependencies have been resolved.
66
+ Currently there are **no exceptions**. All circular deps have been resolved.
67
67
 
68
- **Pattern for resolving circular dependencies:** Use two-phase seeding. The data file seeds
68
+ **Pattern for resolving circular deps:** Use two-phase seeding. The data file seeds
69
69
  records with placeholder values (e.g., empty arrays). The Seeder's `run()` method then updates
70
70
  records with the real values using `getReference()`. Since `run()` is called after all seeders
71
71
  are initialized, the circular dependency is broken.
@@ -27,7 +27,7 @@ with a single entry point + sub-command dispatch.
27
27
  | `/fix pr-developers` | `commands/fix/pr-developers.md` | Fix and reply to **human** reviewer comments only |
28
28
 
29
29
  Sub-command names match the locked contract in
30
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
30
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
31
31
 
32
32
  ## Dispatch
33
33
 
@@ -72,4 +72,4 @@ suggestion:
72
72
 
73
73
  ## See also
74
74
 
75
- - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#developer) — Developer mode output contract (Goal / Plan / Changes / Tests / Open questions)
75
+ - [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md#developer) — Developer mode output contract (Goal / Plan / Changes / Tests / Open questions)
@@ -23,7 +23,7 @@ commands with a single entry point + sub-command dispatch.
23
23
  | `/judge steps` | `commands/judge/steps.md` | Execute an ordered plan step by step, judge gate between steps |
24
24
 
25
25
  Sub-command names match the locked contract in
26
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
26
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
27
27
  The standalone reviewer surface lives at [`/review`](review-changes.md).
28
28
 
29
29
  ## Dispatch
@@ -51,4 +51,4 @@ The standalone reviewer surface lives at [`/review`](review-changes.md).
51
51
 
52
52
  - [`subagent-orchestration`](../skills/subagent-orchestration/SKILL.md)
53
53
  - [`/review`](review-changes.md) — human-oriented self-review (Reviewer-mode contract)
54
- - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#reviewer)
54
+ - [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md#reviewer)
@@ -24,7 +24,7 @@ commands with a single entry point + sub-command dispatch.
24
24
  | `/memory propose` | `commands/memory/propose.md` | Append a provisional signal to the intake stream |
25
25
 
26
26
  Sub-command names match the locked contract in
27
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
27
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
28
28
 
29
29
  ## Dispatch
30
30
 
@@ -11,7 +11,7 @@ suggestion:
11
11
 
12
12
  Sets `roles.active_role` in `.agent-settings.yml` and surfaces the active
13
13
  contract before any work. Six modes are defined in
14
- [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md):
14
+ [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md):
15
15
 
16
16
  - `developer` · `reviewer` · `tester` · `po` · `incident` · `planner`
17
17
 
@@ -37,7 +37,7 @@ Anything else: refuse. List the valid values and stop.
37
37
 
38
38
  ### 2. Validate the mode name
39
39
 
40
- Read [`role-contracts.md`](../../docs/guidelines/agent-infra/role-contracts.md).
40
+ Read [`role-contracts.md`](../docs/guidelines/agent-infra/role-contracts.md).
41
41
  Extract H3 headings under `## Contract skeletons` and lowercase them.
42
42
  If `<name>` is not in that set, refuse and print the valid list.
43
43
 
@@ -62,7 +62,7 @@ exactly what the contract demands.
62
62
  ### 5. Write the active role
63
63
 
64
64
  Update `roles.active_role` in `.agent-settings.yml` using the
65
- [section-aware merge rules](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
65
+ [section-aware merge rules](../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
66
66
  (preserve comments, preserve key order, touch only the changed field).
67
67
 
68
68
  For `/mode none`: set `active_role: ""`.
@@ -118,7 +118,7 @@ For `/mode` (status only):
118
118
 
119
119
  ## See also
120
120
 
121
- - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md) — the six modes
121
+ - [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md) — the six modes
122
122
  - [`role-mode-adherence`](../rules/role-mode-adherence.md) — closing-output gate
123
- - [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — merge rules for settings edits
123
+ - [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md) — merge rules for settings edits
124
124
  - [`ask-when-uncertain`](../rules/ask-when-uncertain.md) — never invent modes
@@ -22,7 +22,7 @@ commands with a single entry point + sub-command dispatch.
22
22
  | `/module explore` | `commands/module/explore.md` | Load a module's structure, docs, and context into the conversation |
23
23
 
24
24
  Sub-command names match the locked contract in
25
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
25
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
26
26
 
27
27
  ## Dispatch
28
28
 
@@ -25,7 +25,7 @@ Triggered by the [`onboarding-gate`](../rules/onboarding-gate.md) rule when
25
25
  - Change cost profile only → [`/set-cost-profile`](set-cost-profile.md).
26
26
  - Single-value edit → ask the agent to change it, or edit
27
27
  `.agent-settings.yml` directly. The agent follows the merge rules in
28
- [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md).
28
+ [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md).
29
29
 
30
30
  ## Preconditions
31
31
 
@@ -134,7 +134,7 @@ template — `minimal` + `skill_improvement: true`):
134
134
 
135
135
  Write `onboarding.onboarded: true` to `.agent-settings.yml` using the
136
136
  section-aware merge rules from
137
- [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
137
+ [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
138
138
  (preserve comments, key order, touch only the changed fields).
139
139
 
140
140
  ### 8. Summary
@@ -174,7 +174,7 @@ and stays off unless explicitly enabled.
174
174
 
175
175
  The log is local-only JSONL — nothing uploaded, nothing shared across
176
176
  projects. Reports: ./agent-config telemetry:report
177
- Contract + privacy floor: docs/contracts/artifact-engagement-flow.md
177
+ Contract + privacy floor: .augment/contexts/contracts/artifact-engagement-flow.md
178
178
  ```
179
179
 
180
180
  Skip this block in cloud surfaces (no settings file, no log path).
@@ -200,5 +200,5 @@ local-agent concern; the cloud agent should proceed without invoking it.
200
200
 
201
201
  - [`onboarding-gate`](../rules/onboarding-gate.md) — rule that triggers this command
202
202
  - [`set-cost-profile`](set-cost-profile.md) — isolated profile change
203
- - [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — merge rules for mid-life edits
203
+ - [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md) — merge rules for mid-life edits
204
204
  - [`agent-settings` template](../templates/agent-settings.md) — settings reference
@@ -261,7 +261,7 @@ echo "Rules ignored: $rules_count"
261
261
  - **Lock files are always ignored** — they're huge and provide zero code insight.
262
262
  - **IDE helpers are always ignored** — generated, 20k+ lines, stale quickly.
263
263
  - **When in doubt, ignore files** — false positive is easy to fix, false negative wastes tokens silently.
264
- - **When in doubt, keep skills** — ignoring a needed skill causes bad output, keeping an unneeded one just wastes ~3 lines.
264
+ - **When in doubt, keep skills** — ignoring a needed skill bad output, keeping an unneeded one just wastes ~3 lines.
265
265
  - **Never ignore always-active rules** — only auto-loaded rules (those with `description` frontmatter) may be ignored.
266
266
  - **Never ignore meta/agent-system skills** — `agent-docs-writing-writing`, `commands`, `context-create`, `override-management`, `guidelines`, `project-docs`, `roadmap-management`, `naming`, `skill-reviewer`, `file-editor`, `copilot-config`, `copilot-agents-optimization`.
267
267
  - **Restore previously ignored skills** when the stack changes (e.g., Vue added to project → restore `vue` skill).
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: optimize-prompt
3
+ cluster: optimize
4
+ description: "Optimize a raw prompt for ChatGPT, Claude, Gemini, or another AI via the 4-D methodology — BASIC vs DETAIL auto-detect, one clarifying question per turn, returns the polished prompt."
5
+ disable-model-invocation: true
6
+ skills: [prompt-optimizer]
7
+ suggestion:
8
+ eligible: true
9
+ trigger_description: "optimize this prompt, make it better for ChatGPT, rewrite for Claude, sharpen this AI prompt"
10
+ trigger_context: "user pastes a rough prompt or names a target AI and asks for it to be improved"
11
+ ---
12
+
13
+ # /optimize-prompt
14
+
15
+ Entry point for the [`prompt-optimizer`](../skills/prompt-optimizer/SKILL.md) skill (persona: **Lyra**). Use when the user wants a polished prompt to paste into an external AI — not when they want the answer that prompt would produce.
16
+
17
+ ## Welcome
18
+
19
+ On the first turn (or whenever the user invokes `/optimize-prompt` with no prompt body), respond with:
20
+
21
+ ```
22
+ Hi! I'm Lyra, your AI prompt optimizer.
23
+
24
+ Tell me:
25
+ 1. Your target AI — ChatGPT · Claude · Gemini · Perplexity · Other
26
+ 2. Your prompt style — DETAIL (I'll ask one question at a time first) or BASIC (I'll apply smart defaults and return the optimized prompt immediately)
27
+
28
+ Examples
29
+ - "DETAIL using ChatGPT — write me a marketing email"
30
+ - "BASIC using Claude — help with my resume"
31
+
32
+ Or just paste your rough prompt — I'll auto-detect the mode and announce it.
33
+ ```
34
+
35
+ Render the welcome **once** per session. If the user invokes `/optimize-prompt <prompt>` directly, skip the welcome and run the skill.
36
+
37
+ ## Instructions
38
+
39
+ ### 1. Parse input
40
+
41
+ Three input shapes:
42
+
43
+ 1. `/optimize-prompt` (no body) → render welcome, wait.
44
+ 2. `/optimize-prompt <prompt>` → load the skill, run mode auto-detect, proceed.
45
+ 3. `/optimize-prompt DETAIL|BASIC [using <AI>] — <prompt>` → load the skill, honor the explicit mode + target AI, proceed.
46
+
47
+ ### 2. Delegate to the skill
48
+
49
+ Load [`prompt-optimizer`](../skills/prompt-optimizer/SKILL.md) and follow its `## Procedure` verbatim. The skill owns mode detection, the 4-D methodology, the output format, and gotchas.
50
+
51
+ ### 3. Hand back
52
+
53
+ After the optimized prompt is delivered, end the turn. Do **not** propose to also execute the optimized prompt. Do **not** offer to commit, push, or save the result to a file — this is conversational output the user copies elsewhere.
54
+
55
+ ## Rules
56
+
57
+ - **One question per turn** — DETAIL mode iterates; never batch clarifications (`ask-when-uncertain`).
58
+ - **No auto-execution** — produce the prompt, not the answer it would generate, unless the user explicitly asks for both.
59
+ - **No file writes** — the skill is conversational; no commits, no roadmap edits, no `agents/` writes.
60
+ - **Welcome once** — don't re-render the welcome on every turn within the same session.
61
+ - **Mirror the user's language** — the optimized prompt body uses the language the user wrote in; the skill's own scaffolding (mode announcement, "what changed" labels) stays English when the user is in English, German when they're in German (`language-and-tone` Iron Law).
@@ -24,7 +24,7 @@ commands with a single entry point + sub-command dispatch.
24
24
  | `/optimize rtk` | `commands/optimize/rtk.md` | Create or refine project-local rtk filters |
25
25
 
26
26
  Sub-command names match the locked contract in
27
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
27
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
28
28
 
29
29
  ## Dispatch
30
30
 
@@ -22,7 +22,7 @@ commands with a single entry point + sub-command dispatch.
22
22
  | `/override manage` | `commands/override/manage.md` | Review, update, and refactor existing overrides |
23
23
 
24
24
  Sub-command names match the locked contract in
25
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
25
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
26
26
 
27
27
  ## Dispatch
28
28
 
@@ -175,7 +175,7 @@ or the equivalent configured command).
175
175
  - [`/do-and-judge`](do-and-judge.md) — implementer + judge loop for a single change
176
176
  - [`/judge`](judge.md) — standalone judge, no review-changes dispatch
177
177
  - [`code-review`](../skills/code-review/SKILL.md) — human-oriented review patterns (tone, feedback handling)
178
- - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#reviewer) — Reviewer mode output contract (Summary / Risks / Findings / Required actions / Verdict)
178
+ - [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md#reviewer) — Reviewer mode output contract (Summary / Risks / Findings / Required actions / Verdict)
179
179
 
180
180
  ## References
181
181
 
@@ -107,7 +107,7 @@ After the block, ask:
107
107
  - [`reviewer-awareness`](../rules/reviewer-awareness.md) — role vocabulary
108
108
  - [`review-routing-awareness`](../rules/review-routing-awareness.md) —
109
109
  data-source rules
110
- - [`review-routing-data-format`](../../docs/guidelines/agent-infra/review-routing-data-format.md)
110
+ - [`review-routing-data-format`](../docs/guidelines/agent-infra/review-routing-data-format.md)
111
111
  — YAML schemas
112
112
  - [`create-pr-description`](../skills/create-pr-description/SKILL.md) —
113
113
  consumes the routing block
@@ -22,7 +22,7 @@ commands with a single entry point + sub-command dispatch.
22
22
  | `/roadmap execute` | `commands/roadmap/execute.md` | Read and interactively execute a roadmap |
23
23
 
24
24
  Sub-command names match the locked contract in
25
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
25
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
26
26
 
27
27
  ## Dispatch
28
28
 
@@ -25,7 +25,7 @@ the [`agent-settings` template](../templates/agent-settings.md#cost-profiles):
25
25
  - For first-run setup use [`/onboard`](onboard.md).
26
26
  - For any other single-value change, edit `.agent-settings.yml`
27
27
  directly or ask the agent — the merge rules live in
28
- [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules).
28
+ [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules).
29
29
  - For role modes use [`/mode`](mode.md) — different concept (sets
30
30
  `roles.active_role`, not `cost_profile`).
31
31
 
@@ -73,7 +73,7 @@ value directly — still echo the old → new line in step 6.
73
73
  ### 5. Write the value
74
74
 
75
75
  Update `cost_profile` in `.agent-settings.yml` using the
76
- [section-aware merge rules](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
76
+ [section-aware merge rules](../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)
77
77
  (preserve comments, preserve key order, touch only the changed field).
78
78
 
79
79
  If the user picked "Keep current", do nothing and stop.
@@ -107,6 +107,6 @@ flip. Cost behaviour on those surfaces is governed by the platform itself.
107
107
  ## See also
108
108
 
109
109
  - [`agent-settings`](../templates/agent-settings.md) — profile matrix and settings reference
110
- - [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — merge rules for settings edits
110
+ - [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md) — merge rules for settings edits
111
111
  - [`onboard`](onboard.md) — first-run setup (includes profile confirmation)
112
112
  - [`mode`](mode.md) — role-mode setter (different concept)
@@ -15,7 +15,7 @@ Reconciles `.agent-settings.yml` with the shipped template
15
15
  (`config/agent-settings.template.yml`) and the selected cost-profile
16
16
  preset (`config/profiles/{profile}.ini`). Applies the section-aware
17
17
  merge rules documented in
18
- [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md):
18
+ [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md):
19
19
 
20
20
  - Template section order wins — keys reorder to match.
21
21
  - Existing user scalar values are preserved.
@@ -129,6 +129,6 @@ is a local-agent concern.
129
129
  - [`scripts/sync_agent_settings.py`](../../../scripts/sync_agent_settings.py) — the helper
130
130
  - [`config/agent-settings.template.yml`](../../../config/agent-settings.template.yml) — canonical template
131
131
  - [`config/profiles/`](../../../config/profiles/) — profile presets
132
- - [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — the merge rules this command enforces
132
+ - [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md) — the merge rules this command enforces
133
133
  - [`scripts/install.py`](../../../scripts/install.py) — first-install path; this command handles the update path
134
134
  - [`/sync-gitignore`](sync-gitignore.md) — sibling command for the `.gitignore` block
@@ -11,7 +11,7 @@ suggestion:
11
11
 
12
12
  Ensures the consumer project's `.gitignore` contains every entry the
13
13
  package expects to be ignored (symlinked `.augment/` subdirectories,
14
- `/agent-config` CLI wrapper, `.agent-settings*`, `.agent-chat-history*`).
14
+ `/agent-config` CLI wrapper, `.agent-settings*`, `agents/.agent-chat-history*`).
15
15
  Canonical list lives in `config/gitignore-block.txt`; the same file
16
16
  drives the installer, so the two cannot drift.
17
17
 
@@ -59,7 +59,7 @@ suggestion:
59
59
  - Place tests in the matching directory structure under `tests/` (mirror the source structure).
60
60
  - Group related tests with `describe` blocks (Pest) or separate test methods (PHPUnit).
61
61
  - Use data providers for testing multiple input/output combinations.
62
- - Mock external dependencies (database, HTTP, file system) — don't test infrastructure.
62
+ - Mock external deps (database, HTTP, file system) — don't test infrastructure.
63
63
 
64
64
  ### 6. Verify
65
65
 
@@ -70,7 +70,7 @@ suggestion:
70
70
 
71
71
  - **Do NOT commit or push.**
72
72
  - **Quality over quantity** — 5 meaningful tests beat 20 trivial ones.
73
- - If a class is hard to test (too many dependencies, global state), flag it and suggest a refactoring approach instead of writing brittle
73
+ - If a class is hard to test (too many deps, global state), flag it and suggest a refactoring approach instead of writing brittle
74
74
  tests.
75
75
 
76
76
  ## See also
@@ -22,7 +22,7 @@ commands with a single entry point + sub-command dispatch.
22
22
  | `/tests execute` | `commands/tests/execute.md` | Run PHP tests inside the Docker container |
23
23
 
24
24
  Sub-command names match the locked contract in
25
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
25
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
26
26
 
27
27
  ## Dispatch
28
28
 
@@ -71,7 +71,7 @@ Produce one combined report with these sections, in order:
71
71
  5. **Required controls** — the minimum set of validations, authorization
72
72
  checks, logging, and negative tests that must exist before the change ships
73
73
  6. **Open questions** — anything the skills flagged as uncertain and the user
74
- must answer before implementation starts
74
+ must answer before impl starts
75
75
 
76
76
  ### 5. Decide next step
77
77
 
@@ -83,7 +83,7 @@ After the report, ask:
83
83
  > 3. Stop here — threat model is the deliverable, no implementation yet
84
84
  ```
85
85
 
86
- - On **1**: hand off to the implementation flow (e.g., `feature-plan`,
86
+ - On **1**: hand off to the impl flow (e.g., `feature-plan`,
87
87
  `bug-fix`, or direct edit) with the required-controls list pinned
88
88
  - On **2**: re-gather context and re-dispatch
89
89
  - On **3**: save the report as the deliverable, stop
@@ -106,7 +106,7 @@ After the report, ask:
106
106
  - NEVER merge `threat-modeling` and `authz-review` outputs into a single
107
107
  block — each skill owns its format
108
108
  - NEVER write production code in the same turn as this command — the
109
- deliverable is the report; implementation is a separate step
109
+ deliverable is the report; impl is a separate step
110
110
  - NEVER mark the change "safe" if any 🔴 abuse case has no control
111
111
 
112
112
  ## See also
@@ -116,4 +116,4 @@ After the report, ask:
116
116
  - [`data-flow-mapper`](../skills/data-flow-mapper/SKILL.md) — trace specific data through the change
117
117
  - [`blast-radius-analyzer`](../skills/blast-radius-analyzer/SKILL.md) — enumerate affected call sites
118
118
  - [`security-sensitive-stop`](../rules/security-sensitive-stop.md) — the trigger rule
119
- - [`minimal-safe-diff`](../rules/minimal-safe-diff.md) — keep the implementation scoped
119
+ - [`minimal-safe-diff`](../rules/minimal-safe-diff.md) — keep the impl scoped
@@ -8,6 +8,19 @@ in autonomous vs. non-autonomous mode.
8
8
  **Size budget:** ≤ 3,000 chars. Tracked under Phase 6 of
9
9
  `road-to-pr-34-followups`.
10
10
 
11
+ ## The four commit exceptions — restated
12
+
13
+ Outside the four below, no commit is allowed and no commit ask is allowed.
14
+
15
+ 1. **User says so this turn** — "commit this now", "commit it", "go
16
+ ahead and commit". Single commit, not standing.
17
+ 2. **Standing instruction not yet revoked** — earlier "commit after
18
+ every phase"; cache the instruction and commit per its terms.
19
+ 3. **Commit command invoked** — `/commit` (split + confirm per commit)
20
+ or `/commit:in-chunks` (auto-split, Hard Floor still applies).
21
+ 4. **Roadmap authorization** — roadmap lists explicit commit steps and
22
+ the user invoked roadmap execution; each commit matches a step.
23
+
11
24
  ## Hard Floor still applies — bulk deletions and infra changes
12
25
 
13
26
  Even when one of the four `commit-policy` exceptions authorizes a
@@ -19,7 +32,7 @@ Hard Floor still fires when the diff:
19
32
  - Touches Terraform / Pulumi / k8s manifests / Ansible / cloud-config
20
33
 
21
34
  In those cases, **surface the diff** (paths + counts) and confirm
22
- this turn before committing — even under `/commit-in-chunks`,
35
+ this turn before committing — even under `/commit:in-chunks`,
23
36
  roadmap pre-scan authorization, or an explicit "commit this now". The
24
37
  four exceptions cover *whether* commits happen; the Hard Floor covers
25
38
  *which diffs* still need a separate confirmation.
@@ -9,6 +9,19 @@ context holds everything an agent reaches for once those have fired.
9
9
  **Size budget:** ≤ 3,500 chars. Tracked under Phase 7.4 of
10
10
  `road-to-pr-34-followups`.
11
11
 
12
+ ## Iron Law — restatement
13
+
14
+ The rule's Iron Law ("HARD FLOOR OVERRIDES EVERYTHING") is the universal
15
+ non-destructive-by-default safety net. No autonomy setting, roadmap step,
16
+ or standing instruction can lift it. This is the same Iron Law restated
17
+ in `commit-policy` (row 6 of its trigger table) and in `scope-control`
18
+ (production / infra / bulk-destructive subset).
19
+
20
+ The trigger surface covers production-branch merges, deploys / releases,
21
+ production data and infrastructure changes, pushes to remote, and
22
+ whimsical or unscoped bulk-destructive operations. Authorization is
23
+ "user said so this turn", never inferred from a previous turn.
24
+
12
25
  ## Bulk deletions during WIP — allowed if task-connected
13
26
 
14
27
  Deletions inside an **active, user-stated task** are allowed in the
@@ -58,7 +71,7 @@ the diff (paths + counts), get confirmation, then commit.
58
71
  - Committing a diff that removes a directory, deletes ≥5 unrelated
59
72
  files, or touches Terraform / k8s manifests / Ansible without
60
73
  surfacing the diff first — even when [`commit-policy`](../../rules/commit-policy.md)
61
- otherwise authorizes commits (e.g. `/commit-in-chunks`, roadmap
74
+ otherwise authorizes commits (e.g. `/commit:in-chunks`, roadmap
62
75
  pre-scan, an explicit "commit this now"). Bulk-deletion / infra
63
76
  commits need their own ask, every time.
64
77
  - Reading a roadmap step listing files to delete as authorization to
@@ -35,6 +35,11 @@ concerns:
35
35
  A roadmap step or earlier turn does **not** count as authorization
36
36
  for these. Authorization is "the user said so on this turn".
37
37
 
38
+ Earlier permission for a different operation does **not** carry over —
39
+ permission is per-operation, this-turn. Standing autonomy directives
40
+ narrow other rules but never grant permission for items in this Hard
41
+ Floor subset.
42
+
38
43
  ## Brief-before-asking — separate branch / PR / worktree
39
44
 
40
45
  If a task seems to need a separate branch or PR (spike, hotfix,