From odin
Audits prose, code, design, and decisions against slop (AI defaults) and overkill using two-sided charter and eight anchors. Anchor mode loads judgment register for responses.
npx claudepluginhub outlinedriven/odin-claude-plugin --plugin odinThis skill uses the workspace's default tool permissions.
Distinctive judgment over centroid-AI default convergence. Restraint as default. One strong intentional moment per artifact. The two failure modes — slop and overkill — are reciprocal: both come from refusing to commit. Slop hedges by averaging into AI defaults; overkill hedges by piling on decoration that covers thin ideas.
Audits taste and elegance of code, designs, architectures, APIs, and text by asking reflective questions that build user's self-judgment, without giving advice or evaluations.
Scores own output 0-10 across 5 task-appropriate dimensions pre-emit. Fixes and rescoring regressions below functional (5-6) band for complex code, docs, or specs.
Detects and removes AI slop patterns in text, code, and design using Python scripts and pattern references. Use for content quality reviews and cleanup.
Share bugs, ideas, or general feedback.
Distinctive judgment over centroid-AI default convergence. Restraint as default. One strong intentional moment per artifact. The two failure modes — slop and overkill — are reciprocal: both come from refusing to commit. Slop hedges by averaging into AI defaults; overkill hedges by piling on decoration that covers thin ideas.
/taste operates across prose, code, design, and decisions with the same charter and the same eight anchors. It is a judgment register; it does not transform the artifact, it decides what about the artifact is committed and what is hedge.
Auto-detect from the user's phrasing, with slash-arg override:
is this slop?, overkill?, elegant?, audit, taste-test this, judge this → audit mode.taste anchor, taste mode, taste register, or anticipates producing fresh work → anchor mode./taste audit, /taste anchor. Override always wins.audit mode procedureWalk the eight anchors one at a time against the artifact. For each: state the anchor, judge the artifact (pass / warn / fail), cite the Side A or Side B charter row when violated, and write a concrete fix. Close with the top-3 ranked fixes. Conflict-handling: when two anchors fail with conflicting fixes (e.g., Restraint says compress, Generosity says expand), surface the tension explicitly — no auto-pick, no fixed precedence list. Tie-break is user-led.
anchor mode procedureLoad the charter and anchors as imperatives the model will honor across subsequent responses. Persistence is best-effort: applies until the user signals "stop taste" or "normal mode" OR context is compacted, whichever comes first. Re-invoke /taste anchor if drift is observed. The model honors a directive loaded once into context.
Side A — slop (centroid-AI default convergence): generic openers ("Sure!", "Of course"), hedge-stacks ("perhaps it might be"), validation phrases ("you're absolutely right"), AI-flat prose with no rhythm, default palettes, defensive nil-checks where impossible, 50/50 decision hedges that pick nothing.
Side B — overkill (decoration covering thin ideas): gradient stacks on every section, thesaurus-soup prose ("orchestrate the holistic synthesis of"), abstraction towers (4 layers where 1 suffices), complexity-flex masking absent conviction, ceremony that performs depth without delivering it.
| Domain | Side A (slop) | Side B (overkill) |
|---|---|---|
| Prose | "I think this might possibly help..." | "We orchestrate a paradigm shift across" |
| Code | try { x } catch { /* swallow */ } | Factory<Builder<Strategy<T>>> |
| Design | Default purple-blue gradient | Gradient on every section + glow + glass |
| Decision | "Both options have merit, so..." | 12-criterion weighted scoring matrix |
See references/charter.md for the full charter.
Eight anchors apply to every domain:
See references/anchors.md for cross-domain manifestations of each anchor.
Per-anchor table, then ranked top-3 fixes:
Anchor | Verdict | Citation | Fix
-------------------|---------|-----------------------|----------------------------
Clarity | pass | |
Hierarchy | warn | Side A: AI-flat prose | Lead with the verdict line
Intent | fail | Side A: hedge-stack | Pick one; drop "might"
Coherence | pass | |
Restraint | warn | Side B: ceremony | Cut the framing paragraph
Generosity | pass | |
Honesty | pass | |
One-strong-moment | fail | Side A: 50/50 hedge | Commit to one direction
Top-3 fixes: 1. Pick one direction (Intent + One-strong-moment).
2. Lead with the verdict (Hierarchy).
3. Cut the framing paragraph (Restraint).
Conflict-handling: when two anchors fail with conflicting fixes, surface the tension in the table; do not auto-pick. Defer resolution to user.
When /taste anchor activates, emit a short register-load message:
/taste anchor active.
Anchors: Clarity, Hierarchy, Intent, Coherence, Restraint, Generosity, Honesty,
One-strong-moment.
Side A (slop) blocks: generic openers, hedge-stacks, validation phrases, AI-flat prose.
Side B (overkill) blocks: thesaurus soup, abstraction towers, decoration covering thin ideas.
Persistence: best-effort. Stop with "stop taste" or "normal mode". May reset on context compaction.
Suspend /taste register temporarily for:
git push --force, rm -rf).Resume the register once the high-stakes section ends.