@event4u/agent-config 1.13.0 → 1.15.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 (291) hide show
  1. package/.agent-src/commands/agent-handoff.md +4 -1
  2. package/.agent-src/commands/agent-status.md +3 -0
  3. package/.agent-src/commands/agents-audit.md +4 -0
  4. package/.agent-src/commands/agents-cleanup.md +6 -1
  5. package/.agent-src/commands/agents-prepare.md +3 -0
  6. package/.agent-src/commands/analyze-reference-repo.md +4 -0
  7. package/.agent-src/commands/bug-fix.md +7 -3
  8. package/.agent-src/commands/bug-investigate.md +4 -0
  9. package/.agent-src/commands/chat-history-checkpoint.md +126 -0
  10. package/.agent-src/commands/chat-history-clear.md +6 -1
  11. package/.agent-src/commands/chat-history-resume.md +7 -2
  12. package/.agent-src/commands/chat-history.md +7 -2
  13. package/.agent-src/commands/check-current-md.md +137 -0
  14. package/.agent-src/commands/commit-in-chunks.md +118 -0
  15. package/.agent-src/commands/commit.md +4 -0
  16. package/.agent-src/commands/compress.md +37 -2
  17. package/.agent-src/commands/context-create.md +4 -0
  18. package/.agent-src/commands/context-refactor.md +4 -0
  19. package/.agent-src/commands/copilot-agents-init.md +3 -0
  20. package/.agent-src/commands/copilot-agents-optimize.md +3 -0
  21. package/.agent-src/commands/create-pr-description.md +4 -0
  22. package/.agent-src/commands/create-pr.md +4 -0
  23. package/.agent-src/commands/do-and-judge.md +4 -1
  24. package/.agent-src/commands/do-in-steps.md +3 -0
  25. package/.agent-src/commands/e2e-heal.md +4 -0
  26. package/.agent-src/commands/e2e-plan.md +4 -0
  27. package/.agent-src/commands/estimate-ticket.md +4 -1
  28. package/.agent-src/commands/feature-dev.md +4 -0
  29. package/.agent-src/commands/feature-explore.md +4 -0
  30. package/.agent-src/commands/feature-plan.md +4 -0
  31. package/.agent-src/commands/feature-refactor.md +4 -0
  32. package/.agent-src/commands/feature-roadmap.md +6 -0
  33. package/.agent-src/commands/fix-ci.md +4 -0
  34. package/.agent-src/commands/fix-portability.md +5 -2
  35. package/.agent-src/commands/fix-pr-bot-comments.md +4 -0
  36. package/.agent-src/commands/fix-pr-comments.md +4 -0
  37. package/.agent-src/commands/fix-pr-developer-comments.md +4 -0
  38. package/.agent-src/commands/fix-references.md +3 -0
  39. package/.agent-src/commands/fix-seeder.md +4 -0
  40. package/.agent-src/commands/implement-ticket.md +39 -13
  41. package/.agent-src/commands/jira-ticket.md +4 -0
  42. package/.agent-src/commands/judge.md +3 -0
  43. package/.agent-src/commands/memory-add.md +5 -3
  44. package/.agent-src/commands/memory-full.md +5 -2
  45. package/.agent-src/commands/memory-promote.md +7 -6
  46. package/.agent-src/commands/mode.md +3 -0
  47. package/.agent-src/commands/module-create.md +4 -0
  48. package/.agent-src/commands/module-explore.md +4 -0
  49. package/.agent-src/commands/onboard.md +33 -0
  50. package/.agent-src/commands/optimize-agents.md +4 -0
  51. package/.agent-src/commands/optimize-augmentignore.md +12 -0
  52. package/.agent-src/commands/optimize-rtk-filters.md +3 -0
  53. package/.agent-src/commands/optimize-skills.md +4 -0
  54. package/.agent-src/commands/override-create.md +4 -0
  55. package/.agent-src/commands/override-manage.md +4 -0
  56. package/.agent-src/commands/package-reset.md +3 -0
  57. package/.agent-src/commands/package-test.md +3 -0
  58. package/.agent-src/commands/prepare-for-review.md +4 -0
  59. package/.agent-src/commands/project-analyze.md +4 -0
  60. package/.agent-src/commands/project-health.md +4 -0
  61. package/.agent-src/commands/propose-memory.md +6 -8
  62. package/.agent-src/commands/quality-fix.md +4 -0
  63. package/.agent-src/commands/refine-ticket.md +12 -7
  64. package/.agent-src/commands/review-changes.md +39 -8
  65. package/.agent-src/commands/review-routing.md +4 -0
  66. package/.agent-src/commands/roadmap-create.md +18 -0
  67. package/.agent-src/commands/roadmap-execute.md +14 -1
  68. package/.agent-src/commands/rule-compliance-audit.md +4 -0
  69. package/.agent-src/commands/set-cost-profile.md +11 -0
  70. package/.agent-src/commands/sync-agent-settings.md +12 -0
  71. package/.agent-src/commands/sync-gitignore.md +3 -0
  72. package/.agent-src/commands/tests-create.md +4 -0
  73. package/.agent-src/commands/tests-execute.md +6 -3
  74. package/.agent-src/commands/threat-model.md +4 -0
  75. package/.agent-src/commands/update-form-request-messages.md +4 -0
  76. package/.agent-src/commands/upstream-contribute.md +4 -0
  77. package/.agent-src/commands/work.md +161 -0
  78. package/.agent-src/guidelines/agent-infra/engineering-memory-data-format.md +2 -6
  79. package/.agent-src/guidelines/agent-infra/layered-settings.md +0 -1
  80. package/.agent-src/guidelines/agent-infra/memory-access.md +0 -7
  81. package/.agent-src/guidelines/agent-infra/role-contracts.md +2 -4
  82. package/.agent-src/guidelines/agent-infra/self-improvement-pipeline.md +0 -1
  83. package/.agent-src/guidelines/php/patterns/strategy.md +180 -2
  84. package/.agent-src/personas/README.md +0 -1
  85. package/.agent-src/rules/artifact-drafting-protocol.md +7 -2
  86. package/.agent-src/rules/artifact-engagement-recording.md +133 -0
  87. package/.agent-src/rules/ask-when-uncertain.md +18 -13
  88. package/.agent-src/rules/augment-portability.md +64 -37
  89. package/.agent-src/rules/autonomous-execution.md +158 -0
  90. package/.agent-src/rules/chat-history-cadence.md +109 -0
  91. package/.agent-src/rules/chat-history-ownership.md +123 -0
  92. package/.agent-src/rules/chat-history-visibility.md +96 -0
  93. package/.agent-src/rules/cli-output-handling.md +27 -4
  94. package/.agent-src/rules/command-suggestion.md +134 -0
  95. package/.agent-src/rules/commit-policy.md +109 -0
  96. package/.agent-src/rules/direct-answers.md +114 -0
  97. package/.agent-src/rules/docs-sync.md +36 -0
  98. package/.agent-src/rules/downstream-changes.md +10 -9
  99. package/.agent-src/rules/improve-before-implement.md +9 -6
  100. package/.agent-src/rules/language-and-tone.md +85 -6
  101. package/.agent-src/rules/non-destructive-by-default.md +117 -0
  102. package/.agent-src/rules/package-ci-checks.md +4 -0
  103. package/.agent-src/rules/preservation-guard.md +20 -0
  104. package/.agent-src/rules/roadmap-progress-sync.md +159 -27
  105. package/.agent-src/rules/role-mode-adherence.md +1 -1
  106. package/.agent-src/rules/scope-control.md +42 -1
  107. package/.agent-src/rules/size-enforcement.md +2 -3
  108. package/.agent-src/rules/skill-quality.md +3 -8
  109. package/.agent-src/rules/ui-audit-before-build.md +106 -0
  110. package/.agent-src/rules/user-interaction.md +107 -51
  111. package/.agent-src/scripts/update_roadmap_progress.py +73 -9
  112. package/.agent-src/skills/blade-ui/SKILL.md +47 -3
  113. package/.agent-src/skills/command-routing/SKILL.md +32 -0
  114. package/.agent-src/skills/command-writing/SKILL.md +52 -2
  115. package/.agent-src/skills/description-assist/SKILL.md +21 -0
  116. package/.agent-src/skills/estimate-ticket/SKILL.md +0 -1
  117. package/.agent-src/skills/existing-ui-audit/SKILL.md +202 -0
  118. package/.agent-src/skills/fe-design/SKILL.md +78 -61
  119. package/.agent-src/skills/file-editor/SKILL.md +9 -0
  120. package/.agent-src/skills/finishing-a-development-branch/SKILL.md +4 -0
  121. package/.agent-src/skills/flux/SKILL.md +31 -4
  122. package/.agent-src/skills/guideline-writing/SKILL.md +24 -2
  123. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +51 -9
  124. package/.agent-src/skills/livewire/SKILL.md +49 -4
  125. package/.agent-src/skills/md-language-check/SKILL.md +103 -0
  126. package/.agent-src/skills/php-coder/SKILL.md +24 -0
  127. package/.agent-src/skills/react-shadcn-ui/SKILL.md +121 -0
  128. package/.agent-src/skills/refine-prompt/SKILL.md +220 -0
  129. package/.agent-src/skills/refine-ticket/SKILL.md +32 -28
  130. package/.agent-src/skills/roadmap-management/SKILL.md +24 -11
  131. package/.agent-src/skills/rule-writing/SKILL.md +23 -1
  132. package/.agent-src/skills/skill-writing/SKILL.md +3 -5
  133. package/.agent-src/skills/upstream-contribute/SKILL.md +3 -3
  134. package/.agent-src/skills/using-git-worktrees/SKILL.md +3 -1
  135. package/.agent-src/templates/AGENTS.md +24 -6
  136. package/.agent-src/templates/agent-settings.md +149 -0
  137. package/.agent-src/templates/roadmaps.md +11 -4
  138. package/.agent-src/templates/scripts/implement_ticket/__init__.py +63 -26
  139. package/.agent-src/templates/scripts/implement_ticket/__main__.py +8 -2
  140. package/.agent-src/templates/scripts/memory_lookup.py +1 -1
  141. package/.agent-src/templates/scripts/telemetry/__init__.py +42 -0
  142. package/.agent-src/templates/scripts/telemetry/aggregator.py +154 -0
  143. package/.agent-src/templates/scripts/telemetry/boundary.py +171 -0
  144. package/.agent-src/templates/scripts/telemetry/engagement.py +238 -0
  145. package/.agent-src/templates/scripts/telemetry/report_renderer.py +170 -0
  146. package/.agent-src/templates/scripts/telemetry/settings.py +112 -0
  147. package/.agent-src/templates/scripts/telemetry_record.py +166 -0
  148. package/.agent-src/templates/scripts/telemetry_report.py +161 -0
  149. package/.agent-src/templates/scripts/telemetry_status.py +142 -0
  150. package/.agent-src/templates/scripts/work_engine/__init__.py +58 -0
  151. package/.agent-src/templates/scripts/work_engine/__main__.py +9 -0
  152. package/.agent-src/templates/scripts/work_engine/cli.py +195 -0
  153. package/.agent-src/templates/scripts/work_engine/cli_args.py +116 -0
  154. package/.agent-src/templates/scripts/{implement_ticket → work_engine}/delivery_state.py +10 -3
  155. package/.agent-src/templates/scripts/work_engine/directives/__init__.py +33 -0
  156. package/.agent-src/templates/scripts/work_engine/directives/backend/__init__.py +98 -0
  157. package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/analyze.py +1 -1
  158. package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/implement.py +3 -3
  159. package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/memory.py +2 -2
  160. package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/plan.py +2 -2
  161. package/.agent-src/templates/scripts/work_engine/directives/backend/refine.py +396 -0
  162. package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/report.py +37 -5
  163. package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/test.py +2 -2
  164. package/.agent-src/templates/scripts/{implement_ticket/steps → work_engine/directives/backend}/verify.py +2 -2
  165. package/.agent-src/templates/scripts/work_engine/directives/mixed/__init__.py +116 -0
  166. package/.agent-src/templates/scripts/work_engine/directives/mixed/contract.py +254 -0
  167. package/.agent-src/templates/scripts/work_engine/directives/mixed/stitch.py +229 -0
  168. package/.agent-src/templates/scripts/work_engine/directives/mixed/ui.py +231 -0
  169. package/.agent-src/templates/scripts/work_engine/directives/ui/__init__.py +113 -0
  170. package/.agent-src/templates/scripts/work_engine/directives/ui/_passthrough.py +44 -0
  171. package/.agent-src/templates/scripts/work_engine/directives/ui/apply.py +241 -0
  172. package/.agent-src/templates/scripts/work_engine/directives/ui/audit.py +414 -0
  173. package/.agent-src/templates/scripts/work_engine/directives/ui/design.py +335 -0
  174. package/.agent-src/templates/scripts/work_engine/directives/ui/polish.py +510 -0
  175. package/.agent-src/templates/scripts/work_engine/directives/ui/review.py +468 -0
  176. package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/__init__.py +119 -0
  177. package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/_skipped.py +37 -0
  178. package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/apply.py +165 -0
  179. package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/refine.py +66 -0
  180. package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/report.py +62 -0
  181. package/.agent-src/templates/scripts/work_engine/directives/ui_trivial/test.py +115 -0
  182. package/.agent-src/templates/scripts/work_engine/dispatcher.py +331 -0
  183. package/.agent-src/templates/scripts/work_engine/emitters.py +43 -0
  184. package/.agent-src/templates/scripts/work_engine/errors.py +19 -0
  185. package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +76 -0
  186. package/.agent-src/templates/scripts/work_engine/hooks/__init__.py +54 -0
  187. package/.agent-src/templates/scripts/work_engine/hooks/builtin/__init__.py +32 -0
  188. package/.agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.py +103 -0
  189. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_append.py +44 -0
  190. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_halt_append.py +42 -0
  191. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_heartbeat.py +50 -0
  192. package/.agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_turn_check.py +49 -0
  193. package/.agent-src/templates/scripts/work_engine/hooks/builtin/directive_set_guard.py +53 -0
  194. package/.agent-src/templates/scripts/work_engine/hooks/builtin/halt_surface_audit.py +50 -0
  195. package/.agent-src/templates/scripts/work_engine/hooks/builtin/state_shape_validation.py +52 -0
  196. package/.agent-src/templates/scripts/work_engine/hooks/builtin/trace.py +84 -0
  197. package/.agent-src/templates/scripts/work_engine/hooks/context.py +66 -0
  198. package/.agent-src/templates/scripts/work_engine/hooks/events.py +44 -0
  199. package/.agent-src/templates/scripts/work_engine/hooks/exceptions.py +79 -0
  200. package/.agent-src/templates/scripts/work_engine/hooks/registry.py +60 -0
  201. package/.agent-src/templates/scripts/work_engine/hooks/runner.py +73 -0
  202. package/.agent-src/templates/scripts/work_engine/hooks/settings.py +141 -0
  203. package/.agent-src/templates/scripts/work_engine/input_builders.py +163 -0
  204. package/.agent-src/templates/scripts/work_engine/intent/__init__.py +47 -0
  205. package/.agent-src/templates/scripts/work_engine/intent/classify.py +280 -0
  206. package/.agent-src/templates/scripts/work_engine/migration/__init__.py +8 -0
  207. package/.agent-src/templates/scripts/work_engine/migration/v0_to_v1.py +231 -0
  208. package/.agent-src/templates/scripts/{implement_ticket → work_engine}/persona_policy.py +1 -1
  209. package/.agent-src/templates/scripts/work_engine/resolvers/__init__.py +22 -0
  210. package/.agent-src/templates/scripts/work_engine/resolvers/diff.py +106 -0
  211. package/.agent-src/templates/scripts/work_engine/resolvers/file.py +113 -0
  212. package/.agent-src/templates/scripts/work_engine/resolvers/prompt.py +90 -0
  213. package/.agent-src/templates/scripts/work_engine/scoring/__init__.py +14 -0
  214. package/.agent-src/templates/scripts/work_engine/scoring/confidence.py +300 -0
  215. package/.agent-src/templates/scripts/work_engine/stack/__init__.py +31 -0
  216. package/.agent-src/templates/scripts/work_engine/stack/detect.py +187 -0
  217. package/.agent-src/templates/scripts/work_engine/state.py +641 -0
  218. package/.agent-src/templates/scripts/work_engine/state_io.py +202 -0
  219. package/.claude-plugin/marketplace.json +105 -2
  220. package/AGENTS.md +38 -8
  221. package/CHANGELOG.md +609 -0
  222. package/README.md +136 -14
  223. package/config/agent-settings.template.yml +45 -0
  224. package/config/gitignore-block.txt +4 -0
  225. package/docs/MIGRATION.md +122 -0
  226. package/docs/architecture.md +111 -35
  227. package/docs/contracts/STABILITY.md +95 -0
  228. package/docs/contracts/adr-chat-history-split.md +132 -0
  229. package/docs/contracts/adr-command-suggestion.md +146 -0
  230. package/docs/contracts/adr-implement-ticket-runtime.md +122 -0
  231. package/docs/contracts/adr-product-ui-track.md +384 -0
  232. package/docs/contracts/adr-prompt-driven-execution.md +187 -0
  233. package/docs/contracts/agent-memory-contract.md +149 -0
  234. package/docs/contracts/artifact-engagement-flow.md +262 -0
  235. package/docs/contracts/command-clusters.md +126 -0
  236. package/docs/contracts/command-suggestion-flow.md +148 -0
  237. package/docs/contracts/implement-ticket-flow.md +628 -0
  238. package/docs/contracts/linear-ai-rules-inclusion.md +143 -0
  239. package/docs/contracts/linear-ai-three-layers.md +131 -0
  240. package/docs/contracts/rule-interactions.md +107 -0
  241. package/docs/contracts/rule-interactions.yml +142 -0
  242. package/docs/contracts/ui-stack-extension.md +236 -0
  243. package/docs/contracts/ui-track-flow.md +338 -0
  244. package/docs/development.md +1 -1
  245. package/docs/getting-started.md +3 -3
  246. package/docs/installation.md +124 -2
  247. package/docs/migrations/commands-1.15.0.md +112 -0
  248. package/docs/showcase.md +204 -0
  249. package/docs/ui-track-mental-model.md +121 -0
  250. package/package.json +1 -1
  251. package/scripts/agent-config +199 -0
  252. package/scripts/audit_cloud_compatibility.py +288 -0
  253. package/scripts/build_cloud_bundle.py +458 -0
  254. package/scripts/build_linear_digest.py +263 -0
  255. package/scripts/chat_history.py +796 -7
  256. package/scripts/check_compression.py +139 -0
  257. package/scripts/check_iron_law_prominence.py +143 -0
  258. package/scripts/check_md_language.py +159 -0
  259. package/scripts/check_portability.py +38 -0
  260. package/scripts/check_public_links.py +185 -0
  261. package/scripts/check_references.py +1 -0
  262. package/scripts/check_reply_consistency.py +140 -0
  263. package/scripts/command_suggester/__init__.py +51 -0
  264. package/scripts/command_suggester/cooldown.py +132 -0
  265. package/scripts/command_suggester/loader.py +70 -0
  266. package/scripts/command_suggester/match.py +180 -0
  267. package/scripts/command_suggester/rank.py +120 -0
  268. package/scripts/command_suggester/render.py +86 -0
  269. package/scripts/command_suggester/sanitize.py +113 -0
  270. package/scripts/command_suggester/settings.py +125 -0
  271. package/scripts/command_suggester/types.py +78 -0
  272. package/scripts/hooks/augment-chat-history.sh +56 -0
  273. package/scripts/install-hooks.sh +67 -0
  274. package/scripts/install.py +150 -33
  275. package/scripts/lint_marketplace.py +27 -0
  276. package/scripts/lint_no_new_atomic_commands.py +179 -0
  277. package/scripts/lint_rule_interactions.py +149 -0
  278. package/scripts/memory_lookup.py +1 -1
  279. package/scripts/migrate_command_suggestions.py +151 -0
  280. package/scripts/release.py +297 -64
  281. package/scripts/schemas/command.schema.json +41 -0
  282. package/scripts/skill_linter.py +81 -0
  283. package/scripts/sync_agent_settings.py +42 -12
  284. package/scripts/update_counts.py +10 -0
  285. package/templates/consumer-settings/augment-cli-hooks.json +54 -0
  286. package/templates/consumer-settings/claude-settings.json +55 -1
  287. package/.agent-src/rules/chat-history.md +0 -171
  288. package/.agent-src/templates/scripts/implement_ticket/cli.py +0 -171
  289. package/.agent-src/templates/scripts/implement_ticket/dispatcher.py +0 -134
  290. package/.agent-src/templates/scripts/implement_ticket/steps/__init__.py +0 -49
  291. package/.agent-src/templates/scripts/implement_ticket/steps/refine.py +0 -140
@@ -3,6 +3,9 @@ name: agent-handoff
3
3
  skills: [agent-docs-writing]
4
4
  description: Generate a context summary for continuing work in a fresh chat. Replaces the session system.
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: false
8
+ rationale: "Explicit fresh-chat handoff — must be deliberate, never inferred from prose."
6
9
  ---
7
10
 
8
11
  # /agent-handoff
@@ -70,7 +73,7 @@ Show the handoff prompt in a fenced code block and say:
70
73
  and without any persistent file.
71
74
  - [`/chat-history-resume`](chat-history-resume.md) is **pull-based**: the
72
75
  new chat reads `.agent-chat-history` from disk (written by the
73
- [`chat-history`](../rules/chat-history.md) rule). Works only on the
76
+ [`chat-history`](../rules/chat-history-ownership.md) rule). Works only on the
74
77
  same machine and same repo, but captures more detail (every phase /
75
78
  tool call / decision the prior session logged).
76
79
 
@@ -3,6 +3,9 @@ name: agent-status
3
3
  skills: [agent-docs-writing]
4
4
  description: Show current conversation stats — message count, token costs, task progress, next freshness check.
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: false
8
+ rationale: "Pure status display; no natural-language trigger distinct from idle small-talk."
6
9
  ---
7
10
 
8
11
  # /agent-status
@@ -3,6 +3,10 @@ name: agents-audit
3
3
  description: Audits agents/ and module agents/ directories — finds outdated docs, structural issues, duplicates, orphaned overrides, and creates an improvement roadmap.
4
4
  skills: [agents-audit, agent-docs-writing, override-management, module-management]
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: true
8
+ trigger_description: "audit my agent docs, check the state of the agents/ directory"
9
+ trigger_context: "stale files under agents/ or recent edits to .augment/ without doc updates"
6
10
  ---
7
11
 
8
12
  # /agents-audit
@@ -3,6 +3,9 @@ name: agents-cleanup
3
3
  skills: [agent-docs-writing]
4
4
  description: Execute cleanup actions from an agents-audit — move, merge, delete, and update agent docs
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: false
8
+ rationale: "Consumes prior audit output; only meaningful right after /agents-audit."
6
9
  ---
7
10
 
8
11
  # agents-cleanup
@@ -18,10 +21,12 @@ disable-model-invocation: true
18
21
  ```
19
22
  ⚠️ No audit roadmap found.
20
23
 
21
- 1. 🔍 Run /agents-audit first (recommended)
24
+ 1. 🔍 Run /agents-audit first
22
25
  2. 💬 I know what to do — start directly
23
26
  ```
24
27
 
28
+ **Recommendation: 1 — Run /agents-audit first** — without an audit roadmap, the cleanup is shooting in the dark. Caveat: pick 2 only if you already know exactly which docs to touch.
29
+
25
30
  If option 2, ask what to clean up.
26
31
 
27
32
  ### 2. Show action plan
@@ -3,6 +3,9 @@ name: agents-prepare
3
3
  skills: [agent-docs-writing]
4
4
  description: Scaffold the agents/ directory structure with all required subdirectories and .gitkeep files
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: false
8
+ rationale: "One-shot project scaffolding; only run during initial setup."
6
9
  ---
7
10
 
8
11
  # agents-prepare
@@ -3,6 +3,10 @@ name: analyze-reference-repo
3
3
  skills: [project-analyzer, learning-to-rule-or-skill]
4
4
  description: Analyze an external reference repository (competitor, inspiration, peer) and produce a structured comparison + adoption plan for this project.
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: true
8
+ trigger_description: "look at how X does this, compare with that other repo, study this competitor's approach"
9
+ trigger_context: "external repo URL or path mentioned in the prompt"
6
10
  ---
7
11
 
8
12
  # analyze-reference-repo
@@ -3,6 +3,10 @@ name: bug-fix
3
3
  skills: [bug-analyzer, pest-testing]
4
4
  description: Plan and implement a bug fix — based on investigation, with quality checks and test verification
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: true
8
+ trigger_description: "fix this bug, patch the issue, resolve this error"
9
+ trigger_context: "branch name matches fix/* or bug/*"
6
10
  ---
7
11
 
8
12
  # bug-fix
@@ -71,8 +75,8 @@ RISIKO-CHECK:
71
75
  For each change:
72
76
 
73
77
  1. **Read the file** before modifying.
74
- 2. **Make the change** using `str-replace-editor`.
75
- 3. **Check for downstream effects** — use `codebase-retrieval` to find callers.
78
+ 2. **Make the change** with the file-edit tool available to the agent.
79
+ 3. **Check for downstream effects** — search the codebase for callers.
76
80
  4. **Update related code** if signatures or behavior changed.
77
81
 
78
82
  ### 4. Quality checks
@@ -142,7 +146,7 @@ If the root cause is a recognizable pattern (not a one-off typo),
142
146
  drop a `historical-patterns` signal so future work benefits:
143
147
 
144
148
  ```bash
145
- python3 scripts/memory_signal.py \
149
+ ./agent-config memory:signal \
146
150
  --type historical-patterns \
147
151
  --path "<primary affected file>" \
148
152
  --body "<root cause → fix, one sentence>" \
@@ -3,6 +3,10 @@ name: bug-investigate
3
3
  skills: [bug-analyzer, sentry-integration]
4
4
  description: Investigate a bug — auto-detect ticket from branch, gather Jira/Sentry/description context, trace root cause
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: true
8
+ trigger_description: "why is this broken, investigate this error, trace the root cause"
9
+ trigger_context: "Sentry URL, Jira bug ticket key, or stack trace pasted in the prompt"
6
10
  ---
7
11
 
8
12
  # bug-investigate
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: chat-history-checkpoint
3
+ description: Append a phase-boundary entry to .agent-chat-history — the CHECKPOINT fallback for platforms without a native hook surface (Augment Code IDE plugin, Cursor non-1.7+, Cline non-Mac/Linux). Cooperative gate, ~1 second to run.
4
+ disable-model-invocation: true
5
+ suggestion:
6
+ eligible: true
7
+ trigger_description: "User wants to flush a chat-history phase boundary on a CHECKPOINT-class platform (Augment IDE, Cursor < 1.7, Cline on Windows) — phrases like 'checkpoint chat history', 'log a phase boundary', 'manual chat-history append'."
8
+ trigger_context: "chat_history.path == checkpoint AND a phase-shaped boundary just completed (decision recorded, multi-tool sequence finished, task-list item closed)."
9
+ ---
10
+
11
+ <!-- cloud_safe: noop -->
12
+
13
+ # /chat-history-checkpoint
14
+
15
+ Force-append a `phase`-typed entry to `.agent-chat-history`. CHECKPOINT
16
+ fallback for platforms without native hooks — see
17
+ [`agents/contexts/chat-history-platform-hooks.md`](../../../agents/contexts/chat-history-platform-hooks.md)
18
+ for the per-platform classification.
19
+
20
+ Use this at decision points, end of phase, or after a meaningful tool
21
+ sequence on a CHECKPOINT/MANUAL platform. On HOOK platforms (Claude
22
+ Code, Augment CLI, Cursor 1.7+, Cline non-Windows, Windsurf, Gemini
23
+ CLI), the platform fires hooks automatically — manual use is allowed
24
+ but rarely needed.
25
+
26
+ ## When to use
27
+
28
+ - IDE plugin without hooks (Augment Code IDE plugin as of 2026-04-30).
29
+ - Long-running tool sequence on any platform that did not flush.
30
+ - Explicit phase-boundary marker after a multi-tool refactor.
31
+ - Crash-recovery rehearsal — verifies the append path works before a
32
+ real outage.
33
+
34
+ ## When NOT to use
35
+
36
+ - HOOK platform mid-session — the platform already records turn-level
37
+ cadence; an extra checkpoint just adds noise.
38
+ - After every line of agent output — that's `per_turn` cadence and is
39
+ configured in `.agent-settings.yml`, not via this command.
40
+ - To inspect the log → [`/chat-history`](chat-history.md).
41
+ - To wipe the log → [`/chat-history-clear`](chat-history-clear.md).
42
+ - To reload the log into context → [`/chat-history-resume`](chat-history-resume.md).
43
+
44
+ ## Steps
45
+
46
+ ### 1. Check if enabled
47
+
48
+ Read `chat_history.enabled` from `.agent-settings.yml`. If `false` or
49
+ the section is missing, say so and stop:
50
+
51
+ ```
52
+ > 📒 chat-history is disabled (chat_history.enabled = false).
53
+ > Nothing to checkpoint. Enable in .agent-settings.yml first.
54
+ ```
55
+
56
+ ### 2. Determine the phase label
57
+
58
+ Pick a short label (2–6 words) that names what just happened:
59
+
60
+ - "phase-1-done", "refactor-extracted", "tests-green",
61
+ "review-comments-fixed", "merge-ready".
62
+
63
+ If the user invoked the command without context, ask once with
64
+ numbered options per [`user-interaction`](../rules/user-interaction.md):
65
+
66
+ ```
67
+ > 1. Use a free-text label — type 2–6 words for the checkpoint
68
+ > 2. Use a generic "manual-checkpoint" label
69
+ > 3. Skip — close without writing
70
+ ```
71
+
72
+ ### 3. Append the checkpoint
73
+
74
+ Invoke the master CLI:
75
+
76
+ ```
77
+ ./agent-config chat-history:checkpoint \
78
+ --first-user-msg "<the conversation's first user message>" \
79
+ --payload '{"phase": "<label>"}'
80
+ ```
81
+
82
+ The wrapper delegates to `scripts/chat_history.py hook-append --event phase`,
83
+ which performs cadence filtering and ownership checks. Cadence is read
84
+ from `chat_history.frequency` in `.agent-settings.yml` — `per_turn` /
85
+ `per_phase` / `per_tool`. `per_tool` cadence drops the `phase` event;
86
+ say so explicitly if that is the active mode.
87
+
88
+ ### 4. Confirm
89
+
90
+ Render a one-line confirmation, mirroring the user's language:
91
+
92
+ ```
93
+ > 📒 Checkpoint logged: <label> (entries: N → N+1)
94
+ ```
95
+
96
+ If the helper returned `skipped_cadence`, surface it:
97
+
98
+ ```
99
+ > 📒 Checkpoint skipped — current cadence is per_tool, phase events are dropped.
100
+ > Switch chat_history.frequency to per_phase or per_turn to capture phase boundaries.
101
+ ```
102
+
103
+ ## Gotchas
104
+
105
+ - The command writes through the same ownership-state machine as
106
+ hooks — a `foreign` log triggers the
107
+ [`chat-history`](../rules/chat-history-ownership.md) Foreign-Prompt before any
108
+ append. This is intentional; the checkpoint must not silently
109
+ hijack another session's log.
110
+ - The `phase` payload key is required. Other keys are accepted but
111
+ ignored by the JSONL schema (forward-compat — they may be promoted
112
+ to first-class fields later).
113
+ - On HOOK platforms, hook entries and checkpoint entries coexist
114
+ cleanly. The schema does not deduplicate; if you checkpoint
115
+ immediately after a hook fires, expect two adjacent entries with
116
+ different `source` values.
117
+
118
+ ## See also
119
+
120
+ - [`chat-history`](../rules/chat-history-ownership.md) — the rule defining the
121
+ conditional Iron Law (HOOK platforms vs CHECKPOINT/MANUAL platforms)
122
+ - [`/chat-history`](chat-history.md) — read-only status display
123
+ - [`/chat-history-resume`](chat-history-resume.md) — adopt + load
124
+ - [`/chat-history-clear`](chat-history-clear.md) — wipe
125
+ - [`agents/contexts/chat-history-platform-hooks.md`](../../../agents/contexts/chat-history-platform-hooks.md) — per-platform strategy table
126
+ - [`scripts/chat_history.py`](../../../scripts/chat_history.py) — `hook-append` API
@@ -2,8 +2,13 @@
2
2
  name: chat-history-clear
3
3
  description: Manually delete the persistent chat-history log — asks for confirmation, optionally archives to a timestamped backup before wiping
4
4
  disable-model-invocation: true
5
+ suggestion:
6
+ eligible: false
7
+ rationale: "Destructive log wipe — must be deliberate."
5
8
  ---
6
9
 
10
+ <!-- cloud_safe: noop -->
11
+
7
12
  # /chat-history-clear
8
13
 
9
14
  Wipes `.agent-chat-history`. Use when the log is stale (wrong session),
@@ -91,7 +96,7 @@ effect — this command is scoped to the file on disk only.
91
96
 
92
97
  ## See also
93
98
 
94
- - [`chat-history`](../rules/chat-history.md) — the rule that writes the file
99
+ - [`chat-history`](../rules/chat-history-ownership.md) — the rule that writes the file
95
100
  - [`/chat-history`](chat-history.md) — status inspection
96
101
  - [`/chat-history-resume`](chat-history-resume.md) — load + adopt instead of wipe
97
102
  - [`agent-settings` template](../templates/agent-settings.md) — `chat_history.*` reference
@@ -2,8 +2,13 @@
2
2
  name: chat-history-resume
3
3
  description: Load the persistent chat-history log into the current conversation — picks match/returning/foreign flow and supports resume, merge, replace, or continue
4
4
  disable-model-invocation: true
5
+ suggestion:
6
+ eligible: false
7
+ rationale: "Explicit resume mechanic with foreign/returning state machine."
5
8
  ---
6
9
 
10
+ <!-- cloud_safe: noop -->
11
+
7
12
  # /chat-history-resume
8
13
 
9
14
  Reconnects the current conversation with an existing `.agent-chat-history`
@@ -12,7 +17,7 @@ flow: silent summarize, adopt, merge, or replace.
12
17
 
13
18
  Use after a crashed chat, after switching tools (Augment → Claude Code),
14
19
  or when the agent showed the foreign- or returning-session prompt from
15
- the [`chat-history`](../rules/chat-history.md) rule and the user picked
20
+ the [`chat-history`](../rules/chat-history-ownership.md) rule and the user picked
16
21
  "resume".
17
22
 
18
23
  ## When NOT to use
@@ -169,7 +174,7 @@ the user decides what to do next.
169
174
 
170
175
  ## See also
171
176
 
172
- - [`chat-history`](../rules/chat-history.md) — the rule that triggers
177
+ - [`chat-history`](../rules/chat-history-ownership.md) — the rule that triggers
173
178
  this command via the foreign- and returning-session prompts
174
179
  - [`/chat-history`](chat-history.md) — status inspection without adopting
175
180
  - [`/chat-history-clear`](chat-history-clear.md) — wipe instead of adopt
@@ -2,12 +2,17 @@
2
2
  name: chat-history
3
3
  description: Show the status of the persistent chat-history log — file size, entry count, header fingerprint, age, and the last few entries
4
4
  disable-model-invocation: true
5
+ suggestion:
6
+ eligible: false
7
+ rationale: "Status display only; no NL trigger distinct from 'show status'."
5
8
  ---
6
9
 
10
+ <!-- cloud_safe: noop -->
11
+
7
12
  # /chat-history
8
13
 
9
14
  Inspect `.agent-chat-history` — the JSONL log maintained by the
10
- [`chat-history`](../rules/chat-history.md) rule for crash recovery.
15
+ [`chat-history`](../rules/chat-history-ownership.md) rule for crash recovery.
11
16
 
12
17
  Shows:
13
18
 
@@ -95,7 +100,7 @@ append may trigger overflow handling.
95
100
 
96
101
  ## See also
97
102
 
98
- - [`chat-history`](../rules/chat-history.md) — the rule that writes the file
103
+ - [`chat-history`](../rules/chat-history-ownership.md) — the rule that writes the file
99
104
  - [`/chat-history-resume`](chat-history-resume.md) — adopt + load
100
105
  - [`/chat-history-clear`](chat-history-clear.md) — wipe
101
106
  - [`agent-settings` template](../templates/agent-settings.md) — `chat_history.*` reference
@@ -0,0 +1,137 @@
1
+ ---
2
+ name: check-current-md
3
+ description: Check the currently open .md file (or a path you pass) for German content outside DE:/EN: anchor blocks — umlauts, German function words, untranslated quoted phrases. Reports findings and offers fixes.
4
+ disable-model-invocation: true
5
+ suggestion:
6
+ eligible: false
7
+ rationale: "Package-internal — only the event4u/agent-config repo runs this."
8
+ ---
9
+
10
+ # check-current-md
11
+
12
+ Manual runner for the [`md-language-check`](../skills/md-language-check/SKILL.md)
13
+ skill. Use to spot-check an `.md` file the agent did not just edit, or to
14
+ audit a file before opening a PR.
15
+
16
+ ## Instructions
17
+
18
+ ### 1. Resolve target paths
19
+
20
+ If the user passed one or more paths, use those. Otherwise, default to
21
+ the file currently open in the editor (per `personal.ide` open-file
22
+ context). If no file is open and no path was passed:
23
+
24
+ ```
25
+ > ❌ No target file. Pass a path: /check-current-md path/to/file.md
26
+ ```
27
+
28
+ Stop here.
29
+
30
+ ### 2. Run the checker
31
+
32
+ ```bash
33
+ python3 scripts/check_md_language.py <path> [<path> …] --format json
34
+ ```
35
+
36
+ Exit codes:
37
+
38
+ - `0` → no findings; report and stop
39
+ - `1` → findings present; continue to step 3
40
+ - `3` → internal error; surface stderr and stop
41
+
42
+ ### 3. Display findings
43
+
44
+ ```
45
+ ═══════════════════════════════════════════════
46
+ 📒 .md LANGUAGE CHECK
47
+ ═══════════════════════════════════════════════
48
+
49
+ Found: {count} violation(s) across {files} file(s)
50
+ ```
51
+
52
+ For each violation:
53
+
54
+ ```
55
+ {file}:{line} — kind: {umlaut|de_word} — match: `{matched_text}`
56
+ │ {context_line}
57
+ ```
58
+
59
+ Group by file when multiple files are scanned.
60
+
61
+ ### 4. Classify and propose fixes
62
+
63
+ For each violation, propose one of:
64
+
65
+ | Cause | Proposed fix |
66
+ |---|---|
67
+ | German sentence in body prose | Translate the line to English |
68
+ | Quoted German token used as example | Move into a labeled `DE: … · EN: …` block |
69
+ | Meta-documentation that documents trigger words | Append `<!-- md-language-check: ignore -->` to the line |
70
+ | Line is intentionally bilingual but unlabeled | Reformat as labeled anchor block |
71
+
72
+ Present a summary:
73
+
74
+ ```
75
+ Proposed fixes:
76
+ 1. {file}:{line} — {strategy}
77
+ 2. {file}:{line} — {strategy}
78
+
79
+ > 1. Apply all fixes
80
+ > 2. Apply interactively
81
+ > 3. Skip — report only
82
+ ```
83
+
84
+ Recommendation: **2 — Apply interactively** when ≥3 findings, **1 —
85
+ Apply all fixes** for ≤2 findings or when all are pure translations.
86
+
87
+ ### 5. Apply fixes
88
+
89
+ Edit only the source-of-truth file:
90
+
91
+ - Path under `.agent-src.uncompressed/` → edit there directly
92
+ - Path under `.agent-src/` → edit the matching
93
+ `.agent-src.uncompressed/` file instead, then run
94
+ `bash scripts/compress.sh --sync`
95
+ - Path under `.augment/` → same as `.agent-src/` (it's a projection)
96
+ - Path under `agents/` → edit directly (no compression layer)
97
+
98
+ After all fixes, re-run:
99
+
100
+ ```bash
101
+ python3 scripts/check_md_language.py <path> [<path> …]
102
+ ```
103
+
104
+ ### 6. Mark hashes (only if `.agent-src.uncompressed/` was edited)
105
+
106
+ For each modified source file:
107
+
108
+ ```bash
109
+ python3 scripts/compress.py --mark-done "{relative_path}"
110
+ ```
111
+
112
+ This keeps `.compression-hashes.json` consistent with the new content.
113
+
114
+ ## Rules
115
+
116
+ - **Never edit `.augment/` directly** — it's a generated projection.
117
+ Per [`augment-source-of-truth`](../rules/augment-source-of-truth.md),
118
+ the source is `.agent-src.uncompressed/`.
119
+ - **Per-line ignore marker is reserved** for meta-documentation that
120
+ must quote German tokens; do NOT use it as a generic mute.
121
+ - **Frontmatter is exempt** — the checker skips YAML frontmatter at
122
+ the head of the file; do not try to "fix" frontmatter.
123
+ - **Do NOT commit or push** — finishing the check leaves the working
124
+ tree to the user.
125
+
126
+ ## When NOT to use
127
+
128
+ - Project content outside `.agent-src*/`, `.augment/`, or `agents/`
129
+ follows a different language policy — do not enforce English there.
130
+ - During autonomous edits, the [`md-language-check`](../skills/md-language-check/SKILL.md)
131
+ skill already gates saves; this command is for **manual** spot-checks.
132
+
133
+ ## See also
134
+
135
+ - [`md-language-check`](../skills/md-language-check/SKILL.md) — the gate skill this command wraps
136
+ - [`language-and-tone`](../rules/language-and-tone.md) — the rule that defines the policy
137
+ - [`augment-source-of-truth`](../rules/augment-source-of-truth.md) — where to apply fixes
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: commit-in-chunks
3
+ skills: [git-workflow]
4
+ description: Stage and commit all uncommitted changes in logical chunks WITHOUT confirmation — sibling of /commit for autonomous flows
5
+ disable-model-invocation: true
6
+ suggestion:
7
+ eligible: true
8
+ trigger_description: "commit everything autonomously, split and commit without confirmation"
9
+ trigger_context: "autonomous mode active and uncommitted changes present"
10
+ ---
11
+
12
+ # commit-in-chunks
13
+
14
+ Auto-split and commit all local changes in one go. Use this when you
15
+ want commits made without being asked to confirm each batch. Sibling
16
+ of [`/commit`](commit.md), which presents the plan and waits for
17
+ approval. This command skips the approval step.
18
+
19
+ Per [`autonomous-execution`](../rules/autonomous-execution.md), the
20
+ agent does **not** commit on its own initiative — invoking this
21
+ command is the user's explicit consent to commit.
22
+
23
+ ## Instructions
24
+
25
+ ### 1. Detect uncommitted changes
26
+
27
+ ```bash
28
+ git status --short
29
+ git diff --stat
30
+ git diff --cached --stat
31
+ ```
32
+
33
+ If there are no uncommitted changes (staged or unstaged), report
34
+ "Nothing to commit." and stop.
35
+
36
+ ### 2. Determine the ticket number
37
+
38
+ - Extract the ticket ID from the current branch name (e.g. `feat/DEV-1234/...`
39
+ → `DEV-1234`).
40
+ - If no ticket ID is found, omit the scope from the messages — write
41
+ `chore: ...` not `chore(): ...`. Do **not** ask the user for one.
42
+
43
+ ### 3. Analyze and split
44
+
45
+ Group changed files into logical units following [`/commit`](commit.md)
46
+ step 3 grouping rules:
47
+
48
+ - Same feature / fix → one commit.
49
+ - Migration + corresponding model/seeder → one commit.
50
+ - Test + the class under test → one commit.
51
+ - Style-only changes (ECS/Rector/formatter) → separate `style:` /
52
+ `chore:` commit when mixed with logic changes.
53
+ - Truly unrelated change → its own commit.
54
+
55
+ Splitting rules:
56
+ - **Do NOT split arbitrarily** — only when the changes are logically
57
+ independent.
58
+ - **Prefer fewer, coherent commits** over many tiny ones.
59
+ - **Tests go with the code they test** unless test-only changes are
60
+ large and noisy.
61
+
62
+ Generate commit messages per [`commit-conventions`](../rules/commit-conventions.md).
63
+
64
+ ### 4. Commit immediately
65
+
66
+ For each planned commit in order:
67
+
68
+ ```bash
69
+ git add {files...}
70
+ git commit -m "{message}"
71
+ ```
72
+
73
+ No "looks good?" prompt. No confirmation step. The user invoked this
74
+ command knowing the plan would be executed.
75
+
76
+ ### 5. Report
77
+
78
+ Show a summary:
79
+
80
+ ```
81
+ Created N commits:
82
+ 1. {sha1} feat(DEV-1234): {summary}
83
+ 2. {sha2} test(DEV-1234): {summary}
84
+ 3. {sha3} chore: {summary}
85
+ ```
86
+
87
+ Include `git log --oneline -N` output for verification.
88
+
89
+ ## Rules
90
+
91
+ - **Never push** — pushing remains explicit per [`scope-control`](../rules/scope-control.md#git-operations--permission-gated).
92
+ - **Never modify files** — only stage and commit existing changes.
93
+ - **Do NOT add untracked files** unless they are clearly part of the
94
+ change (check with `git status` first).
95
+ - **Follow commit conventions** as defined in [`commit-conventions`](../rules/commit-conventions.md).
96
+ - **Stop on first failure** — if `git commit` fails (hook rejection,
97
+ pre-commit lint error), stop, report the error, and do not continue
98
+ with the remaining planned commits. Leave staged files for the user
99
+ to inspect.
100
+ - **No interactive prompts** — fail fast over hanging waiting for
101
+ input.
102
+
103
+ ## When NOT to use
104
+
105
+ - The user has not seen the diff yet and would benefit from review →
106
+ use [`/commit`](commit.md) instead.
107
+ - The diff includes large unrelated changes the user might want to
108
+ reorganise → use [`/commit`](commit.md).
109
+ - The repo has a pre-commit hook that requires manual response → fix
110
+ the hook or use `/commit`.
111
+
112
+ ## See also
113
+
114
+ - [`/commit`](commit.md) — split + present plan + wait for approval
115
+ - [`autonomous-execution`](../rules/autonomous-execution.md) — the
116
+ rule that defines the no-ask commit default this command opts out of
117
+ - [`commit-conventions`](../rules/commit-conventions.md) — message
118
+ format
@@ -3,6 +3,10 @@ name: commit
3
3
  skills: [git-workflow]
4
4
  description: Stage and commit all uncommitted changes — splits into logical commits following Conventional Commits
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: true
8
+ trigger_description: "commit my changes, save this to git, create commits for these changes"
9
+ trigger_context: "git status shows uncommitted changes"
6
10
  ---
7
11
 
8
12
  # commit
@@ -3,6 +3,9 @@ name: compress
3
3
  skills: []
4
4
  description: Compress .md files from .agent-src.uncompressed/ into caveman format and write to .agent-src/
5
5
  disable-model-invocation: true
6
+ suggestion:
7
+ eligible: false
8
+ rationale: "Package-internal tooling; only the event4u/agent-config repo runs this."
6
9
  ---
7
10
 
8
11
  # compress
@@ -31,7 +34,8 @@ bash scripts/compress.sh --changed
31
34
  This lists only `.md` files whose source has changed since the last compression (based on
32
35
  stored SHA-256 hashes). If no files changed → you're done.
33
36
 
34
- If you need to see ALL files regardless of change status: `bash scripts/compress.sh --list`.
37
+ If you need to see ALL files regardless of change status:
38
+ `bash scripts/compress.sh --list`.
35
39
 
36
40
  ## Step 3: Compress each changed .md file
37
41
 
@@ -68,6 +72,7 @@ For each changed `.md` file:
68
72
  - Concrete validation checks
69
73
  - Gotchas based on real failure patterns
70
74
  - Anti-patterns that prevent recurring failures
75
+ - **Iron Law sections** — see "Iron Laws — do not touch" below
71
76
  5. **Enrich (SKILL.md files only):** During compression, also improve agent-effectiveness:
72
77
  - **Validation steps:** If a Procedure ends with a vague validation ("check if it works"),
73
78
  replace with concrete checks (expected output, commands to verify, specific conditions)
@@ -137,9 +142,39 @@ Show a summary table with per-category stats (files compressed, avg savings).
137
142
  (useful after an initial full compression or when bootstrapping the hash file).
138
143
  - A file with no stored hash is always treated as "changed".
139
144
 
145
+ ## Iron Laws — do not touch
146
+
147
+ Sections under headings matching `Iron Law`, `Iron Laws`, or `The Iron Law` (any
148
+ heading level, numbered variants like `Iron Law 1` included) are **load-bearing
149
+ behavioral rules**. Compression rules above do **not** apply to them.
150
+
151
+ For every Iron Law section in a source file:
152
+
153
+ - **Copy the heading verbatim**, exact text, exact `#` level. NEVER downgrade
154
+ `## Iron Law` to `### Iron Law` or to inline `**Iron Law:**`.
155
+ - **Copy the fenced code block byte-for-byte**, including capitalization, line
156
+ breaks, and trailing punctuation.
157
+ - **Copy the negation clauses verbatim** — `NO X`, `NEVER Y`, `NOT Z`. These
158
+ are the law's exception denials; stripping them weakens the rule.
159
+ - **Caveman the prose, keep every passage** — every paragraph, every list
160
+ item, and every fenced code block from the source must appear in the
161
+ compressed output, in order. Drop articles, shorten phrasing, primitive
162
+ grammar, terse cave-speak — all encouraged. What's forbidden is dropping
163
+ whole sentences, merging two paragraphs into one, or skipping a bullet.
164
+ One paragraph → one paragraph; one bullet → one bullet.
165
+ - **No word-count budget** — compress the prose as hard as caveman style
166
+ allows. The check is structural (passage count), not quantitative.
167
+
168
+ `scripts/check_compression.py` enforces these mechanically — `iron_law_missing`,
169
+ `iron_law_passage_dropped`, and `iron_law_heading_downgrade` are `error`-level
170
+ and block CI.
171
+
172
+ If an Iron Law section genuinely contains filler (rare): edit the SOURCE in
173
+ `.agent-src.uncompressed/`, not the compressed copy. Source is the truth.
174
+
140
175
  ## Compression quality checklist
141
176
 
142
- **Also apply the `preservation-guard` rule** — strongest validation, example, anti-pattern, and decision hints must survive compression.
177
+ **Also apply the `preservation-guard` rule** — strongest validation, example, anti-pattern, and decision hints must survive compression. Iron Laws are non-negotiable.
143
178
 
144
179
  After compressing each file, verify:
145
180