Skip to content
Development
Skill

/taste

Use when asking "overkill?", "elegant?", "audit", or "taste-test this", or setting a taste register. Not for tasks that require source or remote-system changes.

From plugin
odin-claude-plugin
40200 skills

Claude Code

$ npx -y skills add OutlineDriven/odin-claude-plugin --skill taste --agent claude-code

SKILL.md

taste.SKILL.md
name: taste
description: 'Use when asking "overkill?", "elegant?", "audit", or "taste-test this", or setting a taste register. Not for tasks that require source or remote-system changes.'

Taste

Contract

| Field | Bound contract | |---|---| | Trigger | User asks 'overkill?', 'elegant?', 'audit', or 'taste-test this', or asks to set a taste register | | Authority | Read-only. No file, VCS, credential, paid, published, deployed, or remote mutation. | | Side effect | Audit returns a verdict table and ranked fixes in chat; anchor mode persists the register best-effort; no files are written. | | Done | A per-anchor verdict table with ranked top-3 fixes is returned, or the taste register is loaded in anchor mode. |

Inputs

  • The artifact or decision to judge (required for audit mode).
  • No inputs required for anchor mode beyond the invocation.

Procedure

Mode selection

Auto-detect from the user's phrasing, with slash-arg override:

1. User wording matches `overkill?`, `elegant?`, `audit`, `taste-test this`, `judge this` → **audit** mode. 2. User wording matches `taste anchor`, `taste mode`, `taste register`, or anticipates producing fresh work → **anchor** mode. 3. Anything else → **audit** (default; cheaper to run; no behavior commitment). 4. Explicit override: `/taste audit` or `/taste anchor`. Override always wins.

Audit mode

1. Walk the eleven anchors one at a time against the artifact. 2. For each anchor: 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. 3. When two anchors fail with conflicting fixes (e.g., Restraint says compress, Generosity says expand), surface the tension explicitly. Do not auto-pick. Tie-break is user-led. 4. Close with the top-3 ranked fixes.

Anchor mode

1. Load the charter and anchors as imperatives for subsequent responses. 2. Persistence is best-effort: applies until the user signals "stop taste" or "normal mode" OR context is compacted, whichever comes first. 3. Re-invoke `/taste anchor` if drift is observed.

Auto-clarity exception

Suspend the register temporarily for:

  • Destructive or irreversible operation confirmations (e.g., `git push --force`, `rm -rf`).
  • Security or data-loss warnings.
  • Multi-step procedures where order or atomicity matters and the judgment register would obscure structure.
  • Direct user clarification requests.

Resume the register once the high-stakes section ends.

The two-sided charter

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 comprehensive 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 |

Anchors

Eleven anchors apply across prose, code, design, and decisions:

| Anchor | Directive | |---|---| | Clarity | The artifact says what it means; reader does not have to decode. | | Hierarchy | Important looks important; secondary supports. | | Intent | Every choice is committed; nothing reads as "I let the default decide." | | Coherence | Parts agree; tension only where deliberately staged. | | Restraint | Default posture; compress before adding. | | Generosity | Gives more than required at the right moment. | | Honesty | No decoration covering missing depth; no slop covering missing POV. Care finishes the unseen. | | One strong moment | Exactly one commitment carries the lift; the rest supports. | | Invariants | The artifact names what must hold; preconditions, postconditions, and invariants are explicit. | | Audience | The artifact enters through the reader's frame, not the author's. | | Emptiness | The artifact leaves space the user completes; the least assertion. |

Failure and recovery

| Failure class | Response | |---|---| | Artifact too short or ambiguous to judge | Return "insufficient surface" with the specific missing element; do not fabricate verdicts. | | Anchors produce conflicting fixes | Surface the tension; do not auto-pick. Tie-break is user-led. | | Anchor mode drift after context compaction | Re-invoke `/taste anchor`; do not assume persistence. | | User artifact is in a domain with no charter row | Apply the anchors directly; note the domain gap in the verdict table. |

No partial-result fabrication. If fewer than eleven anchors can be judged, return only the judged anchors and name the blocker.

Output

Audit mode

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    |
Read more
@outlinedriven
Ships withodin-claude-plugin

Formerly the ODIN Claude Plugin. The repository URL is unchanged. Outline-Driven Development, nicknamed ODIN, is a highly opinionated code-agent skill library: principles-first engineering, surgical editing, and workflow automation, published as installable

Stars on GitHub

Momentum

stars in total
40
Star history of OutlineDriven/odin-claude-plugin on GitHub, a chart by star-history.com

Other skills on odin-claude-plugin.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about taste.

Which coding agents can use taste?
taste installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.