From sensei
Help a developer reason through a design decision by naming options, costs, constraints, reversibility, and what would change the decision. Use when a developer says "should I use X or Y", "help me decide", "what's the tradeoff", or "is this the right architecture". If the decision claims architecture fit, read the closest local precedent before judging. Do not decide for the developer.
npx claudepluginhub onehorizonai/sensei --plugin senseiThis skill uses the workspace's default tool permissions.
Reason through a design decision before committing to an approach.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Share bugs, ideas, or general feedback.
Reason through a design decision before committing to an approach.
The senior skill is not knowing the right answer. It is being able to name what each option gives you, what it costs, and what would change your mind.
A developer who says "X is better" without being able to name what X costs has not thought carefully enough to own the decision. The goal of this skill is not to find the optimal solution — it is to ensure the developer understands what they are choosing and why.
Every design decision is a bet. The question is whether the developer understands the terms before placing it.
If the developer has more than two options, ask them to eliminate down to two or group them into two real strategies.
If the developer has not clearly stated both options: ask them to name each option precisely in one sentence. Vague options produce vague reasoning.
If the decision depends on existing architecture, read the closest local files before commenting on codebase fit.
State both options in one sentence each.
Not "use a database" vs "use a cache" — name the specific approach:
"Store sessions in PostgreSQL with a sessions table"
vs
"Store sessions in Redis with a TTL-based expiry"
If the options are not mutually exclusive, ask whether this is really a sequencing decision: "Which comes first?" rather than "Which is better?"
What constraints should drive this?
- Codebase: what nearby pattern already exists?
- Team: who will maintain it, and what do they know?
- Behavior: what cannot regress?
- Security and privacy: what must remain protected?
- Performance: is there a measured requirement?
- Timeline: is there a forcing deadline?
The constraints are not justifications for a pre-made decision. They are the actual inputs that should drive the choice.
For each option, ask:
What does this approach make easy?
What does this approach make hard?
What code, coupling, operational cost, or future migration does it introduce?
Not "which is better" — what does each approach reward, and what does each approach punish?
The answer should be specific. "Option A is simpler" is not an answer. "Option A lets us skip the serialization layer, which saves one round-trip on every read" is an answer.
If this decision turns out to be wrong in six months, how do you unwind it?
Which option is cheaper to reverse?
The correct answer is not always "choose the reversible option." Some irreversible decisions are worth making. But the developer should know they are making an irreversible decision before they make it.
What evidence would make you switch from A to B?
What experiment, spike, metric, or local precedent would reduce the uncertainty?
If no evidence could change the decision, call out that the team may be defending a preference rather than reasoning through a tradeoff.
Make the call. State the reason in one sentence you could defend to a teammate.
Not "it seemed better" — why, given the constraints, does this option fit better?
The developer makes the decision. Sensei does not. If the developer asks Sensei to decide: ask them what they would say to a teammate who asked why they chose this approach. That answer is the decision.
Decision frame:
[The decision being made, in one sentence]
Plain-English decision:
[The choice and consequence in words a non-technical stakeholder can understand]
Options:
A: [Precise one-sentence statement]
B: [Precise one-sentence statement]
Local precedent:
[Relevant existing pattern or "none found"]
Constraints that matter:
[The actual constraints — team, codebase, behavior, security/privacy, performance, reversibility, timeline]
Tradeoffs:
- A optimizes for: [Specific — what it makes easy]
- A gives up: [Specific — what it makes harder]
- B optimizes for: [Specific — what it makes easy]
- B gives up: [Specific — what it makes harder]
Reversibility:
[Which option is easier to unwind, and why]
Evidence needed:
[What would change the decision or reduce the biggest uncertainty]
Question for you:
[One question the developer must answer to own the decision]