Sometimes you sit on a problem and can't solve it. You go and ask a senior developer about it — someone who is always busy, and probably won't respond right away. So you sit on the problem longer, until the senior comes back with a short, concise answer that creates an Aha moment.

That's what Ask A Senior is.

How it works

It judges your question before it answers it.

Ask something vague and you get it back, with the one thing you left out:

> why does my reducer run twice?

Not enough. What did you expect, and what actually happened?

> it runs twice on mount, only in dev

Closer. Which two calls — same action or different?

> same action, prev differs, StrictMode is on

There it is. Look at what StrictMode does on mount.

That last message is a hint, not an answer, and that's as much as you get. Still stuck, and it asks you a narrower question instead of explaining. The questions keep narrowing until answering one hands you the answer.

Two refusals is the cap. The third time you ask, you get the hint however you worded it — this is friction, not a wall.

It cannot write code while it's on. Not "won't" — the file-editing tools are blocked by a hook, so you can't talk it into a snippet. Reading, grepping and running your tests all still work, because it has to be able to point at things.

Lookups don't get the treatment. A flag, an API name, a version — that's one line back, no friction. Neither does an emergency: name a deadline or say prod is down and it drops all of this.

Install

Ask A Senior is a Claude Code plugin. Inside Claude Code, run:

/plugin marketplace add egorus1/ask-a-senior
/plugin install ask-a-senior@ask-a-senior

The first command registers this repo as a plugin marketplace. The second installs the plugin from it. If the install summary says Run /reload-plugins to activate, run that too.

Needs Node, which you almost certainly have.

Use it

Turn it on once. It stays on for the rest of the session.

/ask-a-senior:on

Turn it off when you want a normal assistant back:

/ask-a-senior:off

It is off until you ask for it. Installing the plugin changes nothing about a normal session — it never switches itself on, because a tool that silently refuses to write code would just look broken.

/ask-a-senior:on senior mode on
/ask-a-senior:off senior mode off
/ask-a-senior:status on or off, and how much you've leaned on it
/ask-a-senior:log the problems you worked out yourself
/ask-a-senior:statusline add the [senior] badge to your statusline

The log

Every problem that resolves gets four lines in .ask-a-senior/log.md: what you first asked, what you ended up asking, and what you found.

## 2026-08-21 — reducer fires twice on mount
**First asked:** why does my reducer run twice?
**Ended up asking:** same action twice, prev differs, StrictMode on
**They found:** StrictMode double-invokes in dev

The gap between the first two lines is the thing worth reading later. It's git-ignored by default — it's yours.

The badge

/ask-a-senior:statusline

Puts [senior · 12m · 4 asked] in your statusline while the mode is on, and nothing when it's off, so you can always tell the difference between "it's refusing me on purpose" and "it's being unhelpful today."

Update / remove

/plugin marketplace update ask-a-senior
/plugin uninstall ask-a-senior@ask-a-senior

Hacking on it

To run a local checkout without installing:

git clone https://github.com/egorus1/ask-a-senior.git
claude --plugin-dir ./ask-a-senior
node --test tests/

Edit skills/ask-a-senior/SKILL.md and /reload-plugins to pick it up. Changing anything in hooks/ needs a session restart. See CLAUDE.md for how the pieces fit and why each hook exists.

License

MIT