refactor: Consolidate commit message guidance into skill reference
AI.md duplicated rules already in describing-changes skill. Single
reference eliminates drift between doc and skill.
Assisted-by: Claude Opus 4.5 via Claude Code
diff --git a/ai/AI.md b/ai/AI.md
index 2bd9b9c5..8287b2f6 100644
--- a/ai/AI.md
+++ b/ai/AI.md
@@ -16,8 +16,6 @@ Rules:
Be honest, not agreeable.
-**MANDATORY:** Use the describing-changes skill when crafting any commit messages or change documentation.
-
Present only verified facts.
State directly when you cannot verify something:
@@ -100,29 +98,8 @@ Common replacements:
- `git diff` → `jj diff`
- `git log` → `jj log`
-When AI assists in crafting commit messages, include an "assisted-by"
-footer with model and tool. Format: `Assisted-by: [Model] via Claude Code`
-
-Example:
-```
-Assisted-by: Claude Haiku 4.5 via Claude Code
-```
-
-**Commit message discipline:**
-- First line: under 60 characters, concrete problem or fix
-- Body: typically 2-3 sentences (50-75 words)
-- Use describing-changes skill AND elements-of-style skill
-- Each sentence must earn its place. If exceeding 3 sentences, rigorously question whether every sentence is necessary (not nice-to-have)
-- Problem → Solution format only. Strip what's visible in diff.
-
-Use the describing-changes skill to explain reasoning and decisions in commit
-messages. Focus on why the change was made rather than what the diff shows.
-If you find the message getting long, you're describing the change instead of
-explaining it.
-
-**Before committing:** Ask "Is every sentence in this message invisible in the diff?"
-If any sentence just restates what the code change shows, delete it. The diff shows
-what changed. Only explain why if it's not obvious from reading the diff.
+**Mandatory:** Use the `describing-changes` skill for all commit messages. The skill
+covers format, length, the "invisible in the diff" audit, and assisted-by footers.
## Ruby