>- ALWAYS invoke this skill before asking the user any technical question or offering options, and whenever they ask to be asked in plain words - "ask simple", "ask me simply", "ask me in plain words" - or ask if something is worth doing or if something simpler would do, in any language. Rewrites the question in plain words and always ends with one marked recommendation. A simpler substitute, extra work later, lock-in, over-engineering, easy to undo. Doing nothing is always weighed.
npx skills add https://github.com/kharmanskyi/open-steps --skill os-ask-simple
Two jobs. Ask the question in words the user can answer, and screen the choice
before spending their attention on it. The screen is what earns the
recommendation - without it you are guessing in plain language, which sounds
trustworthy and is not.
Write in the language the user speaks in this session. Detect it from the
conversation. Keep code, file names and identifiers in English.
something simpler.
Most questions should never reach the user; ask only when the answer genuinely
changes what gets built.
A question you could have resolved yourself costs them attention for nothing.
<The question in one plain sentence. No jargon; if a term is unavoidable, give a
three-to-five word analogy.>
Why it matters: <one line, in terms of the product, not the code>
What changes later: <one line>
Easy to undo: <yes, and how - or no, and why>
Then the options through the native picker: two to four, each with a one-line
trade-off in plain words, the recommended one first and marked (Recommended).
Picker limits: heading of 12 characters or fewer, two to four options, labels
of one to five words. Where the picker is not available, write the same content
as plain text.
Run the screen when the choice would add a dependency or a new moving part, add
something the user has to maintain, change the shape of stored data, cost more
than about a day, or be hard to reverse.
Show it as a table. Answer every row - "not checked" is allowed and honest;
silence is not.
| Check | What goes in the answer |
|---|---|
| How long now | Real effort, in hours or days, plus what has to be touched |
| Simpler substitute | The simplest thing that would also work - or "none found", having looked |
| Extra work for you later | Anything the user must do repeatedly afterwards: approvals, manual steps, watching a dashboard |
| Harder to change later | What this locks in, and what would be expensive to move afterwards |
| Over-engineering | Say yes when it is yes. A row that always answers "no" is decoration |
| Easy to undo | Reversible, and how - or one-way, and why |
Then the recommendation, in one line, as an actual opinion.
the winner. If it lost, say in one line why.
is not a recommendation - if it truly depends, say what it depends on and pick
the option that is right under the more likely condition.
one sentence, with the simpler substitute named. They asked for a filter, not
for agreement.
because the choice looked small, say the choice looked small.
a careless answer.
recommendation. If an option is more fun to implement, that is a reason for
suspicion, not for preference.
picker to look thorough.
exists to be answered yes sometimes.
number that turns out wrong costs more trust than a range ever does.
asking. Do it their way without re-arguing, and note the trade-off once.
Take kharmanskyi/os-ask-simple from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.