First-principles design mode for AI coding agents — the inverse of ponytail. Where ponytail minimizes ("don't build it"), rethink re-derives ("design it from the requirements, not from what the code already looks like").
On design and architecture questions it forces the method:
- Requirements before solutions — state what the design must do and how you'll know it worked; name assumptions when they're unstated.
- Research the problem class — how is this solved well elsewhere? Cite prior art, don't assert.
- Design from first principles — derive the structure as if no code existed.
- Then measure the gap — read the current implementation last, to size migration cost, not to anchor the design.
- Name the trade-offs — and the constraint that would flip the call.
It self-gates: scoped, tactical questions ("rename this") pass through untouched.
Off switch: say stop rethink / normal mode.
- Always-on directive injected every session via a SessionStart hook.
/rethink— force the mode onto the current task./rethink-audit— aim it at an existing subsystem: get a structured redesign (requires→prior-art→design→gap→migrate→trade-offs). Applies nothing; one-shot report.
claude plugin marketplace add eranroseman/rethink
claude plugin install rethink@rethinkSkills appear namespaced: /rethink:rethink, /rethink:rethink-audit.
codex plugin marketplace add eranroseman/rethink
codex plugin add rethink@rethinkCodex sets CLAUDE_PLUGIN_ROOT for compatibility and reads the same
.claude-plugin/marketplace.json and hooks/hooks.json, so one plugin serves
both tools. The SessionStart hook emits the hookSpecificOutput.additionalContext
envelope, which both tools accept.
MIT