Version: 1.0.0 Status: ACTIVE
Determine the minimum missing context required to complete a task accurately without producing generic output, asking unnecessary questions, or inventing project facts.
This skill prevents two common agent failures:
ASKING TOO MANY QUESTIONS
and:
GUESSING WHEN THE ANSWER COULD HAVE BEEN DISCOVERED
Use this skill when:
Do not use this skill when:
Use:
DISCOVER FIRST
ASK SECOND
ASSUME THIRD
not:
ASK FIRST
The agent should exhaust reasonable discovery before asking the user for project information.
Start by identifying:
WHAT MUST BE KNOWN
versus:
WHAT WOULD ONLY BE NICE TO KNOW
Classify unknowns as:
CRITICAL
USEFUL
OPTIONAL
An unknown is CRITICAL when different answers would materially change:
Example:
"What database engine does this application use?"
may be critical for a database migration.
Useful information improves the result but does not prevent safe progress.
Example:
"Do you prefer tabs or spaces?"
If the project already has a style, discover it.
If not, follow a reasonable convention.
Do not block the task.
Optional information should rarely be asked.
Example:
"What color would you like comments to be?"
when formatting has no effect on the requested outcome.
Do not create unnecessary interaction.
Search available evidence.
Possible sources:
AGENTS.md
CLAUDE.md
README
configuration files
package manifests
project files
source code
tests
database configuration
deployment scripts
existing examples
documentation
If the repository answers the question, use the repository.
Ask precise questions.
Avoid:
"Tell me more about the project."
Prefer:
"Should this endpoint preserve the existing Windows Authentication model, or is anonymous access required?"
A good question should clearly affect a decision.
Prefer:
1–4 targeted questions
over:
10–20 question questionnaire
If several questions depend on the answer to one earlier question, ask the first question only.
Use:
QUESTION
↓
ANSWER
↓
DO WE NOW HAVE ENOUGH?
/ \
YES NO
↓ ↓
PROCEED NEXT QUESTION
Do not collect unnecessary information in advance.
An assumption may be used when:
the risk is low
the assumption follows existing project conventions
the decision is reversible
the user can easily correct it
State important assumptions.
Example:
I'll assume this should follow the same authentication pattern as the existing controllers.
Then proceed.
Do not silently assume:
production database credentials
destructive intent
security permissions
authentication changes
data-loss tolerance
deployment targets
legal/compliance requirements
irreversible migration behavior
when the assumption materially affects risk.
Task:
Create a new API endpoint.
Unknown:
What authentication does the project use?
Before asking:
SEARCH existing endpoints
INSPECT middleware/configuration
INSPECT authentication configuration
If the answer is found:
PROCEED
Do not ask the user.
Task:
Design a caching layer.
Potential unknowns:
single server or multiple servers?
acceptable stale-data window?
what data is being cached?
existing cache technology?
First inspect:
deployment configuration
dependencies
existing cache code
Ask only what remains critical.
Task:
Teach me Kubernetes.
Do not immediately produce a 30-day course.
Ask a diagnostic question such as:
Have you deployed containers with Docker before, or should we start with containers and images?
Then build from the response.
MISSING INFORMATION
↓
CAN IT BE DISCOVERED?
/ \
YES NO
↓ ↓
DISCOVER DOES IT CHANGE CORRECTNESS?
/ \
YES NO
↓ ↓
ASK ASSUME / IGNORE
The skill should produce one of two outcomes.
Produce:
Resolved objective
Known constraints
Important assumptions
Next action
Then continue the task.
Ask only the minimal targeted questions required to proceed.
Avoid:
What language?
What framework?
What database?
What OS?
What editor?
What deployment method?
What testing system?
What coding style?
What logging system?
What version control?
when most of this could be discovered from the project.
This wastes user attention.
Do not ask a question merely to appear careful.
Example:
User:
Create a PowerShell command to list FSMO role holders.
Bad response:
What Windows version are you using?
if the requested command is standard and does not depend materially on that detail.
Proceed.
Task:
Delete old database records.
Do not silently choose:
older than 30 days
when no age threshold exists.
That variable directly controls destructive behavior.
Ask or discover it.
Diagnostic intake is complete when every critical variable has been:
DISCOVERED
ANSWERED
OR
EXPLICITLY AND SAFELY ASSUMED
At that point stop asking questions and continue the work.
Improve this skill when:
Do not add project-specific intake questions here.
Project-specific rules belong in project skills or documentation.
Initial active version.
Introduced:
Powered by TurnKey Linux.