Turn notes or a source into retrieval practice instead of rereading.
Turn the text below into 10 hard short-answer questions that test recall, not recognition.
Ask them one at a time. After each answer, grade it against the source and tell me what I missed. Do not show the answers up front.
{{source}}
A slash command that writes a clean commit from the staged diff.
---
description: Write a commit message from the staged diff and commit.
---
Read the staged diff with `git diff --cached`. Write a commit message:
- First line: imperative, under 60 characters, no trailing period.
- Body: why the change exists, not a restatement of the diff. Wrap at 72.
- No AI tells in the message. No em dashes.
Show me the message, then commit on my confirmation. Never commit secrets or unrelated files.
Turn an outline into a first draft in a fixed voice, ready for the editing loop.
Write a first draft from the outline below. Match this voice: {{voice}}.
Keep paragraphs short. State the point first, then support it. Do not pad. This is a draft for an editing pass, so favor substance over polish.
{{outline}}
Make a model find the gaps in your understanding of a concept.
Explain {{concept}} to me at three levels: to a beginner, to a practitioner, and to an expert.
Then I will explain it back to you in my own words. Find the logical gaps, point out where I only think I understand, and correct me. Do not be polite about it.
Get the three problems that matter, not a wall of nitpicks.
Review this {{language}} code. Name the 3 highest-value problems, explain why each one matters, and show the fix.
Ignore style and formatting. Focus on correctness, edge cases, and anything that breaks in production.
{{code}}
A skill that strips AI tells from prose before it ships.
---
name: humanizer
description: Use when writing or editing prose for a human reader. Removes AI tells.
---
Rewrite the text so it reads as written by a person.
Hard rules:
- No em dashes or en dashes. Use a period, comma, or colon.
- No rule-of-three padding, no "-ing" filler clauses, no promotional adjectives.
- Vary sentence length. State the point, then support it.
- Keep the author's voice. Do not add opinions to reference or technical text.
Before returning, scan the draft for the patterns above and fix any that remain.
A PostToolUse hook that blocks em dashes from being written to files.
A deterministic gate. The model cannot talk its way past it. Register in settings.json:
```json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write|MultiEdit",
"hooks": [
{
"type": "command",
"command": "node .claude/hooks/no-emdash.mjs"
}
]
}
]
}
}
```
The script greps the edited file for em and en dashes and exits non-zero with a message if it finds any, which feeds the failure back to the model as a correction.
An isolated subagent that scores a draft against criteria and returns structured feedback.
---
name: reviewer
description: Score a draft against fixed criteria. Returns a verdict and specific fixes.
tools: Read, Grep
---
You review one draft. You do not rewrite it.
Score it against the criteria you were given. Return JSON:
- `pass`: true or false
- `score`: 0 to 100
- `fixes`: the 3 highest-value changes, each with the reason and the exact edit
Be strict. Default to `pass: false` when a criterion is not clearly met. Your output is the loop's exit signal, so do not hedge.