# A Reader Pointed Out My "Ask First" Principle Only Covered Half My Tool — So I Fixed It

> Source: <https://dev.to/magithar/a-reader-pointed-out-my-ask-first-principle-only-covered-half-my-tool-so-i-fixed-it-345c>
> Published: 2026-06-30 22:50:34+00:00

In my [last article](https://dev.to/magithar/i-got-tired-of-asking-what-am-i-missing-so-i-made-my-ai-ask-first-g8), I added Flow B to SKILLmama: run `/skillmama`

with no arguments, and it scans your project, finds capability gaps, and **asks before it searches**. The whole point was to stop the AI from guessing what you need.

Then [@alexshev](https://dev.to/alexshev) left this comment:

Having the AI ask first is underrated because it changes the contract from answer-generation to ambiguity-reduction. The best agents I have used spend a little time shrinking the unknowns before they touch code.

"Ambiguity-reduction over answer-generation." That's a sharper framing of the idea than I'd come up with myself. But reading it back, I realized the comment had quietly exposed a hole in my own design.

SKILLmama has two entry points:

`/skillmama`

with no args → scan → `/skillmama find me a job queue`

→ scan → searchFlow B asked first. Flow A didn't.

When you named a capability directly, SKILLmama scanned your project for stack context — and then went straight to searching and ranking. It reduced the ambiguity it could *see* from your files, but it never reduced the ambiguity it couldn't: budget, license, self-hosted vs. hosted, "must work with what I already run."

So `/skillmama find me a job queue`

on a solo side project would happily return an enterprise-grade, infra-heavy #1 pick — technically the highest score, practically wrong for the person asking. The commenter's principle applied perfectly to Flow B. Flow A was still in answer-generation mode.

I added one step to Flow A: **Confirm Constraints.**

```
Phase 0   — parse the request
Phase 1   — scan the project
Phase 1.5 — if no constraints were stated: ask ONE informed question, then STOP   ← new
Phase 2   — derive search terms
Phase 3   — search
...
```

The key word is *informed*. Because Phase 1 already scanned your stack, the question isn't a generic "any constraints?" — it's built from what it just found:

```
SKILLmama: I see you're on Python / FastAPI / PostgreSQL / Docker / OpenAI.
Before I search — any constraints? (e.g. self-hosted, open-source only,
free tier, must integrate with PostgreSQL). Reply "none" to search with no filters.
```

Then it stops and waits — same hard stop that makes Flow B collaborative.

A clarifying question is only good if it doesn't fire when it shouldn't. So Phase 1.5 has guardrails:

**1. It only fires when you gave no constraints.** If you already said `find me an open-source job queue`

, the constraint is on the table — it skips the question and searches immediately. No nagging.

**2. It degrades gracefully.** If there are no project files to scan (empty folder, fresh repo), it doesn't print a broken `I see you're on [nothing]`

sentence. It falls back to a generic constraint question instead.

**3. It asks once.** No re-prompting loops. One question, your answer (or "none"), then it runs.

I could have made Flow A ask the same three questions Flow B asks. I didn't, on purpose.

Flow B earns three questions because it's doing open-ended discovery — it found a handful of gaps and needs to know which ones matter, what your constraints are, and what it missed. Flow A already knows the capability. The only real unknown left is *constraints*. Asking more than that would be friction for its own sake.

The contract the commenter described — shrink the unknowns before you touch code — doesn't mean "ask everything." It means ask for the **smallest input that most changes the output.** For a scored ranking, that input is constraints: a single "must be self-hosted" can reorder the entire top 3.

Phase 1.5 is live in v1.4.0 across all four adapters — Claude Code, Claude.ai, OpenAI Codex, and Antigravity. Both entry points now reduce ambiguity before they act; they just ask the right number of questions for how much they already know.

```
npx skills add Magithar/SKILLmama
```

** github.com/Magithar/SKILLmama** — Apache 2.0.

And if you've got a sharp observation about where it still guesses instead of asking — leave a comment. The last one became a release.
